New:Socket for Asana Is Now Available.Learn more
Sign In

@usejunior/docx-compare

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@usejunior/docx-compare - npm Package Compare versions

Comparing version
0.18.0
to
0.19.1
+21
dist/baselines/atomizer/ancillaryFieldSafety.d.ts
import { DocxArchive } from '@usejunior/docx-core';
import type { AncillaryFieldEvidence, AncillaryStorySafetyIssue, ReconstructionMode } from '../../compare-types.js';
export declare class AncillaryStorySafetyError extends Error {
readonly issues: AncillaryStorySafetyIssue[];
constructor(issues: AncillaryStorySafetyIssue[]);
}
export interface AncillaryNoteMergeResult {
mergedIds: ReadonlySet<string>;
createdPart: boolean;
}
export interface AncillaryFieldSafetyInput {
resultArchive: DocxArchive;
baseArchive: DocxArchive;
mergeSourceArchive: DocxArchive;
reconstructionMode: ReconstructionMode;
baseSide: 'original' | 'revised';
mergeSourceSide: 'original' | 'revised';
noteMergeResults: ReadonlyMap<'footnote' | 'endnote', AncillaryNoteMergeResult>;
}
export declare function evaluateAncillaryFieldSafety(input: AncillaryFieldSafetyInput): Promise<AncillaryFieldEvidence>;
//# sourceMappingURL=ancillaryFieldSafety.d.ts.map
{"version":3,"file":"ancillaryFieldSafety.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/ancillaryFieldSafety.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAQZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAEV,sBAAsB,EAKtB,yBAAyB,EAEzB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AA2BhC,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC;gBAEjC,MAAM,EAAE,yBAAyB,EAAE;CAKhD;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,WAAW,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,EAAE,WAAW,CAAC;IAChC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,UAAU,GAAG,SAAS,CAAC;IACxC,gBAAgB,EAAE,WAAW,CAAC,UAAU,GAAG,SAAS,EAAE,wBAAwB,CAAC,CAAC;CACjF;AA+iBD,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAYjC"}
import { XMLSerializer } from '@xmldom/xmldom';
import { OOXML, auditSectPr, collectStrictFieldStructureIssues, parseXml, } from '@usejunior/docx-core';
import { canonicalNode, classifyFieldInstruction, } from './opaquePassthrough.js';
const serializer = new XMLSerializer();
const NOTE_PARTS = [
{
path: 'word/footnotes.xml',
root: 'footnotes',
entry: 'footnote',
storyKind: 'footnote',
},
{
path: 'word/endnotes.xml',
root: 'endnotes',
entry: 'endnote',
storyKind: 'endnote',
},
];
const IGNORED_STRICT_ISSUES = new Set([
'TEXT_INSIDE_DELETION',
'DELETED_TEXT_OUTSIDE_DELETION',
]);
export class AncillaryStorySafetyError extends Error {
issues;
constructor(issues) {
super(`Ancillary story safety check failed with ${issues.length} issue(s)`);
this.name = 'AncillaryStorySafetyError';
this.issues = issues;
}
}
function packageLocator(path) {
return { locatorType: 'package_part', normalizedPartPath: path };
}
function bindingLocator(issue) {
if (issue.sectionOrdinal === undefined || !issue.kind || !issue.role) {
return packageLocator(issue.type === 'sectpr_duplicate_relationship_id'
? 'word/_rels/document.xml.rels'
: 'word/document.xml');
}
return {
locatorType: 'section_binding',
sectionOrdinal: issue.sectionOrdinal,
kind: issue.kind,
role: issue.role,
normalizedPartPath: issue.targetPath,
};
}
function bindingSummary(binding) {
return {
sectionOrdinal: binding.sectionOrdinal,
kind: binding.kind,
role: binding.role,
relationshipId: binding.rid,
normalizedPartPath: binding.targetPath,
};
}
function publicBindingLocator(binding) {
return {
locatorType: 'section_binding',
sectionOrdinal: binding.sectionOrdinal,
kind: binding.kind,
role: binding.role,
normalizedPartPath: binding.targetPath,
};
}
function canonicalNoteId(value) {
const collapsed = value
.replace(/[ \t\r\n]+/gu, ' ')
.replace(/^ | $/gu, '');
if (!/^[+-]?\d+$/u.test(collapsed))
return undefined;
try {
return BigInt(collapsed).toString();
}
catch {
return undefined;
}
}
function inspectNotePart(xml, path, rootName, entryName, sourceSide) {
const root = parseXml(xml).documentElement;
if (root.namespaceURI !== OOXML.W_NS || root.localName !== rootName) {
throw new Error(`Expected WordprocessingML ${rootName} root`);
}
const entries = [];
const issues = [];
const seen = new Set();
const duplicates = new Set();
for (let child = root.firstChild; child; child = child.nextSibling) {
if (child.nodeType !== 1)
continue;
const element = child;
if (element.namespaceURI !== OOXML.W_NS || element.localName !== entryName)
continue;
const lexicalId = element.getAttributeNS(OOXML.W_NS, 'id') ??
element.getAttribute('w:id') ??
'';
const id = canonicalNoteId(lexicalId);
if (id === undefined) {
issues.push({
category: 'canonical_evidence',
code: 'INVALID_NOTE_ENTRY_ID',
detail: `${path} contains invalid direct entry id '${lexicalId || '(missing)'}'`,
locator: {
locatorType: 'note_entry',
normalizedPartPath: path,
entryId: lexicalId,
sourceSide,
},
});
continue;
}
if (seen.has(id))
duplicates.add(id);
else
seen.add(id);
entries.push({ id, element });
}
issues.push(...[...duplicates].sort((a, b) => {
const left = BigInt(a);
const right = BigInt(b);
return left < right ? -1 : left > right ? 1 : 0;
}).map((entryId) => ({
category: 'canonical_evidence',
code: 'DUPLICATE_NOTE_ENTRY_ID',
detail: `${path} contains numerically duplicate direct entry id '${entryId}'`,
locator: {
locatorType: 'note_entry',
normalizedPartPath: path,
entryId,
sourceSide,
},
})));
return { entries, issues };
}
function strictIssues(xml, label, locator) {
try {
return collectStrictFieldStructureIssues([{ label, xml }])
.filter((issue) => !IGNORED_STRICT_ISSUES.has(issue.code))
.map((issue) => ({
category: 'strict_field_structure',
code: issue.code,
detail: issue.message,
locator,
}));
}
catch (error) {
return [{
category: 'strict_field_structure',
code: 'STORY_XML_INVALID',
detail: error instanceof Error ? error.message : String(error),
locator,
}];
}
}
function directParagraphChild(paragraph, element) {
let current = element;
while (current && current.parentNode !== paragraph) {
const parent = current.parentNode;
current = parent?.nodeType === 1 ? parent : null;
}
return current;
}
function fieldCharType(element) {
return element.getAttributeNS(OOXML.W_NS, 'fldCharType') ??
element.getAttribute('w:fldCharType');
}
function inventoryEligibleFields(xml, normalizedPartPath, entryId, allowedKinds) {
const document = parseXml(xml);
const paragraphs = Array.from(document.getElementsByTagNameNS(OOXML.W_NS, 'p'));
const inventory = [];
for (const [paragraphOrdinal, paragraph] of paragraphs.entries()) {
const stack = [];
const completed = [];
const scan = (node) => {
for (let child = node.firstChild; child; child = child.nextSibling) {
if (child.nodeType !== 1)
continue;
const element = child;
if (element.namespaceURI === OOXML.W_NS && element.localName === 'fldChar') {
const type = fieldCharType(element);
if (type === 'begin') {
if (stack.length > 0)
stack[stack.length - 1].containsNested = true;
stack.push({
beginChild: directParagraphChild(paragraph, element),
instruction: [],
separated: false,
nestedInParent: stack.length > 0,
containsNested: false,
});
}
else if (type === 'separate' && stack.length > 0) {
stack[stack.length - 1].separated = true;
}
else if (type === 'end' && stack.length > 0) {
const field = stack.pop();
const endChild = directParagraphChild(paragraph, element);
if (field.beginChild &&
endChild &&
!field.nestedInParent &&
!field.containsNested) {
completed.push({
beginChild: field.beginChild,
endChild,
instruction: field.instruction.join(''),
});
}
}
}
else if (element.namespaceURI === OOXML.W_NS &&
(element.localName === 'instrText' || element.localName === 'delInstrText') &&
stack.length > 0 &&
!stack[stack.length - 1].separated) {
stack[stack.length - 1].instruction.push(element.textContent ?? '');
}
scan(element);
}
};
scan(paragraph);
const paragraphChildren = Array.from(paragraph.childNodes)
.filter((node) => node.nodeType === 1);
let eligibleFieldOrdinal = 0;
for (const field of completed) {
const instructionKind = classifyFieldInstruction(field.instruction);
if (!instructionKind || !allowedKinds.has(instructionKind))
continue;
const start = paragraphChildren.indexOf(field.beginChild);
const end = paragraphChildren.indexOf(field.endChild);
if (start < 0 || end < start)
continue;
const canonical = paragraphChildren
.slice(start, end + 1)
.map(canonicalNode)
.join('');
inventory.push({
locator: {
locatorType: 'field_range',
normalizedPartPath,
entryId,
paragraphOrdinal,
eligibleFieldOrdinal,
instructionKind,
},
instructionKind,
canonical,
});
eligibleFieldOrdinal++;
}
}
return inventory;
}
function locatorKey(locator) {
return JSON.stringify([
locator.normalizedPartPath,
locator.entryId ?? null,
locator.paragraphOrdinal,
locator.eligibleFieldOrdinal,
]);
}
function compareInventories(source, final, sourceSide, provenance) {
const issues = [];
const ranges = [];
const sourceKeys = new Set(source.map((item) => locatorKey(item.locator)));
for (const item of source) {
const key = locatorKey(item.locator);
const counterpart = final.find((candidate) => locatorKey(candidate.locator) === key);
if (!counterpart) {
issues.push({
category: 'canonical_evidence',
code: 'FIELD_RANGE_MISSING',
detail: 'Eligible source field range is missing from the final package',
locator: item.locator,
});
continue;
}
if (counterpart.instructionKind !== item.instructionKind) {
issues.push({
category: 'canonical_evidence',
code: 'FIELD_RANGE_KIND_MISMATCH',
detail: `Eligible field instruction changed from ${item.instructionKind} to ${counterpart.instructionKind}`,
locator: item.locator,
});
continue;
}
if (counterpart.canonical !== item.canonical) {
issues.push({
category: 'canonical_evidence',
code: 'FIELD_RANGE_CANONICAL_MISMATCH',
detail: 'Final field range differs from its source canonical subtree range',
locator: item.locator,
});
continue;
}
ranges.push({
locator: item.locator,
instructionKind: item.instructionKind,
sourceSide,
provenance,
canonicalMatch: true,
});
}
for (const item of final) {
if (sourceKeys.has(locatorKey(item.locator)))
continue;
issues.push({
category: 'canonical_evidence',
code: 'FIELD_RANGE_EXTRA',
detail: 'Final package contains an eligible field range absent from its source story',
locator: item.locator,
});
}
return { issues, ranges: issues.length === 0 ? ranges : [] };
}
function entryMap(entries) {
return new Map(entries.map((entry) => [entry.id, entry.element]));
}
/**
* Validate and inventory ancillary stories at the final package boundary.
*
* Header/footer structure follows the existing section binding audit. Complex
* field citations cover structural validation and instruction classification;
* target containment, note isolation, provenance, and canonical preservation
* are stronger SafeDocX safety policies and metamorphic invariants.
*
* @conformance ECMA-376 edition 5, Part 1 § 17.10.5
* @conformance ECMA-376 edition 5, Part 1 § 17.10.2
* @conformance ECMA-376 edition 5, Part 1 § 17.10.4
* @conformance ECMA-376 edition 5, Part 1 § 17.10.3
* @conformance ECMA-376 edition 5, Part 1 § 17.16.18
* @conformance ECMA-376 edition 5, Part 1 § 17.16.5.44
* @conformance ECMA-376 edition 5, Part 1 § 17.16.5.42
* @conformance ECMA-376 edition 5, Part 1 § 17.16.5.51
* @conformance ECMA-376 edition 5, Part 1 § 17.16.5.45
*/
async function evaluateAncillaryFieldSafetyUnsafe(input) {
const issues = [];
const ranges = [];
const stories = [];
const resultDocumentXml = await input.resultArchive.getDocumentXml();
const resultRelationships = await input.resultArchive.getFile('word/_rels/document.xml.rels');
const preliminarySectionAudit = auditSectPr(resultDocumentXml, resultRelationships);
const resultParts = new Map();
for (const targetPath of [...new Set(preliminarySectionAudit.bindings.map((binding) => binding.targetPath))].sort()) {
const xml = await input.resultArchive.getFile(targetPath);
if (xml !== null)
resultParts.set(targetPath, xml);
}
const sectionAudit = auditSectPr(resultDocumentXml, resultRelationships, resultParts);
for (const issue of sectionAudit.issues) {
issues.push({
category: 'binding_resolution',
code: issue.type,
detail: issue.message,
locator: bindingLocator(issue),
});
}
if (issues.length > 0)
throw new AncillaryStorySafetyError(issues);
const bindings = sectionAudit.bindings.map(bindingSummary);
const bindingsByTarget = new Map();
for (const binding of sectionAudit.bindings) {
const list = bindingsByTarget.get(binding.targetPath);
if (list)
list.push(binding);
else
bindingsByTarget.set(binding.targetPath, [binding]);
}
for (const [targetPath, targetBindings] of [...bindingsByTarget].sort(([a], [b]) => a.localeCompare(b))) {
const finalXml = resultParts.get(targetPath);
const sourceXml = await input.baseArchive.getFile(targetPath);
const locator = {
locatorType: 'header_footer_story',
normalizedPartPath: targetPath,
selectingBindings: targetBindings.map(publicBindingLocator),
};
const storyStrictIssues = strictIssues(finalXml, targetPath, locator);
issues.push(...storyStrictIssues);
if (storyStrictIssues.length > 0)
continue;
if (sourceXml === null) {
issues.push({
category: 'canonical_evidence',
code: 'FIELD_RANGE_MISSING',
detail: `Selected source story '${targetPath}' is absent from the assembly base`,
locator,
});
continue;
}
const allowed = new Set(['PAGE', 'NUMPAGES']);
const comparison = compareInventories(inventoryEligibleFields(sourceXml, targetPath, undefined, allowed), inventoryEligibleFields(finalXml, targetPath, undefined, allowed), input.baseSide, 'base');
issues.push(...comparison.issues);
ranges.push(...comparison.ranges);
stories.push({
storyKind: targetBindings[0].kind,
normalizedPartPath: targetPath,
selectingBindings: targetBindings.map(publicBindingLocator),
sourceSide: input.baseSide,
provenance: 'base',
strictFieldStructure: 'passed',
});
}
for (const note of NOTE_PARTS) {
const noteIssueStart = issues.length;
const [baseXml, sourceXml, finalXml] = await Promise.all([
input.baseArchive.getFile(note.path),
input.mergeSourceArchive.getFile(note.path),
input.resultArchive.getFile(note.path),
]);
if (finalXml === null)
continue;
const mergeResult = input.noteMergeResults.get(note.storyKind);
const sourceContributes = Boolean(mergeResult?.createdPart || (mergeResult && mergeResult.mergedIds.size > 0));
let baseInspection = { entries: [], issues: [] };
let sourceInspection = { entries: [], issues: [] };
let finalInspection;
try {
if (baseXml !== null) {
baseInspection = inspectNotePart(baseXml, note.path, note.root, note.entry, input.baseSide);
issues.push(...baseInspection.issues);
}
if (sourceContributes && sourceXml !== null) {
sourceInspection = inspectNotePart(sourceXml, note.path, note.root, note.entry, input.mergeSourceSide);
issues.push(...sourceInspection.issues);
}
finalInspection = inspectNotePart(finalXml, note.path, note.root, note.entry);
issues.push(...finalInspection.issues);
}
catch (error) {
issues.push({
category: 'strict_field_structure',
code: 'NOTE_PART_XML_INVALID',
detail: error instanceof Error ? error.message : String(error),
locator: packageLocator(note.path),
});
continue;
}
if (issues.length > noteIssueStart)
continue;
const finalEntries = finalInspection.entries;
const baseEntries = entryMap(baseInspection.entries);
const sourceEntries = entryMap(sourceInspection.entries);
const canonicalMergedIds = new Set([...(mergeResult?.mergedIds ?? [])]
.map(canonicalNoteId)
.filter((id) => id !== undefined));
const allowed = new Set(['REF', 'PAGEREF']);
for (const entry of finalEntries) {
const provenance = baseEntries.has(entry.id) ? 'base' : 'imported';
const sourceSide = provenance === 'base' ? input.baseSide : input.mergeSourceSide;
const sourceEntry = provenance === 'base'
? baseEntries.get(entry.id)
: sourceEntries.get(entry.id);
const locator = {
locatorType: 'note_entry',
normalizedPartPath: note.path,
entryId: entry.id,
};
const entryStrictIssues = strictIssues(serializer.serializeToString(entry.element), `${note.path}:${entry.id}`, locator);
issues.push(...entryStrictIssues);
if (entryStrictIssues.length > 0)
continue;
if (!sourceEntry ||
(provenance === 'imported' && !canonicalMergedIds.has(entry.id) && !mergeResult?.createdPart)) {
issues.push({
category: 'canonical_evidence',
code: 'NOTE_ENTRY_PROVENANCE_MISSING',
detail: `Final note entry '${entry.id}' has no assembly source provenance`,
locator,
});
continue;
}
const sourceEntryXml = serializer.serializeToString(sourceEntry);
const finalEntryXml = serializer.serializeToString(entry.element);
const comparison = compareInventories(inventoryEligibleFields(sourceEntryXml, note.path, entry.id, allowed), inventoryEligibleFields(finalEntryXml, note.path, entry.id, allowed), sourceSide, provenance);
issues.push(...comparison.issues);
ranges.push(...comparison.ranges);
stories.push({
storyKind: note.storyKind,
normalizedPartPath: note.path,
entryId: entry.id,
sourceSide,
provenance,
strictFieldStructure: 'passed',
});
}
}
if (issues.length > 0)
throw new AncillaryStorySafetyError(issues);
return {
status: 'passed',
reconstructionMode: input.reconstructionMode,
selectedBindings: bindings,
stories,
ranges,
};
}
export async function evaluateAncillaryFieldSafety(input) {
try {
return await evaluateAncillaryFieldSafetyUnsafe(input);
}
catch (error) {
if (error instanceof AncillaryStorySafetyError)
throw error;
throw new AncillaryStorySafetyError([{
category: 'strict_field_structure',
code: 'ANCILLARY_PACKAGE_XML_INVALID',
detail: error instanceof Error ? error.message : String(error),
locator: packageLocator('word/document.xml'),
}]);
}
}
//# sourceMappingURL=ancillaryFieldSafety.js.map
{"version":3,"file":"ancillaryFieldSafety.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/ancillaryFieldSafety.ts"],"names":[],"mappings":"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"}
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"auxiliaryIdCollision.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/auxiliaryIdCollision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,EAAE,uBAAuB,EA+BpD,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAUlD;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAuED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,WAAW,EAC5B,cAAc,EAAE,WAAW,GAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA+FlC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAuDD;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,WAAW,EAC5B,cAAc,EAAE,WAAW,GAC1B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA8GnC"}
{"version":3,"file":"auxiliaryIdCollision.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/auxiliaryIdCollision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,EAAE,uBAAuB,EA+BpD,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAUlD;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAuED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,WAAW,EAC5B,cAAc,EAAE,WAAW,GAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA0GlC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAuDD;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,eAAe,EAAE,WAAW,EAC5B,cAAc,EAAE,WAAW,GAC1B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CA8GnC"}

