@usejunior/docx-core 0.18.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/core-types.d.ts +1 -139
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +1 -3
- package/dist/core-types.js.map +1 -1
- package/dist/generation/emit/borders.d.ts +14 -0
- package/dist/generation/emit/borders.d.ts.map +1 -0
- package/dist/generation/emit/borders.js +45 -0
- package/dist/generation/emit/borders.js.map +1 -0
- package/dist/generation/emit/properties.d.ts +1 -1
- package/dist/generation/emit/properties.d.ts.map +1 -1
- package/dist/generation/emit/properties.js +4 -0
- package/dist/generation/emit/properties.js.map +1 -1
- package/dist/generation/emit/table.d.ts.map +1 -1
- package/dist/generation/emit/table.js +3 -31
- package/dist/generation/emit/table.js.map +1 -1
- package/dist/generation/index.d.ts +1 -1
- package/dist/generation/index.d.ts.map +1 -1
- package/dist/generation/types.d.ts +9 -0
- package/dist/generation/types.d.ts.map +1 -1
- package/dist/generation/types.js.map +1 -1
- package/dist/generation/validate-spec.d.ts.map +1 -1
- package/dist/generation/validate-spec.js +2 -0
- package/dist/generation/validate-spec.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/integration/generation-probes.d.ts +36 -2
- package/dist/integration/generation-probes.d.ts.map +1 -1
- package/dist/integration/generation-probes.js +137 -15
- package/dist/integration/generation-probes.js.map +1 -1
- package/dist/integration/libreoffice-oracle.js +1 -1
- package/dist/integration/synthetic-docx-fixture.d.ts.map +1 -1
- package/dist/integration/synthetic-docx-fixture.js +37 -20
- package/dist/integration/synthetic-docx-fixture.js.map +1 -1
- package/dist/primitives/accept_ai_edits.js +14 -2
- package/dist/primitives/accept_ai_edits.js.map +1 -1
- package/dist/primitives/accept_changes.d.ts +7 -0
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +92 -4
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/bookmarks.d.ts +1 -0
- package/dist/primitives/bookmarks.d.ts.map +1 -1
- package/dist/primitives/bookmarks.js +1 -1
- package/dist/primitives/bookmarks.js.map +1 -1
- package/dist/primitives/comments.d.ts +31 -4
- package/dist/primitives/comments.d.ts.map +1 -1
- package/dist/primitives/comments.js +111 -12
- package/dist/primitives/comments.js.map +1 -1
- package/dist/primitives/document.d.ts +47 -1
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +198 -13
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/document_view-headings.d.ts +3 -1
- package/dist/primitives/document_view-headings.d.ts.map +1 -1
- package/dist/primitives/document_view-headings.js +5 -5
- package/dist/primitives/document_view-headings.js.map +1 -1
- package/dist/primitives/document_view.d.ts +2 -0
- package/dist/primitives/document_view.d.ts.map +1 -1
- package/dist/primitives/document_view.js +18 -4
- package/dist/primitives/document_view.js.map +1 -1
- package/dist/primitives/field_evaluation.d.ts +70 -0
- package/dist/primitives/field_evaluation.d.ts.map +1 -0
- package/dist/primitives/field_evaluation.js +462 -0
- package/dist/primitives/field_evaluation.js.map +1 -0
- package/dist/primitives/footnotes.d.ts +17 -3
- package/dist/primitives/footnotes.d.ts.map +1 -1
- package/dist/primitives/footnotes.js +64 -17
- package/dist/primitives/footnotes.js.map +1 -1
- package/dist/primitives/formatting_tags.js +2 -2
- package/dist/primitives/formatting_tags.js.map +1 -1
- package/dist/primitives/index.d.ts +8 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +8 -1
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/merge_runs.d.ts +3 -1
- package/dist/primitives/merge_runs.d.ts.map +1 -1
- package/dist/primitives/merge_runs.js +12 -2
- package/dist/primitives/merge_runs.js.map +1 -1
- package/dist/primitives/namespaces.d.ts +12 -2
- package/dist/primitives/namespaces.d.ts.map +1 -1
- package/dist/primitives/namespaces.js +13 -2
- package/dist/primitives/namespaces.js.map +1 -1
- package/dist/primitives/note_conversion.d.ts +11 -0
- package/dist/primitives/note_conversion.d.ts.map +1 -0
- package/dist/primitives/note_conversion.js +12 -0
- package/dist/primitives/note_conversion.js.map +1 -0
- package/dist/primitives/opc-target.d.ts +24 -0
- package/dist/primitives/opc-target.d.ts.map +1 -0
- package/dist/primitives/opc-target.js +99 -0
- package/dist/primitives/opc-target.js.map +1 -0
- package/dist/primitives/paragraph_numbering.d.ts +40 -0
- package/dist/primitives/paragraph_numbering.d.ts.map +1 -0
- package/dist/primitives/paragraph_numbering.js +198 -0
- package/dist/primitives/paragraph_numbering.js.map +1 -0
- package/dist/primitives/reject_changes.d.ts +7 -0
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +133 -10
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/sectPrAudit.d.ts +18 -1
- package/dist/primitives/sectPrAudit.d.ts.map +1 -1
- package/dist/primitives/sectPrAudit.js +120 -34
- package/dist/primitives/sectPrAudit.js.map +1 -1
- package/dist/primitives/sections.d.ts +134 -0
- package/dist/primitives/sections.d.ts.map +1 -0
- package/dist/primitives/sections.js +644 -0
- package/dist/primitives/sections.js.map +1 -0
- package/dist/primitives/serialize_html.d.ts.map +1 -1
- package/dist/primitives/serialize_html.js +18 -7
- package/dist/primitives/serialize_html.js.map +1 -1
- package/dist/primitives/styles.d.ts +60 -0
- package/dist/primitives/styles.d.ts.map +1 -1
- package/dist/primitives/styles.js +206 -25
- package/dist/primitives/styles.js.map +1 -1
- package/dist/primitives/symbol_run_content.d.ts +42 -0
- package/dist/primitives/symbol_run_content.d.ts.map +1 -0
- package/dist/primitives/symbol_run_content.js +79 -0
- package/dist/primitives/symbol_run_content.js.map +1 -0
- package/dist/primitives/text.d.ts +29 -0
- package/dist/primitives/text.d.ts.map +1 -1
- package/dist/primitives/text.js +354 -44
- package/dist/primitives/text.js.map +1 -1
- package/dist/primitives/track-changes-emitter.d.ts +9 -0
- package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
- package/dist/primitives/track-changes-emitter.js +40 -2
- package/dist/primitives/track-changes-emitter.js.map +1 -1
- package/dist/primitives/validate_document.d.ts.map +1 -1
- package/dist/primitives/validate_document.js +22 -1
- package/dist/primitives/validate_document.js.map +1 -1
- package/dist/shared/docx/DocxArchive.d.ts.map +1 -1
- package/dist/shared/docx/DocxArchive.js +7 -0
- package/dist/shared/docx/DocxArchive.js.map +1 -1
- package/dist/shared/field-semantics.d.ts +26 -0
- package/dist/shared/field-semantics.d.ts.map +1 -0
- package/dist/shared/field-semantics.js +232 -0
- package/dist/shared/field-semantics.js.map +1 -0
- package/dist/shared/field-structure.d.ts +14 -0
- package/dist/shared/field-structure.d.ts.map +1 -1
- package/dist/shared/field-structure.js +98 -7
- package/dist/shared/field-structure.js.map +1 -1
- package/package.json +3 -5
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text projection of `<w:sym>` run content.
|
|
3
|
+
*
|
|
4
|
+
* A symbol glyph has two legal spellings in WordprocessingML and Word renders
|
|
5
|
+
* them identically:
|
|
6
|
+
*
|
|
7
|
+
* 1. `<w:sym w:font="Wingdings" w:char="F0A8"/>`, and
|
|
8
|
+
* 2. the same codepoint written literally inside a `<w:t>`, with the symbol
|
|
9
|
+
* font carried on the run's `<w:rFonts>`.
|
|
10
|
+
*
|
|
11
|
+
* Any text projection that walks `w:t`/`w:delText` alone therefore sees a
|
|
12
|
+
* document that *lost* a symbol and a document that *kept* it as the same
|
|
13
|
+
* string, and sees the two spellings of one glyph as different strings. This
|
|
14
|
+
* module is the single place the projection resolves spelling (1) into the
|
|
15
|
+
* characters spelling (2) would have contributed.
|
|
16
|
+
*
|
|
17
|
+
* The font is deliberately **not** part of the projected value. The projections
|
|
18
|
+
* that consume this are text projections: they already exclude `w:rFonts`, so
|
|
19
|
+
* folding `w:sym/@w:font` in would make the same font signal visible for one
|
|
20
|
+
* spelling of a glyph and invisible for the other, and would make the two
|
|
21
|
+
* spellings compare unequal by construction — the exact false difference this
|
|
22
|
+
* resolution exists to remove. A font-only change is a formatting change and
|
|
23
|
+
* belongs to the formatting-fidelity surface, not the round-trip text gate;
|
|
24
|
+
* that residual is tracked separately.
|
|
25
|
+
*
|
|
26
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.3.3.30
|
|
27
|
+
* @see https://github.com/UseJunior/safe-docx/issues/793
|
|
28
|
+
* @see https://github.com/UseJunior/safe-docx/issues/799
|
|
29
|
+
*/
|
|
30
|
+
/** Local name of the symbol-character run-content element. */
|
|
31
|
+
export declare const SYM_LOCAL_NAME = "sym";
|
|
32
|
+
/**
|
|
33
|
+
* Project a `<w:sym>` element to the text it contributes, or `undefined` when
|
|
34
|
+
* `element` is not a `w:sym`.
|
|
35
|
+
*
|
|
36
|
+
* For a resolvable `@w:char` the result is exactly the character the glyph
|
|
37
|
+
* stands for — what it would have contributed had it been spelled as literal
|
|
38
|
+
* `w:t` content. Otherwise it is a framed, projection-only identity that keeps
|
|
39
|
+
* the element's presence visible without colliding with authored text.
|
|
40
|
+
*/
|
|
41
|
+
export declare function projectSymbolRun(element: Element): string | undefined;
|
|
42
|
+
//# sourceMappingURL=symbol_run_content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol_run_content.d.ts","sourceRoot":"","sources":["../../src/primitives/symbol_run_content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,8DAA8D;AAC9D,eAAO,MAAM,cAAc,QAAQ,CAAC;AAkCpC;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAMrE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text projection of `<w:sym>` run content.
|
|
3
|
+
*
|
|
4
|
+
* A symbol glyph has two legal spellings in WordprocessingML and Word renders
|
|
5
|
+
* them identically:
|
|
6
|
+
*
|
|
7
|
+
* 1. `<w:sym w:font="Wingdings" w:char="F0A8"/>`, and
|
|
8
|
+
* 2. the same codepoint written literally inside a `<w:t>`, with the symbol
|
|
9
|
+
* font carried on the run's `<w:rFonts>`.
|
|
10
|
+
*
|
|
11
|
+
* Any text projection that walks `w:t`/`w:delText` alone therefore sees a
|
|
12
|
+
* document that *lost* a symbol and a document that *kept* it as the same
|
|
13
|
+
* string, and sees the two spellings of one glyph as different strings. This
|
|
14
|
+
* module is the single place the projection resolves spelling (1) into the
|
|
15
|
+
* characters spelling (2) would have contributed.
|
|
16
|
+
*
|
|
17
|
+
* The font is deliberately **not** part of the projected value. The projections
|
|
18
|
+
* that consume this are text projections: they already exclude `w:rFonts`, so
|
|
19
|
+
* folding `w:sym/@w:font` in would make the same font signal visible for one
|
|
20
|
+
* spelling of a glyph and invisible for the other, and would make the two
|
|
21
|
+
* spellings compare unequal by construction — the exact false difference this
|
|
22
|
+
* resolution exists to remove. A font-only change is a formatting change and
|
|
23
|
+
* belongs to the formatting-fidelity surface, not the round-trip text gate;
|
|
24
|
+
* that residual is tracked separately.
|
|
25
|
+
*
|
|
26
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.3.3.30
|
|
27
|
+
* @see https://github.com/UseJunior/safe-docx/issues/793
|
|
28
|
+
* @see https://github.com/UseJunior/safe-docx/issues/799
|
|
29
|
+
*/
|
|
30
|
+
import { OOXML } from './namespaces.js';
|
|
31
|
+
/** Local name of the symbol-character run-content element. */
|
|
32
|
+
export const SYM_LOCAL_NAME = 'sym';
|
|
33
|
+
/**
|
|
34
|
+
* `w:sym/@w:char` is `ST_ShortHexNumber` — `xsd:hexBinary` restricted to
|
|
35
|
+
* `length="2"`, i.e. exactly two bytes, four hexadecimal digits. Every legal
|
|
36
|
+
* value is therefore a BMP codepoint and `String.fromCharCode` is total over
|
|
37
|
+
* the domain. Four digits exactly: `A` and `ABC` are outside the lexical space
|
|
38
|
+
* and must not be read as characters.
|
|
39
|
+
*/
|
|
40
|
+
const SHORT_HEX_NUMBER = /^[0-9A-Fa-f]{4}$/u;
|
|
41
|
+
/**
|
|
42
|
+
* Projection identity for a `w:sym` whose `@w:char` is absent or outside
|
|
43
|
+
* `ST_ShortHexNumber`. Both `CT_Sym` attributes are optional in the vendored
|
|
44
|
+
* schema, so such an element is not schema-invalid — it is semantically
|
|
45
|
+
* unresolvable, and it is still *content*. Projecting nothing would reopen the
|
|
46
|
+
* blindness this module closes.
|
|
47
|
+
*
|
|
48
|
+
* It is a framed token rather than a character (U+FFFD was the obvious choice
|
|
49
|
+
* and is wrong: a document may author U+FFFD literally, and an unresolvable
|
|
50
|
+
* symbol would then compare equal to that text). The framing follows the
|
|
51
|
+
* `__safe_docx_pageref__|` convention already used for stable comparison
|
|
52
|
+
* identities in `docx-compare`.
|
|
53
|
+
*/
|
|
54
|
+
const UNRESOLVED_SYMBOL_IDENTITY = '__safe_docx_sym__|unresolved';
|
|
55
|
+
function isSymElement(element) {
|
|
56
|
+
// The namespace check alone is sufficient, and a qualified-name fallback
|
|
57
|
+
// would be dead code: `parseXml` rejects an undeclared prefix outright
|
|
58
|
+
// (`NamespaceError: prefix is non-null and namespace is null`), so nothing
|
|
59
|
+
// reaching this function can be named `w:sym` with a null namespace.
|
|
60
|
+
return element.namespaceURI === OOXML.W_NS && element.localName === SYM_LOCAL_NAME;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Project a `<w:sym>` element to the text it contributes, or `undefined` when
|
|
64
|
+
* `element` is not a `w:sym`.
|
|
65
|
+
*
|
|
66
|
+
* For a resolvable `@w:char` the result is exactly the character the glyph
|
|
67
|
+
* stands for — what it would have contributed had it been spelled as literal
|
|
68
|
+
* `w:t` content. Otherwise it is a framed, projection-only identity that keeps
|
|
69
|
+
* the element's presence visible without colliding with authored text.
|
|
70
|
+
*/
|
|
71
|
+
export function projectSymbolRun(element) {
|
|
72
|
+
if (!isSymElement(element))
|
|
73
|
+
return undefined;
|
|
74
|
+
const raw = element.getAttributeNS(OOXML.W_NS, 'char') ?? element.getAttribute('w:char');
|
|
75
|
+
if (raw === null || !SHORT_HEX_NUMBER.test(raw))
|
|
76
|
+
return UNRESOLVED_SYMBOL_IDENTITY;
|
|
77
|
+
return String.fromCharCode(Number.parseInt(raw, 16));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=symbol_run_content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbol_run_content.js","sourceRoot":"","sources":["../../src/primitives/symbol_run_content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C;;;;;;;;;;;;GAYG;AACH,MAAM,0BAA0B,GAAG,8BAA8B,CAAC;AAElE,SAAS,YAAY,CAAC,OAAgB;IACpC,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,qEAAqE;IACrE,OAAO,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,cAAc,CAAC;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,MAAM,GAAG,GACP,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/E,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,0BAA0B,CAAC;IACnF,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -3,7 +3,17 @@ export type TextRun = {
|
|
|
3
3
|
r: Element;
|
|
4
4
|
text: string;
|
|
5
5
|
isFieldResult: boolean;
|
|
6
|
+
fieldResultId?: number | null;
|
|
7
|
+
fieldInstruction?: string | null;
|
|
6
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Return the paragraph's visible runs while retaining enough complex-field
|
|
11
|
+
* provenance to distinguish a safe cached-result edit from a field-boundary
|
|
12
|
+
* rewrite.
|
|
13
|
+
*
|
|
14
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.16.18
|
|
15
|
+
* @see #651
|
|
16
|
+
*/
|
|
7
17
|
export declare function getParagraphRuns(p: Element): TextRun[];
|
|
8
18
|
export declare function getParagraphText(p: Element): string;
|
|
9
19
|
export declare function visibleLengthForEl(el: Element): number;
|
|
@@ -27,5 +37,24 @@ export type ReplacementPart = {
|
|
|
27
37
|
addRunProps?: AddRunProps;
|
|
28
38
|
clearHighlight?: boolean;
|
|
29
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Replace a visible paragraph range while keeping tracked runs inside their
|
|
42
|
+
* existing run container. In particular, edits wholly inside `w:hyperlink`
|
|
43
|
+
* remain nested there, while cross-container ranges are refused before the
|
|
44
|
+
* DOM is changed.
|
|
45
|
+
*
|
|
46
|
+
* Embedded content (`w:drawing`, `w:pict`, `w:object`, `w:contentPart`)
|
|
47
|
+
* inside the replaced range is preserved as live runs: it contributes no
|
|
48
|
+
* visible text, so no text match ever covers it and no text edit may delete
|
|
49
|
+
* it. Tracked deletions around preserved content are emitted as in-place
|
|
50
|
+
* segments so rejectChanges() restores the original content order exactly.
|
|
51
|
+
*
|
|
52
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.14
|
|
53
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.13.5.15
|
|
54
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.16.22
|
|
55
|
+
* @see #652
|
|
56
|
+
* @see #741
|
|
57
|
+
* @see #739
|
|
58
|
+
*/
|
|
30
59
|
export declare function replaceParagraphTextRange(p: Element, start: number, end: number, replacement: string | ReplacementPart[], ctx?: RevisionContext): void;
|
|
31
60
|
//# sourceMappingURL=text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/primitives/text.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/primitives/text.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAqGtD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAInD;AA6GD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAMtD;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,CAWhE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAgEvG;AAkDD,MAAM,MAAM,WAAW,GAAG;IAGxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAyRF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,OAAO,EACV,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,EACvC,GAAG,CAAC,EAAE,eAAe,GACpB,IAAI,CAkSN"}
|