@@ -181,4 +181,17 @@ /**

continue;
const originalParsed = parseEntries(originalPartXml, descriptor.entryTag);
const revisedParsed = parseEntries(revisedPartXml, descriptor.entryTag);
let originalParsed;
let revisedParsed;
try {
originalParsed = parseEntries(originalPartXml, descriptor.entryTag);
revisedParsed = parseEntries(revisedPartXml, descriptor.entryTag);
}
catch (error) {
// Note XML is validated at the publication boundary after the selected
// assembly mode is known. Deferring malformed note parts here lets an
// unused opposite-side part remain irrelevant while a contributing or
// final malformed part still fails with typed ancillary diagnostics.
if (descriptor.label === 'footnote' || descriptor.label === 'endnote')
continue;
throw error;
}
originalEntryIds.set(descriptor.label, new Set(originalParsed.entries.keys()));

@@ -185,0 +198,0 @@ const collidingIds = [];

@@ -1,1 +0,1 @@

{"version":3,"file":"auxiliaryIdCollision.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/auxiliaryIdCollision.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"auxiliaryIdCollision.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/auxiliaryIdCollision.ts"],"names":[],"mappings":"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"}

@@ -28,2 +28,4 @@ import type { ComparisonUnitAtom, DocxArchive } from '@usejunior/docx-core';

}
/** Expanded-name canonical subtree form used by opaque preservation checks. */
export declare function canonicalNode(node: Node): string;
/** Validate supported SDT namespace scope before atomization clones leaf nodes. */

@@ -43,2 +45,4 @@ export declare function validateSdtNamespaceOwnership(root: Element): void;

export declare function captureSdtPassthrough(root: Element, atoms: ComparisonUnitAtom[]): void;
export type SupportedComplexField = 'PAGE' | 'NUMPAGES' | 'REF' | 'PAGEREF';
export declare function classifyFieldInstruction(instruction: string): SupportedComplexField | null;
/**

@@ -45,0 +49,0 @@ * Capture unchanged supported complex fields as ordered direct paragraph-child

@@ -1,1 +0,1 @@

{"version":3,"file":"opaquePassthrough.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/opaquePassthrough.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAyB,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAmB,MAAM,sBAAsB,CAAC;AAQ1E,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AASD,MAAM,WAAW,iCAAiC;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC,EAAE,MAAM,CAAC;IACzC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAmED,qFAAqF;AACrF,qBAAa,iCAAiC;IAYhC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,QAAQ,CAAC,eAAe,EAAE,iCAAiC,CAKzD;IACF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuE;IAC3G,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,SAAS,CAAoC;gBAExB,OAAO,EAAE,WAAW;IAEjD,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAM5D,sBAAsB;YAStB,oBAAoB;YAcpB,yBAAyB;IAyCvC,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,QAAQ;CAYjB;AAiTD,mFAAmF;AACnF,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAsBjE;AA0BD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,CA6FtF;AA4JD;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,kBAAkB,EAAE,GAC1B,IAAI,CAqMN;AAcD,uFAAuF;AACvF,wBAAsB,iCAAiC,CACrD,aAAa,EAAE,kBAAkB,EAAE,EACnC,YAAY,EAAE,kBAAkB,EAAE,EAClC,qBAAqB,EAAE,iCAAiC,EACxD,oBAAoB,EAAE,iCAAiC,EACvD,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED,iFAAiF;AACjF,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAsDtF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACjH,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,KAAK,MAAM,EAC7I,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GACtC,MAAM,CA6DR;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAErF"}
{"version":3,"file":"opaquePassthrough.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/opaquePassthrough.ts"],"names":[],"mappings":"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"}
import { createHash } from 'node:crypto';
import { posix } from 'node:path';
import { CorrelationStatus, OOXML, parseXml } from '@usejunior/docx-core';
import { CorrelationStatus, OOXML, normalizeOpcRelationshipTarget, parseXml, } from '@usejunior/docx-core';
const XMLNS_NS = 'http://www.w3.org/2000/xmlns/';

@@ -38,45 +38,2 @@ const XML_NS = 'http://www.w3.org/XML/1998/namespace';

}
function normalizeInternalTarget(ownerPart, target) {
if (!target || target.includes('\\') || /[\u0000-\u001f\u007f?#]/.test(target)) {
throw new OpaquePassthroughError(`unsafe internal relationship target '${target}'`);
}
let decoded;
try {
decoded = decodeURIComponent(target);
}
catch {
throw new OpaquePassthroughError(`invalid encoded relationship target '${target}'`);
}
if (decoded.includes('\\') ||
/[\u0000-\u001f\u007f?#]/.test(decoded) ||
decoded.startsWith('//') ||
decoded.includes(':')) {
throw new OpaquePassthroughError(`unsafe internal relationship target '${target}'`);
}
const segments = decoded.startsWith('/') ? [] : posix.dirname(ownerPart).split('/').filter(Boolean);
for (const segment of decoded.split('/')) {
if (!segment || segment === '.')
continue;
if (segment === '..') {
if (segments.length === 0) {
throw new OpaquePassthroughError(`relationship target escapes the package root: '${target}'`);
}
segments.pop();
}
else {
segments.push(segment);
}
}
if (segments.length === 0)
throw new OpaquePassthroughError(`empty resolved relationship target '${target}'`);
return segments.join('/');
}
function normalizeExternalTarget(target) {
try {
return new URL(target).href;
}
catch {
throw new OpaquePassthroughError(`unsafe external relationship target '${target}'`);
}
}
/** Memoized package-scoped relationship closure used only for opaque body blocks. */

@@ -137,6 +94,6 @@ export class OpaqueRelationshipClosureResolver {

mode: relationship.mode,
target: normalizeExternalTarget(relationship.target),
target: relationship.target,
});
}
const targetPart = normalizeInternalTarget(ownerPart, relationship.target);
const targetPart = relationship.target;
const hash = await this.hashPart(targetPart);

@@ -186,4 +143,6 @@ const dependentRelationships = await this.relationshipsForPart(targetPart);

const target = element.getAttribute('Target');
const rawMode = element.getAttribute('TargetMode') || 'Internal';
if (!id || !type || !target || (rawMode !== 'Internal' && rawMode !== 'External')) {
const rawMode = element.hasAttribute('TargetMode')
? element.getAttribute('TargetMode')
: undefined;
if (!id || !type) {
throw new OpaquePassthroughError(`invalid relationship entry in '${relationshipPartPath(partPath)}'`);

@@ -193,3 +152,21 @@ }

throw new OpaquePassthroughError(`duplicate relationship Id ${partPath}#${id}`);
relationships.set(id, { id, type, target, mode: rawMode });
try {
const normalized = normalizeOpcRelationshipTarget({
ownerPart: partPath,
target: target ?? '',
targetMode: rawMode,
allowExternal: true,
});
relationships.set(id, {
id,
type,
target: normalized.target,
mode: normalized.mode,
});
}
catch (error) {
throw new OpaquePassthroughError(error instanceof Error
? error.message
: `invalid relationship entry in '${relationshipPartPath(partPath)}'`);
}
}

@@ -282,3 +259,4 @@ return relationships;

}
function canonicalNode(node) {
/** Expanded-name canonical subtree form used by opaque preservation checks. */
export function canonicalNode(node) {
if (node.nodeType === 1) {

@@ -714,3 +692,3 @@ const element = node;

}
function classifyFieldInstruction(instruction) {
export function classifyFieldInstruction(instruction) {
const tokens = tokenizeFieldInstruction(instruction);

@@ -717,0 +695,0 @@ if (!tokens || tokens.length === 0)

@@ -1,1 +0,1 @@

{"version":3,"file":"opaquePassthrough.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/opaquePassthrough.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"opaquePassthrough.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/opaquePassthrough.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAgBZ,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EAExB,MAAM,sBAAsB,CAAC;AAuD9B,OAAO,EAEL,KAAK,2BAA2B,EAEjC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,UAAU,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAU9B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,8BAA8B;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/C,gCAAgC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnD,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACjD;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAkPD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,EAC3C,YAAY,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,GACzC,UAAU,EAAE,CA4Bd;AAqHD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAkcxB;AAYD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;CACtB;AAswBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,YAAY,CAyDpF"}
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/baselines/atomizer/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAkBZ,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EAExB,MAAM,sBAAsB,CAAC;AAuD9B,OAAO,EAEL,KAAK,2BAA2B,EAEjC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,UAAU,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAc9B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,8BAA8B;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/C,gCAAgC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnD,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACjD;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C;AAkPD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,EAC3C,YAAY,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,GACzC,UAAU,EAAE,CA4Bd;AA+GD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA8dxB;AAYD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;CACtB;AAuwBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,EAAE,GAAG,YAAY,CAyDpF"}

@@ -1,1 +0,1 @@

{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/pipeline.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/baselines/atomizer/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA8BnD,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,wBAAwB,EACxB,kCAAkC,GACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EACL,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EAEnB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iCAAiC,EACjC,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,GACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,yBAAyB,EAEzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,6BAA6B,EAC7B,8BAA8B,GAE/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAkDnC,SAAS,WAAW,CAAC,CAAW,EAAE,CAAW;IAC3C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAyC;IAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,QAAQ,GAAG,iCAAiC,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI;gBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,0BAA0B,CAAC,WAAmB;IACrD,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;YAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;gBACvD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;YACvC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,uBAAuB,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,wBAAwB,GAAG,uBAAuB;SACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACzC,IAAI,EAAE,CAAC;IACV,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjE,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;QACV,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE;QAC7D,uBAAuB;QACvB,wBAAwB;QACxB,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE;QACvD,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE;QACnD,iBAAiB;QACjB,eAAe;KAChB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,oCAAoC,CAC3C,QAA6B,EAC7B,MAA2B;IAE3B,OAAO,CACL,WAAW,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;QACnD,WAAW,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,CAAC;QACrE,WAAW,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,CAAC;QAC7E,WAAW,CAAC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,CAAC;QAC/E,WAAW,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACjE,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC;QAC7D,WAAW,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACjE,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,QAAkB,EAAE,MAAgB;IACnD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAoB,EAAE,UAAkB;IACxE,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAElE,IAAI,4BAA4B,GAAG,CAAC,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACxD,4BAA4B,GAAG,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO;QACL,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,4BAA4B;QAC5B,iBAAiB,EACf,4BAA4B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAC9F,eAAe,EACb,4BAA4B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5F,gBAAgB,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,QAA6B,EAC7B,MAA2B;IAE3B,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;QAC3D,uBAAuB,EAAE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,CAAC;QAClG,wBAAwB,EAAE,OAAO,CAAC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,CAAC;QACrG,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;QACrD,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QAC/C,2BAA2B,EAAE,QAAQ,CAAC,mBAAmB;QACzD,yBAAyB,EAAE,MAAM,CAAC,mBAAmB;QACrD,yBAAyB,EAAE,QAAQ,CAAC,iBAAiB;QACrD,uBAAuB,EAAE,MAAM,CAAC,iBAAiB;QACjD,uBAAuB,EAAE,QAAQ,CAAC,eAAe;QACjD,qBAAqB,EAAE,MAAM,CAAC,eAAe;QAC7C,yBAAyB,EAAE,QAAQ,CAAC,iBAAiB;QACrD,uBAAuB,EAAE,MAAM,CAAC,iBAAiB;QACjD,uBAAuB,EAAE,QAAQ,CAAC,eAAe;QACjD,qBAAqB,EAAE,MAAM,CAAC,eAAe;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4B;IACpD,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;QAClC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;QACxC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,SAAS,GAAG,GAAG;IACxD,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;AAC3C,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA0C;IAE1C,OAAO;QACL,4BAA4B,EAAE,OAAO,CAAC,4BAA4B;QAClE,iBAAiB,EAAE,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAChE,eAAe,EAAE,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC;QAC5D,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,gBAAgB;KACjE,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,OAA8C;IAE9C,OAAO;QACL,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC;QAChD,uBAAuB,EAAE,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAC1E,wBAAwB,EAAE,gBAAgB,CAAC,OAAO,CAAC,wBAAwB,CAAC;QAC5E,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5C,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,mBAAmB,EAAE,OAAO,CAAC,uBAAuB,CAAC,MAAM;QAC3D,iBAAiB,EAAE,OAAO,CAAC,qBAAqB,CAAC,MAAM;QACvD,qBAAqB,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACzD,mBAAmB,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,cAA8D;IAE9D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAuC,EAAE,CAAC;IACvD,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,CAAC,UAAU,GAAG,qBAAqB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,CAAC,UAAU,GAAG,qBAAqB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,eAAe,GAAG,yBAAyB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,eAAe,GAAG,yBAAyB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,qEAAqE;AACrE,gDAAgD;AAChD,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,YAAY,CAC1B,WAAmB,EACnB,aAA2C,EAC3C,YAA0C;IAE1C,MAAM,OAAO,GAAiB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAExE,MAAM,cAAc,GAAG,CACrB,QAAsC,EACtC,QAAgB,EAChB,WAAmB,EACb,EAAE;QACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAY,CAAC;gBACpC,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,GAAG,WAAW,IAAI,CAAC,KAAK,EAAE,EAAE;oBACnC,GAAG,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC;iBACzC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACxD,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAErD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAC3B,wBAAgC,EAChC,uBAA+B,EAC/B,2BAAgD,EAChD,0BAA+C,EAC/C,YAAoB,EACpB,iBAGC;IAQD,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,2BAA2B,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,2BAA2B,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,oBAAoB,GAAG,YAAY,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;IACjF,MAAM,oBAAoB,GAAG,YAAY,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;IAElF,MAAM,iBAAiB,GAAG,oCAAoC,CAC5D,0BAA0B,EAC1B,2BAA2B,CAC5B,CAAC;IACF,MAAM,iBAAiB,GAAG,oCAAoC,CAC5D,2BAA2B,EAC3B,2BAA2B,CAC5B,CAAC;IAEF,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,eAAe,GAAG,YAAY,CAClC,WAAW,EACX,iBAAiB,CAAC,aAAa,EAC/B,iBAAiB,CAAC,YAAY,CAC/B,CAAC;IACF,MAAM,eAAe,GAAG,YAAY,CAClC,WAAW,EACX,iBAAiB,CAAC,aAAa,EAC/B,iBAAiB,CAAC,YAAY,CAC/B,CAAC;IACF,6EAA6E;IAC7E,4EAA4E;IAC5E,+CAA+C;IAC/C,wEAAwE;IACxE,uEAAuE;IACvE,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAM,sBAAsB,GAAG,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,gBAAgB,GACpB,sBAAsB;QACtB,sBAAsB,CAAC,eAAe,CAAC;QACvC,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAE1C,MAAM,MAAM,GAA+B;QACzC,UAAU,EAAE,oBAAoB,CAAC,mBAAmB;QACpD,UAAU,EAAE,oBAAoB,CAAC,mBAAmB;QACpD,4EAA4E;QAC5E,+EAA+E;QAC/E,uEAAuE;QACvE,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,gBAAgB;KACjC,CAAC;IAEF,MAAM,YAAY,GAAqC,MAAM,CAAC,OAAO,CAAC,MAAM,CAE1E;SACC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,cAAc,GAAuC,EAAE,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,cAAc,CAAC,UAAU,GAAG,wBAAwB,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,cAAc,CAAC,UAAU,GAAG,wBAAwB,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;IAC/F,CAAC;IACD,2EAA2E;IAC3E,mDAAmD;IACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,cAAc,CAAC,eAAe,GAAG,4BAA4B,CAC3D,0BAA0B,EAC1B,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,cAAc,CAAC,eAAe,GAAG,4BAA4B,CAC3D,2BAA2B,EAC3B,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC;QAC/B,MAAM;QACN,YAAY;QACZ,cAAc,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACpE,cAAc,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;KAC1F,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAgB,EAChB,OAAe,EACf,UAA2B,EAAE;IAE7B,MAAM,EACJ,MAAM,GAAG,YAAY,EACrB,IAAI,GAAG,IAAI,IAAI,EAAE,EACjB,aAAa,GAAG,EAAE,EAClB,eAAe,GAAG,EAAE,EACpB,SAAS,GAAG,EAAE,EACd,YAAY,GAAG,IAAI,EACnB,kBAAkB,GAAG,SAAS,EAC9B,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,+BAA+B;IAC/B,MAAM,YAAY,GAA0B;QAC1C,GAAG,+BAA+B;QAClC,GAAG,aAAa;KACjB,CAAC;IAEF,MAAM,cAAc,GAA4B;QAC9C,GAAG,iCAAiC;QACpC,GAAG,eAAe;KACnB,CAAC;IAEF,MAAM,iBAAiB,GAAgC;QACrD,GAAG,yBAAyB;QAC5B,GAAG,SAAS;KACb,CAAC;IAEF,6BAA6B;IAC7B,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,2BAA2B,GAAG,IAAI,iCAAiC,CAAC,eAAe,CAAC,CAAC;IAC3F,MAAM,0BAA0B,GAAG,IAAI,iCAAiC,CAAC,cAAc,CAAC,CAAC;IAEzF,mEAAmE;IACnE,wEAAwE;IACxE,0EAA0E;IAC1E,wEAAwE;IACxE,4EAA4E;IAC5E,yBAAyB;IACzB,MAAM,6BAA6B,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACrE,MAAM,8BAA8B,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAEtE,+BAA+B;IAC/B,MAAM,WAAW,GAAG,kCAAkC,CAAC,MAAM,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,kCAAkC,CAAC,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC;IAE7F,qCAAqC;IACrC,MAAM,oBAAoB,GAAG,MAAM,eAAe,CAAC,eAAe,EAAE,IAAI,SAAS,CAAC;IAClF,MAAM,mBAAmB,GAAG,MAAM,cAAc,CAAC,eAAe,EAAE,IAAI,SAAS,CAAC;IAEhF,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,eAAe,CAAC,OAAO,CAAC,8BAA8B,CAAC;QACvD,cAAc,CAAC,OAAO,CAAC,8BAA8B,CAAC;KACvD,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAC3E,MAAM,uBAAuB,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAEzE,4EAA4E;IAC5E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,iBAAiB,GAAG;QACxB,aAAa,EAAE,EAAW;QAC1B,YAAY,EAAE,EAAW;KAC1B,CAAC;IAEF,MAAM,YAAY,GAAY;QAC5B,GAAG,EAAE,mBAAmB;QACxB,WAAW,EAAE,kFAAkF;KAChG,CAAC;IAEF,MAAM,WAAW,GAAY;QAC3B,GAAG,EAAE,mBAAmB;QACxB,WAAW,EAAE,kFAAkF;KAChG,CAAC;IAEF,+EAA+E;IAC/E,4EAA4E;IAC5E,4EAA4E;IAC5E,+EAA+E;IAC/E,kEAAkE;IAClE,MAAM,wBAAwB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1F,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IACxF,MAAM,2BAA2B,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,0BAA0B,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAE1E,MAAM,iBAAiB,GAAG,KAAK,EAC7B,cAA6D,EAC7D,UAA8B,EAM7B,EAAE;QACH,sFAAsF;QACtF,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACjD,wBAAwB,CAAC,YAAY,CAAC,CAAC;QACvC,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACnC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,uBAAuB,GAAG,UAAU,KAAK,SAAS;YACtD,CAAC,CAAC;gBACE,GAAG,cAAc;gBACjB,2BAA2B,EAAE,IAAI;gBACjC,8BAA8B,EAAE,kBAAkB,KAAK,SAAS;aACjE;YACH,CAAC,CAAC,cAAc,CAAC;QACnB,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;QACtG,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAEnG,qEAAqE;QACrE,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACtC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACrC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,iCAAiC,CACrC,aAAa,EACb,YAAY,EACZ,2BAA2B,EAC3B,0BAA0B,EAC1B,YAAY,CAAC,GAAG,CACjB,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC9B,yBAAyB,CAAC,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;YAClF,yBAAyB,CAAC,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAClF,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,6BAA6B,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;QACvE,6BAA6B,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC;QAErE,+EAA+E;QAC/E,8EAA8E;QAC9E,iFAAiF;QACjF,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAChD,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACnD,iBAAiB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAElD,+EAA+E;QAC/E,MAAM,SAAS,GAAG,mBAAmB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAEnE,4DAA4D;QAC5D,iCAAiC,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAE1E,6BAA6B;QAC7B,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,iEAAiE;YACjE,yCAAyC;YACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC;YACrD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;YAClF,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;QACpE,CAAC;QAED,+BAA+B;QAC/B,IAAI,cAAc,CAAC,mBAAmB,EAAE,CAAC;YACvC,gEAAgE;YAChE,6BAA6B,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC9D,CAAC;QAED,sDAAsD;QACtD,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAEjF,kFAAkF;QAClF,6BAA6B,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACnF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,oCAAoC,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,mDAAmD;QACnD,IAAI,cAAsB,CAAC;QAC3B,IAAI,sBAAsB,GAAsB,EAAE,CAAC;QACnD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,kFAAkF;YAClF,cAAc,GAAG,qBAAqB,CACpC,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,CACjD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,8EAA8E;YAC9E,wEAAwE;YACxE,uDAAuD;YACvD,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,iCAAiC,CACtE,eAAe,EAAE,cAAc,CAChC,CAAC;YACF,cAAc,GAAG,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE;gBAC7D,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ;aAC7C,CAAC,CAAC;YACH,sBAAsB,GAAG,gBAAgB,CAAC;QAC5C,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,sBAAsB,EAAE,CAAC;IAC7E,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,YAAoB,EAAE,EAAE,CACvD,oBAAoB,CAClB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,YAAY,EACZ,iBAAiB,CAClB,CAAC;IAEJ,IAAI,gBAKH,CAAC;IACF,IAAI,cAAwD,CAAC;IAC7D,IAAI,mBAAkE,CAAC;IACvE,IAAI,yBAA8E,CAAC;IACnF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,qBAAqB;QACrB,oEAAoE;QACpE,kFAAkF;QAClF,8EAA8E;QAC9E,MAAM,aAAa,GAGd;YACH;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,cAAc,EAAE;oBACd,cAAc,EAAE,IAAI;oBACpB,eAAe,EAAE,KAAK;oBACtB,0BAA0B,EAAE,KAAK;oBACjC,kBAAkB,EAAE,IAAI;iBACzB;aACF;YACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,cAAc,EAAE;oBACd,cAAc,EAAE,IAAI;oBACpB,eAAe,EAAE,KAAK;oBACtB,0BAA0B,EAAE,KAAK;oBACjC,kBAAkB,EAAE,KAAK;iBAC1B;aACF;YACD;gBACE,IAAI,EAAE,8BAA8B;gBACpC,cAAc,EAAE;oBACd,cAAc,EAAE,IAAI;oBACpB,eAAe,EAAE,IAAI;oBACrB,0BAA0B,EAAE,IAAI;oBAChC,kBAAkB,EAAE,IAAI;iBACzB;aACF;YACD;gBACE,IAAI,EAAE,6BAA6B;gBACnC,cAAc,EAAE;oBACd,cAAc,EAAE,IAAI;oBACpB,eAAe,EAAE,IAAI;oBACrB,0BAA0B,EAAE,IAAI;oBAChC,kBAAkB,EAAE,KAAK;iBAC1B;aACF;SACF,CAAC;QAEF,MAAM,cAAc,GAAuC,EAAE,CAAC;QAC9D,IAAI,QAA6C,CAAC;QAClD,IAAI,YAAkE,CAAC;QACvE,KAAK,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,aAAa,EAAE,CAAC;YACrD,IAAI,SAAkC,CAAC;YACvC,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,wBAAwB,EAAE,CAAC;oBAC1C,iEAAiE;oBACjE,cAAc,CAAC,IAAI,CAAC;wBAClB,IAAI;wBACJ,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;wBACrH,YAAY,EAAE,CAAC,YAA6C,CAAC;wBAC7D,cAAc,EAAE,SAAS;wBACzB,gBAAgB,EAAE,SAAS;qBAC5B,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;YACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAEjE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,QAAQ,GAAG,SAAS,CAAC;gBACrB,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,CAAC;YAED,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,gBAAgB,EAAE,MAAM,CAAC,cAAc;aACxC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,gBAAgB,GAAG,QAAQ,CAAC;YAC5B,0EAA0E;YAC1E,wEAAwE;YACxE,4DAA4D;YAC5D,yBAAyB,GAAG;gBAC1B,QAAQ,EAAE,YAAa;gBACvB,uBAAuB,EAAE,cAAc;aACxC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gBAAgB,GAAG,MAAM,iBAAiB,CACxC,EAAE,4BAA4B,EAAE,IAAI,EAAE,EACtC,SAAS,CACV,CAAC;YACF,cAAc,GAAG,gCAAgC,CAAC;YAClD,mBAAmB,GAAG;gBACpB,QAAQ,EAAE,cAAc;aACzB,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gBAAgB,GAAG,MAAM,iBAAiB,CACxC,EAAE,4BAA4B,EAAE,IAAI,EAAE,EACtC,SAAS,CACV,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,KAAK,EAAE,SAAkC,EAGhE,EAAE;QACH,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;QACrC,oEAAoE;QACpE,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;QAC1F,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;QACjG,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7E,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAChD,8BAA8B,CAAC,cAAc,CAAC,CAAC;QAC/C,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAE7C,MAAM,4BAA4B,CAAC,aAAa,EAAE,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAEpF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgD,CAAC;QACjF,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,WAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,6BAA6B,CAC/C,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,CAC9D,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;oBAAE,MAAM,KAAK,CAAC;gBACnF,MAAM,IAAI,yBAAyB,CAAC,CAAC;wBACnC,QAAQ,EAAE,wBAAwB;wBAClC,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC9D,OAAO,EAAE;4BACP,WAAW,EAAE,cAAc;4BAC3B,kBAAkB,EAAE,UAAU,CAAC,QAAQ;yBACxC;qBACF,CAAC,CAAC,CAAC;YACN,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACtE,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,wBAAwB,CACnD,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,IAAI,CAC1D,CAAC;QACF,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,0BAA0B,CAAC,kBAAkB,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,sBAAsB,GAAG,MAAM,4BAA4B,CAAC;YAChE,aAAa;YACb,WAAW;YACX,kBAAkB;YAClB,kBAAkB,EAAE,SAAS,CAAC,UAAU;YACxC,QAAQ;YACR,eAAe;YACf,gBAAgB;SACjB,CAAC,CAAC;QACH,OAAO;YACL,YAAY,EAAE,MAAM,aAAa,CAAC,IAAI,EAAE;YACxC,sBAAsB;SACvB,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,4BAAsE,CAAC;IAC3E,IAAI,SAAwD,CAAC;IAC7D,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,gBAAgB,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,YAAY,yBAAyB,CAAC,EAAE,CAAC;YAC/F,MAAM,KAAK,CAAC;QACd,CAAC;QACD,4BAA4B,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QACxD,cAAc,GAAG,qCAAqC,CAAC;QACvD,mBAAmB,GAAG,SAAS,CAAC;QAChC,yBAAyB,GAAG,SAAS,CAAC;QACtC,gBAAgB,GAAG,MAAM,iBAAiB,CACxC,EAAE,4BAA4B,EAAE,IAAI,EAAE,EACtC,SAAS,CACV,CAAC;QACF,SAAS,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,oCAAoC;IACpC,IAAI,wBAA4E,CAAC;IACjF,IAAI,gBAAgB,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,wBAAwB,GAAG;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,gBAAgB,EAAE,MAAM,CAAC,cAAc;aACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC;IACzD,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAC3D,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,eAAe,EAAE,OAAO;QAChD,CAAC,CAAC,MAAM,wBAAwB,CAAC;YAC7B,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,OAAO;YACpB,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,cAAc;aACzB;YACD,kBAAkB,EAAE,gBAAgB,CAAC,UAAU;YAC/C,OAAO,EAAE,eAAe;SACzB,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,KAAK;QACL,MAAM,EAAE,UAAmB;QAC3B,2BAA2B,EAAE,kBAAkB;QAC/C,sBAAsB,EAAE,gBAAgB,CAAC,UAAU;QACnD,cAAc;QACd,mBAAmB;QACnB,4BAA4B;QAC5B,wBAAwB;QACxB,yBAAyB;QACzB,sBAAsB;QACtB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAiBD;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CACrC,aAA0B,EAC1B,WAAmB,EACnB,YAAoB,EACpB,eAA8B;IAE9B,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3D,KAAK,MAAM,SAAS,IAAI,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACpE,IAAI,SAAS,KAAK,eAAe;YAAE,SAAS;QAC5C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,KAAK,MAAM,EAAE,IAAI,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,WAAmB,EAAE,YAAoB;IACpE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAI,IAAI,CAAC,CAAC,CAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,6BAA6B,CAC1C,aAA0B,EAC1B,aAA0B,EAC1B,WAAmB,EACnB,UAAmC;IAEnC,MAAM,MAAM,GAAyB,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAElF,sEAAsE;IACtE,0EAA0E;IAC1E,sEAAsE;IACtE,mBAAmB;IACnB,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAClD,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CACzE,CAAC;IACF,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7F,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE3C,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvE,IAAI,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC;IAClC,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEtE,qEAAqE;IACrE,MAAM,eAAe,GAAc,EAAE,CAAC;IACtC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;YACpD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEhD,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;QAClC,mDAAmD;QACnD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAY,CAAC;QACvF,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACvD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YACD,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;SAAM,CAAC;QACN,qEAAqE;QACrE,+DAA+D;QAC/D,iEAAiE;QACjE,qEAAqE;QACrE,uEAAuE;QACvE,uEAAuE;QACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAY,CAAC;QAC7E,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,eAAe,GAAG,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzE,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAY,CAAC;gBACzC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,uBAAuB,EAAE,CAAC;oBAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YACD,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;YACjF,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAE1B,MAAM,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,MAAM,KAAK,GAAG,8DAA8D,CAAC;AAC7E,MAAM,MAAM,GAAG,8DAA8D,CAAC;AAE9E;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAoB,EACpB,UAAmC;IAEnC,gCAAgC;IAChC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3D,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QAE3C,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAK,SAAS,CAAC,CAAC,CAAa,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpE,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC1D,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5C,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7D,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,MAAM,QAAQ,GAAG,8BAA8B,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;QACvC,MAAM,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE3E,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAY,CAAC;YACvC,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC7D,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,OAAO;gBAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,EAAE,CAAC;YACR,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC5D,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACtD,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAoBD,iFAAiF;AACjF,SAAS,gBAAgB,CAAC,KAAwB;IAChD,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,4EAA4E;AAC5E,SAAS,eAAe,CAAC,GAAgB;IACvC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC;YAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iCAAiC,CACxC,eAAgC,EAChC,cAA+B;IAE/B,MAAM,eAAe,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAEzD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACnD,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAsB,EAAE,CAAC;IAC/C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IACrD,IAAI,KAAK,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAyB;QACrC,cAAc,CAAC,OAAO,EAAE,YAAY;YAClC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACzE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;YAC3C,kEAAkE;YAClE,qCAAqC;YACrC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACpF,CAAC;QACD,qBAAqB,CAAC,UAAkB;YACtC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;YAExC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,MAAqB,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,GAAG,MAAM,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,IAAI,EAAU,CAAC;oBACf,GAAG,CAAC;wBACF,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;oBACvB,CAAC,QAAQ,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBAC9B,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC/B,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC9E,MAAM,GAAG,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpC,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,4BAA4B,CACzC,OAAoB,EACpB,aAAgC;IAEhC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACvC,MAAM,QAAQ,GAAG,8BAA8B,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,QAAQ,CACN,yDAAyD;YACzD,yBAAyB,MAAM,oBAAoB,CACpD,CAAC;IACN,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC3D,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClD,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,GAAG,CAAC,QAAQ;YAAE,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC5D,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAEhF;;;;;;;GAOG;AACH,KAAK,UAAU,0BAA0B,CACvC,aAA0B,EAC1B,aAA0B,EAC1B,cAA2B;IAE3B,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3E,IAAI,CAAC,iBAAiB;QAAE,OAAO;IAE/B,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAE9C,0EAA0E;IAC1E,mEAAmE;IACnE,kEAAkE;IAClE,sEAAsE;IACtE,0EAA0E;IAC1E,6EAA6E;IAC7E,wBAAwB;IACxB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC/C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,MAAM,aAAa,GAAG,SAAS,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAY,CAAC;QACvC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,MAAM;YAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAClC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACnC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,GAAG;YAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM;YAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACnF,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAY,CAAC;YAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS;gBAAE,SAAS;YACtC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,GAAG;gBAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;gBACvB,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,GAAG,eAAe,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC5C,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvD,IAAI,CAAC,cAAc;oBAAE,SAAS;gBAC9B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9B,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBACrD,IAAI,MAAM;oBAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,8BAA8B,CAAC,aAAa,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAErF,wEAAwE;IACxE,MAAM,qBAAqB,CAAC,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IAC3E,MAAM,gBAAgB,CAAC,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;IACtE,MAAM,WAAW,CAAC,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,yBAAyB,CAAC,SAAkB;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAI,KAAK,CAAC,CAAC,CAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,GAAG,IAAI,WAAW,KAAK,IAAI;YAAE,WAAW,GAAG,GAAG,CAAC;IACrD,CAAC;IACD,+DAA+D;IAC/D,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAI,KAAK,CAAC,CAAC,CAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,8BAA8B,CAC3C,aAA0B,EAC1B,WAAiC,EACjC,kBAA+B;IAE/B,IAAI,kBAAkB,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAC1C,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,qEAAqE;QACrE,6DAA6D;QAC7D,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC;IAEzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAI,QAAQ,CAAC,CAAC,CAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,EAAE;YAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,EAAE,IAAI,kBAAkB,EAAE,CAAC;QACpC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,aAAa,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,aAA0B,EAC1B,aAA0B,EAC1B,aAA0B;IAE1B,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAErC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC3E,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,SAAS,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAEtE,oEAAoE;IACpE,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAY,CAAC;QACvC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAExC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAE3E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC;QAEzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,GAAI,QAAQ,CAAC,CAAC,CAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChE,IAAI,GAAG;gBAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,aAAa,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5F,OAAO;IACT,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAY,CAAC;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,QAAQ;QAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,MAAM,iBAAiB,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,4BAA4B,GAA4B;IAC5D,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,2BAA2B;IACrC,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,8CAA8C;IAC3D,gBAAgB,EAAE,yEAAyE;IAC3F,aAAa,EAAE,EAAE,EAAE,gCAAgC;CACpD,CAAC;AAEF,MAAM,uBAAuB,GAA4B;IACvD,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE,oBAAoB;IAC7B,WAAW,EAAE,gFAAgF;IAC7F,gBAAgB,EAAE,uEAAuE;IACzF,aAAa,EAAE,EAAE,EAAE,mCAAmC;CACvD,CAAC;AAEF;;;;;;;GAOG;AACH,KAAK,UAAU,gBAAgB,CAC7B,aAA0B,EAC1B,aAA0B,EAC1B,aAA0B;IAE1B,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAErC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtE,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,SAAS,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAEzE,kEAAkE;IAClE,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAY,CAAC;QACvC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAChD,IAAI,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAExC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEtE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC;QAEzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,GAAI,QAAQ,CAAC,CAAC,CAAa,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACnE,IAAI,GAAG;gBAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,aAAa,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,oEAAoE;IACpE,4CAA4C;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAY,CAAC;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,QAAQ;QAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,MAAM,iBAAiB,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,iBAAiB,GAA4B;IACjD,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,iBAAiB;IAC3B,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,oCAAoC;IACjD,gBAAgB,EAAE,+DAA+D;IACjF,aAAa,EAAE,EAAE,EAAE,gCAAgC;CACpD,CAAC;AAEF,KAAK,UAAU,WAAW,CACxB,aAA0B,EAC1B,aAA0B,EAC1B,aAA0B;IAE1B,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAErC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,SAAS,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAY,CAAC;QACvC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAExC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEjE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC;QAEzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,GAAI,QAAQ,CAAC,CAAC,CAAa,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC9D,IAAI,CAAC;gBAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,mEAAmE;IACnE,mEAAmE;IACnE,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAY,CAAC;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,QAAQ;QAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,MAAM,iBAAiB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAOD,MAAM,0BAA0B,GAAG,IAAI,OAAO,EAAmB,CAAC;AAClE,IAAI,6BAA6B,GAAG,CAAC,CAAC;AAEtC,SAAS,iBAAiB,CAAC,IAAwB;IACjD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;IACzE,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,IAAI,GAAG,GAAG,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAkB,6BAA6B,EAAE,EAAE,CAAC;QAC1E,0BAA0B,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAiC;IACpE,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAEpE,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,mBAAmB,GAAoG,IAAI,CAAC;IAChI,IAAI,sBAA0C,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACtC,MAAM,WAAW,GACf,MAAM,KAAK,iBAAiB,CAAC,QAAQ;YACrC,MAAM,KAAK,iBAAiB,CAAC,OAAO;YACpC,MAAM,KAAK,iBAAiB,CAAC,aAAa;YACxC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,WAAW,KAAK,mBAAmB,IAAI,YAAY,KAAK,sBAAsB,EAAE,CAAC;gBACnF,IAAI,WAAW,KAAK,iBAAiB,CAAC,QAAQ;oBAAE,cAAc,EAAE,CAAC;gBACjE,IAAI,WAAW,KAAK,iBAAiB,CAAC,OAAO;oBAAE,aAAa,EAAE,CAAC;gBAC/D,IAAI,WAAW,KAAK,iBAAiB,CAAC,aAAa;oBAAE,aAAa,EAAE,CAAC;YACvE,CAAC;YACD,mBAAmB,GAAG,WAAW,CAAC;YAClC,sBAAsB,GAAG,YAAY,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,mBAAmB,GAAG,IAAI,CAAC;YAC3B,sBAAsB,GAAG,SAAS,CAAC;QACrC,CAAC;QAED,IAAI,YAAY,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,OAAO,IAAI,MAAM,KAAK,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpG,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YACxF,IAAI,MAAM,KAAK,iBAAiB,CAAC,OAAO;gBAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YAClE,IAAI,MAAM,KAAK,iBAAiB,CAAC,QAAQ;gBAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YACpE,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC/D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,CACjD,CAAC,MAAM,CAAC;IAET,OAAO;QACL,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,aAAa;QACxB,aAAa,EAAE,kBAAkB;QACjC,cAAc;QACd,aAAa;QACb,aAAa,EAAE,mBAAmB,CAAC,UAAU;QAC7C,YAAY,EAAE,mBAAmB,CAAC,SAAS;QAC3C,kBAAkB;QAClB,aAAa;QACb,iBAAiB,EAAE,mBAAmB,CAAC,aAAa;KACrD,CAAC;AACJ,CAAC"}

@@ -9,4 +9,6 @@ export interface CompareOptions {

date?: Date;
/** Ignore formatting differences. Default: true (v1) */
/** Ignore formatting differences. Default: false */
ignoreFormatting?: boolean;
/** Detect content moved within the document. Default: true */
detectMoves?: boolean;
/**

@@ -76,3 +78,3 @@ * Atomizer-only normalization: merge adjacent <w:r> siblings with identical formatting

export type ReconstructionMode = 'rebuild' | 'inplace';
export type ReconstructionFallbackReason = 'round_trip_safety_check_failed';
export type ReconstructionFallbackReason = 'round_trip_safety_check_failed' | 'ancillary_story_safety_check_failed';
export interface LeanXmlVerifierOptions {

@@ -210,2 +212,74 @@ /**

}
export type AncillaryStorySafetyCategory = 'binding_resolution' | 'strict_field_structure' | 'canonical_evidence';
export interface AncillaryBindingLocator {
locatorType: 'section_binding';
sectionOrdinal: number;
kind: 'header' | 'footer';
role: 'default' | 'first' | 'even';
normalizedPartPath?: string;
}
export interface AncillaryHeaderFooterStoryLocator {
locatorType: 'header_footer_story';
normalizedPartPath: string;
selectingBindings: AncillaryBindingLocator[];
}
export interface AncillaryNoteStoryLocator {
locatorType: 'note_entry';
normalizedPartPath: 'word/footnotes.xml' | 'word/endnotes.xml';
entryId: string;
sourceSide?: 'original' | 'revised';
}
export interface AncillaryPackageLocator {
locatorType: 'package_part';
normalizedPartPath: string;
}
export interface AncillaryFieldLocator {
locatorType: 'field_range';
normalizedPartPath: string;
entryId?: string;
paragraphOrdinal: number;
eligibleFieldOrdinal: number;
instructionKind: AncillaryFieldInstructionKind;
}
export type AncillaryStoryLocator = AncillaryBindingLocator | AncillaryHeaderFooterStoryLocator | AncillaryNoteStoryLocator | AncillaryPackageLocator | AncillaryFieldLocator;
export interface AncillaryStorySafetyIssue {
category: AncillaryStorySafetyCategory;
code: string;
detail: string;
locator: AncillaryStoryLocator;
}
export interface AncillaryFallbackDiagnostics {
issues: AncillaryStorySafetyIssue[];
}
export type AncillaryFieldInstructionKind = 'PAGE' | 'NUMPAGES' | 'REF' | 'PAGEREF';
export interface AncillarySelectedBindingSummary {
sectionOrdinal: number;
kind: 'header' | 'footer';
role: 'default' | 'first' | 'even';
relationshipId: string;
normalizedPartPath: string;
}
export interface AncillaryStorySummary {
storyKind: 'header' | 'footer' | 'footnote' | 'endnote';
normalizedPartPath: string;
entryId?: string;
selectingBindings?: AncillaryBindingLocator[];
sourceSide?: 'original' | 'revised';
provenance?: 'base' | 'imported';
strictFieldStructure: 'passed';
}
export interface AncillaryFieldRangeEvidence {
locator: AncillaryFieldLocator;
instructionKind: AncillaryFieldInstructionKind;
sourceSide: 'original' | 'revised';
provenance: 'base' | 'imported';
canonicalMatch: true;
}
export interface AncillaryFieldEvidence {
status: 'passed';
reconstructionMode: ReconstructionMode;
selectedBindings: AncillarySelectedBindingSummary[];
stories: AncillaryStorySummary[];
ranges: AncillaryFieldRangeEvidence[];
}
export type DocumentIntegrityCertificateStatus = 'passed' | 'failed' | 'not_applicable' | 'not_run';

@@ -330,2 +404,7 @@ export type DocumentIntegrityCheckStatus = 'passed' | 'failed' | 'not_evaluated';

/**
* Ancillary issues from an inplace candidate rejected at package assembly.
* Present only when ancillary validation itself caused rebuild fallback.
*/
ancillaryFallbackDiagnostics?: AncillaryFallbackDiagnostics;
/**
* Safety-check failures observed on rebuild output — whether rebuild was

@@ -342,2 +421,7 @@ * requested explicitly (the default mode) or reached via inplace fallback.

/**
* Successful structural and canonical evidence for the final assembled
* ancillary stories. Absence means unavailable evidence, not a pass.
*/
ancillaryFieldEvidence?: AncillaryFieldEvidence;
/**
* Optional per-document integrity certificate from the separately compiled

@@ -344,0 +428,0 @@ * Lean XML triple verifier. Present only when `leanXmlVerifier.enabled` is set.

@@ -1,1 +0,1 @@

{"version":3,"file":"compare-types.d.ts","sourceRoot":"","sources":["../src/compare-types.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"compare-types.d.ts","sourceRoot":"","sources":["../src/compare-types.ts"],"names":[],"mappings":"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"}

@@ -8,3 +8,3 @@ /**

import type { CompareOptions, CompareResult } from './compare-types.js';
export type { CompareOptions, CompareResult, CompareStats, DocumentIntegrityCertificate, DocumentIntegrityCertificateStatus, DocumentIntegrityCheckCertificate, DocumentIntegrityCheckStatus, DocumentIntegrityStoryCertificate, DocumentIntegrityStoryName, LeanXmlVerifierOptions, ReconstructionAttemptDiagnostics, ReconstructionBookmarkMismatchDetails, ReconstructionBookmarkMismatchSummary, ReconstructionFallbackDiagnostics, ReconstructionFallbackReason, ReconstructionIdDelta, ReconstructionIdDeltaSummary, ReconstructionInplaceSuccessDiagnostics, ReconstructionMode, ReconstructionRebuildSafetyDiagnostics, ReconstructionSafetyCheckName, ReconstructionSafetyChecks, ReconstructionSafetyFailureDetails, ReconstructionSafetyFailureSummary, ReconstructionTextMismatchDetails, ReconstructionTextMismatchSummary, } from './compare-types.js';
export type { CompareOptions, CompareResult, CompareStats, AncillaryBindingLocator, AncillaryFallbackDiagnostics, AncillaryFieldEvidence, AncillaryFieldInstructionKind, AncillaryFieldLocator, AncillaryFieldRangeEvidence, AncillaryHeaderFooterStoryLocator, AncillaryNoteStoryLocator, AncillaryPackageLocator, AncillarySelectedBindingSummary, AncillaryStoryLocator, AncillaryStorySafetyCategory, AncillaryStorySafetyIssue, AncillaryStorySummary, DocumentIntegrityCertificate, DocumentIntegrityCertificateStatus, DocumentIntegrityCheckCertificate, DocumentIntegrityCheckStatus, DocumentIntegrityStoryCertificate, DocumentIntegrityStoryName, LeanXmlVerifierOptions, ReconstructionAttemptDiagnostics, ReconstructionBookmarkMismatchDetails, ReconstructionBookmarkMismatchSummary, ReconstructionFallbackDiagnostics, ReconstructionFallbackReason, ReconstructionIdDelta, ReconstructionIdDeltaSummary, ReconstructionInplaceSuccessDiagnostics, ReconstructionMode, ReconstructionRebuildSafetyDiagnostics, ReconstructionSafetyCheckName, ReconstructionSafetyChecks, ReconstructionSafetyFailureDetails, ReconstructionSafetyFailureSummary, ReconstructionTextMismatchDetails, ReconstructionTextMismatchSummary, } from './compare-types.js';
/**

@@ -26,4 +26,4 @@ * Compare two DOCX documents and produce a document with track changes.

export { parseDocumentXml } from './baselines/atomizer/xmlToWmlElement.js';
export { AncillaryStorySafetyError } from './baselines/atomizer/ancillaryFieldSafety.js';
export { computeAtomLcs, markCorrelationStatus } from './baselines/atomizer/atomLcs.js';
export { compareDocumentsBaselineB } from './baselines/diffmatch/pipeline.js';
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,kCAAkC,EAClC,iCAAiC,EACjC,4BAA4B,EAC5B,iCAAiC,EACjC,0BAA0B,EAC1B,sBAAsB,EACtB,gCAAgC,EAChC,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,uCAAuC,EACvC,kBAAkB,EAClB,sCAAsC,EACtC,6BAA6B,EAC7B,0BAA0B,EAC1B,kCAAkC,EAClC,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAED,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4CAA4C,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,YAAY,GACb,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExE,YAAY,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,4BAA4B,EAC5B,sBAAsB,EACtB,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,iCAAiC,EACjC,yBAAyB,EACzB,uBAAuB,EACvB,+BAA+B,EAC/B,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC5B,kCAAkC,EAClC,iCAAiC,EACjC,4BAA4B,EAC5B,iCAAiC,EACjC,0BAA0B,EAC1B,sBAAsB,EACtB,gCAAgC,EAChC,qCAAqC,EACrC,qCAAqC,EACrC,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,uCAAuC,EACvC,kBAAkB,EAClB,sCAAsC,EACtC,6BAA6B,EAC7B,0BAA0B,EAC1B,kCAAkC,EAClC,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAyCxB;AAED,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4CAA4C,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,YAAY,GACb,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC"}

@@ -17,3 +17,3 @@ /**

export async function compareDocuments(original, revised, options = {}) {
const { engine = 'auto', author, date, reconstructionMode, premergeRuns, leanXmlVerifier } = options;
const { engine = 'auto', author, date, ignoreFormatting, detectMoves, reconstructionMode, premergeRuns, leanXmlVerifier, } = options;
if (engine === 'diffmatch') {

@@ -27,2 +27,8 @@ throw new Error("The 'diffmatch' engine has been removed from the public API. " +

date,
formatDetection: ignoreFormatting === undefined
? undefined
: { detectFormatChanges: !ignoreFormatting },
moveDetection: detectMoves === undefined
? undefined
: { detectMoves },
reconstructionMode,

@@ -43,4 +49,4 @@ premergeRuns,

export { parseDocumentXml } from './baselines/atomizer/xmlToWmlElement.js';
export { AncillaryStorySafetyError } from './baselines/atomizer/ancillaryFieldSafety.js';
export { computeAtomLcs, markCorrelationStatus } from './baselines/atomizer/atomLcs.js';
export { compareDocumentsBaselineB } from './baselines/diffmatch/pipeline.js';
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAgC5E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAe,EACf,UAA0B,EAAE;IAE5B,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAErG,IAAK,MAAiB,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,+DAA+D;YAC7D,iDAAiD,CACpD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE;YACjD,MAAM;YACN,IAAI;YACJ,kBAAkB;YAClB,YAAY;YACZ,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,KAAK,CACb,kEAAkE;QAChE,2DAA2D,CAC9D,CAAC;AACJ,CAAC;AAED,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4CAA4C,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,YAAY,GACb,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AA8C5E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAe,EACf,UAA0B,EAAE;IAE5B,MAAM,EACJ,MAAM,GAAG,MAAM,EACf,MAAM,EACN,IAAI,EACJ,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,IAAK,MAAiB,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,+DAA+D;YAC7D,iDAAiD,CACpD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE;YACjD,MAAM;YACN,IAAI;YACJ,eAAe,EACb,gBAAgB,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,gBAAgB,EAAE;YAChD,aAAa,EACX,WAAW,KAAK,SAAS;gBACvB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,WAAW,EAAE;YACrB,kBAAkB;YAClB,YAAY;YACZ,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,KAAK,CACb,kEAAkE;QAChE,2DAA2D,CAC9D,CAAC;AACJ,CAAC;AAED,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4CAA4C,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,YAAY,GACb,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC"}
{
"name": "@usejunior/docx-compare",
"version": "0.18.0",
"version": "0.19.1",
"description": "DOCX comparison and redline generation for Safe DOCX.",

@@ -21,9 +21,7 @@ "type": "module",

"dependencies": {
"@usejunior/docx-core": "^0.18.0",
"@usejunior/docx-core": "^0.19.1",
"@xmldom/xmldom": "^0.9.10",
"diff-match-patch": "^1.0.5",
"jszip": "^3.10.1"
},
"devDependencies": {
"@types/diff-match-patch": "^1.0.36",
"@types/node": "^22.10.0",

@@ -30,0 +28,0 @@ "@vitest/coverage-v8": "^4.1.8",

/**
* Document builder for reconstructing DOCX with track changes.
*
* Takes alignment results and produces a new document.xml with
* insertions and deletions marked using OOXML track changes.
*/
import type { AlignmentResult } from '@usejunior/docx-core';
import { type ExtendedParagraphInfo } from './xmlParser.js';
/**
* Build options for document generation.
*/
export interface BuildOptions {
author: string;
date: Date;
}
/**
* Represents a paragraph operation in the output document.
*/
export interface ParagraphOperation {
/** Type of operation */
type: 'unchanged' | 'modified' | 'deleted' | 'inserted';
/** Generated XML for this paragraph */
xml: string;
/** Index in original document (for ordering) */
originalIndex?: number;
/** Index in revised document (for ordering) */
revisedIndex?: number;
}
/**
* Generate paragraph operations from alignment result.
*
* This converts the alignment result into a list of XML paragraph operations
* that can be used to build the output document.
*/
export declare function generateParagraphOperations(alignment: AlignmentResult, originalParagraphs: ExtendedParagraphInfo[], revisedParagraphs: ExtendedParagraphInfo[], options: BuildOptions): ParagraphOperation[];
/**
* Build a new document.xml with track changes applied.
*
* @param originalXml - The original document.xml content
* @param operations - Ordered list of paragraph operations
* @returns The new document.xml content
*/
export declare function buildDocumentWithTrackChanges(originalXml: string, operations: ParagraphOperation[]): string;
//# sourceMappingURL=documentBuilder.d.ts.map
{"version":3,"file":"documentBuilder.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/documentBuilder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,sBAAsB,CAAC;AAQpF,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IACxD,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,eAAe,EAC1B,kBAAkB,EAAE,qBAAqB,EAAE,EAC3C,iBAAiB,EAAE,qBAAqB,EAAE,EAC1C,OAAO,EAAE,YAAY,GACpB,kBAAkB,EAAE,CAkItB;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,kBAAkB,EAAE,GAC/B,MAAM,CAkBR"}
/**
* Document builder for reconstructing DOCX with track changes.
*
* Takes alignment results and produces a new document.xml with
* insertions and deletions marked using OOXML track changes.
*/
import { diffRuns } from './runDiff.js';
import { renderTrackChanges, generateDeletedParagraph, generateInsertedParagraph, wrapInParagraph, } from './trackChangesRenderer.js';
import { extractSectPr } from './xmlParser.js';
/**
* Generate paragraph operations from alignment result.
*
* This converts the alignment result into a list of XML paragraph operations
* that can be used to build the output document.
*/
export function generateParagraphOperations(alignment, originalParagraphs, revisedParagraphs, options) {
const operations = [];
const { author, date } = options;
// Build lookup maps for original paragraphs by index
const originalByIndex = new Map();
for (const p of originalParagraphs) {
originalByIndex.set(p.originalIndex, p);
}
// Build lookup maps for revised paragraphs by index
const revisedByIndex = new Map();
for (const p of revisedParagraphs) {
revisedByIndex.set(p.originalIndex, p);
}
// Track which original paragraphs have been matched
const matchedOriginalIndices = new Set();
const matchedRevisedIndices = new Set();
// Build a map from revised index to the matching original paragraph
const revisedToOriginal = new Map();
for (const match of alignment.matched) {
const origPara = match.original;
const revPara = match.revised;
matchedOriginalIndices.add(origPara.originalIndex);
matchedRevisedIndices.add(revPara.originalIndex);
revisedToOriginal.set(revPara.originalIndex, origPara);
}
// Build output in revised document order
// For each position in the revised document, we output:
// 1. Any deleted paragraphs that came before the matching original
// 2. The matched/inserted paragraph
let lastOriginalIndex = -1;
for (let revIdx = 0; revIdx < revisedParagraphs.length; revIdx++) {
const revPara = revisedParagraphs[revIdx];
if (matchedRevisedIndices.has(revIdx)) {
// This is a matched paragraph
const origPara = revisedToOriginal.get(revIdx);
// First, output any deleted paragraphs between last and this
for (let i = lastOriginalIndex + 1; i < origPara.originalIndex; i++) {
if (!matchedOriginalIndices.has(i)) {
const deletedPara = originalByIndex.get(i);
if (deletedPara) {
operations.push({
type: 'deleted',
xml: generateDeletedParagraph(deletedPara.runs, author, date, extractPPrContent(deletedPara.pPrXml)),
originalIndex: i,
});
}
}
}
// Check if paragraphs are identical or modified
const similarity = alignment.matched.find(m => m.revised.originalIndex === revIdx)?.similarity ?? 0;
if (similarity >= 0.9999) {
// Unchanged paragraph - use revised content as-is
operations.push({
type: 'unchanged',
xml: generateParagraphXml(revPara),
originalIndex: origPara.originalIndex,
revisedIndex: revIdx,
});
}
else {
// Modified paragraph - diff the runs
const diffResult = diffRuns(origPara.runs, revPara.runs);
const trackChangesContent = renderTrackChanges(diffResult.mergedRuns, {
author,
date,
});
operations.push({
type: 'modified',
xml: wrapInParagraph(trackChangesContent, extractPPrContent(revPara.pPrXml)),
originalIndex: origPara.originalIndex,
revisedIndex: revIdx,
});
}
lastOriginalIndex = origPara.originalIndex;
}
else {
// This is an inserted paragraph
operations.push({
type: 'inserted',
xml: generateInsertedParagraph(revPara.runs, author, date, extractPPrContent(revPara.pPrXml)),
revisedIndex: revIdx,
});
}
}
// Output any remaining deleted paragraphs at the end
for (let i = lastOriginalIndex + 1; i < originalParagraphs.length; i++) {
if (!matchedOriginalIndices.has(i)) {
const deletedPara = originalByIndex.get(i);
if (deletedPara) {
operations.push({
type: 'deleted',
xml: generateDeletedParagraph(deletedPara.runs, author, date, extractPPrContent(deletedPara.pPrXml)),
originalIndex: i,
});
}
}
}
return operations;
}
/**
* Build a new document.xml with track changes applied.
*
* @param originalXml - The original document.xml content
* @param operations - Ordered list of paragraph operations
* @returns The new document.xml content
*/
export function buildDocumentWithTrackChanges(originalXml, operations) {
// Extract document structure
const { beforeBody, bodyContent, afterBody } = getDocumentParts(originalXml);
// Extract sectPr from body (must be preserved at end)
const { sectPr } = extractSectPr(bodyContent);
// Build new body content from operations
const paragraphXmls = operations.map(op => op.xml);
// Combine: paragraphs + sectPr (if present) + closing
let newBodyContent = paragraphXmls.join('\n');
if (sectPr) {
newBodyContent += '\n' + sectPr;
}
// Reconstruct document
return beforeBody + newBodyContent + afterBody;
}
/**
* Extract document parts for reconstruction.
*/
function getDocumentParts(documentXml) {
// Find w:body opening and closing
const bodyOpenMatch = documentXml.match(/<w:body[^>]*>/);
const bodyCloseMatch = documentXml.match(/<\/w:body>/);
if (!bodyOpenMatch || !bodyCloseMatch) {
return {
beforeBody: documentXml,
bodyContent: '',
afterBody: '',
};
}
const bodyOpenEnd = documentXml.indexOf(bodyOpenMatch[0]) + bodyOpenMatch[0].length;
const bodyCloseStart = documentXml.lastIndexOf('</w:body>');
return {
beforeBody: documentXml.slice(0, bodyOpenEnd),
bodyContent: documentXml.slice(bodyOpenEnd, bodyCloseStart),
afterBody: documentXml.slice(bodyCloseStart),
};
}
/**
* Generate XML for an unchanged paragraph.
*/
function generateParagraphXml(para) {
// Build paragraph from runs
const runsXml = para.runs.map(run => generateRunXml(run)).join('');
const pPr = para.pPrXml ? para.pPrXml : '';
return `<w:p>${pPr}${runsXml}</w:p>`;
}
/**
* Generate XML for a single run.
*/
function generateRunXml(run) {
const rPr = generateRunPropertiesXml(run.properties);
// Handle whitespace preservation
const needsSpace = run.text.startsWith(' ') || run.text.endsWith(' ') || run.text.includes(' ');
const spaceAttr = needsSpace ? ' xml:space="preserve"' : '';
return `<w:r>${rPr}<w:t${spaceAttr}>${escapeXml(run.text)}</w:t></w:r>`;
}
/**
* Generate run properties XML.
*/
function generateRunPropertiesXml(props) {
if (!props)
return '';
const parts = [];
if (props.bold)
parts.push('<w:b/>');
if (props.italic)
parts.push('<w:i/>');
if (props.underline)
parts.push(`<w:u w:val="${escapeXml(props.underline)}"/>`);
if (props.strikethrough)
parts.push('<w:strike/>');
if (props.highlight)
parts.push(`<w:highlight w:val="${escapeXml(props.highlight)}"/>`);
if (props.color)
parts.push(`<w:color w:val="${escapeXml(props.color)}"/>`);
if (props.fontSize !== undefined)
parts.push(`<w:sz w:val="${props.fontSize}"/>`);
if (props.fontFamily)
parts.push(`<w:rFonts w:ascii="${escapeXml(props.fontFamily)}" w:hAnsi="${escapeXml(props.fontFamily)}"/>`);
if (parts.length === 0)
return '';
return `<w:rPr>${parts.join('')}</w:rPr>`;
}
/**
* Extract inner pPr content from full pPr XML.
* Removes the outer <w:pPr> tags.
*/
function extractPPrContent(pPrXml) {
if (!pPrXml)
return undefined;
// Remove outer tags
const match = pPrXml.match(/<w:pPr[^>]*>([\s\S]*)<\/w:pPr>/);
return match ? match[1] : undefined;
}
/**
* Escape XML special characters.
*/
function escapeXml(text) {
return text
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&apos;');
}
//# sourceMappingURL=documentBuilder.js.map
{"version":3,"file":"documentBuilder.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/documentBuilder.ts"],"names":[],"mappings":"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"}
/**
* Baseline B: Paragraph alignment using LCS (Longest Common Subsequence).
*
* Aligns paragraphs between original and revised documents to identify:
* - Matched paragraphs (same or similar content)
* - Inserted paragraphs (only in revised)
* - Deleted paragraphs (only in original)
* - Modified paragraphs (matched but with differences)
*/
import type { ParagraphInfo, AlignmentResult } from '@usejunior/docx-core';
/**
* Compute a hash for a paragraph's normalized text.
*
* Used for fast comparison during LCS.
*/
export declare function hashParagraph(text: string): string;
/**
* Normalize paragraph text for comparison.
*
* - Trim whitespace
* - Collapse multiple spaces
* - Lowercase for case-insensitive comparison
*/
export declare function normalizeParagraphText(text: string): string;
/**
* Compute similarity between two strings using Jaccard index on words.
*
* @returns Value between 0 (completely different) and 1 (identical)
*/
export declare function computeSimilarity(a: string, b: string): number;
/**
* Compute the Longest Common Subsequence of two arrays using dynamic programming.
*
* @param a - First array
* @param b - Second array
* @param keyFn - Function to extract comparison key from elements
* @returns Array of [indexA, indexB] pairs representing the LCS
*/
export declare function lcs<T>(a: T[], b: T[], keyFn: (item: T) => string): Array<[number, number]>;
/**
* Align paragraphs between original and revised documents.
*
* Uses hash-based LCS to find matching paragraphs, then classifies
* unmatched paragraphs as inserted or deleted.
*
* @param original - Paragraphs from original document
* @param revised - Paragraphs from revised document
* @param similarityThreshold - Minimum similarity to consider a match (default: 0.5)
*/
export declare function alignParagraphs(original: ParagraphInfo[], revised: ParagraphInfo[], similarityThreshold?: number): AlignmentResult;
/**
* Classify paragraph matches into categories.
*/
export interface ParagraphClassification {
/** Identical paragraphs (similarity = 1.0) */
identical: Array<{
original: ParagraphInfo;
revised: ParagraphInfo;
}>;
/** Modified paragraphs (0 < similarity < 1.0) */
modified: Array<{
original: ParagraphInfo;
revised: ParagraphInfo;
similarity: number;
}>;
/** Deleted paragraphs */
deleted: ParagraphInfo[];
/** Inserted paragraphs */
inserted: ParagraphInfo[];
}
/**
* Classify alignment result into more granular categories.
*/
export declare function classifyAlignment(alignment: AlignmentResult): ParagraphClassification;
//# sourceMappingURL=paragraphAlignment.d.ts.map
{"version":3,"file":"paragraphAlignment.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/paragraphAlignment.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAe9D;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,EACnB,CAAC,EAAE,CAAC,EAAE,EACN,CAAC,EAAE,CAAC,EAAE,EACN,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GACzB,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqCzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,aAAa,EAAE,EACxB,mBAAmB,SAAM,GACxB,eAAe,CA6FjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,8CAA8C;IAC9C,SAAS,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IACtE,iDAAiD;IACjD,QAAQ,EAAE,KAAK,CAAC;QACd,QAAQ,EAAE,aAAa,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,yBAAyB;IACzB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,0BAA0B;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG,uBAAuB,CAoBrF"}
/**
* Baseline B: Paragraph alignment using LCS (Longest Common Subsequence).
*
* Aligns paragraphs between original and revised documents to identify:
* - Matched paragraphs (same or similar content)
* - Inserted paragraphs (only in revised)
* - Deleted paragraphs (only in original)
* - Modified paragraphs (matched but with differences)
*/
import { createHash } from 'crypto';
/**
* Compute a hash for a paragraph's normalized text.
*
* Used for fast comparison during LCS.
*/
export function hashParagraph(text) {
const normalized = normalizeParagraphText(text);
return createHash('sha1').update(normalized).digest('hex');
}
/**
* Normalize paragraph text for comparison.
*
* - Trim whitespace
* - Collapse multiple spaces
* - Lowercase for case-insensitive comparison
*/
export function normalizeParagraphText(text) {
return text
.trim()
.replace(/\s+/g, ' ')
.toLowerCase();
}
/**
* Compute similarity between two strings using Jaccard index on words.
*
* @returns Value between 0 (completely different) and 1 (identical)
*/
export function computeSimilarity(a, b) {
const wordsA = new Set(normalizeParagraphText(a).split(' ').filter(w => w.length > 0));
const wordsB = new Set(normalizeParagraphText(b).split(' ').filter(w => w.length > 0));
if (wordsA.size === 0 && wordsB.size === 0) {
return 1; // Both empty
}
if (wordsA.size === 0 || wordsB.size === 0) {
return 0; // One empty
}
const intersection = new Set([...wordsA].filter(x => wordsB.has(x)));
const union = new Set([...wordsA, ...wordsB]);
return intersection.size / union.size;
}
/**
* Compute the Longest Common Subsequence of two arrays using dynamic programming.
*
* @param a - First array
* @param b - Second array
* @param keyFn - Function to extract comparison key from elements
* @returns Array of [indexA, indexB] pairs representing the LCS
*/
export function lcs(a, b, keyFn) {
const m = a.length;
const n = b.length;
// Build DP table
const dp = Array.from({ length: m + 1 }, () => Array.from({ length: n + 1 }, () => 0));
for (let i = 1; i <= m; i++) {
for (let j = 1; j <= n; j++) {
if (keyFn(a[i - 1]) === keyFn(b[j - 1])) {
dp[i][j] = dp[i - 1][j - 1] + 1;
}
else {
dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
}
}
}
// Backtrack to find LCS
const result = [];
let i = m;
let j = n;
while (i > 0 && j > 0) {
if (keyFn(a[i - 1]) === keyFn(b[j - 1])) {
result.push([i - 1, j - 1]);
i--;
j--;
}
else if (dp[i - 1][j] > dp[i][j - 1]) {
i--;
}
else {
j--;
}
}
return result.reverse();
}
/**
* Align paragraphs between original and revised documents.
*
* Uses hash-based LCS to find matching paragraphs, then classifies
* unmatched paragraphs as inserted or deleted.
*
* @param original - Paragraphs from original document
* @param revised - Paragraphs from revised document
* @param similarityThreshold - Minimum similarity to consider a match (default: 0.5)
*/
export function alignParagraphs(original, revised, similarityThreshold = 0.5) {
// Compute hashes for all paragraphs
const originalHashes = original.map(p => ({
para: p,
hash: hashParagraph(p.text),
}));
const revisedHashes = revised.map(p => ({
para: p,
hash: hashParagraph(p.text),
}));
// Find LCS based on hashes
const lcsResult = lcs(originalHashes, revisedHashes, item => item.hash);
// Build sets of matched indices
const matchedOriginal = new Set(lcsResult.map(([i]) => i));
const matchedRevised = new Set(lcsResult.map(([, j]) => j));
// Build alignment result
const result = {
matched: [],
deleted: [],
inserted: [],
};
// Add matched paragraphs
for (const [origIdx, revIdx] of lcsResult) {
const origPara = original[origIdx];
const revPara = revised[revIdx];
const similarity = computeSimilarity(origPara.text, revPara.text);
result.matched.push({
original: origPara,
revised: revPara,
similarity,
});
}
// Add deleted paragraphs (in original but not matched)
for (let i = 0; i < original.length; i++) {
if (!matchedOriginal.has(i)) {
result.deleted.push(original[i]);
}
}
// Add inserted paragraphs (in revised but not matched)
for (let j = 0; j < revised.length; j++) {
if (!matchedRevised.has(j)) {
result.inserted.push(revised[j]);
}
}
// Try to find near-matches for unmatched paragraphs
// This helps with paragraphs that were modified significantly
const unmatchedOriginal = [...result.deleted];
const unmatchedRevised = [...result.inserted];
result.deleted = [];
result.inserted = [];
for (const origPara of unmatchedOriginal) {
let bestMatch = null;
for (const revPara of unmatchedRevised) {
const similarity = computeSimilarity(origPara.text, revPara.text);
if (similarity >= similarityThreshold) {
if (!bestMatch || similarity > bestMatch.similarity) {
bestMatch = { para: revPara, similarity };
}
}
}
if (bestMatch) {
// Remove from unmatched revised
const idx = unmatchedRevised.indexOf(bestMatch.para);
if (idx !== -1) {
unmatchedRevised.splice(idx, 1);
}
result.matched.push({
original: origPara,
revised: bestMatch.para,
similarity: bestMatch.similarity,
});
}
else {
result.deleted.push(origPara);
}
}
// Remaining unmatched revised are insertions
result.inserted = unmatchedRevised;
return result;
}
/**
* Classify alignment result into more granular categories.
*/
export function classifyAlignment(alignment) {
const result = {
identical: [],
modified: [],
deleted: alignment.deleted,
inserted: alignment.inserted,
};
for (const match of alignment.matched) {
if (match.similarity >= 0.9999) {
result.identical.push({
original: match.original,
revised: match.revised,
});
}
else {
result.modified.push(match);
}
}
return result;
}
//# sourceMappingURL=paragraphAlignment.js.map
{"version":3,"file":"paragraphAlignment.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/paragraphAlignment.ts"],"names":[],"mappings":"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"}
/**
* Baseline B: Pure TypeScript document comparison pipeline.
*
* Orchestrates the comparison flow:
* 1. Load DOCX archives
* 2. Extract paragraphs
* 3. Align paragraphs (LCS + similarity)
* 4. Diff runs within matched paragraphs
* 5. Render track changes
* 6. Build output document
*/
/** Local result type to avoid importing from index.ts (which no longer exports diffmatch). */
interface BaselineBResult {
document: Buffer;
stats: {
insertions: number;
deletions: number;
modifications: number;
insertedRanges: number;
deletedRanges: number;
insertedAtoms: number;
deletedAtoms: number;
modifiedParagraphs: number;
formatChanges: number;
formatChangeAtoms: number;
};
engine: 'diffmatch';
}
/**
* Options for Baseline B comparison.
*/
export interface BaselineBOptions {
/** Author name for track changes. Default: "Comparison" */
author?: string;
/** Timestamp for track changes. Default: current time */
date?: Date;
/** Minimum similarity to consider paragraphs matched. Default: 0.5 */
similarityThreshold?: number;
}
/**
* Compare two DOCX documents using the Baseline B (pure TypeScript) approach.
*
* @param original - Original document as Buffer
* @param revised - Revised document as Buffer
* @param options - Comparison options
* @returns Comparison result with track changes document
*/
export declare function compareDocumentsBaselineB(original: Buffer, revised: Buffer, options?: BaselineBOptions): Promise<BaselineBResult>;
export {};
//# sourceMappingURL=pipeline.d.ts.map
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,8FAA8F;AAC9F,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,MAAM,EAAE,WAAW,CAAC;CACrB;AAWD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAsD1B"}
/**
* Baseline B: Pure TypeScript document comparison pipeline.
*
* Orchestrates the comparison flow:
* 1. Load DOCX archives
* 2. Extract paragraphs
* 3. Align paragraphs (LCS + similarity)
* 4. Diff runs within matched paragraphs
* 5. Render track changes
* 6. Build output document
*/
import { DocxArchive } from '@usejunior/docx-core';
import { extractParagraphs } from './xmlParser.js';
import { maybeCaptureEmittedDocumentXml } from '@usejunior/docx-core';
import { alignParagraphs, classifyAlignment } from './paragraphAlignment.js';
import { resetRevisionIds } from './trackChangesRenderer.js';
import { generateParagraphOperations, buildDocumentWithTrackChanges, } from './documentBuilder.js';
/**
* Compare two DOCX documents using the Baseline B (pure TypeScript) approach.
*
* @param original - Original document as Buffer
* @param revised - Revised document as Buffer
* @param options - Comparison options
* @returns Comparison result with track changes document
*/
export async function compareDocumentsBaselineB(original, revised, options = {}) {
const { author = 'Comparison', date = new Date(), similarityThreshold = 0.5, } = options;
// 1. Load archives
const originalArchive = await DocxArchive.load(original);
const revisedArchive = await DocxArchive.load(revised);
// 2. Extract document XML
const originalXml = await originalArchive.getDocumentXml();
const revisedXml = await revisedArchive.getDocumentXml();
// 3. Extract paragraphs from both documents
const originalParagraphs = extractParagraphs(originalXml);
const revisedParagraphs = extractParagraphs(revisedXml);
// 4. Reset revision ID counter for this comparison
resetRevisionIds();
// 5. Align paragraphs between documents
const alignment = alignParagraphs(originalParagraphs, revisedParagraphs, similarityThreshold);
// 6. Generate paragraph operations with track changes
const operations = generateParagraphOperations(alignment, originalParagraphs, revisedParagraphs, { author, date });
// 7. Build new document.xml with track changes
const newDocumentXml = buildDocumentWithTrackChanges(originalXml, operations);
// 8. Clone original archive and update document.xml
const resultArchive = await originalArchive.clone();
maybeCaptureEmittedDocumentXml(newDocumentXml);
resultArchive.setDocumentXml(newDocumentXml);
// 9. Save result and compute stats
const resultBuffer = await resultArchive.save();
const stats = computeStats(alignment, operations);
return {
document: resultBuffer,
stats,
engine: 'diffmatch',
};
}
/**
* Compute comparison statistics from alignment and operations.
*/
function computeStats(alignment, operations) {
// Count operations
let insertions = 0;
let deletions = 0;
let modifications = 0;
for (const op of operations) {
if (op.type === 'inserted') {
insertions++;
}
else if (op.type === 'deleted') {
deletions++;
}
else if (op.type === 'modified') {
modifications++;
}
}
// Also count modifications from alignment for more accurate stats
const classification = classifyAlignment(alignment);
modifications = classification.modified.length;
return {
insertions,
deletions,
modifications,
insertedRanges: insertions,
deletedRanges: deletions,
insertedAtoms: insertions,
deletedAtoms: deletions,
modifiedParagraphs: modifications,
formatChanges: 0,
formatChangeAtoms: 0,
};
}
//# sourceMappingURL=pipeline.js.map
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/pipeline.ts"],"names":[],"mappings":"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"}
/**
* Baseline B: Run-level diff using diff-match-patch.
*
* Performs character-level diff on matched paragraphs, then maps
* the diff operations back to run boundaries for track changes generation.
*/
import type { RunInfo, RunDiffResult, DiffOp } from '@usejunior/docx-core';
/**
* Compute a diff between two strings.
*
* @param original - Original text
* @param revised - Revised text
* @param cleanupSemantic - Apply semantic cleanup (default: true)
* @returns Array of diff operations [operation, text]
*/
export declare function computeDiff(original: string, revised: string, cleanupSemantic?: boolean): DiffOp[];
/**
* Compute a word-level diff (more suitable for document comparison).
*
* Tokenizes input by words, performs diff, then reconstructs.
*/
export declare function computeWordDiff(original: string, revised: string): DiffOp[];
/**
* Split a run at a given character offset.
*
* @param run - The run to split
* @param offset - Character offset to split at
* @returns [before, after] runs
*/
export declare function splitRun(run: RunInfo, offset: number): [RunInfo, RunInfo];
/**
* Extract text from runs.
*/
export declare function extractText(runs: RunInfo[]): string;
/**
* Compute run-level diff between original and revised runs.
*
* Maps character-level diff back to run boundaries, splitting runs
* when necessary.
*
* @param originalRuns - Runs from original paragraph
* @param revisedRuns - Runs from revised paragraph
* @returns Merged runs with revision markers
*/
export declare function diffRuns(originalRuns: RunInfo[], revisedRuns: RunInfo[]): RunDiffResult;
/**
* Count changes in a diff result.
*/
export declare function countChanges(diffs: DiffOp[]): {
insertions: number;
deletions: number;
};
//# sourceMappingURL=runDiff.d.ts.map
{"version":3,"file":"runDiff.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/runDiff.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAc3E;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,eAAe,UAAO,GACrB,MAAM,EAAE,CAQV;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB3E;AAuFD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAgBzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAEnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,YAAY,EAAE,OAAO,EAAE,EACvB,WAAW,EAAE,OAAO,EAAE,GACrB,aAAa,CAkGf;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAavF"}
/**
* Baseline B: Run-level diff using diff-match-patch.
*
* Performs character-level diff on matched paragraphs, then maps
* the diff operations back to run boundaries for track changes generation.
*/
import DiffMatchPatch from 'diff-match-patch';
/** Diff operation codes from diff-match-patch */
const DIFF_DELETE = -1;
const DIFF_INSERT = 1;
const DIFF_EQUAL = 0;
/** Create a shared diff-match-patch instance */
const dmp = new DiffMatchPatch();
// Configure diff-match-patch for better document comparison
dmp.Diff_Timeout = 5; // 5 seconds timeout
dmp.Diff_EditCost = 4; // Favor fewer, larger edits
/**
* Compute a diff between two strings.
*
* @param original - Original text
* @param revised - Revised text
* @param cleanupSemantic - Apply semantic cleanup (default: true)
* @returns Array of diff operations [operation, text]
*/
export function computeDiff(original, revised, cleanupSemantic = true) {
const diffs = dmp.diff_main(original, revised);
if (cleanupSemantic) {
dmp.diff_cleanupSemantic(diffs);
}
return diffs;
}
/**
* Compute a word-level diff (more suitable for document comparison).
*
* Tokenizes input by words, performs diff, then reconstructs.
*/
export function computeWordDiff(original, revised) {
// Tokenize by words (keep punctuation attached to words)
const tokenize = (text) => {
return text.match(/\S+\s*/g) ?? [];
};
const originalTokens = tokenize(original);
const revisedTokens = tokenize(revised);
// Convert tokens to characters for diff-match-patch (1 token = 1 char)
const { chars1, chars2, lineArray } = tokensToChars(originalTokens, revisedTokens);
// Compute diff on character representation
const diffs = dmp.diff_main(chars1, chars2);
dmp.diff_cleanupSemantic(diffs);
// Convert back to actual text
return charsToTokens(diffs, lineArray);
}
/**
* Convert token arrays to character sequences for diffing.
*/
function tokensToChars(tokens1, tokens2) {
const tokenSet = new Map();
const lineArray = [];
const encode = (tokens) => {
let chars = '';
for (const token of tokens) {
if (!tokenSet.has(token)) {
tokenSet.set(token, lineArray.length);
lineArray.push(token);
}
chars += String.fromCharCode(tokenSet.get(token));
}
return chars;
};
const chars1 = encode(tokens1);
const chars2 = encode(tokens2);
return { chars1, chars2, lineArray };
}
/**
* Convert character diff back to token diff.
*/
function charsToTokens(diffs, lineArray) {
const result = [];
for (const [op, chars] of diffs) {
let text = '';
for (let i = 0; i < chars.length; i++) {
text += lineArray[chars.charCodeAt(i)] ?? '';
}
if (text) {
result.push([op, text]);
}
}
return result;
}
/**
* Map a character offset to a position in the run array.
*/
function offsetToRunPosition(runs, offset) {
let charCount = 0;
for (let i = 0; i < runs.length; i++) {
const run = runs[i];
const runLength = run.text.length;
if (charCount + runLength > offset) {
return {
runIndex: i,
charOffset: offset - charCount,
};
}
charCount += runLength;
}
// Offset is at or past end
return {
runIndex: runs.length - 1,
charOffset: runs[runs.length - 1]?.text.length ?? 0,
};
}
/**
* Split a run at a given character offset.
*
* @param run - The run to split
* @param offset - Character offset to split at
* @returns [before, after] runs
*/
export function splitRun(run, offset) {
const before = {
text: run.text.slice(0, offset),
start: run.start,
end: run.start + offset,
properties: run.properties ? { ...run.properties } : undefined,
};
const after = {
text: run.text.slice(offset),
start: run.start + offset,
end: run.end,
properties: run.properties ? { ...run.properties } : undefined,
};
return [before, after];
}
/**
* Extract text from runs.
*/
export function extractText(runs) {
return runs.map(r => r.text).join('');
}
/**
* Compute run-level diff between original and revised runs.
*
* Maps character-level diff back to run boundaries, splitting runs
* when necessary.
*
* @param originalRuns - Runs from original paragraph
* @param revisedRuns - Runs from revised paragraph
* @returns Merged runs with revision markers
*/
export function diffRuns(originalRuns, revisedRuns) {
const originalText = extractText(originalRuns);
const revisedText = extractText(revisedRuns);
// Compute character-level diff
const diffs = computeDiff(originalText, revisedText);
// Build merged runs with revision markers
const mergedRuns = [];
let originalOffset = 0;
let revisedOffset = 0;
for (const [op, text] of diffs) {
if (op === DIFF_EQUAL) {
// Equal text - use revised runs' formatting
const startPos = offsetToRunPosition(revisedRuns, revisedOffset);
const endPos = offsetToRunPosition(revisedRuns, revisedOffset + text.length);
// Extract runs that cover this range
for (let i = startPos.runIndex; i <= endPos.runIndex && i < revisedRuns.length; i++) {
const run = revisedRuns[i];
const runStart = i === startPos.runIndex ? startPos.charOffset : 0;
const runEnd = i === endPos.runIndex ? endPos.charOffset : run.text.length;
if (runEnd > runStart) {
mergedRuns.push({
text: run.text.slice(runStart, runEnd),
start: revisedOffset + runStart,
end: revisedOffset + runEnd,
properties: run.properties,
});
}
}
originalOffset += text.length;
revisedOffset += text.length;
}
else if (op === DIFF_DELETE) {
// Deleted text - use original runs' formatting, mark as deletion
const startPos = offsetToRunPosition(originalRuns, originalOffset);
const endPos = offsetToRunPosition(originalRuns, originalOffset + text.length);
for (let i = startPos.runIndex; i <= endPos.runIndex && i < originalRuns.length; i++) {
const run = originalRuns[i];
const runStart = i === startPos.runIndex ? startPos.charOffset : 0;
const runEnd = i === endPos.runIndex ? endPos.charOffset : run.text.length;
if (runEnd > runStart) {
mergedRuns.push({
text: run.text.slice(runStart, runEnd),
start: originalOffset + runStart,
end: originalOffset + runEnd,
properties: run.properties,
revision: {
id: 0, // Will be assigned later
author: '',
date: new Date(),
type: 'deletion',
},
});
}
}
originalOffset += text.length;
}
else if (op === DIFF_INSERT) {
// Inserted text - use revised runs' formatting, mark as insertion
const startPos = offsetToRunPosition(revisedRuns, revisedOffset);
const endPos = offsetToRunPosition(revisedRuns, revisedOffset + text.length);
for (let i = startPos.runIndex; i <= endPos.runIndex && i < revisedRuns.length; i++) {
const run = revisedRuns[i];
const runStart = i === startPos.runIndex ? startPos.charOffset : 0;
const runEnd = i === endPos.runIndex ? endPos.charOffset : run.text.length;
if (runEnd > runStart) {
mergedRuns.push({
text: run.text.slice(runStart, runEnd),
start: revisedOffset + runStart,
end: revisedOffset + runEnd,
properties: run.properties,
revision: {
id: 0, // Will be assigned later
author: '',
date: new Date(),
type: 'insertion',
},
});
}
}
revisedOffset += text.length;
}
}
return {
originalRuns,
revisedRuns,
mergedRuns,
};
}
/**
* Count changes in a diff result.
*/
export function countChanges(diffs) {
let insertions = 0;
let deletions = 0;
for (const [op, text] of diffs) {
if (op === DIFF_INSERT) {
insertions += text.length;
}
else if (op === DIFF_DELETE) {
deletions += text.length;
}
}
return { insertions, deletions };
}
//# sourceMappingURL=runDiff.js.map
{"version":3,"file":"runDiff.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/runDiff.ts"],"names":[],"mappings":"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"}
/**
* Baseline B: Track changes OOXML renderer.
*
* Generates OOXML track changes markup (w:ins, w:del) from diff results.
*/
import type { RunInfo } from '@usejunior/docx-core';
/**
* Reset the revision ID counter.
*/
export declare function resetRevisionIds(): void;
/**
* Allocate a new revision ID.
*/
export declare function allocateRevisionId(): number;
/**
* Format a date for OOXML (ISO 8601 format).
*/
export declare function formatOoxmlDate(date: Date): string;
/**
* Escape XML special characters.
*/
export declare function escapeXml(text: string): string;
/**
* Generate insertion markup.
*/
export declare function generateInsertion(runs: RunInfo[], author: string, date: Date): string;
/**
* Generate deletion markup.
*/
export declare function generateDeletion(runs: RunInfo[], author: string, date: Date): string;
/**
* Generate unchanged run markup.
*/
export declare function generateUnchangedRun(run: RunInfo): string;
/**
* Options for rendering track changes.
*/
export interface RenderOptions {
/** Author name for revisions */
author: string;
/** Timestamp for revisions */
date: Date;
}
/**
* Render merged runs with track changes to OOXML.
*
* @param mergedRuns - Runs with revision markers from diffRuns()
* @param options - Rendering options
* @returns OOXML paragraph content with track changes
*/
export declare function renderTrackChanges(mergedRuns: RunInfo[], options: RenderOptions): string;
/**
* Wrap content in a paragraph element.
*/
export declare function wrapInParagraph(content: string, pPr?: string): string;
/**
* Generate a complete deleted paragraph.
*/
export declare function generateDeletedParagraph(runs: RunInfo[], author: string, date: Date, pPr?: string): string;
/**
* Generate a complete inserted paragraph.
*/
export declare function generateInsertedParagraph(runs: RunInfo[], author: string, date: Date, pPr?: string): string;
//# sourceMappingURL=trackChangesRenderer.d.ts.map
{"version":3,"file":"trackChangesRenderer.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/trackChangesRenderer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAKpD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO9C;AA2DD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,GACT,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,GACT,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,OAAO,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,MAAM,CAsCR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAGR"}
/**
* Baseline B: Track changes OOXML renderer.
*
* Generates OOXML track changes markup (w:ins, w:del) from diff results.
*/
/** ID allocator for revision IDs */
let nextRevisionId = 1;
/**
* Reset the revision ID counter.
*/
export function resetRevisionIds() {
nextRevisionId = 1;
}
/**
* Allocate a new revision ID.
*/
export function allocateRevisionId() {
return nextRevisionId++;
}
/**
* Format a date for OOXML (ISO 8601 format).
*/
export function formatOoxmlDate(date) {
return date.toISOString();
}
/**
* Escape XML special characters.
*/
export function escapeXml(text) {
return text
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&apos;');
}
/**
* Generate run properties XML.
*/
function generateRunProperties(run) {
if (!run.properties) {
return '';
}
const props = [];
const p = run.properties;
if (p.bold) {
props.push('<w:b/>');
}
if (p.italic) {
props.push('<w:i/>');
}
if (p.underline) {
props.push(`<w:u w:val="${escapeXml(p.underline)}"/>`);
}
if (p.strikethrough) {
props.push('<w:strike/>');
}
if (p.highlight) {
props.push(`<w:highlight w:val="${escapeXml(p.highlight)}"/>`);
}
if (p.color) {
props.push(`<w:color w:val="${escapeXml(p.color)}"/>`);
}
if (p.fontSize !== undefined) {
props.push(`<w:sz w:val="${p.fontSize}"/>`);
}
if (p.fontFamily) {
props.push(`<w:rFonts w:ascii="${escapeXml(p.fontFamily)}" w:hAnsi="${escapeXml(p.fontFamily)}"/>`);
}
if (props.length === 0) {
return '';
}
return `<w:rPr>${props.join('')}</w:rPr>`;
}
/**
* Generate a single run's XML.
*/
function generateRunXml(text, run, useDelText = false) {
const rPr = generateRunProperties(run);
const textElement = useDelText ? 'w:delText' : 'w:t';
// Handle whitespace preservation
const needsSpace = text.startsWith(' ') || text.endsWith(' ') || text.includes(' ');
const spaceAttr = needsSpace ? ' xml:space="preserve"' : '';
return `<w:r>${rPr}<${textElement}${spaceAttr}>${escapeXml(text)}</${textElement}></w:r>`;
}
/**
* Generate insertion markup.
*/
export function generateInsertion(runs, author, date) {
const id = allocateRevisionId();
const dateStr = formatOoxmlDate(date);
const runXml = runs.map(run => generateRunXml(run.text, run, false)).join('');
return `<w:ins w:id="${id}" w:author="${escapeXml(author)}" w:date="${dateStr}">${runXml}</w:ins>`;
}
/**
* Generate deletion markup.
*/
export function generateDeletion(runs, author, date) {
const id = allocateRevisionId();
const dateStr = formatOoxmlDate(date);
// Deletions use w:delText instead of w:t
const runXml = runs.map(run => generateRunXml(run.text, run, true)).join('');
return `<w:del w:id="${id}" w:author="${escapeXml(author)}" w:date="${dateStr}">${runXml}</w:del>`;
}
/**
* Generate unchanged run markup.
*/
export function generateUnchangedRun(run) {
return generateRunXml(run.text, run, false);
}
/**
* Render merged runs with track changes to OOXML.
*
* @param mergedRuns - Runs with revision markers from diffRuns()
* @param options - Rendering options
* @returns OOXML paragraph content with track changes
*/
export function renderTrackChanges(mergedRuns, options) {
const { author, date } = options;
const parts = [];
// Group consecutive runs by revision type for cleaner output
let i = 0;
while (i < mergedRuns.length) {
const run = mergedRuns[i];
const revType = run.revision?.type;
if (!revType) {
// Unchanged run
parts.push(generateUnchangedRun(run));
i++;
}
else if (revType === 'insertion') {
// Collect consecutive insertions
const insertionRuns = [];
while (i < mergedRuns.length && mergedRuns[i]?.revision?.type === 'insertion') {
insertionRuns.push(mergedRuns[i]);
i++;
}
parts.push(generateInsertion(insertionRuns, author, date));
}
else if (revType === 'deletion') {
// Collect consecutive deletions
const deletionRuns = [];
while (i < mergedRuns.length && mergedRuns[i]?.revision?.type === 'deletion') {
deletionRuns.push(mergedRuns[i]);
i++;
}
parts.push(generateDeletion(deletionRuns, author, date));
}
else {
// Unknown revision type, treat as unchanged
parts.push(generateUnchangedRun(run));
i++;
}
}
return parts.join('');
}
/**
* Wrap content in a paragraph element.
*/
export function wrapInParagraph(content, pPr) {
const pPrXml = pPr ? `<w:pPr>${pPr}</w:pPr>` : '';
return `<w:p>${pPrXml}${content}</w:p>`;
}
/**
* Generate a complete deleted paragraph.
*/
export function generateDeletedParagraph(runs, author, date, pPr) {
const content = generateDeletion(runs, author, date);
return wrapInParagraph(content, pPr);
}
/**
* Generate a complete inserted paragraph.
*/
export function generateInsertedParagraph(runs, author, date, pPr) {
const content = generateInsertion(runs, author, date);
return wrapInParagraph(content, pPr);
}
//# sourceMappingURL=trackChangesRenderer.js.map
{"version":3,"file":"trackChangesRenderer.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/trackChangesRenderer.ts"],"names":[],"mappings":"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"}
/**
* XML Parser for extracting paragraphs and runs from DOCX document.xml.
*
* Uses xmldom to parse OOXML and extract ParagraphInfo objects
* suitable for comparison.
*/
import type { ParagraphInfo, RunProperties } from '@usejunior/docx-core';
/**
* Extended ParagraphInfo with original XML for reconstruction.
*/
export interface ExtendedParagraphInfo extends ParagraphInfo {
/** Original paragraph properties XML (w:pPr) for preservation */
pPrXml?: string;
/** Original paragraph index in document */
originalIndex: number;
}
/**
* Extract paragraphs from document.xml content.
*
* @param documentXml - The raw document.xml content
* @returns Array of ParagraphInfo objects with runs and metadata
*/
export declare function extractParagraphs(documentXml: string): ExtendedParagraphInfo[];
/**
* Extract run properties from a w:rPr element.
*/
export declare function extractRunProperties(rPrElement: Element): RunProperties | undefined;
/**
* Get the document body content (everything inside w:body).
* Useful for document reconstruction.
*/
export declare function getBodyContent(documentXml: string): {
beforeBody: string;
bodyContent: string;
afterBody: string;
};
/**
* Extract sectPr (section properties) from body content if present.
* sectPr must remain at the end of body.
*/
export declare function extractSectPr(bodyContent: string): {
content: string;
sectPr: string | null;
};
//# sourceMappingURL=xmlParser.d.ts.map
{"version":3,"file":"xmlParser.d.ts","sourceRoot":"","sources":["../../../src/baselines/diffmatch/xmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAW,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKlF;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAsB9E;AAoED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAiDnF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAoBA;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAiBA"}
/**
* XML Parser for extracting paragraphs and runs from DOCX document.xml.
*
* Uses xmldom to parse OOXML and extract ParagraphInfo objects
* suitable for comparison.
*/
import { XMLSerializer } from '@xmldom/xmldom';
import { parseXml } from '@usejunior/docx-core';
import { hashParagraph } from './paragraphAlignment.js';
const serializer = new XMLSerializer();
/**
* Extract paragraphs from document.xml content.
*
* @param documentXml - The raw document.xml content
* @returns Array of ParagraphInfo objects with runs and metadata
*/
export function extractParagraphs(documentXml) {
const doc = parseXml(documentXml);
const paragraphs = [];
// Navigate to w:body
const body = doc.getElementsByTagName('w:body')[0];
if (!body) {
return paragraphs;
}
// Find direct w:p children in body.
let paragraphIndex = 0;
for (const child of childElements(body)) {
if (child.tagName === 'w:p') {
const para = extractParagraph(child, paragraphIndex);
paragraphs.push(para);
paragraphIndex++;
}
// Note: We skip w:tbl (tables) for v1 - could add support later
}
return paragraphs;
}
/**
* Extract a single paragraph from a parsed w:p element.
*/
function extractParagraph(pElement, index) {
const runs = [];
let charOffset = 0;
let pPrXml;
for (const child of childElements(pElement)) {
if (child.tagName === 'w:pPr') {
// Extract paragraph properties as XML for preservation
pPrXml = elementToXml(child);
}
else if (child.tagName === 'w:r') {
// Extract run
const runInfo = extractRun(child, charOffset);
if (runInfo.text.length > 0) {
runs.push(runInfo);
charOffset = runInfo.end;
}
}
// Skip other elements (bookmarkStart, bookmarkEnd, etc.)
}
// Combine all run text
const text = runs.map(r => r.text).join('');
return {
text,
runs,
hash: hashParagraph(text),
pPrXml,
originalIndex: index,
};
}
/**
* Extract a single run from a parsed w:r element.
*/
function extractRun(rElement, startOffset) {
let text = '';
let properties;
for (const child of childElements(rElement)) {
if (child.tagName === 'w:rPr') {
properties = extractRunProperties(child);
}
else if (child.tagName === 'w:t') {
// Get text content
text += child.textContent ?? '';
}
else if (child.tagName === 'w:tab') {
// Tab character
text += '\t';
}
else if (child.tagName === 'w:br') {
// Break (newline)
text += '\n';
}
// Skip other elements (w:sym, w:drawing, etc.)
}
return {
text,
start: startOffset,
end: startOffset + text.length,
properties,
};
}
/**
* Extract run properties from a w:rPr element.
*/
export function extractRunProperties(rPrElement) {
const props = {};
let hasProps = false;
for (const child of childElements(rPrElement)) {
if (child.tagName === 'w:b') {
props.bold = true;
hasProps = true;
}
else if (child.tagName === 'w:i') {
props.italic = true;
hasProps = true;
}
else if (child.tagName === 'w:u') {
const val = child.getAttribute('w:val');
props.underline = val || 'single';
hasProps = true;
}
else if (child.tagName === 'w:strike') {
props.strikethrough = true;
hasProps = true;
}
else if (child.tagName === 'w:highlight') {
const val = child.getAttribute('w:val');
if (val) {
props.highlight = val;
hasProps = true;
}
}
else if (child.tagName === 'w:color') {
const val = child.getAttribute('w:val');
if (val) {
props.color = val;
hasProps = true;
}
}
else if (child.tagName === 'w:sz') {
const val = child.getAttribute('w:val');
if (val) {
const parsed = Number.parseInt(val, 10);
if (!Number.isNaN(parsed)) {
props.fontSize = parsed;
hasProps = true;
}
}
}
else if (child.tagName === 'w:rFonts') {
const ascii = child.getAttribute('w:ascii');
if (ascii) {
props.fontFamily = ascii;
hasProps = true;
}
}
}
return hasProps ? props : undefined;
}
/**
* Get the document body content (everything inside w:body).
* Useful for document reconstruction.
*/
export function getBodyContent(documentXml) {
// Use regex to extract body content while preserving structure
const bodyMatch = documentXml.match(/(<w:body[^>]*>)([\s\S]*?)(<\/w:body>)/);
if (!bodyMatch) {
return {
beforeBody: documentXml,
bodyContent: '',
afterBody: '',
};
}
const bodyStart = documentXml.indexOf(bodyMatch[0]);
const bodyEnd = bodyStart + bodyMatch[0].length;
return {
beforeBody: documentXml.slice(0, bodyStart) + bodyMatch[1],
bodyContent: bodyMatch[2],
afterBody: bodyMatch[3] + documentXml.slice(bodyEnd),
};
}
/**
* Extract sectPr (section properties) from body content if present.
* sectPr must remain at the end of body.
*/
export function extractSectPr(bodyContent) {
const trimmed = bodyContent.trimEnd();
if (!trimmed.endsWith('</w:sectPr>'))
return { content: bodyContent, sectPr: null };
const sectPrStart = trimmed.lastIndexOf('<w:sectPr');
if (sectPrStart < 0)
return { content: bodyContent, sectPr: null };
const beforeSectPr = trimmed.slice(0, sectPrStart);
const lastParagraphOpen = beforeSectPr.lastIndexOf('<w:p');
const lastParagraphClose = beforeSectPr.lastIndexOf('</w:p>');
if (lastParagraphOpen > lastParagraphClose)
return { content: bodyContent, sectPr: null };
const trailingWhitespace = bodyContent.slice(trimmed.length);
return {
content: bodyContent.slice(0, sectPrStart) + trailingWhitespace,
sectPr: trimmed.slice(sectPrStart),
};
}
/**
* Convert an element back to XML string.
*/
function elementToXml(element) {
return serializer.serializeToString(element);
}
/**
* Get direct element children.
*/
function childElements(element) {
return Array.from(element.children);
}
//# sourceMappingURL=xmlParser.js.map
{"version":3,"file":"xmlParser.js","sourceRoot":"","sources":["../../../src/baselines/diffmatch/xmlParser.ts"],"names":[],"mappings":"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"}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display