@blocknote/xl-odt-exporter 0.39.1 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"blocknote-xl-odt-exporter.js","sources":["../src/odt/defaultSchema/blocks.tsx","../src/odt/defaultSchema/inlineContent.tsx","../src/odt/defaultSchema/styles.ts","../src/odt/defaultSchema/index.ts","../../../shared/util/fileUtil.ts","../../../shared/util/imageUtil.ts","../src/odt/template/styles.xml?raw","../src/odt/odtExporter.tsx"],"sourcesContent":["import {\n BlockFromConfig,\n BlockMapping,\n createPageBreakBlockConfig,\n DefaultBlockSchema,\n DefaultProps,\n mapTableCell,\n StyledText,\n TableCell,\n} from \"@blocknote/core\";\nimport { ODTExporter } from \"../odtExporter.js\";\nimport { multiColumnSchema } from \"@blocknote/xl-multi-column\";\n\nexport const getTabs = (nestingLevel: number) => {\n return Array.from({ length: nestingLevel }, () => <text:tab />);\n};\n\nconst createParagraphStyle = (\n exporter: ODTExporter<any, any, any>,\n props: Partial<DefaultProps>,\n parentStyleName = \"Standard\",\n styleAttributes: Record<string, string> = {},\n paragraphStyleAttributes: Record<string, string> = {},\n textStyleAttributes: Record<string, string> = {},\n) => {\n const paragraphStyles: Record<string, string> = {\n ...paragraphStyleAttributes,\n };\n const textStyles: Record<string, string> = { ...textStyleAttributes };\n\n if (props.textAlignment && props.textAlignment !== \"left\") {\n const alignmentMap = {\n left: \"start\",\n center: \"center\",\n right: \"end\",\n justify: \"justify\",\n };\n paragraphStyles[\"fo:text-align\"] =\n alignmentMap[props.textAlignment as keyof typeof alignmentMap];\n }\n\n const backgroundColor =\n props.backgroundColor && props.backgroundColor !== \"default\"\n ? exporter.options.colors[\n props.backgroundColor as keyof typeof exporter.options.colors\n ].background\n : undefined;\n\n if (backgroundColor) {\n paragraphStyles[\"fo:background-color\"] = backgroundColor;\n }\n\n if (props.textColor && props.textColor !== \"default\") {\n const color =\n exporter.options.colors[\n props.textColor as keyof typeof exporter.options.colors\n ].text;\n textStyles[\"fo:color\"] = color;\n }\n\n if (\n !backgroundColor &&\n !Object.keys(styleAttributes).length &&\n !Object.keys(paragraphStyles).length &&\n !Object.keys(textStyles).length\n ) {\n return parentStyleName || \"Standard\";\n }\n\n return exporter.registerStyle((name) => (\n <style:style\n style:family=\"paragraph\"\n style:name={name}\n style:parent-style-name={parentStyleName}\n {...styleAttributes}\n >\n {backgroundColor && (\n <loext:graphic-properties\n draw:fill=\"solid\"\n draw:fill-color={backgroundColor}\n />\n )}\n {Object.keys(paragraphStyles).length > 0 && (\n <style:paragraph-properties {...paragraphStyles} />\n )}\n {Object.keys(textStyles).length > 0 && (\n <style:text-properties {...textStyles}></style:text-properties>\n )}\n </style:style>\n ));\n};\n\nconst createTableCellStyle = (\n exporter: ODTExporter<any, any, any>,\n): ((cell: TableCell<any, any>) => string) => {\n // To not create a new style for each cell within a table, we cache the styles based on unique cell properties\n const cellStyleCache = new Map<string, string>();\n\n return (cell: TableCell<any, any>) => {\n const key = `${cell.props.backgroundColor}-${cell.props.textColor}-${cell.props.textAlignment}`;\n\n if (cellStyleCache.has(key)) {\n return cellStyleCache.get(key)!;\n }\n\n const styleName = exporter.registerStyle((name) => (\n <style:style style:family=\"table-cell\" style:name={name}>\n <style:table-cell-properties\n fo:border=\"0.5pt solid #000000\"\n style:writing-mode=\"lr-tb\"\n fo:padding-top=\"0in\"\n fo:padding-left=\"0.075in\"\n fo:padding-bottom=\"0in\"\n fo:padding-right=\"0.075in\"\n fo:background-color={\n cell.props.backgroundColor !== \"default\" &&\n cell.props.backgroundColor\n ? exporter.options.colors[\n cell.props\n .backgroundColor as keyof typeof exporter.options.colors\n ].background\n : undefined\n }\n // TODO This is not applying because the children set their own colors\n fo:color={\n cell.props.textColor !== \"default\" && cell.props.textColor\n ? exporter.options.colors[\n cell.props.textColor as keyof typeof exporter.options.colors\n ].text\n : undefined\n }\n />\n </style:style>\n ));\n\n cellStyleCache.set(key, styleName);\n\n return styleName;\n };\n};\nconst createTableStyle = (\n exporter: ODTExporter<any, any, any>,\n options: { width: number },\n) => {\n const tableStyleName = exporter.registerStyle((name) => (\n <style:style style:family=\"table\" style:name={name}>\n <style:table-properties\n table:align=\"left\"\n style:writing-mode=\"lr-tb\"\n style:width={`${options.width}pt`}\n />\n </style:style>\n ));\n\n return tableStyleName;\n};\n\nconst wrapWithLists = (\n content: React.ReactNode,\n level: number,\n): React.ReactNode => {\n if (level <= 0) {\n return content;\n }\n return (\n <text:list>\n <text:list-item>{wrapWithLists(content, level - 1)}</text:list-item>\n </text:list>\n );\n};\n\nexport const odtBlockMappingForDefaultSchema: BlockMapping<\n DefaultBlockSchema & {\n pageBreak: ReturnType<typeof createPageBreakBlockConfig>;\n } & typeof multiColumnSchema.blockSchema,\n any,\n any,\n React.ReactNode,\n React.ReactNode\n> = {\n paragraph: (block, exporter, nestingLevel) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n\n return (\n <text:p text:style-name={styleName}>\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n );\n },\n\n heading: (block, exporter, nestingLevel) => {\n const customStyleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Heading_20_\" + block.props.level,\n );\n const styleName = customStyleName;\n\n return (\n <text:h\n text:outline-level={`${block.props.level}`}\n text:style-name={styleName}\n >\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:h>\n );\n },\n\n quote: (block, exporter, nestingLevel) => {\n const customStyleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n {},\n {\n \"fo:border-left\": \"2pt solid #7D797A\",\n \"fo:padding-left\": \"0.25in\",\n },\n {\n \"fo:color\": \"#7D797A\",\n },\n );\n const styleName = customStyleName;\n\n return (\n <text:p text:style-name={styleName}>\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n );\n },\n\n /**\n * Note: we wrap each list item in it's own list element.\n * This is not the cleanest solution, it would be nicer to recognize subsequent\n * list items and wrap them in the same list element.\n *\n * However, Word DocX -> ODT export actually does the same thing, so\n * for now it seems reasonable.\n *\n * (LibreOffice does nicely wrap the list items in the same list element)\n */\n toggleListItem: (block, exporter) => (\n <text:p text:style-name=\"Standard\">\n {\"> \"}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n ),\n\n bulletListItem: (block, exporter, nestingLevel) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n { \"style:list-style-name\": \"WWNum1\" },\n );\n return (\n <text:list text:style-name=\"WWNum1\">\n <text:list-item>\n {wrapWithLists(\n <text:p text:style-name={styleName}>\n {exporter.transformInlineContent(block.content)}\n </text:p>,\n nestingLevel,\n )}\n </text:list-item>\n </text:list>\n );\n },\n\n numberedListItem: (block, exporter, nestingLevel, numberedListIndex) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n // continue numbering from the previous list item if this is not the first item\n const continueNumbering = (numberedListIndex || 0) > 1 ? \"true\" : \"false\";\n\n return (\n <text:list\n text:style-name=\"No_20_List\"\n text:continue-numbering={continueNumbering}\n >\n <text:list-item\n {...(continueNumbering === \"false\" && {\n \"text:start-value\": block.props.start,\n })}\n >\n {wrapWithLists(\n <text:p text:style-name={styleName}>\n {exporter.transformInlineContent(block.content)}\n </text:p>,\n nestingLevel,\n )}\n </text:list-item>\n </text:list>\n );\n },\n\n checkListItem: (block, exporter) => (\n <text:p text:style-name=\"Standard\">\n {block.props.checked ? \"☒ \" : \"☐ \"}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n ),\n\n pageBreak: async () => {\n return <text:p text:style-name=\"PageBreak\" />;\n },\n\n column: (_block, exporter, _nestingLevel, _numberedListIndex, children) => {\n const ex = exporter as ODTExporter<any, any, any>;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-cell\">\n <style:table-cell-properties\n style:writing-mode=\"lr-tb\"\n fo:border=\"none\"\n fo:padding-top=\"0in\"\n fo:padding-left=\"0.075in\"\n fo:padding-bottom=\"0in\"\n fo:padding-right=\"0.075in\"\n />\n </style:style>\n ));\n\n return (\n <table:table-cell table:style-name={style}>{children}</table:table-cell>\n );\n },\n columnList: (\n block,\n exporter,\n _nestingLevel,\n _numberedListIndex,\n children,\n ) => {\n const blockWithChildren = block as BlockFromConfig<\n {\n type: \"columnList\";\n content: \"none\";\n propSchema: Record<string, any>;\n },\n any,\n any\n >;\n const ex = exporter as ODTExporter<any, any, any>;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table\">\n <style:table-properties\n table:align=\"margins\"\n style:writing-mode=\"lr-tb\"\n />\n </style:style>\n ));\n\n return (\n <table:table table:name={block.id} table:style-name={style}>\n {(blockWithChildren.children || []).map((column, index) => {\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-column\">\n <style:table-column-properties\n style:rel-column-width={`${column.props.width * 100}*`}\n />\n </style:style>\n ));\n\n return <table:table-column table:style-name={style} key={index} />;\n })}\n <table:table-row>{children}</table:table-row>\n </table:table>\n );\n },\n\n image: async (block, exporter) => {\n const odtExporter = exporter as ODTExporter<any, any, any>;\n\n const { path, mimeType, ...originalDimensions } =\n await odtExporter.registerPicture(block.props.url);\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n const width = block.props.previewWidth || originalDimensions.width;\n const height =\n (originalDimensions.height / originalDimensions.width) * width;\n const captionHeight = 20;\n const imageFrame = (\n <text:p text:style-name={block.props.caption ? \"Caption\" : styleName}>\n <draw:frame\n draw:style-name=\"Frame\"\n style:rel-height=\"scale\"\n svg:width={`${width}px`}\n svg:height={`${height}px`}\n style:rel-width={block.props.caption ? \"100%\" : `${width}px`}\n {...(!block.props.caption && {\n \"text:anchor-type\": \"as-char\",\n })}\n >\n <draw:image\n xlink:type=\"simple\"\n xlink:show=\"embed\"\n xlink:actuate=\"onLoad\"\n xlink:href={path}\n draw:mime-type={mimeType}\n />\n </draw:frame>\n <text:line-break />\n <text:span text:style-name=\"Caption\">{block.props.caption}</text:span>\n </text:p>\n );\n\n if (block.props.caption) {\n return (\n <text:p text:style-name={styleName}>\n <draw:frame\n draw:style-name=\"Frame\"\n style:rel-height=\"scale\"\n style:rel-width={`${width}px`}\n svg:width={`${width}px`}\n svg:height={`${height + captionHeight}px`}\n text:anchor-type=\"as-char\"\n >\n <draw:text-box>{imageFrame}</draw:text-box>\n </draw:frame>\n </text:p>\n );\n }\n\n return imageFrame;\n },\n\n table: (block, exporter) => {\n const DEFAULT_COLUMN_WIDTH_PX = 120;\n const tableWidthPX =\n block.content.columnWidths.reduce(\n (totalWidth, colWidth) =>\n (totalWidth || 0) + (colWidth || DEFAULT_COLUMN_WIDTH_PX),\n 0,\n ) || 0;\n const tableWidthPT = tableWidthPX * 0.75;\n const ex = exporter as ODTExporter<any, any, any>;\n const getCellStyleName = createTableCellStyle(ex);\n const tableStyleName = createTableStyle(ex, { width: tableWidthPT });\n\n return (\n <table:table table:name={block.id} table:style-name={tableStyleName}>\n {block.content.rows[0]?.cells.map((_, i) => {\n const colWidthPX =\n block.content.columnWidths[i] || DEFAULT_COLUMN_WIDTH_PX;\n const colWidthPT = colWidthPX * 0.75;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-column\">\n <style:table-column-properties\n style:column-width={`${colWidthPT}pt`}\n />\n </style:style>\n ));\n return <table:table-column table:style-name={style} key={i} />;\n })}\n {block.content.rows.map((row, rowIndex) => (\n <table:table-row key={rowIndex}>\n {row.cells.map((c, colIndex) => {\n const cell = mapTableCell(c);\n return (\n <table:table-cell\n key={`${rowIndex}-${colIndex}`}\n table:style-name={getCellStyleName(cell)}\n office:value-type=\"string\"\n style:text-align-source=\"fix\"\n style:paragraph-properties-text-align={\n cell.props.textAlignment\n }\n >\n <text:p text:style-name=\"Standard\">\n {exporter.transformInlineContent(cell.content)}\n </text:p>\n </table:table-cell>\n );\n })}\n </table:table-row>\n ))}\n </table:table>\n );\n },\n\n codeBlock: (block) => {\n const textContent = (block.content as StyledText<any>[])[0]?.text || \"\";\n\n return (\n <text:p text:style-name=\"Codeblock\">\n {...textContent.split(\"\\n\").map((line, index) => {\n return (\n <>\n {index !== 0 && <text:line-break />}\n {line}\n </>\n );\n })}\n </text:p>\n );\n },\n\n file: async (block) => {\n return (\n <>\n <text:p style:style-name=\"Standard\">\n {block.props.url ? (\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">\n Open file\n </text:span>\n </text:a>\n ) : (\n \"Open file\"\n )}\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n );\n },\n\n video: (block) => (\n <>\n <text:p style:style-name=\"Standard\">\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">Open video</text:span>\n </text:a>\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n ),\n\n audio: (block) => (\n <>\n <text:p style:style-name=\"Standard\">\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">Open audio</text:span>\n </text:a>\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n ),\n};\n","import {\n DefaultInlineContentSchema,\n InlineContentMapping,\n} from \"@blocknote/core\";\n\nexport const odtInlineContentMappingForDefaultSchema: InlineContentMapping<\n DefaultInlineContentSchema,\n any,\n React.JSX.Element,\n React.JSX.Element\n> = {\n link: (ic, exporter) => {\n const content = ic.content.map((c) => exporter.transformStyledText(c));\n\n return (\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={ic.href}\n >\n {content}\n </text:a>\n );\n },\n\n text: (ic, exporter) => {\n return exporter.transformStyledText(ic);\n },\n};\n","import { DefaultStyleSchema, StyleMapping } from \"@blocknote/core\";\nexport const odtStyleMappingForDefaultSchema: StyleMapping<\n DefaultStyleSchema,\n Record<string, string>\n> = {\n bold: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"fo:font-weight\": \"bold\" };\n },\n\n italic: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"fo:font-style\": \"italic\" };\n },\n\n underline: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:text-underline-style\": \"solid\" };\n },\n\n strike: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:text-line-through-style\": \"solid\" };\n },\n\n textColor: (val, exporter): Record<string, string> => {\n if (!val) {\n return {};\n }\n const color =\n exporter.options.colors[val as keyof typeof exporter.options.colors].text;\n return { \"fo:color\": color };\n },\n\n backgroundColor: (val, exporter): Record<string, string> => {\n if (!val) {\n return {};\n }\n const color =\n exporter.options.colors[val as keyof typeof exporter.options.colors]\n .background;\n return { \"fo:background-color\": color };\n },\n\n code: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:font-name\": \"Courier New\" };\n },\n};\n","import { odtBlockMappingForDefaultSchema } from \"./blocks.js\";\nimport { odtInlineContentMappingForDefaultSchema } from \"./inlineContent.js\";\nimport { odtStyleMappingForDefaultSchema } from \"./styles.js\";\n\nexport const odtDefaultSchemaMappings = {\n blockMapping: odtBlockMappingForDefaultSchema,\n inlineContentMapping: odtInlineContentMappingForDefaultSchema,\n styleMapping: odtStyleMappingForDefaultSchema,\n};\n","/**\n *\n * Helper functions so that we can import files both on vitest, browser and node\n * TODO: should find a way to test automatically in all environments\n */\n\nexport async function loadFileDataUrl(\n requireUrl: { default: string },\n mimeType: string,\n) {\n if (import.meta.env.NODE_ENV === \"test\") {\n const buffer = await loadFileBuffer(requireUrl);\n const fileBase64 = buffer.toString(\"base64\");\n\n const dataUrl = `data:${mimeType};base64,${fileBase64}`;\n return dataUrl;\n } else {\n // in browser, this is already a data url\n return requireUrl.default as string;\n }\n}\n\nexport async function loadFontDataUrl(requireUrl: { default: string }) {\n return loadFileDataUrl(requireUrl, \"font/ttf\");\n}\n\nexport async function loadFileBuffer(requireUrl: {\n default: string;\n}): Promise<Buffer | ArrayBuffer> {\n if (import.meta.env.NODE_ENV === \"test\") {\n // in vitest, this is the url we need to load with readfilesync\n // eslint-disable-next-line\n const fs = require(\"fs\");\n let url = requireUrl.default;\n\n if (url.startsWith(\"/@fs/\")) {\n url = url.substring(\"/@fs\".length);\n }\n // On Windows, vite/vitest may yield paths like \"/C:/...\" after removing /@fs\n // Node on Windows treats paths starting with \"/\" as relative to current drive,\n // which would produce \"C:\\C:\\...\". Strip leading slash when followed by a drive letter.\n if (/^\\/[A-Za-z]:/.test(url)) {\n url = url.slice(1);\n }\n const buffer = fs.readFileSync(url);\n return buffer;\n } else {\n // in browser, this is already a data url\n const dataUrl = requireUrl.default as string;\n // convert to buffer on browser\n const response = await fetch(dataUrl);\n const arrayBuffer = await response.arrayBuffer();\n return arrayBuffer;\n }\n}\n\n/**\n * usage:\n * \n * await loadFontDataUrl(\n await import(\"../fonts/inter/Inter_18pt-Italic.ttf\")\n );\n */\n","export async function getImageDimensions(blob: Blob) {\n if (typeof window !== \"undefined\" && import.meta.env.NODE_ENV !== \"test\") {\n const bmp = await createImageBitmap(blob);\n const { width, height } = bmp;\n bmp.close(); // free memory\n return { width, height };\n } else {\n // node or vitest\n const imageMetaFunc = (await import(\"image-meta\")).imageMeta;\n const bytes = new Uint8Array(await blob.arrayBuffer());\n const meta = imageMetaFunc(bytes);\n if (!meta.width || !meta.height) {\n throw new Error(\"Image dimensions not found\");\n }\n return { width: meta.width, height: meta.height };\n }\n}\n","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n<office:document-styles xmlns:css3t=\\\"http://www.w3.org/TR/css3-text/\\\"\\n xmlns:grddl=\\\"http://www.w3.org/2003/g/data-view#\\\" xmlns:xhtml=\\\"http://www.w3.org/1999/xhtml\\\"\\n xmlns:dom=\\\"http://www.w3.org/2001/xml-events\\\"\\n xmlns:script=\\\"urn:oasis:names:tc:opendocument:xmlns:script:1.0\\\"\\n xmlns:form=\\\"urn:oasis:names:tc:opendocument:xmlns:form:1.0\\\"\\n xmlns:math=\\\"http://www.w3.org/1998/Math/MathML\\\"\\n xmlns:number=\\\"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\\\"\\n xmlns:field=\\\"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\\\"\\n xmlns:meta=\\\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\\\"\\n xmlns:loext=\\\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\\\"\\n xmlns:officeooo=\\\"http://openoffice.org/2009/office\\\"\\n xmlns:table=\\\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\\\"\\n xmlns:chart=\\\"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\\\"\\n xmlns:svg=\\\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\\\"\\n xmlns:rpt=\\\"http://openoffice.org/2005/report\\\"\\n xmlns:dr3d=\\\"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\\\"\\n xmlns:tableooo=\\\"http://openoffice.org/2009/table\\\"\\n xmlns:draw=\\\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\\\"\\n xmlns:of=\\\"urn:oasis:names:tc:opendocument:xmlns:of:1.2\\\"\\n xmlns:text=\\\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\\\"\\n xmlns:style=\\\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\\\"\\n xmlns:dc=\\\"http://purl.org/dc/elements/1.1/\\\"\\n xmlns:calcext=\\\"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\\\"\\n xmlns:oooc=\\\"http://openoffice.org/2004/calc\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n xmlns:drawooo=\\\"http://openoffice.org/2010/draw\\\" xmlns:ooow=\\\"http://openoffice.org/2004/writer\\\"\\n xmlns:fo=\\\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\\\"\\n xmlns:ooo=\\\"http://openoffice.org/2004/office\\\"\\n xmlns:office=\\\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\\\" office:version=\\\"1.3\\\">\\n <office:font-face-decls>\\n <style:font-face style:name=\\\"Geist Mono\\\" svg:font-family=\\\"Geist Mono\\\" />\\n <style:font-face style:name=\\\"Inter 18pt\\\" svg:font-family=\\\"Inter 18pt\\\"\\n style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Liberation Serif\\\"\\n svg:font-family=\\\"&apos;Liberation Serif&apos;\\\" style:font-family-generic=\\\"roman\\\"\\n style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"OpenSymbol\\\" svg:font-family=\\\"OpenSymbol\\\"\\n style:font-charset=\\\"x-symbol\\\" />\\n <style:font-face style:name=\\\"PingFang SC\\\" svg:font-family=\\\"&apos;PingFang SC&apos;\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Tahoma\\\" svg:font-family=\\\"Tahoma\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Times New Roman (Body CS)\\\"\\n svg:font-family=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n </office:font-face-decls>\\n <office:styles>\\n <draw:gradient draw:name=\\\"Gradient_20_1\\\" draw:display-name=\\\"Gradient 1\\\" draw:style=\\\"linear\\\"\\n draw:start-color=\\\"#000000\\\" draw:end-color=\\\"#ffffff\\\" draw:start-intensity=\\\"100%\\\"\\n draw:end-intensity=\\\"100%\\\" draw:angle=\\\"0deg\\\" draw:border=\\\"0%\\\">\\n <loext:gradient-stop svg:offset=\\\"0\\\" loext:color-type=\\\"rgb\\\" loext:color-value=\\\"#000000\\\" />\\n <loext:gradient-stop svg:offset=\\\"1\\\" loext:color-type=\\\"rgb\\\" loext:color-value=\\\"#ffffff\\\" />\\n </draw:gradient>\\n <draw:hatch draw:name=\\\"Red_20_90_20_Degrees_20_Crossed_20_1\\\"\\n draw:display-name=\\\"Red 90 Degrees Crossed 1\\\" draw:style=\\\"single\\\" draw:color=\\\"#3465a4\\\"\\n draw:distance=\\\"0.0079in\\\" draw:rotation=\\\"0\\\" />\\n <style:default-style style:family=\\\"graphic\\\">\\n <style:graphic-properties svg:stroke-color=\\\"#3465a4\\\" draw:fill-color=\\\"#729fcf\\\"\\n fo:wrap-option=\\\"no-wrap\\\" draw:shadow-offset-x=\\\"0.1181in\\\"\\n draw:shadow-offset-y=\\\"0.1181in\\\" draw:start-line-spacing-horizontal=\\\"0.1114in\\\"\\n draw:start-line-spacing-vertical=\\\"0.1114in\\\"\\n draw:end-line-spacing-horizontal=\\\"0.1114in\\\"\\n draw:end-line-spacing-vertical=\\\"0.1114in\\\" style:flow-with-text=\\\"false\\\" />\\n <style:paragraph-properties style:text-autospace=\\\"ideograph-alpha\\\"\\n style:line-break=\\\"strict\\\" loext:tab-stop-distance=\\\"0in\\\" style:writing-mode=\\\"lr-tb\\\"\\n style:font-independent-line-spacing=\\\"false\\\">\\n <style:tab-stops />\\n </style:paragraph-properties>\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:use-window-font-color=\\\"true\\\" loext:opacity=\\\"0%\\\"\\n fo:font-size=\\\"12pt\\\" fo:language=\\\"en\\\" fo:country=\\\"NL\\\"\\n style:letter-kerning=\\\"true\\\" style:font-size-asian=\\\"12pt\\\"\\n style:language-asian=\\\"en\\\" style:country-asian=\\\"GB\\\"\\n style:font-size-complex=\\\"12pt\\\" style:language-complex=\\\"ar\\\"\\n style:country-complex=\\\"SA\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"paragraph\\\">\\n <style:paragraph-properties fo:hyphenation-ladder-count=\\\"no-limit\\\"\\n fo:hyphenation-keep=\\\"auto\\\" loext:hyphenation-keep-type=\\\"column\\\"\\n style:text-autospace=\\\"ideograph-alpha\\\" style:punctuation-wrap=\\\"hanging\\\"\\n style:line-break=\\\"strict\\\" style:tab-stop-distance=\\\"0.139in\\\"\\n style:writing-mode=\\\"page\\\" />\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:use-window-font-color=\\\"true\\\" loext:opacity=\\\"0%\\\"\\n fo:font-size=\\\"12pt\\\" fo:language=\\\"en\\\" fo:country=\\\"NL\\\"\\n style:letter-kerning=\\\"true\\\" style:font-size-asian=\\\"12pt\\\"\\n style:language-asian=\\\"en\\\" style:country-asian=\\\"GB\\\"\\n style:font-size-complex=\\\"12pt\\\" style:language-complex=\\\"ar\\\"\\n style:country-complex=\\\"SA\\\" fo:hyphenate=\\\"false\\\" fo:hyphenation-remain-char-count=\\\"2\\\"\\n fo:hyphenation-push-char-count=\\\"2\\\" loext:hyphenation-no-caps=\\\"false\\\"\\n loext:hyphenation-no-last-word=\\\"false\\\" loext:hyphenation-word-char-count=\\\"5\\\"\\n loext:hyphenation-zone=\\\"no-limit\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"table\\\">\\n <style:table-properties table:border-model=\\\"collapsing\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"table-row\\\">\\n <style:table-row-properties fo:keep-together=\\\"auto\\\" />\\n </style:default-style>\\n <style:style style:name=\\\"Standard\\\" style:family=\\\"paragraph\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0.0311in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"150%\\\" fo:text-align=\\\"start\\\"\\n style:justify-single-word=\\\"false\\\" fo:orphans=\\\"2\\\" fo:widows=\\\"2\\\"\\n style:writing-mode=\\\"lr-tb\\\" />\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Text_20_body\\\"\\n style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.1665in\\\" fo:margin-bottom=\\\"0.0835in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties style:font-family-generic=\\\"swiss\\\"\\n style:font-pitch=\\\"variable\\\" fo:font-size=\\\"14pt\\\" style:font-name-asian=\\\"PingFang SC\\\"\\n style:font-family-asian=\\\"&apos;PingFang SC&apos;\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"Arial Unicode MS1\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Text_20_body\\\" style:display-name=\\\"Text body\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0in\\\" fo:margin-bottom=\\\"0.0972in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"115%\\\" />\\n </style:style>\\n <style:style style:name=\\\"List\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Text_20_body\\\" style:class=\\\"list\\\">\\n <style:text-properties style:font-size-asian=\\\"12pt\\\"\\n style:font-name-complex=\\\"Arial Unicode MS\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"swiss\\\" />\\n </style:style>\\n <style:style style:name=\\\"Caption\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Standard\\\" style:class=\\\"extra\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0in\\\" fo:margin-bottom=\\\"0.139in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"100%\\\" />\\n <style:text-properties fo:color=\\\"#0e2841\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"9pt\\\"\\n fo:font-style=\\\"italic\\\" style:font-size-asian=\\\"9pt\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-size-complex=\\\"9pt\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark2\\\" loext:color-type=\\\"theme\\\" />\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Index\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:class=\\\"index\\\">\\n <style:paragraph-properties text:number-lines=\\\"false\\\" text:line-number=\\\"0\\\" />\\n <style:text-properties style:font-size-asian=\\\"12pt\\\"\\n style:font-name-complex=\\\"Arial Unicode MS\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"swiss\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_1\\\" style:display-name=\\\"Heading 1\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_1_20_Char\\\"\\n style:default-outline-level=\\\"1\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"24pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"24pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"24pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_2\\\" style:display-name=\\\"Heading 2\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_2_20_Char\\\"\\n style:default-outline-level=\\\"2\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"18pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"18pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"18pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_3\\\" style:display-name=\\\"Heading 3\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_3_20_Char\\\"\\n style:default-outline-level=\\\"3\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"14pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"14pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_4\\\" style:display-name=\\\"Heading 4\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_4_20_Char\\\"\\n style:default-outline-level=\\\"4\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0555in\\\" fo:margin-bottom=\\\"0.028in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_5\\\" style:display-name=\\\"Heading 5\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_5_20_Char\\\"\\n style:default-outline-level=\\\"5\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0555in\\\" fo:margin-bottom=\\\"0.028in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_6\\\" style:display-name=\\\"Heading 6\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_6_20_Char\\\"\\n style:default-outline-level=\\\"6\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.028in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_7\\\" style:display-name=\\\"Heading 7\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_7_20_Char\\\"\\n style:default-outline-level=\\\"7\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.028in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_8\\\" style:display-name=\\\"Heading 8\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_8_20_Char\\\"\\n style:default-outline-level=\\\"8\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_9\\\" style:display-name=\\\"Heading 9\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_9_20_Char\\\"\\n style:default-outline-level=\\\"9\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Title\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Title_20_Char\\\"\\n style:class=\\\"chapter\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0.0555in\\\"\\n style:contextual-spacing=\\\"true\\\" fo:line-height=\\\"100%\\\" />\\n <style:text-properties\\n fo:font-size=\\\"28pt\\\" fo:letter-spacing=\\\"-0.0071in\\\" style:letter-kerning=\\\"true\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-size-asian=\\\"28pt\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-size-complex=\\\"28pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Subtitle\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Subtitle_20_Char\\\" style:class=\\\"chapter\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n fo:letter-spacing=\\\"0.0102in\\\" style:font-name-asian=\\\"F2\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Quote\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Quote_20_Char\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.111in\\\" fo:margin-bottom=\\\"0.0311in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:text-align=\\\"center\\\"\\n style:justify-single-word=\\\"false\\\" />\\n <style:text-properties fo:color=\\\"#404040\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"List_20_Paragraph\\\" style:display-name=\\\"List Paragraph\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:paragraph-properties fo:margin-left=\\\"0.5in\\\" fo:margin-top=\\\"0.0311in\\\"\\n fo:margin-bottom=\\\"0.0311in\\\" style:contextual-spacing=\\\"true\\\" />\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Quote\\\" style:display-name=\\\"Intense Quote\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Intense_20_Quote_20_Char\\\">\\n <style:paragraph-properties fo:margin-left=\\\"0.6in\\\" fo:margin-right=\\\"0.6in\\\"\\n fo:margin-top=\\\"0.25in\\\" fo:margin-bottom=\\\"0.25in\\\" style:contextual-spacing=\\\"false\\\"\\n fo:text-align=\\\"center\\\" style:justify-single-word=\\\"false\\\" fo:padding-left=\\\"0in\\\"\\n fo:padding-right=\\\"0in\\\" fo:padding-top=\\\"0.139in\\\" fo:padding-bottom=\\\"0.139in\\\"\\n fo:border-left=\\\"none\\\" fo:border-right=\\\"none\\\" fo:border-top=\\\"0.51pt solid #0f4761\\\"\\n fo:border-bottom=\\\"0.51pt solid #0f4761\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"PageBreak\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\">\\n <style:paragraph-properties fo:break-before=\\\"page\\\" />\\n </style:style>\\n <style:style style:name=\\\"Codeblock\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\">\\n <loext:graphic-properties draw:fill=\\\"solid\\\" draw:fill-color=\\\"#161616\\\" />\\n <style:paragraph-properties fo:line-height=\\\"100%\\\" fo:background-color=\\\"#161616\\\" />\\n <style:text-properties fo:color=\\\"#e1e4e8\\\" loext:opacity=\\\"100%\\\"\\n style:font-name=\\\"Geist Mono\\\"\\n fo:font-family=\\\"Geist Mono\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_1_20_Char\\\" style:display-name=\\\"Heading 1 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_1\\\">\\n <style:text-properties fo:font-size=\\\"20pt\\\"\\n style:font-size-asian=\\\"20pt\\\"\\n style:font-size-complex=\\\"20pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_2_20_Char\\\" style:display-name=\\\"Heading 2 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_2\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"16pt\\\"\\n style:font-size-asian=\\\"16pt\\\" style:font-size-complex=\\\"16pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_3_20_Char\\\" style:display-name=\\\"Heading 3 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_3\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-size-asian=\\\"14pt\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_4_20_Char\\\" style:display-name=\\\"Heading 4 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_4\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_5_20_Char\\\" style:display-name=\\\"Heading 5 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_5\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_6_20_Char\\\" style:display-name=\\\"Heading 6 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_6\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_7_20_Char\\\" style:display-name=\\\"Heading 7 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_7\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_8_20_Char\\\" style:display-name=\\\"Heading 8 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_8\\\">\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_9_20_Char\\\" style:display-name=\\\"Heading 9 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_9\\\">\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Title_20_Char\\\" style:display-name=\\\"Title Char\\\" style:family=\\\"text\\\"\\n style:parent-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Title\\\">\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\" fo:font-size=\\\"28pt\\\"\\n fo:letter-spacing=\\\"-0.0071in\\\"\\n style:letter-kerning=\\\"true\\\"\\n style:font-size-asian=\\\"28pt\\\"\\n style:font-size-complex=\\\"28pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Subtitle_20_Char\\\" style:display-name=\\\"Subtitle Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Subtitle\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n fo:letter-spacing=\\\"0.0102in\\\" style:font-name-asian=\\\"F2\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Quote_20_Char\\\" style:display-name=\\\"Quote Char\\\" style:family=\\\"text\\\"\\n style:parent-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Quote\\\">\\n <style:text-properties fo:color=\\\"#404040\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Emphasis\\\" style:display-name=\\\"Intense Emphasis\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Quote_20_Char\\\" style:display-name=\\\"Intense Quote Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Intense_20_Quote\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Reference\\\" style:display-name=\\\"Intense Reference\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:font-variant=\\\"small-caps\\\" fo:color=\\\"#0f4761\\\"\\n loext:opacity=\\\"100%\\\" fo:letter-spacing=\\\"0.0035in\\\" fo:font-weight=\\\"bold\\\"\\n style:font-weight-asian=\\\"bold\\\" style:font-weight-complex=\\\"bold\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Internet_20_link\\\" style:display-name=\\\"Internet link\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\" style:font-name-asian=\\\"Inter 18pt\\\"\\n style:font-name-complex=\\\"Times New Roman (Body CS)\\\" fo:color=\\\"#0000ef\\\"\\n loext:opacity=\\\"100%\\\"\\n style:text-underline-type=\\\"single\\\" style:text-underline-style=\\\"solid\\\"\\n style:text-underline-width=\\\"auto\\\" style:text-underline-mode=\\\"continuous\\\"\\n style:text-underline-color=\\\"font-color\\\" />\\n </style:style>\\n <style:style style:name=\\\"Unresolved_20_Mention\\\" style:display-name=\\\"Unresolved Mention\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:color=\\\"#605e5c\\\" loext:opacity=\\\"100%\\\"\\n fo:background-color=\\\"#e1dfdd\\\" />\\n </style:style>\\n <style:style style:name=\\\"ListLabel_20_1\\\" style:display-name=\\\"ListLabel 1\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_2\\\" style:display-name=\\\"ListLabel 2\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_3\\\" style:display-name=\\\"ListLabel 3\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_4\\\" style:display-name=\\\"ListLabel 4\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_5\\\" style:display-name=\\\"ListLabel 5\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_6\\\" style:display-name=\\\"ListLabel 6\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_7\\\" style:display-name=\\\"ListLabel 7\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_8\\\" style:display-name=\\\"ListLabel 8\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_9\\\" style:display-name=\\\"ListLabel 9\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_10\\\" style:display-name=\\\"ListLabel 10\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_11\\\" style:display-name=\\\"ListLabel 11\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_12\\\" style:display-name=\\\"ListLabel 12\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_13\\\" style:display-name=\\\"ListLabel 13\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_14\\\" style:display-name=\\\"ListLabel 14\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_15\\\" style:display-name=\\\"ListLabel 15\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_16\\\" style:display-name=\\\"ListLabel 16\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_17\\\" style:display-name=\\\"ListLabel 17\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_18\\\" style:display-name=\\\"ListLabel 18\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_19\\\" style:display-name=\\\"ListLabel 19\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_20\\\" style:display-name=\\\"ListLabel 20\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_21\\\" style:display-name=\\\"ListLabel 21\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_22\\\" style:display-name=\\\"ListLabel 22\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_23\\\" style:display-name=\\\"ListLabel 23\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_24\\\" style:display-name=\\\"ListLabel 24\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_25\\\" style:display-name=\\\"ListLabel 25\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_26\\\" style:display-name=\\\"ListLabel 26\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_27\\\" style:display-name=\\\"ListLabel 27\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_28\\\" style:display-name=\\\"ListLabel 28\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"Graphics\\\" style:family=\\\"graphic\\\">\\n <style:graphic-properties text:anchor-type=\\\"paragraph\\\" svg:x=\\\"0in\\\" svg:y=\\\"0in\\\"\\n style:wrap=\\\"dynamic\\\" style:number-wrapped-paragraphs=\\\"no-limit\\\"\\n style:wrap-contour=\\\"false\\\" style:vertical-pos=\\\"top\\\" style:vertical-rel=\\\"paragraph\\\"\\n style:horizontal-pos=\\\"center\\\" style:horizontal-rel=\\\"paragraph\\\" draw:fill=\\\"none\\\" />\\n </style:style>\\n <style:style style:name=\\\"Frame\\\" style:family=\\\"graphic\\\">\\n <style:graphic-properties fo:margin-left=\\\"0in\\\" fo:margin-right=\\\"0in\\\" fo:margin-top=\\\"0in\\\"\\n fo:margin-bottom=\\\"0in\\\" style:run-through=\\\"foreground\\\" style:wrap=\\\"dynamic\\\"\\n style:number-wrapped-paragraphs=\\\"no-limit\\\" style:vertical-pos=\\\"from-top\\\"\\n style:horizontal-pos=\\\"center\\\" style:horizontal-rel=\\\"paragraph\\\" fo:padding=\\\"0in\\\"\\n draw:fill=\\\"none\\\"\\n draw:stroke=\\\"none\\\"\\n fo:border=\\\"none\\\"\\n style:shadow=\\\"none\\\" svg:stroke-color=\\\"transparent\\\"\\n draw:shadow-opacity=\\\"100%\\\"\\n loext:rel-width-rel=\\\"paragraph\\\" />\\n </style:style>\\n <text:outline-style style:name=\\\"Outline\\\">\\n <text:outline-level-style text:level=\\\"1\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"2\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"3\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"4\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"5\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"6\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"7\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"8\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"9\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"10\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n </text:outline-style>\\n <text:list-style style:name=\\\"No_20_List\\\" style:display-name=\\\"No List\\\">\\n <text:list-level-style-number text:level=\\\"1\\\" loext:num-list-format=\\\"%1%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"0.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"2\\\" loext:num-list-format=\\\"%2%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"0.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"3\\\" loext:num-list-format=\\\"%3%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"4\\\" loext:num-list-format=\\\"%4%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.25in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"5\\\" loext:num-list-format=\\\"%5%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"6\\\" loext:num-list-format=\\\"%6%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"7\\\" loext:num-list-format=\\\"%7%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"8\\\" loext:num-list-format=\\\"%8%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.25in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"9\\\" loext:num-list-format=\\\"%9%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum1\\\">\\n <text:list-level-style-bullet text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_1\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_2\\\"\\n loext:num-list-format=\\\"◦\\\" style:num-suffix=\\\"◦\\\" text:bullet-char=\\\"◦\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_3\\\"\\n loext:num-list-format=\\\"▪\\\" style:num-suffix=\\\"▪\\\" text:bullet-char=\\\"▪\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_4\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_5\\\"\\n loext:num-list-format=\\\"◦\\\" style:num-suffix=\\\"◦\\\" text:bullet-char=\\\"◦\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_6\\\"\\n loext:num-list-format=\\\"▪\\\" style:num-suffix=\\\"▪\\\" text:bullet-char=\\\"▪\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"3in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_7\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"3.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_8\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"4in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_9\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"4.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum2\\\">\\n <text:list-level-style-bullet text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_10\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_11\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_12\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_13\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_14\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_15\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_16\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_17\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_18\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum3\\\">\\n <text:list-level-style-number text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_19\\\"\\n loext:num-list-format=\\\"%1%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_20\\\"\\n loext:num-list-format=\\\"%2%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_21\\\"\\n loext:num-list-format=\\\"%3%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_22\\\"\\n loext:num-list-format=\\\"%4%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_23\\\"\\n loext:num-list-format=\\\"%5%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_24\\\"\\n loext:num-list-format=\\\"%6%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_25\\\"\\n loext:num-list-format=\\\"%7%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_26\\\"\\n loext:num-list-format=\\\"%8%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_27\\\"\\n loext:num-list-format=\\\"%9%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:notes-configuration text:note-class=\\\"footnote\\\" style:num-format=\\\"1\\\"\\n text:start-value=\\\"0\\\" text:footnotes-position=\\\"page\\\" text:start-numbering-at=\\\"document\\\" />\\n <text:notes-configuration text:note-class=\\\"endnote\\\" style:num-format=\\\"i\\\"\\n text:start-value=\\\"0\\\" />\\n <text:linenumbering-configuration text:number-lines=\\\"false\\\" text:offset=\\\"0.1965in\\\"\\n style:num-format=\\\"1\\\" text:number-position=\\\"left\\\" text:increment=\\\"5\\\" />\\n <style:default-page-layout>\\n <style:page-layout-properties style:layout-grid-standard-mode=\\\"true\\\" />\\n </style:default-page-layout>\\n <loext:theme loext:name=\\\"Office\\\">\\n <loext:theme-colors loext:name=\\\"LibreOffice\\\">\\n <loext:color loext:name=\\\"dark1\\\" loext:color=\\\"#000000\\\" />\\n <loext:color loext:name=\\\"light1\\\" loext:color=\\\"#ffffff\\\" />\\n <loext:color loext:name=\\\"dark2\\\" loext:color=\\\"#000000\\\" />\\n <loext:color loext:name=\\\"light2\\\" loext:color=\\\"#ffffff\\\" />\\n <loext:color loext:name=\\\"accent1\\\" loext:color=\\\"#18a303\\\" />\\n <loext:color loext:name=\\\"accent2\\\" loext:color=\\\"#0369a3\\\" />\\n <loext:color loext:name=\\\"accent3\\\" loext:color=\\\"#a33e03\\\" />\\n <loext:color loext:name=\\\"accent4\\\" loext:color=\\\"#8e03a3\\\" />\\n <loext:color loext:name=\\\"accent5\\\" loext:color=\\\"#c99c00\\\" />\\n <loext:color loext:name=\\\"accent6\\\" loext:color=\\\"#c9211e\\\" />\\n <loext:color loext:name=\\\"hyperlink\\\" loext:color=\\\"#0000ee\\\" />\\n <loext:color loext:name=\\\"followed-hyperlink\\\" loext:color=\\\"#551a8b\\\" />\\n </loext:theme-colors>\\n </loext:theme>\\n </office:styles>\\n <office:automatic-styles>\\n <style:style style:name=\\\"MP1\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Header\\\">\\n <style:text-properties officeooo:rsid=\\\"0008951b\\\" officeooo:paragraph-rsid=\\\"0008951b\\\" />\\n </style:style>\\n <style:style style:name=\\\"MP2\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Footer\\\">\\n <style:text-properties officeooo:rsid=\\\"0008951b\\\" officeooo:paragraph-rsid=\\\"0008951b\\\" />\\n </style:style>\\n <style:page-layout style:name=\\\"Mpm1\\\">\\n <style:page-layout-properties fo:page-width=\\\"8.2681in\\\" fo:page-height=\\\"11.6929in\\\"\\n style:num-format=\\\"1\\\" style:print-orientation=\\\"portrait\\\" fo:margin-top=\\\"1in\\\"\\n fo:margin-bottom=\\\"1in\\\" fo:margin-left=\\\"1in\\\" fo:margin-right=\\\"1in\\\"\\n style:writing-mode=\\\"lr-tb\\\" style:layout-grid-color=\\\"#c0c0c0\\\"\\n style:layout-grid-lines=\\\"38\\\" style:layout-grid-base-height=\\\"0.25in\\\"\\n style:layout-grid-ruby-height=\\\"0in\\\" style:layout-grid-mode=\\\"none\\\"\\n style:layout-grid-ruby-below=\\\"false\\\" style:layout-grid-print=\\\"false\\\"\\n style:layout-grid-display=\\\"false\\\" style:layout-grid-base-width=\\\"0.1665in\\\"\\n style:layout-grid-snap-to=\\\"true\\\" style:footnote-max-height=\\\"0in\\\"\\n loext:margin-gutter=\\\"0in\\\">\\n <style:footnote-sep style:width=\\\"0.0071in\\\" style:distance-before-sep=\\\"0.0398in\\\"\\n style:distance-after-sep=\\\"0.0398in\\\" style:line-style=\\\"solid\\\"\\n style:adjustment=\\\"left\\\" style:rel-width=\\\"25%\\\" style:color=\\\"#000000\\\" />\\n </style:page-layout-properties>\\n <style:header-style>\\n <style:header-footer-properties fo:min-height=\\\"0in\\\" fo:margin-bottom=\\\"0.1965in\\\"\\n fo:background-color=\\\"transparent\\\" />\\n </style:header-style>\\n <style:footer-style>\\n <style:header-footer-properties fo:min-height=\\\"0in\\\" fo:margin-top=\\\"0.1965in\\\"\\n fo:background-color=\\\"transparent\\\" />\\n </style:footer-style>\\n </style:page-layout>\\n <style:style style:name=\\\"Mdp1\\\" style:family=\\\"drawing-page\\\">\\n <style:drawing-page-properties draw:background-size=\\\"full\\\" />\\n </style:style>\\n </office:automatic-styles>\\n <office:master-styles>\\n <style:master-page style:name=\\\"Standard\\\" style:page-layout-name=\\\"Mpm1\\\"\\n draw:style-name=\\\"Mdp1\\\" />\\n </office:master-styles>\\n</office:document-styles>\"","import {\n Block,\n BlockNoteSchema,\n BlockSchema,\n COLORS_DEFAULT,\n Exporter,\n ExporterOptions,\n InlineContentSchema,\n StyleSchema,\n StyledText,\n} from \"@blocknote/core\";\nimport { loadFileBuffer } from \"@shared/util/fileUtil.js\";\nimport { getImageDimensions } from \"@shared/util/imageUtil.js\";\nimport { BlobReader, BlobWriter, TextReader, ZipWriter } from \"@zip.js/zip.js\";\nimport { renderToString } from \"react-dom/server\";\nimport stylesXml from \"./template/styles.xml?raw\";\n\nexport class ODTExporter<\n B extends BlockSchema,\n S extends StyleSchema,\n I extends InlineContentSchema,\n> extends Exporter<\n B,\n I,\n S,\n React.ReactNode,\n React.ReactNode,\n Record<string, string>,\n React.ReactNode\n> {\n // \"Styles\" to be added to the AutomaticStyles section of the ODT file\n // Keyed by the style name\n private automaticStyles: Map<string, React.ReactNode> = new Map();\n\n // \"Pictures\" to be added to the Pictures folder in the ODT file\n // Keyed by the original image URL\n private pictures = new Map<\n string,\n {\n file: Blob;\n fileName: string;\n height: number;\n width: number;\n }\n >();\n\n private styleCounter = 0;\n\n public readonly options: ExporterOptions;\n\n constructor(\n protected readonly schema: BlockNoteSchema<B, I, S>,\n mappings: Exporter<\n NoInfer<B>,\n NoInfer<I>,\n NoInfer<S>,\n React.ReactNode,\n React.ReactNode,\n Record<string, string>,\n React.ReactNode\n >[\"mappings\"],\n options?: Partial<ExporterOptions>,\n ) {\n const defaults = {\n colors: COLORS_DEFAULT,\n } satisfies Partial<ExporterOptions>;\n\n super(schema, mappings, { ...defaults, ...options });\n this.options = { ...defaults, ...options };\n }\n\n protected async loadFonts() {\n const interFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/inter/Inter_18pt-Regular.ttf\"),\n );\n const geistMonoFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/GeistMono-Regular.ttf\"),\n );\n\n return [\n {\n name: \"Inter 18pt\",\n fileName: \"Inter_18pt-Regular.ttf\",\n data: new Blob([interFont], { type: \"font/ttf\" }),\n },\n {\n name: \"Geist Mono\",\n fileName: \"GeistMono-Regular.ttf\",\n data: new Blob([geistMonoFont], { type: \"font/ttf\" }),\n },\n ];\n }\n\n public transformStyledText(styledText: StyledText<S>): React.ReactNode {\n const stylesArray = this.mapStyles(styledText.styles);\n const styles = Object.assign({}, ...stylesArray);\n\n if (Object.keys(styles).length === 0) {\n return styledText.text;\n }\n\n const styleName = `BN_T${++this.styleCounter}`;\n\n // Store the complete style element\n this.automaticStyles.set(\n styleName,\n <style:style style:name={styleName} style:family=\"text\">\n <style:text-properties {...styles} />\n </style:style>,\n );\n\n return <text:span text:style-name={styleName}>{styledText.text}</text:span>;\n }\n\n public async transformBlocks(\n blocks: Block<B, I, S>[],\n nestingLevel = 0,\n ): Promise<Awaited<React.ReactNode>[]> {\n const ret: Awaited<React.ReactNode>[] = [];\n let numberedListIndex = 0;\n\n for (const block of blocks) {\n if (block.type === \"numberedListItem\") {\n numberedListIndex++;\n } else {\n numberedListIndex = 0;\n }\n\n if ([\"columnList\", \"column\"].includes(block.type)) {\n const children = await this.transformBlocks(block.children, 0);\n const content = await this.mapBlock(\n block as any,\n 0,\n numberedListIndex,\n children,\n );\n\n ret.push(content);\n } else {\n const children = await this.transformBlocks(\n block.children,\n nestingLevel + 1,\n );\n const content = await this.mapBlock(\n block as any,\n nestingLevel,\n numberedListIndex,\n children,\n );\n\n ret.push(content);\n if (children.length > 0) {\n ret.push(...children);\n }\n }\n }\n\n return ret;\n }\n\n public async toODTDocument(\n blocks: Block<B, I, S>[],\n options?: {\n header?: string | XMLDocument;\n footer?: string | XMLDocument;\n },\n ): Promise<Blob> {\n const xmlOptionToString = (xmlDocument: string | XMLDocument) => {\n const xmlNamespacesRegEx =\n /<([a-zA-Z0-9:]+)\\s+?(?:xml)ns(?::[a-zA-Z0-9]+)?=\".*\"(.*)>/g;\n let stringifiedDoc = \"\";\n\n if (typeof xmlDocument === \"string\") {\n stringifiedDoc = xmlDocument;\n } else {\n const serializer = new XMLSerializer();\n\n stringifiedDoc = serializer.serializeToString(xmlDocument);\n }\n\n // Detect and remove XML namespaces (already defined in the root element)\n return stringifiedDoc.replace(xmlNamespacesRegEx, \"<$1$2>\");\n };\n const blockContent = await this.transformBlocks(blocks);\n const styles = Array.from(this.automaticStyles.values());\n const pictures = Array.from(this.pictures.values());\n const fonts = await this.loadFonts();\n const header = xmlOptionToString(options?.header || \"\");\n const footer = xmlOptionToString(options?.footer || \"\");\n\n const content = (\n <office:document-content\n xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\"\n xmlns:text=\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\"\n xmlns:table=\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\"\n xmlns:draw=\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n xmlns:style=\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\"\n xmlns:fo=\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\"\n xmlns:svg=\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\"\n xmlns:loext=\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\"\n office:version=\"1.3\"\n >\n <office:font-face-decls>\n {fonts.map((font) => {\n return (\n <style:font-face\n style:name={font.name}\n svg:font-family={font.name}\n style:font-pitch=\"variable\"\n >\n <svg:font-face-src>\n <svg:font-face-uri\n xlink:href={`Fonts/${font.fileName}`}\n xlink:type=\"simple\"\n loext:font-style=\"normal\"\n loext:font-weight=\"normal\"\n >\n <svg:font-face-format svg:string=\"truetype\" />\n </svg:font-face-uri>\n </svg:font-face-src>\n </style:font-face>\n );\n })}\n </office:font-face-decls>\n <office:automatic-styles>{styles}</office:automatic-styles>\n {(header || footer) && (\n <office:master-styles>\n <style:master-page\n style:name=\"Standard\"\n style:page-layout-name=\"Mpm1\"\n draw:style-name=\"Mdp1\"\n >\n {header && (\n <style:header\n dangerouslySetInnerHTML={{\n __html: header,\n }}\n ></style:header>\n )}\n {footer && (\n <style:footer\n dangerouslySetInnerHTML={{\n __html: footer,\n }}\n ></style:footer>\n )}\n </style:master-page>\n </office:master-styles>\n )}\n <office:body>\n <office:text>{blockContent}</office:text>\n </office:body>\n </office:document-content>\n );\n\n const manifestNode = (\n <manifest:manifest\n xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\"\n manifest:version=\"1.3\"\n >\n <manifest:file-entry\n manifest:media-type=\"application/vnd.oasis.opendocument.text\"\n manifest:full-path=\"/\"\n />\n <manifest:file-entry\n manifest:media-type=\"text/xml\"\n manifest:full-path=\"content.xml\"\n />\n <manifest:file-entry\n manifest:media-type=\"text/xml\"\n manifest:full-path=\"styles.xml\"\n />\n {pictures.map((picture) => {\n return (\n <manifest:file-entry\n manifest:media-type={picture.file.type}\n manifest:full-path={`Pictures/${picture.fileName}`}\n />\n );\n })}\n {fonts.map((font) => {\n return (\n <manifest:file-entry\n manifest:media-type=\"application/x-font-ttf\"\n manifest:full-path={`Fonts/${font.fileName}`}\n />\n );\n })}\n </manifest:manifest>\n );\n const zipWriter = new ZipWriter(\n new BlobWriter(\"application/vnd.oasis.opendocument.text\"),\n );\n\n // Add mimetype first, uncompressed\n zipWriter.add(\n \"mimetype\",\n new TextReader(\"application/vnd.oasis.opendocument.text\"),\n {\n compressionMethod: 0,\n level: 0,\n dataDescriptor: false,\n extendedTimestamp: false,\n },\n );\n\n const contentXml = renderToString(content);\n const manifestXml = renderToString(manifestNode);\n\n zipWriter.add(\"content.xml\", new TextReader(contentXml));\n zipWriter.add(\"styles.xml\", new TextReader(stylesXml));\n zipWriter.add(\"META-INF/manifest.xml\", new TextReader(manifestXml));\n fonts.forEach((font) => {\n zipWriter.add(`Fonts/${font.fileName}`, new BlobReader(font.data));\n });\n pictures.forEach((picture) => {\n zipWriter.add(\n `Pictures/${picture.fileName}`,\n new BlobReader(picture.file),\n );\n });\n\n return zipWriter.close();\n }\n\n public registerStyle(style: (name: string) => React.ReactNode): string {\n const styleName = `BN_S${++this.styleCounter}`;\n this.automaticStyles.set(styleName, style(styleName));\n return styleName;\n }\n\n public async registerPicture(url: string): Promise<{\n path: string;\n mimeType: string;\n height: number;\n width: number;\n }> {\n const mimeTypeFileExtensionMap = {\n \"image/apng\": \"apng\",\n \"image/avif\": \"avif\",\n \"image/bmp\": \"bmp\",\n \"image/gif\": \"gif\",\n \"image/vnd.microsoft.icon\": \"ico\",\n \"image/jpeg\": \"jpg\",\n \"image/png\": \"png\",\n \"image/svg+xml\": \"svg\",\n \"image/tiff\": \"tiff\",\n \"image/webp\": \"webp\",\n };\n if (this.pictures.has(url)) {\n const picture = this.pictures.get(url)!;\n\n return {\n path: `Pictures/${picture.fileName}`,\n mimeType: picture.file.type,\n height: picture.height,\n width: picture.width,\n };\n }\n\n const blob = await this.resolveFile(url);\n const fileExtension =\n mimeTypeFileExtensionMap[\n blob.type as keyof typeof mimeTypeFileExtensionMap\n ] || \"png\";\n const fileName = `picture-${this.pictures.size}.${fileExtension}`;\n const { width, height } = await getImageDimensions(blob);\n\n this.pictures.set(url, {\n file: blob,\n fileName: fileName,\n height,\n width,\n });\n\n return { path: `Pictures/${fileName}`, mimeType: blob.type, height, width };\n }\n}\n"],"names":["getTabs","nestingLevel","jsx","createParagraphStyle","exporter","props","parentStyleName","styleAttributes","paragraphStyleAttributes","textStyleAttributes","paragraphStyles","textStyles","alignmentMap","backgroundColor","color","name","jsxs","createTableCellStyle","cellStyleCache","cell","key","styleName","createTableStyle","options","wrapWithLists","content","level","odtBlockMappingForDefaultSchema","block","numberedListIndex","continueNumbering","_block","_nestingLevel","_numberedListIndex","children","style","blockWithChildren","ex","column","index","odtExporter","path","mimeType","originalDimensions","width","height","captionHeight","imageFrame","tableWidthPT","totalWidth","colWidth","getCellStyleName","tableStyleName","_a","_","i","colWidthPT","row","rowIndex","c","colIndex","mapTableCell","textContent","line","Fragment","odtInlineContentMappingForDefaultSchema","ic","odtStyleMappingForDefaultSchema","val","odtDefaultSchemaMappings","loadFileBuffer","requireUrl","dataUrl","getImageDimensions","blob","bmp","imageMetaFunc","bytes","meta","stylesXml","ODTExporter","Exporter","schema","mappings","defaults","COLORS_DEFAULT","__publicField","interFont","geistMonoFont","styledText","stylesArray","styles","blocks","ret","xmlOptionToString","xmlDocument","xmlNamespacesRegEx","stringifiedDoc","blockContent","pictures","fonts","header","footer","font","manifestNode","picture","zipWriter","ZipWriter","BlobWriter","TextReader","contentXml","renderToString","manifestXml","BlobReader","url","mimeTypeFileExtensionMap","fileExtension","fileName"],"mappings":"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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACiBR,MAAMC,UAIHC,EAQR;AAAA,EAqBA,YACqBC,GACnBC,GASA5D,GACA;AACA,UAAM6D,IAAW;AAAA,MACf,QAAQC;AAAA,IACV;AAEA,UAAMH,GAAQC,GAAU,EAAE,GAAGC,GAAU,GAAG7D,GAAS;AAnC7C;AAAA;AAAA,IAAA+D,EAAA,6CAAoD,IAAI;AAIxD;AAAA;AAAA,IAAAA,EAAA,sCAAe,IAQrB;AAEM,IAAAA,EAAA,sBAAe;AAEP,IAAAA,EAAA;AAGK,SAAA,SAAAJ,GAiBnB,KAAK,UAAU,EAAE,GAAGE,GAAU,GAAG7D,EAAQ;AAAA,EAAA;AAAA,EAG3C,MAAgB,YAAY;AAC1B,UAAMgE,IAAY,MAAMjB;AAAA,MACtB,MAAM,OAAO,kCAAmD;AAAA,IAClE,GACMkB,IAAgB,MAAMlB;AAAA,MAC1B,MAAM,OAAO,iCAA4C;AAAA,IAC3D;AAEO,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAM,IAAI,KAAK,CAACiB,CAAS,GAAG,EAAE,MAAM,WAAY,CAAA;AAAA,MAClD;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAM,IAAI,KAAK,CAACC,CAAa,GAAG,EAAE,MAAM,WAAY,CAAA;AAAA,MAAA;AAAA,IAExD;AAAA,EAAA;AAAA,EAGK,oBAAoBC,GAA4C;AACrE,UAAMC,IAAc,KAAK,UAAUD,EAAW,MAAM,GAC9CE,IAAS,OAAO,OAAO,CAAC,GAAG,GAAGD,CAAW;AAE/C,QAAI,OAAO,KAAKC,CAAM,EAAE,WAAW;AACjC,aAAOF,EAAW;AAGpB,UAAMpE,IAAY,OAAO,EAAE,KAAK,YAAY;AAG5C,gBAAK,gBAAgB;AAAA,MACnBA;AAAA,MACA,gBAAAnB,EAAC,eAAY,EAAA,cAAYmB,GAAW,gBAAa,QAC/C,UAAC,gBAAAnB,EAAA,yBAAA,EAAuB,GAAGyF,EAAQ,CAAA,EACrC,CAAA;AAAA,IACF,GAEQ,gBAAAzF,EAAA,aAAA,EAAU,mBAAiBmB,GAAY,YAAW,MAAK;AAAA,EAAA;AAAA,EAGjE,MAAa,gBACXuE,GACA3F,IAAe,GACsB;AACrC,UAAM4F,IAAkC,CAAC;AACzC,QAAIhE,IAAoB;AAExB,eAAWD,KAASgE;AAOlB,UANIhE,EAAM,SAAS,qBACjBC,MAEoBA,IAAA,GAGlB,CAAC,cAAc,QAAQ,EAAE,SAASD,EAAM,IAAI,GAAG;AACjD,cAAMM,IAAW,MAAM,KAAK,gBAAgBN,EAAM,UAAU,CAAC,GACvDH,IAAU,MAAM,KAAK;AAAA,UACzBG;AAAA,UACA;AAAA,UACAC;AAAA,UACAK;AAAA,QACF;AAEA,QAAA2D,EAAI,KAAKpE,CAAO;AAAA,MAAA,OACX;AACC,cAAAS,IAAW,MAAM,KAAK;AAAA,UAC1BN,EAAM;AAAA,UACN3B,IAAe;AAAA,QACjB,GACMwB,IAAU,MAAM,KAAK;AAAA,UACzBG;AAAA,UACA3B;AAAA,UACA4B;AAAA,UACAK;AAAA,QACF;AAEA,QAAA2D,EAAI,KAAKpE,CAAO,GACZS,EAAS,SAAS,KAChB2D,EAAA,KAAK,GAAG3D,CAAQ;AAAA,MACtB;AAIG,WAAA2D;AAAA,EAAA;AAAA,EAGT,MAAa,cACXD,GACArE,GAIe;AACT,UAAAuE,IAAoB,CAACC,MAAsC;AAC/D,YAAMC,IACJ;AACF,UAAIC,IAAiB;AAEjB,aAAA,OAAOF,KAAgB,WACRE,IAAAF,IAIAE,IAFE,IAAI,cAAc,EAET,kBAAkBF,CAAW,GAIpDE,EAAe,QAAQD,GAAoB,QAAQ;AAAA,IAC5D,GACME,IAAe,MAAM,KAAK,gBAAgBN,CAAM,GAChDD,IAAS,MAAM,KAAK,KAAK,gBAAgB,QAAQ,GACjDQ,IAAW,MAAM,KAAK,KAAK,SAAS,QAAQ,GAC5CC,IAAQ,MAAM,KAAK,UAAU,GAC7BC,IAASP,GAAkBvE,KAAA,gBAAAA,EAAS,WAAU,EAAE,GAChD+E,IAASR,GAAkBvE,KAAA,gBAAAA,EAAS,WAAU,EAAE,GAEhDE,IACJ,gBAAAT;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,gBAAa;AAAA,QACb,cAAW;AAAA,QACX,eAAY;AAAA,QACZ,cAAW;AAAA,QACX,eAAY;AAAA,QACZ,eAAY;AAAA,QACZ,YAAS;AAAA,QACT,aAAU;AAAA,QACV,eAAY;AAAA,QACZ,kBAAe;AAAA,QAEf,UAAA;AAAA,UAAA,gBAAAd,EAAC,0BACE,EAAA,UAAAkG,EAAM,IAAI,CAACG,MAER,gBAAArG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,cAAYqG,EAAK;AAAA,cACjB,mBAAiBA,EAAK;AAAA,cACtB,oBAAiB;AAAA,cAEjB,4BAAC,qBACC,EAAA,UAAA,gBAAArG;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,cAAY,SAASqG,EAAK,QAAQ;AAAA,kBAClC,cAAW;AAAA,kBACX,oBAAiB;AAAA,kBACjB,qBAAkB;AAAA,kBAElB,UAAA,gBAAArG,EAAC,wBAAqB,EAAA,cAAW,WAAW,CAAA;AAAA,gBAAA;AAAA,cAAA,EAEhD,CAAA;AAAA,YAAA;AAAA,UACF,CAEH,GACH;AAAA,UACA,gBAAAA,EAAC,6BAAyB,UAAOyF,EAAA,CAAA;AAAA,WAC/BU,KAAUC,MACV,gBAAApG,EAAC,wBACC,EAAA,UAAA,gBAAAc;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,cAAW;AAAA,cACX,0BAAuB;AAAA,cACvB,mBAAgB;AAAA,cAEf,UAAA;AAAA,gBACCqF,KAAA,gBAAAnG;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,yBAAyB;AAAA,sBACvB,QAAQmG;AAAA,oBAAA;AAAA,kBACV;AAAA,gBACD;AAAA,gBAEFC,KACC,gBAAApG;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,yBAAyB;AAAA,sBACvB,QAAQoG;AAAA,oBAAA;AAAA,kBACV;AAAA,gBAAA;AAAA,cACD;AAAA,YAAA;AAAA,UAAA,GAGP;AAAA,UAED,gBAAApG,EAAA,eAAA,EACC,UAAC,gBAAAA,EAAA,eAAA,EAAa,aAAa,EAC7B,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF,GAGIsG,IACJ,gBAAAxF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,kBAAe;AAAA,QACf,oBAAiB;AAAA,QAEjB,UAAA;AAAA,UAAA,gBAAAd;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,uBAAoB;AAAA,cACpB,sBAAmB;AAAA,YAAA;AAAA,UACrB;AAAA,UACA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,uBAAoB;AAAA,cACpB,sBAAmB;AAAA,YAAA;AAAA,UACrB;AAAA,UACA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,uBAAoB;AAAA,cACpB,sBAAmB;AAAA,YAAA;AAAA,UACrB;AAAA,UACCiG,EAAS,IAAI,CAACM,MAEX,gBAAAvG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,uBAAqBuG,EAAQ,KAAK;AAAA,cAClC,sBAAoB,YAAYA,EAAQ,QAAQ;AAAA,YAAA;AAAA,UAClD,CAEH;AAAA,UACAL,EAAM,IAAI,CAACG,MAER,gBAAArG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,uBAAoB;AAAA,cACpB,sBAAoB,SAASqG,EAAK,QAAQ;AAAA,YAAA;AAAA,UAC5C,CAEH;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEIG,IAAY,IAAIC;AAAA,MACpB,IAAIC,EAAW,yCAAyC;AAAA,IAC1D;AAGU,IAAAF,EAAA;AAAA,MACR;AAAA,MACA,IAAIG,EAAW,yCAAyC;AAAA,MACxD;AAAA,QACE,mBAAmB;AAAA,QACnB,OAAO;AAAA,QACP,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,MAAA;AAAA,IAEvB;AAEM,UAAAC,IAAaC,EAAetF,CAAO,GACnCuF,IAAcD,EAAeP,CAAY;AAE/C,WAAAE,EAAU,IAAI,eAAe,IAAIG,EAAWC,CAAU,CAAC,GACvDJ,EAAU,IAAI,cAAc,IAAIG,EAAW9B,CAAS,CAAC,GACrD2B,EAAU,IAAI,yBAAyB,IAAIG,EAAWG,CAAW,CAAC,GAC5DZ,EAAA,QAAQ,CAACG,MAAS;AACZ,MAAAG,EAAA,IAAI,SAASH,EAAK,QAAQ,IAAI,IAAIU,EAAWV,EAAK,IAAI,CAAC;AAAA,IAAA,CAClE,GACQJ,EAAA,QAAQ,CAACM,MAAY;AAClB,MAAAC,EAAA;AAAA,QACR,YAAYD,EAAQ,QAAQ;AAAA,QAC5B,IAAIQ,EAAWR,EAAQ,IAAI;AAAA,MAC7B;AAAA,IAAA,CACD,GAEMC,EAAU,MAAM;AAAA,EAAA;AAAA,EAGlB,cAAcvE,GAAkD;AACrE,UAAMd,IAAY,OAAO,EAAE,KAAK,YAAY;AAC5C,gBAAK,gBAAgB,IAAIA,GAAWc,EAAMd,CAAS,CAAC,GAC7CA;AAAA,EAAA;AAAA,EAGT,MAAa,gBAAgB6F,GAK1B;AACD,UAAMC,IAA2B;AAAA,MAC/B,cAAc;AAAA,MACd,cAAc;AAAA,MACd,aAAa;AAAA,MACb,aAAa;AAAA,MACb,4BAA4B;AAAA,MAC5B,cAAc;AAAA,MACd,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,cAAc;AAAA,IAChB;AACA,QAAI,KAAK,SAAS,IAAID,CAAG,GAAG;AAC1B,YAAMT,IAAU,KAAK,SAAS,IAAIS,CAAG;AAE9B,aAAA;AAAA,QACL,MAAM,YAAYT,EAAQ,QAAQ;AAAA,QAClC,UAAUA,EAAQ,KAAK;AAAA,QACvB,QAAQA,EAAQ;AAAA,QAChB,OAAOA,EAAQ;AAAA,MACjB;AAAA,IAAA;AAGF,UAAM/B,IAAO,MAAM,KAAK,YAAYwC,CAAG,GACjCE,IACJD,EACEzC,EAAK,IACP,KAAK,OACD2C,IAAW,WAAW,KAAK,SAAS,IAAI,IAAID,CAAa,IACzD,EAAE,OAAAxE,GAAO,QAAAC,EAAW,IAAA,MAAM4B,EAAmBC,CAAI;AAElD,gBAAA,SAAS,IAAIwC,GAAK;AAAA,MACrB,MAAMxC;AAAA,MACN,UAAA2C;AAAA,MACA,QAAAxE;AAAA,MACA,OAAAD;AAAA,IAAA,CACD,GAEM,EAAE,MAAM,YAAYyE,CAAQ,IAAI,UAAU3C,EAAK,MAAM,QAAA7B,GAAQ,OAAAD,EAAM;AAAA,EAAA;AAE9E;"}
1
+ {"version":3,"file":"blocknote-xl-odt-exporter.js","sources":["../src/odt/defaultSchema/blocks.tsx","../src/odt/defaultSchema/inlineContent.tsx","../src/odt/defaultSchema/styles.ts","../src/odt/defaultSchema/index.ts","../../../shared/util/fileUtil.ts","../../../shared/util/imageUtil.ts","../src/odt/template/styles.xml?raw","../src/odt/odtExporter.tsx"],"sourcesContent":["import {\n BlockFromConfig,\n BlockMapping,\n createPageBreakBlockConfig,\n DefaultBlockSchema,\n DefaultProps,\n mapTableCell,\n StyledText,\n TableCell,\n} from \"@blocknote/core\";\nimport { ODTExporter } from \"../odtExporter.js\";\nimport { multiColumnSchema } from \"@blocknote/xl-multi-column\";\n\nexport const getTabs = (nestingLevel: number) => {\n return Array.from({ length: nestingLevel }, () => <text:tab />);\n};\n\nconst createParagraphStyle = (\n exporter: ODTExporter<any, any, any>,\n props: Partial<DefaultProps>,\n parentStyleName = \"Standard\",\n styleAttributes: Record<string, string> = {},\n paragraphStyleAttributes: Record<string, string> = {},\n textStyleAttributes: Record<string, string> = {},\n) => {\n const paragraphStyles: Record<string, string> = {\n ...paragraphStyleAttributes,\n };\n const textStyles: Record<string, string> = { ...textStyleAttributes };\n\n if (props.textAlignment && props.textAlignment !== \"left\") {\n const alignmentMap = {\n left: \"start\",\n center: \"center\",\n right: \"end\",\n justify: \"justify\",\n };\n paragraphStyles[\"fo:text-align\"] =\n alignmentMap[props.textAlignment as keyof typeof alignmentMap];\n }\n\n const backgroundColor =\n props.backgroundColor && props.backgroundColor !== \"default\"\n ? exporter.options.colors[\n props.backgroundColor as keyof typeof exporter.options.colors\n ].background\n : undefined;\n\n if (backgroundColor) {\n paragraphStyles[\"fo:background-color\"] = backgroundColor;\n }\n\n if (props.textColor && props.textColor !== \"default\") {\n const color =\n exporter.options.colors[\n props.textColor as keyof typeof exporter.options.colors\n ].text;\n textStyles[\"fo:color\"] = color;\n }\n\n if (\n !backgroundColor &&\n !Object.keys(styleAttributes).length &&\n !Object.keys(paragraphStyles).length &&\n !Object.keys(textStyles).length\n ) {\n return parentStyleName || \"Standard\";\n }\n\n return exporter.registerStyle((name) => (\n <style:style\n style:family=\"paragraph\"\n style:name={name}\n style:parent-style-name={parentStyleName}\n {...styleAttributes}\n >\n {backgroundColor && (\n <loext:graphic-properties\n draw:fill=\"solid\"\n draw:fill-color={backgroundColor}\n />\n )}\n {Object.keys(paragraphStyles).length > 0 && (\n <style:paragraph-properties {...paragraphStyles} />\n )}\n {Object.keys(textStyles).length > 0 && (\n <style:text-properties {...textStyles}></style:text-properties>\n )}\n </style:style>\n ));\n};\n\nconst createTableCellStyle = (\n exporter: ODTExporter<any, any, any>,\n): ((cell: TableCell<any, any>) => string) => {\n // To not create a new style for each cell within a table, we cache the styles based on unique cell properties\n const cellStyleCache = new Map<string, string>();\n\n return (cell: TableCell<any, any>) => {\n const key = `${cell.props.backgroundColor}-${cell.props.textColor}-${cell.props.textAlignment}`;\n\n if (cellStyleCache.has(key)) {\n return cellStyleCache.get(key)!;\n }\n\n const styleName = exporter.registerStyle((name) => (\n <style:style style:family=\"table-cell\" style:name={name}>\n <style:table-cell-properties\n fo:border=\"0.5pt solid #000000\"\n style:writing-mode=\"lr-tb\"\n fo:padding-top=\"0in\"\n fo:padding-left=\"0.075in\"\n fo:padding-bottom=\"0in\"\n fo:padding-right=\"0.075in\"\n fo:background-color={\n cell.props.backgroundColor !== \"default\" &&\n cell.props.backgroundColor\n ? exporter.options.colors[\n cell.props\n .backgroundColor as keyof typeof exporter.options.colors\n ].background\n : undefined\n }\n // TODO This is not applying because the children set their own colors\n fo:color={\n cell.props.textColor !== \"default\" && cell.props.textColor\n ? exporter.options.colors[\n cell.props.textColor as keyof typeof exporter.options.colors\n ].text\n : undefined\n }\n />\n </style:style>\n ));\n\n cellStyleCache.set(key, styleName);\n\n return styleName;\n };\n};\nconst createTableStyle = (\n exporter: ODTExporter<any, any, any>,\n options: { width: number },\n) => {\n const tableStyleName = exporter.registerStyle((name) => (\n <style:style style:family=\"table\" style:name={name}>\n <style:table-properties\n table:align=\"left\"\n style:writing-mode=\"lr-tb\"\n style:width={`${options.width}pt`}\n />\n </style:style>\n ));\n\n return tableStyleName;\n};\n\nconst wrapWithLists = (\n content: React.ReactNode,\n level: number,\n): React.ReactNode => {\n if (level <= 0) {\n return content;\n }\n return (\n <text:list>\n <text:list-item>{wrapWithLists(content, level - 1)}</text:list-item>\n </text:list>\n );\n};\n\nexport const odtBlockMappingForDefaultSchema: BlockMapping<\n DefaultBlockSchema & {\n pageBreak: ReturnType<typeof createPageBreakBlockConfig>;\n } & typeof multiColumnSchema.blockSchema,\n any,\n any,\n React.ReactNode,\n React.ReactNode\n> = {\n paragraph: (block, exporter, nestingLevel) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n\n return (\n <text:p text:style-name={styleName}>\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n );\n },\n\n heading: (block, exporter, nestingLevel) => {\n const customStyleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Heading_20_\" + block.props.level,\n );\n const styleName = customStyleName;\n\n return (\n <text:h\n text:outline-level={`${block.props.level}`}\n text:style-name={styleName}\n >\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:h>\n );\n },\n\n quote: (block, exporter, nestingLevel) => {\n const customStyleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n {},\n {\n \"fo:border-left\": \"2pt solid #7D797A\",\n \"fo:padding-left\": \"0.25in\",\n },\n {\n \"fo:color\": \"#7D797A\",\n },\n );\n const styleName = customStyleName;\n\n return (\n <text:p text:style-name={styleName}>\n {getTabs(nestingLevel)}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n );\n },\n\n /**\n * Note: we wrap each list item in it's own list element.\n * This is not the cleanest solution, it would be nicer to recognize subsequent\n * list items and wrap them in the same list element.\n *\n * However, Word DocX -> ODT export actually does the same thing, so\n * for now it seems reasonable.\n *\n * (LibreOffice does nicely wrap the list items in the same list element)\n */\n toggleListItem: (block, exporter) => (\n <text:p text:style-name=\"Standard\">\n {\"> \"}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n ),\n\n bulletListItem: (block, exporter, nestingLevel) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n { \"style:list-style-name\": \"WWNum1\" },\n );\n return (\n <text:list text:style-name=\"WWNum1\">\n <text:list-item>\n {wrapWithLists(\n <text:p text:style-name={styleName}>\n {exporter.transformInlineContent(block.content)}\n </text:p>,\n nestingLevel,\n )}\n </text:list-item>\n </text:list>\n );\n },\n\n numberedListItem: (block, exporter, nestingLevel, numberedListIndex) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n // continue numbering from the previous list item if this is not the first item\n const continueNumbering = (numberedListIndex || 0) > 1 ? \"true\" : \"false\";\n\n return (\n <text:list\n text:style-name=\"No_20_List\"\n text:continue-numbering={continueNumbering}\n >\n <text:list-item\n {...(continueNumbering === \"false\" && {\n \"text:start-value\": block.props.start,\n })}\n >\n {wrapWithLists(\n <text:p text:style-name={styleName}>\n {exporter.transformInlineContent(block.content)}\n </text:p>,\n nestingLevel,\n )}\n </text:list-item>\n </text:list>\n );\n },\n\n checkListItem: (block, exporter) => (\n <text:p text:style-name=\"Standard\">\n {block.props.checked ? \"☒ \" : \"☐ \"}\n {exporter.transformInlineContent(block.content)}\n </text:p>\n ),\n\n pageBreak: async () => {\n return <text:p text:style-name=\"PageBreak\" />;\n },\n\n divider: (block, exporter) => {\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n \"Standard\",\n {},\n {\n \"fo:border-top\": \"1pt solid #cccccc\",\n \"fo:margin-top\": \"11pt\",\n \"fo:margin-bottom\": \"12pt\",\n \"fo:padding-top\": \"0pt\",\n \"fo:padding-bottom\": \"0pt\",\n },\n );\n\n return <text:p text:style-name={styleName} />;\n },\n\n column: (_block, exporter, _nestingLevel, _numberedListIndex, children) => {\n const ex = exporter as ODTExporter<any, any, any>;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-cell\">\n <style:table-cell-properties\n style:writing-mode=\"lr-tb\"\n fo:border=\"none\"\n fo:padding-top=\"0in\"\n fo:padding-left=\"0.075in\"\n fo:padding-bottom=\"0in\"\n fo:padding-right=\"0.075in\"\n />\n </style:style>\n ));\n\n return (\n <table:table-cell table:style-name={style}>{children}</table:table-cell>\n );\n },\n columnList: (\n block,\n exporter,\n _nestingLevel,\n _numberedListIndex,\n children,\n ) => {\n const blockWithChildren = block as BlockFromConfig<\n {\n type: \"columnList\";\n content: \"none\";\n propSchema: Record<string, any>;\n },\n any,\n any\n >;\n const ex = exporter as ODTExporter<any, any, any>;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table\">\n <style:table-properties\n table:align=\"margins\"\n style:writing-mode=\"lr-tb\"\n />\n </style:style>\n ));\n\n return (\n <table:table table:name={block.id} table:style-name={style}>\n {(blockWithChildren.children || []).map((column, index) => {\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-column\">\n <style:table-column-properties\n style:rel-column-width={`${column.props.width * 100}*`}\n />\n </style:style>\n ));\n\n return <table:table-column table:style-name={style} key={index} />;\n })}\n <table:table-row>{children}</table:table-row>\n </table:table>\n );\n },\n\n image: async (block, exporter) => {\n const odtExporter = exporter as ODTExporter<any, any, any>;\n\n const { path, mimeType, ...originalDimensions } =\n await odtExporter.registerPicture(block.props.url);\n const styleName = createParagraphStyle(\n exporter as ODTExporter<any, any, any>,\n block.props,\n );\n const width = block.props.previewWidth || originalDimensions.width;\n const height =\n (originalDimensions.height / originalDimensions.width) * width;\n const captionHeight = 20;\n const imageFrame = (\n <text:p text:style-name={block.props.caption ? \"Caption\" : styleName}>\n <draw:frame\n draw:style-name=\"Frame\"\n style:rel-height=\"scale\"\n svg:width={`${width}px`}\n svg:height={`${height}px`}\n style:rel-width={block.props.caption ? \"100%\" : `${width}px`}\n {...(!block.props.caption && {\n \"text:anchor-type\": \"as-char\",\n })}\n >\n <draw:image\n xlink:type=\"simple\"\n xlink:show=\"embed\"\n xlink:actuate=\"onLoad\"\n xlink:href={path}\n draw:mime-type={mimeType}\n />\n </draw:frame>\n <text:line-break />\n <text:span text:style-name=\"Caption\">{block.props.caption}</text:span>\n </text:p>\n );\n\n if (block.props.caption) {\n return (\n <text:p text:style-name={styleName}>\n <draw:frame\n draw:style-name=\"Frame\"\n style:rel-height=\"scale\"\n style:rel-width={`${width}px`}\n svg:width={`${width}px`}\n svg:height={`${height + captionHeight}px`}\n text:anchor-type=\"as-char\"\n >\n <draw:text-box>{imageFrame}</draw:text-box>\n </draw:frame>\n </text:p>\n );\n }\n\n return imageFrame;\n },\n\n table: (block, exporter) => {\n const DEFAULT_COLUMN_WIDTH_PX = 120;\n const tableWidthPX =\n block.content.columnWidths.reduce(\n (totalWidth, colWidth) =>\n (totalWidth || 0) + (colWidth || DEFAULT_COLUMN_WIDTH_PX),\n 0,\n ) || 0;\n const tableWidthPT = tableWidthPX * 0.75;\n const ex = exporter as ODTExporter<any, any, any>;\n const getCellStyleName = createTableCellStyle(ex);\n const tableStyleName = createTableStyle(ex, { width: tableWidthPT });\n\n return (\n <table:table table:name={block.id} table:style-name={tableStyleName}>\n {block.content.rows[0]?.cells.map((_, i) => {\n const colWidthPX =\n block.content.columnWidths[i] || DEFAULT_COLUMN_WIDTH_PX;\n const colWidthPT = colWidthPX * 0.75;\n const style = ex.registerStyle((name) => (\n <style:style style:name={name} style:family=\"table-column\">\n <style:table-column-properties\n style:column-width={`${colWidthPT}pt`}\n />\n </style:style>\n ));\n return <table:table-column table:style-name={style} key={i} />;\n })}\n {block.content.rows.map((row, rowIndex) => (\n <table:table-row key={rowIndex}>\n {row.cells.map((c, colIndex) => {\n const cell = mapTableCell(c);\n return (\n <table:table-cell\n key={`${rowIndex}-${colIndex}`}\n table:style-name={getCellStyleName(cell)}\n office:value-type=\"string\"\n style:text-align-source=\"fix\"\n style:paragraph-properties-text-align={\n cell.props.textAlignment\n }\n >\n <text:p text:style-name=\"Standard\">\n {exporter.transformInlineContent(cell.content)}\n </text:p>\n </table:table-cell>\n );\n })}\n </table:table-row>\n ))}\n </table:table>\n );\n },\n\n codeBlock: (block) => {\n const textContent = (block.content as StyledText<any>[])[0]?.text || \"\";\n\n return (\n <text:p text:style-name=\"Codeblock\">\n {...textContent.split(\"\\n\").map((line, index) => {\n return (\n <>\n {index !== 0 && <text:line-break />}\n {line}\n </>\n );\n })}\n </text:p>\n );\n },\n\n file: async (block) => {\n return (\n <>\n <text:p style:style-name=\"Standard\">\n {block.props.url ? (\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">\n Open file\n </text:span>\n </text:a>\n ) : (\n \"Open file\"\n )}\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n );\n },\n\n video: (block) => (\n <>\n <text:p style:style-name=\"Standard\">\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">Open video</text:span>\n </text:a>\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n ),\n\n audio: (block) => (\n <>\n <text:p style:style-name=\"Standard\">\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={block.props.url}\n >\n <text:span text:style-name=\"Internet_20_link\">Open audio</text:span>\n </text:a>\n </text:p>\n {block.props.caption && (\n <text:p text:style-name=\"Caption\">{block.props.caption}</text:p>\n )}\n </>\n ),\n};\n","import {\n DefaultInlineContentSchema,\n InlineContentMapping,\n} from \"@blocknote/core\";\n\nexport const odtInlineContentMappingForDefaultSchema: InlineContentMapping<\n DefaultInlineContentSchema,\n any,\n React.JSX.Element,\n React.JSX.Element\n> = {\n link: (ic, exporter) => {\n const content = ic.content.map((c) => exporter.transformStyledText(c));\n\n return (\n <text:a\n xlink:type=\"simple\"\n text:style-name=\"Internet_20_link\"\n office:target-frame-name=\"_top\"\n xlink:show=\"replace\"\n xlink:href={ic.href}\n >\n {content}\n </text:a>\n );\n },\n\n text: (ic, exporter) => {\n return exporter.transformStyledText(ic);\n },\n};\n","import { DefaultStyleSchema, StyleMapping } from \"@blocknote/core\";\nexport const odtStyleMappingForDefaultSchema: StyleMapping<\n DefaultStyleSchema,\n Record<string, string>\n> = {\n bold: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"fo:font-weight\": \"bold\" };\n },\n\n italic: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"fo:font-style\": \"italic\" };\n },\n\n underline: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:text-underline-style\": \"solid\" };\n },\n\n strike: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:text-line-through-style\": \"solid\" };\n },\n\n textColor: (val, exporter): Record<string, string> => {\n if (!val) {\n return {};\n }\n const color =\n exporter.options.colors[val as keyof typeof exporter.options.colors].text;\n return { \"fo:color\": color };\n },\n\n backgroundColor: (val, exporter): Record<string, string> => {\n if (!val) {\n return {};\n }\n const color =\n exporter.options.colors[val as keyof typeof exporter.options.colors]\n .background;\n return { \"fo:background-color\": color };\n },\n\n code: (val): Record<string, string> => {\n if (!val) {\n return {};\n }\n return { \"style:font-name\": \"Courier New\" };\n },\n};\n","import { odtBlockMappingForDefaultSchema } from \"./blocks.js\";\nimport { odtInlineContentMappingForDefaultSchema } from \"./inlineContent.js\";\nimport { odtStyleMappingForDefaultSchema } from \"./styles.js\";\n\nexport const odtDefaultSchemaMappings = {\n blockMapping: odtBlockMappingForDefaultSchema,\n inlineContentMapping: odtInlineContentMappingForDefaultSchema,\n styleMapping: odtStyleMappingForDefaultSchema,\n};\n","/**\n *\n * Helper functions so that we can import files both on vitest, browser and node\n * TODO: should find a way to test automatically in all environments\n */\n\nexport async function loadFileDataUrl(\n requireUrl: { default: string },\n mimeType: string,\n) {\n if (import.meta.env.NODE_ENV === \"test\") {\n const buffer = await loadFileBuffer(requireUrl);\n const fileBase64 = buffer.toString(\"base64\");\n\n const dataUrl = `data:${mimeType};base64,${fileBase64}`;\n return dataUrl;\n } else {\n // in browser, this is already a data url\n return requireUrl.default as string;\n }\n}\n\nexport async function loadFontDataUrl(requireUrl: { default: string }) {\n return loadFileDataUrl(requireUrl, \"font/ttf\");\n}\n\nexport async function loadFileBuffer(requireUrl: {\n default: string;\n}): Promise<Buffer | ArrayBuffer> {\n if (import.meta.env.NODE_ENV === \"test\") {\n // in vitest, this is the url we need to load with readfilesync\n // eslint-disable-next-line\n const fs = require(\"fs\");\n let url = requireUrl.default;\n\n if (url.startsWith(\"/@fs/\")) {\n url = url.substring(\"/@fs\".length);\n }\n // On Windows, vite/vitest may yield paths like \"/C:/...\" after removing /@fs\n // Node on Windows treats paths starting with \"/\" as relative to current drive,\n // which would produce \"C:\\C:\\...\". Strip leading slash when followed by a drive letter.\n if (/^\\/[A-Za-z]:/.test(url)) {\n url = url.slice(1);\n }\n const buffer = fs.readFileSync(url);\n return buffer;\n } else {\n // in browser, this is already a data url\n const dataUrl = requireUrl.default as string;\n // convert to buffer on browser\n const response = await fetch(dataUrl);\n const arrayBuffer = await response.arrayBuffer();\n return arrayBuffer;\n }\n}\n\n/**\n * usage:\n * \n * await loadFontDataUrl(\n await import(\"../fonts/inter/Inter_18pt-Italic.ttf\")\n );\n */\n","export async function getImageDimensions(blob: Blob) {\n if (typeof window !== \"undefined\" && import.meta.env.NODE_ENV !== \"test\") {\n const bmp = await createImageBitmap(blob);\n const { width, height } = bmp;\n bmp.close(); // free memory\n return { width, height };\n } else {\n // node or vitest\n const imageMetaFunc = (await import(\"image-meta\")).imageMeta;\n const bytes = new Uint8Array(await blob.arrayBuffer());\n const meta = imageMetaFunc(bytes);\n if (!meta.width || !meta.height) {\n throw new Error(\"Image dimensions not found\");\n }\n return { width: meta.width, height: meta.height };\n }\n}\n","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n<office:document-styles xmlns:css3t=\\\"http://www.w3.org/TR/css3-text/\\\"\\n xmlns:grddl=\\\"http://www.w3.org/2003/g/data-view#\\\" xmlns:xhtml=\\\"http://www.w3.org/1999/xhtml\\\"\\n xmlns:dom=\\\"http://www.w3.org/2001/xml-events\\\"\\n xmlns:script=\\\"urn:oasis:names:tc:opendocument:xmlns:script:1.0\\\"\\n xmlns:form=\\\"urn:oasis:names:tc:opendocument:xmlns:form:1.0\\\"\\n xmlns:math=\\\"http://www.w3.org/1998/Math/MathML\\\"\\n xmlns:number=\\\"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\\\"\\n xmlns:field=\\\"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\\\"\\n xmlns:meta=\\\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\\\"\\n xmlns:loext=\\\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\\\"\\n xmlns:officeooo=\\\"http://openoffice.org/2009/office\\\"\\n xmlns:table=\\\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\\\"\\n xmlns:chart=\\\"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\\\"\\n xmlns:svg=\\\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\\\"\\n xmlns:rpt=\\\"http://openoffice.org/2005/report\\\"\\n xmlns:dr3d=\\\"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\\\"\\n xmlns:tableooo=\\\"http://openoffice.org/2009/table\\\"\\n xmlns:draw=\\\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\\\"\\n xmlns:of=\\\"urn:oasis:names:tc:opendocument:xmlns:of:1.2\\\"\\n xmlns:text=\\\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\\\"\\n xmlns:style=\\\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\\\"\\n xmlns:dc=\\\"http://purl.org/dc/elements/1.1/\\\"\\n xmlns:calcext=\\\"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\\\"\\n xmlns:oooc=\\\"http://openoffice.org/2004/calc\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\\n xmlns:drawooo=\\\"http://openoffice.org/2010/draw\\\" xmlns:ooow=\\\"http://openoffice.org/2004/writer\\\"\\n xmlns:fo=\\\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\\\"\\n xmlns:ooo=\\\"http://openoffice.org/2004/office\\\"\\n xmlns:office=\\\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\\\" office:version=\\\"1.3\\\">\\n <office:font-face-decls>\\n <style:font-face style:name=\\\"Geist Mono\\\" svg:font-family=\\\"Geist Mono\\\" />\\n <style:font-face style:name=\\\"Inter 18pt\\\" svg:font-family=\\\"Inter 18pt\\\"\\n style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Liberation Serif\\\"\\n svg:font-family=\\\"&apos;Liberation Serif&apos;\\\" style:font-family-generic=\\\"roman\\\"\\n style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"OpenSymbol\\\" svg:font-family=\\\"OpenSymbol\\\"\\n style:font-charset=\\\"x-symbol\\\" />\\n <style:font-face style:name=\\\"PingFang SC\\\" svg:font-family=\\\"&apos;PingFang SC&apos;\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Tahoma\\\" svg:font-family=\\\"Tahoma\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n <style:font-face style:name=\\\"Times New Roman (Body CS)\\\"\\n svg:font-family=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic=\\\"system\\\" style:font-pitch=\\\"variable\\\" />\\n </office:font-face-decls>\\n <office:styles>\\n <draw:gradient draw:name=\\\"Gradient_20_1\\\" draw:display-name=\\\"Gradient 1\\\" draw:style=\\\"linear\\\"\\n draw:start-color=\\\"#000000\\\" draw:end-color=\\\"#ffffff\\\" draw:start-intensity=\\\"100%\\\"\\n draw:end-intensity=\\\"100%\\\" draw:angle=\\\"0deg\\\" draw:border=\\\"0%\\\">\\n <loext:gradient-stop svg:offset=\\\"0\\\" loext:color-type=\\\"rgb\\\" loext:color-value=\\\"#000000\\\" />\\n <loext:gradient-stop svg:offset=\\\"1\\\" loext:color-type=\\\"rgb\\\" loext:color-value=\\\"#ffffff\\\" />\\n </draw:gradient>\\n <draw:hatch draw:name=\\\"Red_20_90_20_Degrees_20_Crossed_20_1\\\"\\n draw:display-name=\\\"Red 90 Degrees Crossed 1\\\" draw:style=\\\"single\\\" draw:color=\\\"#3465a4\\\"\\n draw:distance=\\\"0.0079in\\\" draw:rotation=\\\"0\\\" />\\n <style:default-style style:family=\\\"graphic\\\">\\n <style:graphic-properties svg:stroke-color=\\\"#3465a4\\\" draw:fill-color=\\\"#729fcf\\\"\\n fo:wrap-option=\\\"no-wrap\\\" draw:shadow-offset-x=\\\"0.1181in\\\"\\n draw:shadow-offset-y=\\\"0.1181in\\\" draw:start-line-spacing-horizontal=\\\"0.1114in\\\"\\n draw:start-line-spacing-vertical=\\\"0.1114in\\\"\\n draw:end-line-spacing-horizontal=\\\"0.1114in\\\"\\n draw:end-line-spacing-vertical=\\\"0.1114in\\\" style:flow-with-text=\\\"false\\\" />\\n <style:paragraph-properties style:text-autospace=\\\"ideograph-alpha\\\"\\n style:line-break=\\\"strict\\\" loext:tab-stop-distance=\\\"0in\\\" style:writing-mode=\\\"lr-tb\\\"\\n style:font-independent-line-spacing=\\\"false\\\">\\n <style:tab-stops />\\n </style:paragraph-properties>\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:use-window-font-color=\\\"true\\\" loext:opacity=\\\"0%\\\"\\n fo:font-size=\\\"12pt\\\" fo:language=\\\"en\\\" fo:country=\\\"NL\\\"\\n style:letter-kerning=\\\"true\\\" style:font-size-asian=\\\"12pt\\\"\\n style:language-asian=\\\"en\\\" style:country-asian=\\\"GB\\\"\\n style:font-size-complex=\\\"12pt\\\" style:language-complex=\\\"ar\\\"\\n style:country-complex=\\\"SA\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"paragraph\\\">\\n <style:paragraph-properties fo:hyphenation-ladder-count=\\\"no-limit\\\"\\n fo:hyphenation-keep=\\\"auto\\\" loext:hyphenation-keep-type=\\\"column\\\"\\n style:text-autospace=\\\"ideograph-alpha\\\" style:punctuation-wrap=\\\"hanging\\\"\\n style:line-break=\\\"strict\\\" style:tab-stop-distance=\\\"0.139in\\\"\\n style:writing-mode=\\\"page\\\" />\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:use-window-font-color=\\\"true\\\" loext:opacity=\\\"0%\\\"\\n fo:font-size=\\\"12pt\\\" fo:language=\\\"en\\\" fo:country=\\\"NL\\\"\\n style:letter-kerning=\\\"true\\\" style:font-size-asian=\\\"12pt\\\"\\n style:language-asian=\\\"en\\\" style:country-asian=\\\"GB\\\"\\n style:font-size-complex=\\\"12pt\\\" style:language-complex=\\\"ar\\\"\\n style:country-complex=\\\"SA\\\" fo:hyphenate=\\\"false\\\" fo:hyphenation-remain-char-count=\\\"2\\\"\\n fo:hyphenation-push-char-count=\\\"2\\\" loext:hyphenation-no-caps=\\\"false\\\"\\n loext:hyphenation-no-last-word=\\\"false\\\" loext:hyphenation-word-char-count=\\\"5\\\"\\n loext:hyphenation-zone=\\\"no-limit\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"table\\\">\\n <style:table-properties table:border-model=\\\"collapsing\\\" />\\n </style:default-style>\\n <style:default-style style:family=\\\"table-row\\\">\\n <style:table-row-properties fo:keep-together=\\\"auto\\\" />\\n </style:default-style>\\n <style:style style:name=\\\"Standard\\\" style:family=\\\"paragraph\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0.0311in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"150%\\\" fo:text-align=\\\"start\\\"\\n style:justify-single-word=\\\"false\\\" fo:orphans=\\\"2\\\" fo:widows=\\\"2\\\"\\n style:writing-mode=\\\"lr-tb\\\" />\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\"\\n fo:font-family=\\\"Inter 18pt\\\" style:font-style-name=\\\"Regular\\\"\\n style:font-pitch=\\\"variable\\\" style:font-name-complex=\\\"Times New Roman (Body CS)\\\"\\n style:font-family-complex=\\\"&apos;Times New Roman (Body CS)&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Text_20_body\\\"\\n style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.1665in\\\" fo:margin-bottom=\\\"0.0835in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties style:font-family-generic=\\\"swiss\\\"\\n style:font-pitch=\\\"variable\\\" fo:font-size=\\\"14pt\\\" style:font-name-asian=\\\"PingFang SC\\\"\\n style:font-family-asian=\\\"&apos;PingFang SC&apos;\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"Arial Unicode MS1\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Text_20_body\\\" style:display-name=\\\"Text body\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0in\\\" fo:margin-bottom=\\\"0.0972in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"115%\\\" />\\n </style:style>\\n <style:style style:name=\\\"List\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Text_20_body\\\" style:class=\\\"list\\\">\\n <style:text-properties style:font-size-asian=\\\"12pt\\\"\\n style:font-name-complex=\\\"Arial Unicode MS\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"swiss\\\" />\\n </style:style>\\n <style:style style:name=\\\"Caption\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Standard\\\" style:class=\\\"extra\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0in\\\" fo:margin-bottom=\\\"0.139in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:line-height=\\\"100%\\\" />\\n <style:text-properties fo:color=\\\"#0e2841\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"9pt\\\"\\n fo:font-style=\\\"italic\\\" style:font-size-asian=\\\"9pt\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-size-complex=\\\"9pt\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark2\\\" loext:color-type=\\\"theme\\\" />\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Index\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:class=\\\"index\\\">\\n <style:paragraph-properties text:number-lines=\\\"false\\\" text:line-number=\\\"0\\\" />\\n <style:text-properties style:font-size-asian=\\\"12pt\\\"\\n style:font-name-complex=\\\"Arial Unicode MS\\\"\\n style:font-family-complex=\\\"&apos;Arial Unicode MS&apos;\\\"\\n style:font-family-generic-complex=\\\"swiss\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_1\\\" style:display-name=\\\"Heading 1\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_1_20_Char\\\"\\n style:default-outline-level=\\\"1\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"24pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"24pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"24pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_2\\\" style:display-name=\\\"Heading 2\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_2_20_Char\\\"\\n style:default-outline-level=\\\"2\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"18pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"18pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"18pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_3\\\" style:display-name=\\\"Heading 3\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_3_20_Char\\\"\\n style:default-outline-level=\\\"3\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:text-properties fo:font-size=\\\"14pt\\\" fo:font-weight=\\\"bold\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-weight-asian=\\\"bold\\\"\\n style:font-size-complex=\\\"14pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_4\\\" style:display-name=\\\"Heading 4\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_4_20_Char\\\"\\n style:default-outline-level=\\\"4\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0555in\\\" fo:margin-bottom=\\\"0.028in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_5\\\" style:display-name=\\\"Heading 5\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_5_20_Char\\\"\\n style:default-outline-level=\\\"5\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0555in\\\" fo:margin-bottom=\\\"0.028in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_6\\\" style:display-name=\\\"Heading 6\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_6_20_Char\\\"\\n style:default-outline-level=\\\"6\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.028in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_7\\\" style:display-name=\\\"Heading 7\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_7_20_Char\\\"\\n style:default-outline-level=\\\"7\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.028in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_8\\\" style:display-name=\\\"Heading 8\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_8_20_Char\\\"\\n style:default-outline-level=\\\"8\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_9\\\" style:display-name=\\\"Heading 9\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Heading_20_9_20_Char\\\"\\n style:default-outline-level=\\\"9\\\" style:list-style-name=\\\"\\\" style:class=\\\"text\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:keep-together=\\\"always\\\"\\n fo:keep-with-next=\\\"always\\\" />\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Title\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Title_20_Char\\\"\\n style:class=\\\"chapter\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.0311in\\\" fo:margin-bottom=\\\"0.0555in\\\"\\n style:contextual-spacing=\\\"true\\\" fo:line-height=\\\"100%\\\" />\\n <style:text-properties\\n fo:font-size=\\\"28pt\\\" fo:letter-spacing=\\\"-0.0071in\\\" style:letter-kerning=\\\"true\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-size-asian=\\\"28pt\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-size-complex=\\\"28pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Subtitle\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\" style:next-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Subtitle_20_Char\\\" style:class=\\\"chapter\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n fo:letter-spacing=\\\"0.0102in\\\" style:font-name-asian=\\\"F2\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Quote\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Quote_20_Char\\\">\\n <style:paragraph-properties fo:margin-top=\\\"0.111in\\\" fo:margin-bottom=\\\"0.0311in\\\"\\n style:contextual-spacing=\\\"false\\\" fo:text-align=\\\"center\\\"\\n style:justify-single-word=\\\"false\\\" />\\n <style:text-properties fo:color=\\\"#404040\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"List_20_Paragraph\\\" style:display-name=\\\"List Paragraph\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:paragraph-properties fo:margin-left=\\\"0.5in\\\" fo:margin-top=\\\"0.0311in\\\"\\n fo:margin-bottom=\\\"0.0311in\\\" style:contextual-spacing=\\\"true\\\" />\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Quote\\\" style:display-name=\\\"Intense Quote\\\"\\n style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Standard\\\"\\n style:next-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Intense_20_Quote_20_Char\\\">\\n <style:paragraph-properties fo:margin-left=\\\"0.6in\\\" fo:margin-right=\\\"0.6in\\\"\\n fo:margin-top=\\\"0.25in\\\" fo:margin-bottom=\\\"0.25in\\\" style:contextual-spacing=\\\"false\\\"\\n fo:text-align=\\\"center\\\" style:justify-single-word=\\\"false\\\" fo:padding-left=\\\"0in\\\"\\n fo:padding-right=\\\"0in\\\" fo:padding-top=\\\"0.139in\\\" fo:padding-bottom=\\\"0.139in\\\"\\n fo:border-left=\\\"none\\\" fo:border-right=\\\"none\\\" fo:border-top=\\\"0.51pt solid #0f4761\\\"\\n fo:border-bottom=\\\"0.51pt solid #0f4761\\\" />\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"PageBreak\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\">\\n <style:paragraph-properties fo:break-before=\\\"page\\\" />\\n </style:style>\\n <style:style style:name=\\\"Codeblock\\\" style:family=\\\"paragraph\\\"\\n style:parent-style-name=\\\"Standard\\\">\\n <loext:graphic-properties draw:fill=\\\"solid\\\" draw:fill-color=\\\"#161616\\\" />\\n <style:paragraph-properties fo:line-height=\\\"100%\\\" fo:background-color=\\\"#161616\\\" />\\n <style:text-properties fo:color=\\\"#e1e4e8\\\" loext:opacity=\\\"100%\\\"\\n style:font-name=\\\"Geist Mono\\\"\\n fo:font-family=\\\"Geist Mono\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_1_20_Char\\\" style:display-name=\\\"Heading 1 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_1\\\">\\n <style:text-properties fo:font-size=\\\"20pt\\\"\\n style:font-size-asian=\\\"20pt\\\"\\n style:font-size-complex=\\\"20pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Heading_20_2_20_Char\\\" style:display-name=\\\"Heading 2 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_2\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"16pt\\\"\\n style:font-size-asian=\\\"16pt\\\" style:font-size-complex=\\\"16pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_3_20_Char\\\" style:display-name=\\\"Heading 3 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_3\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-size-asian=\\\"14pt\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_4_20_Char\\\" style:display-name=\\\"Heading 4 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_4\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_5_20_Char\\\" style:display-name=\\\"Heading 5 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_5\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_6_20_Char\\\" style:display-name=\\\"Heading 6 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_6\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_7_20_Char\\\" style:display-name=\\\"Heading 7 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_7\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_8_20_Char\\\" style:display-name=\\\"Heading 8 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_8\\\">\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-style-asian=\\\"italic\\\"\\n style:font-name-complex=\\\"F2\\\" style:font-family-generic-complex=\\\"system\\\"\\n style:font-pitch-complex=\\\"variable\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Heading_20_9_20_Char\\\" style:display-name=\\\"Heading 9 Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Heading_20_9\\\">\\n <style:text-properties fo:color=\\\"#272727\\\" loext:opacity=\\\"100%\\\"\\n style:font-name-asian=\\\"F2\\\" style:font-family-generic-asian=\\\"system\\\"\\n style:font-pitch-asian=\\\"variable\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"1529\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Title_20_Char\\\" style:display-name=\\\"Title Char\\\" style:family=\\\"text\\\"\\n style:parent-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Title\\\">\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\" fo:font-size=\\\"28pt\\\"\\n fo:letter-spacing=\\\"-0.0071in\\\"\\n style:letter-kerning=\\\"true\\\"\\n style:font-size-asian=\\\"28pt\\\"\\n style:font-size-complex=\\\"28pt\\\" />\\n </style:style>\\n <style:style style:name=\\\"Subtitle_20_Char\\\" style:display-name=\\\"Subtitle Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Subtitle\\\">\\n <style:text-properties fo:color=\\\"#595959\\\" loext:opacity=\\\"100%\\\" fo:font-size=\\\"14pt\\\"\\n fo:letter-spacing=\\\"0.0102in\\\" style:font-name-asian=\\\"F2\\\"\\n style:font-family-generic-asian=\\\"system\\\" style:font-pitch-asian=\\\"variable\\\"\\n style:font-size-asian=\\\"14pt\\\" style:font-name-complex=\\\"F2\\\"\\n style:font-family-generic-complex=\\\"system\\\" style:font-pitch-complex=\\\"variable\\\"\\n style:font-size-complex=\\\"14pt\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"3490\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Quote_20_Char\\\" style:display-name=\\\"Quote Char\\\" style:family=\\\"text\\\"\\n style:parent-style-name=\\\"Standard\\\" loext:linked-style-name=\\\"Quote\\\">\\n <style:text-properties fo:color=\\\"#404040\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"dark1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"tint\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Emphasis\\\" style:display-name=\\\"Intense Emphasis\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Quote_20_Char\\\" style:display-name=\\\"Intense Quote Char\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\"\\n loext:linked-style-name=\\\"Intense_20_Quote\\\">\\n <style:text-properties fo:color=\\\"#0f4761\\\" loext:opacity=\\\"100%\\\" fo:font-style=\\\"italic\\\"\\n style:font-style-asian=\\\"italic\\\" style:font-style-complex=\\\"italic\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Intense_20_Reference\\\" style:display-name=\\\"Intense Reference\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:font-variant=\\\"small-caps\\\" fo:color=\\\"#0f4761\\\"\\n loext:opacity=\\\"100%\\\" fo:letter-spacing=\\\"0.0035in\\\" fo:font-weight=\\\"bold\\\"\\n style:font-weight-asian=\\\"bold\\\" style:font-weight-complex=\\\"bold\\\">\\n <loext:char-complex-color loext:theme-type=\\\"accent1\\\" loext:color-type=\\\"theme\\\">\\n <loext:transformation loext:type=\\\"shade\\\" loext:value=\\\"2509\\\" />\\n </loext:char-complex-color>\\n </style:text-properties>\\n </style:style>\\n <style:style style:name=\\\"Internet_20_link\\\" style:display-name=\\\"Internet link\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties style:font-name=\\\"Inter 18pt\\\" style:font-name-asian=\\\"Inter 18pt\\\"\\n style:font-name-complex=\\\"Times New Roman (Body CS)\\\" fo:color=\\\"#0000ef\\\"\\n loext:opacity=\\\"100%\\\"\\n style:text-underline-type=\\\"single\\\" style:text-underline-style=\\\"solid\\\"\\n style:text-underline-width=\\\"auto\\\" style:text-underline-mode=\\\"continuous\\\"\\n style:text-underline-color=\\\"font-color\\\" />\\n </style:style>\\n <style:style style:name=\\\"Unresolved_20_Mention\\\" style:display-name=\\\"Unresolved Mention\\\"\\n style:family=\\\"text\\\" style:parent-style-name=\\\"Standard\\\">\\n <style:text-properties fo:color=\\\"#605e5c\\\" loext:opacity=\\\"100%\\\"\\n fo:background-color=\\\"#e1dfdd\\\" />\\n </style:style>\\n <style:style style:name=\\\"ListLabel_20_1\\\" style:display-name=\\\"ListLabel 1\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_2\\\" style:display-name=\\\"ListLabel 2\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_3\\\" style:display-name=\\\"ListLabel 3\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_4\\\" style:display-name=\\\"ListLabel 4\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_5\\\" style:display-name=\\\"ListLabel 5\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_6\\\" style:display-name=\\\"ListLabel 6\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_7\\\" style:display-name=\\\"ListLabel 7\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_8\\\" style:display-name=\\\"ListLabel 8\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_9\\\" style:display-name=\\\"ListLabel 9\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_10\\\" style:display-name=\\\"ListLabel 10\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_11\\\" style:display-name=\\\"ListLabel 11\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_12\\\" style:display-name=\\\"ListLabel 12\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_13\\\" style:display-name=\\\"ListLabel 13\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_14\\\" style:display-name=\\\"ListLabel 14\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_15\\\" style:display-name=\\\"ListLabel 15\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_16\\\" style:display-name=\\\"ListLabel 16\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_17\\\" style:display-name=\\\"ListLabel 17\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_18\\\" style:display-name=\\\"ListLabel 18\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_19\\\" style:display-name=\\\"ListLabel 19\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_20\\\" style:display-name=\\\"ListLabel 20\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_21\\\" style:display-name=\\\"ListLabel 21\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_22\\\" style:display-name=\\\"ListLabel 22\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_23\\\" style:display-name=\\\"ListLabel 23\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_24\\\" style:display-name=\\\"ListLabel 24\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_25\\\" style:display-name=\\\"ListLabel 25\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_26\\\" style:display-name=\\\"ListLabel 26\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_27\\\" style:display-name=\\\"ListLabel 27\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"ListLabel_20_28\\\" style:display-name=\\\"ListLabel 28\\\"\\n style:family=\\\"text\\\" />\\n <style:style style:name=\\\"Graphics\\\" style:family=\\\"graphic\\\">\\n <style:graphic-properties text:anchor-type=\\\"paragraph\\\" svg:x=\\\"0in\\\" svg:y=\\\"0in\\\"\\n style:wrap=\\\"dynamic\\\" style:number-wrapped-paragraphs=\\\"no-limit\\\"\\n style:wrap-contour=\\\"false\\\" style:vertical-pos=\\\"top\\\" style:vertical-rel=\\\"paragraph\\\"\\n style:horizontal-pos=\\\"center\\\" style:horizontal-rel=\\\"paragraph\\\" draw:fill=\\\"none\\\" />\\n </style:style>\\n <style:style style:name=\\\"Frame\\\" style:family=\\\"graphic\\\">\\n <style:graphic-properties fo:margin-left=\\\"0in\\\" fo:margin-right=\\\"0in\\\" fo:margin-top=\\\"0in\\\"\\n fo:margin-bottom=\\\"0in\\\" style:run-through=\\\"foreground\\\" style:wrap=\\\"dynamic\\\"\\n style:number-wrapped-paragraphs=\\\"no-limit\\\" style:vertical-pos=\\\"from-top\\\"\\n style:horizontal-pos=\\\"center\\\" style:horizontal-rel=\\\"paragraph\\\" fo:padding=\\\"0in\\\"\\n draw:fill=\\\"none\\\"\\n draw:stroke=\\\"none\\\"\\n fo:border=\\\"none\\\"\\n style:shadow=\\\"none\\\" svg:stroke-color=\\\"transparent\\\"\\n draw:shadow-opacity=\\\"100%\\\"\\n loext:rel-width-rel=\\\"paragraph\\\" />\\n </style:style>\\n <text:outline-style style:name=\\\"Outline\\\">\\n <text:outline-level-style text:level=\\\"1\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"2\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"3\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"4\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"5\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"6\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"7\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"8\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"9\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n <text:outline-level-style text:level=\\\"10\\\" style:num-format=\\\"\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\" />\\n </style:list-level-properties>\\n </text:outline-level-style>\\n </text:outline-style>\\n <text:list-style style:name=\\\"No_20_List\\\" style:display-name=\\\"No List\\\">\\n <text:list-level-style-number text:level=\\\"1\\\" loext:num-list-format=\\\"%1%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"0.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"2\\\" loext:num-list-format=\\\"%2%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"0.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"3\\\" loext:num-list-format=\\\"%3%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"4\\\" loext:num-list-format=\\\"%4%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.25in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"5\\\" loext:num-list-format=\\\"%5%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"6\\\" loext:num-list-format=\\\"%6%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"1.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"7\\\" loext:num-list-format=\\\"%7%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"8\\\" loext:num-list-format=\\\"%8%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.25in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"9\\\" loext:num-list-format=\\\"%9%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.5in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum1\\\">\\n <text:list-level-style-bullet text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_1\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_2\\\"\\n loext:num-list-format=\\\"◦\\\" style:num-suffix=\\\"◦\\\" text:bullet-char=\\\"◦\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_3\\\"\\n loext:num-list-format=\\\"▪\\\" style:num-suffix=\\\"▪\\\" text:bullet-char=\\\"▪\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_4\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_5\\\"\\n loext:num-list-format=\\\"◦\\\" style:num-suffix=\\\"◦\\\" text:bullet-char=\\\"◦\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_6\\\"\\n loext:num-list-format=\\\"▪\\\" style:num-suffix=\\\"▪\\\" text:bullet-char=\\\"▪\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"3in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_7\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"3.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_8\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"4in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_9\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"4.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum2\\\">\\n <text:list-level-style-bullet text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_10\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_11\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_12\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_13\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_14\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_15\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_16\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_17\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-bullet text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_18\\\"\\n loext:num-list-format=\\\"•\\\" style:num-suffix=\\\"•\\\" text:bullet-char=\\\"•\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-bullet>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:list-style style:name=\\\"WWNum3\\\">\\n <text:list-level-style-number text:level=\\\"1\\\" text:style-name=\\\"ListLabel_20_19\\\"\\n loext:num-list-format=\\\"%1%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"2\\\" text:style-name=\\\"ListLabel_20_20\\\"\\n loext:num-list-format=\\\"%2%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"3\\\" text:style-name=\\\"ListLabel_20_21\\\"\\n loext:num-list-format=\\\"%3%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"0.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"4\\\" text:style-name=\\\"ListLabel_20_22\\\"\\n loext:num-list-format=\\\"%4%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"5\\\" text:style-name=\\\"ListLabel_20_23\\\"\\n loext:num-list-format=\\\"%5%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"6\\\" text:style-name=\\\"ListLabel_20_24\\\"\\n loext:num-list-format=\\\"%6%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.5in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"7\\\" text:style-name=\\\"ListLabel_20_25\\\"\\n loext:num-list-format=\\\"%7%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"1.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"8\\\" text:style-name=\\\"ListLabel_20_26\\\"\\n loext:num-list-format=\\\"%8%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"9\\\" text:style-name=\\\"ListLabel_20_27\\\"\\n loext:num-list-format=\\\"%9%.\\\" style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n fo:text-indent=\\\"-0.25in\\\" fo:margin-left=\\\"2.25in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n <text:list-level-style-number text:level=\\\"10\\\" loext:num-list-format=\\\"%10%.\\\"\\n style:num-suffix=\\\".\\\" style:num-format=\\\"1\\\">\\n <style:list-level-properties\\n text:list-level-position-and-space-mode=\\\"label-alignment\\\">\\n <style:list-level-label-alignment text:label-followed-by=\\\"listtab\\\"\\n text:list-tab-stop-position=\\\"2.75in\\\" fo:text-indent=\\\"-0.25in\\\"\\n fo:margin-left=\\\"2.75in\\\" />\\n </style:list-level-properties>\\n </text:list-level-style-number>\\n </text:list-style>\\n <text:notes-configuration text:note-class=\\\"footnote\\\" style:num-format=\\\"1\\\"\\n text:start-value=\\\"0\\\" text:footnotes-position=\\\"page\\\" text:start-numbering-at=\\\"document\\\" />\\n <text:notes-configuration text:note-class=\\\"endnote\\\" style:num-format=\\\"i\\\"\\n text:start-value=\\\"0\\\" />\\n <text:linenumbering-configuration text:number-lines=\\\"false\\\" text:offset=\\\"0.1965in\\\"\\n style:num-format=\\\"1\\\" text:number-position=\\\"left\\\" text:increment=\\\"5\\\" />\\n <style:default-page-layout>\\n <style:page-layout-properties style:layout-grid-standard-mode=\\\"true\\\" />\\n </style:default-page-layout>\\n <loext:theme loext:name=\\\"Office\\\">\\n <loext:theme-colors loext:name=\\\"LibreOffice\\\">\\n <loext:color loext:name=\\\"dark1\\\" loext:color=\\\"#000000\\\" />\\n <loext:color loext:name=\\\"light1\\\" loext:color=\\\"#ffffff\\\" />\\n <loext:color loext:name=\\\"dark2\\\" loext:color=\\\"#000000\\\" />\\n <loext:color loext:name=\\\"light2\\\" loext:color=\\\"#ffffff\\\" />\\n <loext:color loext:name=\\\"accent1\\\" loext:color=\\\"#18a303\\\" />\\n <loext:color loext:name=\\\"accent2\\\" loext:color=\\\"#0369a3\\\" />\\n <loext:color loext:name=\\\"accent3\\\" loext:color=\\\"#a33e03\\\" />\\n <loext:color loext:name=\\\"accent4\\\" loext:color=\\\"#8e03a3\\\" />\\n <loext:color loext:name=\\\"accent5\\\" loext:color=\\\"#c99c00\\\" />\\n <loext:color loext:name=\\\"accent6\\\" loext:color=\\\"#c9211e\\\" />\\n <loext:color loext:name=\\\"hyperlink\\\" loext:color=\\\"#0000ee\\\" />\\n <loext:color loext:name=\\\"followed-hyperlink\\\" loext:color=\\\"#551a8b\\\" />\\n </loext:theme-colors>\\n </loext:theme>\\n </office:styles>\\n <office:automatic-styles>\\n <style:style style:name=\\\"MP1\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Header\\\">\\n <style:text-properties officeooo:rsid=\\\"0008951b\\\" officeooo:paragraph-rsid=\\\"0008951b\\\" />\\n </style:style>\\n <style:style style:name=\\\"MP2\\\" style:family=\\\"paragraph\\\" style:parent-style-name=\\\"Footer\\\">\\n <style:text-properties officeooo:rsid=\\\"0008951b\\\" officeooo:paragraph-rsid=\\\"0008951b\\\" />\\n </style:style>\\n <style:page-layout style:name=\\\"Mpm1\\\">\\n <style:page-layout-properties fo:page-width=\\\"8.2681in\\\" fo:page-height=\\\"11.6929in\\\"\\n style:num-format=\\\"1\\\" style:print-orientation=\\\"portrait\\\" fo:margin-top=\\\"1in\\\"\\n fo:margin-bottom=\\\"1in\\\" fo:margin-left=\\\"1in\\\" fo:margin-right=\\\"1in\\\"\\n style:writing-mode=\\\"lr-tb\\\" style:layout-grid-color=\\\"#c0c0c0\\\"\\n style:layout-grid-lines=\\\"38\\\" style:layout-grid-base-height=\\\"0.25in\\\"\\n style:layout-grid-ruby-height=\\\"0in\\\" style:layout-grid-mode=\\\"none\\\"\\n style:layout-grid-ruby-below=\\\"false\\\" style:layout-grid-print=\\\"false\\\"\\n style:layout-grid-display=\\\"false\\\" style:layout-grid-base-width=\\\"0.1665in\\\"\\n style:layout-grid-snap-to=\\\"true\\\" style:footnote-max-height=\\\"0in\\\"\\n loext:margin-gutter=\\\"0in\\\">\\n <style:footnote-sep style:width=\\\"0.0071in\\\" style:distance-before-sep=\\\"0.0398in\\\"\\n style:distance-after-sep=\\\"0.0398in\\\" style:line-style=\\\"solid\\\"\\n style:adjustment=\\\"left\\\" style:rel-width=\\\"25%\\\" style:color=\\\"#000000\\\" />\\n </style:page-layout-properties>\\n <style:header-style>\\n <style:header-footer-properties fo:min-height=\\\"0in\\\" fo:margin-bottom=\\\"0.1965in\\\"\\n fo:background-color=\\\"transparent\\\" />\\n </style:header-style>\\n <style:footer-style>\\n <style:header-footer-properties fo:min-height=\\\"0in\\\" fo:margin-top=\\\"0.1965in\\\"\\n fo:background-color=\\\"transparent\\\" />\\n </style:footer-style>\\n </style:page-layout>\\n <style:style style:name=\\\"Mdp1\\\" style:family=\\\"drawing-page\\\">\\n <style:drawing-page-properties draw:background-size=\\\"full\\\" />\\n </style:style>\\n </office:automatic-styles>\\n <office:master-styles>\\n <style:master-page style:name=\\\"Standard\\\" style:page-layout-name=\\\"Mpm1\\\"\\n draw:style-name=\\\"Mdp1\\\" />\\n </office:master-styles>\\n</office:document-styles>\"","import {\n Block,\n BlockNoteSchema,\n BlockSchema,\n COLORS_DEFAULT,\n Exporter,\n ExporterOptions,\n InlineContentSchema,\n StyleSchema,\n StyledText,\n} from \"@blocknote/core\";\nimport { loadFileBuffer } from \"@shared/util/fileUtil.js\";\nimport { getImageDimensions } from \"@shared/util/imageUtil.js\";\nimport { BlobReader, BlobWriter, TextReader, ZipWriter } from \"@zip.js/zip.js\";\nimport { renderToString } from \"react-dom/server\";\nimport stylesXml from \"./template/styles.xml?raw\";\n\nexport class ODTExporter<\n B extends BlockSchema,\n S extends StyleSchema,\n I extends InlineContentSchema,\n> extends Exporter<\n B,\n I,\n S,\n React.ReactNode,\n React.ReactNode,\n Record<string, string>,\n React.ReactNode\n> {\n // \"Styles\" to be added to the AutomaticStyles section of the ODT file\n // Keyed by the style name\n private automaticStyles: Map<string, React.ReactNode> = new Map();\n\n // \"Pictures\" to be added to the Pictures folder in the ODT file\n // Keyed by the original image URL\n private pictures = new Map<\n string,\n {\n file: Blob;\n fileName: string;\n height: number;\n width: number;\n }\n >();\n\n private styleCounter = 0;\n\n public readonly options: ExporterOptions;\n\n constructor(\n protected readonly schema: BlockNoteSchema<B, I, S>,\n mappings: Exporter<\n NoInfer<B>,\n NoInfer<I>,\n NoInfer<S>,\n React.ReactNode,\n React.ReactNode,\n Record<string, string>,\n React.ReactNode\n >[\"mappings\"],\n options?: Partial<ExporterOptions>,\n ) {\n const defaults = {\n colors: COLORS_DEFAULT,\n } satisfies Partial<ExporterOptions>;\n\n super(schema, mappings, { ...defaults, ...options });\n this.options = { ...defaults, ...options };\n }\n\n protected async loadFonts() {\n const interFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/inter/Inter_18pt-Regular.ttf\"),\n );\n const geistMonoFont = await loadFileBuffer(\n await import(\"@shared/assets/fonts/GeistMono-Regular.ttf\"),\n );\n\n return [\n {\n name: \"Inter 18pt\",\n fileName: \"Inter_18pt-Regular.ttf\",\n data: new Blob([interFont], { type: \"font/ttf\" }),\n },\n {\n name: \"Geist Mono\",\n fileName: \"GeistMono-Regular.ttf\",\n data: new Blob([geistMonoFont], { type: \"font/ttf\" }),\n },\n ];\n }\n\n public transformStyledText(styledText: StyledText<S>): React.ReactNode {\n const stylesArray = this.mapStyles(styledText.styles);\n const styles = Object.assign({}, ...stylesArray);\n\n if (Object.keys(styles).length === 0) {\n return styledText.text;\n }\n\n const styleName = `BN_T${++this.styleCounter}`;\n\n // Store the complete style element\n this.automaticStyles.set(\n styleName,\n <style:style style:name={styleName} style:family=\"text\">\n <style:text-properties {...styles} />\n </style:style>,\n );\n\n return <text:span text:style-name={styleName}>{styledText.text}</text:span>;\n }\n\n public async transformBlocks(\n blocks: Block<B, I, S>[],\n nestingLevel = 0,\n ): Promise<Awaited<React.ReactNode>[]> {\n const ret: Awaited<React.ReactNode>[] = [];\n let numberedListIndex = 0;\n\n for (const block of blocks) {\n if (block.type === \"numberedListItem\") {\n numberedListIndex++;\n } else {\n numberedListIndex = 0;\n }\n\n if ([\"columnList\", \"column\"].includes(block.type)) {\n const children = await this.transformBlocks(block.children, 0);\n const content = await this.mapBlock(\n block as any,\n 0,\n numberedListIndex,\n children,\n );\n\n ret.push(content);\n } else {\n const children = await this.transformBlocks(\n block.children,\n nestingLevel + 1,\n );\n const content = await this.mapBlock(\n block as any,\n nestingLevel,\n numberedListIndex,\n children,\n );\n\n ret.push(content);\n if (children.length > 0) {\n ret.push(...children);\n }\n }\n }\n\n return ret;\n }\n\n public async toODTDocument(\n blocks: Block<B, I, S>[],\n options?: {\n header?: string | XMLDocument;\n footer?: string | XMLDocument;\n },\n ): Promise<Blob> {\n const xmlOptionToString = (xmlDocument: string | XMLDocument) => {\n const xmlNamespacesRegEx =\n /<([a-zA-Z0-9:]+)\\s+?(?:xml)ns(?::[a-zA-Z0-9]+)?=\".*\"(.*)>/g;\n let stringifiedDoc = \"\";\n\n if (typeof xmlDocument === \"string\") {\n stringifiedDoc = xmlDocument;\n } else {\n const serializer = new XMLSerializer();\n\n stringifiedDoc = serializer.serializeToString(xmlDocument);\n }\n\n // Detect and remove XML namespaces (already defined in the root element)\n return stringifiedDoc.replace(xmlNamespacesRegEx, \"<$1$2>\");\n };\n const blockContent = await this.transformBlocks(blocks);\n const styles = Array.from(this.automaticStyles.values());\n const pictures = Array.from(this.pictures.values());\n const fonts = await this.loadFonts();\n const header = xmlOptionToString(options?.header || \"\");\n const footer = xmlOptionToString(options?.footer || \"\");\n\n const content = (\n <office:document-content\n xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\"\n xmlns:text=\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\"\n xmlns:table=\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\"\n xmlns:draw=\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n xmlns:style=\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\"\n xmlns:fo=\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\"\n xmlns:svg=\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\"\n xmlns:loext=\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\"\n office:version=\"1.3\"\n >\n <office:font-face-decls>\n {fonts.map((font) => {\n return (\n <style:font-face\n style:name={font.name}\n svg:font-family={font.name}\n style:font-pitch=\"variable\"\n >\n <svg:font-face-src>\n <svg:font-face-uri\n xlink:href={`Fonts/${font.fileName}`}\n xlink:type=\"simple\"\n loext:font-style=\"normal\"\n loext:font-weight=\"normal\"\n >\n <svg:font-face-format svg:string=\"truetype\" />\n </svg:font-face-uri>\n </svg:font-face-src>\n </style:font-face>\n );\n })}\n </office:font-face-decls>\n <office:automatic-styles>{styles}</office:automatic-styles>\n {(header || footer) && (\n <office:master-styles>\n <style:master-page\n style:name=\"Standard\"\n style:page-layout-name=\"Mpm1\"\n draw:style-name=\"Mdp1\"\n >\n {header && (\n <style:header\n dangerouslySetInnerHTML={{\n __html: header,\n }}\n ></style:header>\n )}\n {footer && (\n <style:footer\n dangerouslySetInnerHTML={{\n __html: footer,\n }}\n ></style:footer>\n )}\n </style:master-page>\n </office:master-styles>\n )}\n <office:body>\n <office:text>{blockContent}</office:text>\n </office:body>\n </office:document-content>\n );\n\n const manifestNode = (\n <manifest:manifest\n xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\"\n manifest:version=\"1.3\"\n >\n <manifest:file-entry\n manifest:media-type=\"application/vnd.oasis.opendocument.text\"\n manifest:full-path=\"/\"\n />\n <manifest:file-entry\n manifest:media-type=\"text/xml\"\n manifest:full-path=\"content.xml\"\n />\n <manifest:file-entry\n manifest:media-type=\"text/xml\"\n manifest:full-path=\"styles.xml\"\n />\n {pictures.map((picture) => {\n return (\n <manifest:file-entry\n manifest:media-type={picture.file.type}\n manifest:full-path={`Pictures/${picture.fileName}`}\n />\n );\n })}\n {fonts.map((font) => {\n return (\n <manifest:file-entry\n manifest:media-type=\"application/x-font-ttf\"\n manifest:full-path={`Fonts/${font.fileName}`}\n />\n );\n })}\n </manifest:manifest>\n );\n const zipWriter = new ZipWriter(\n new BlobWriter(\"application/vnd.oasis.opendocument.text\"),\n );\n\n // Add mimetype first, uncompressed\n zipWriter.add(\n \"mimetype\",\n new TextReader(\"application/vnd.oasis.opendocument.text\"),\n {\n compressionMethod: 0,\n level: 0,\n dataDescriptor: false,\n extendedTimestamp: false,\n },\n );\n\n const contentXml = renderToString(content);\n const manifestXml = renderToString(manifestNode);\n\n zipWriter.add(\"content.xml\", new TextReader(contentXml));\n zipWriter.add(\"styles.xml\", new TextReader(stylesXml));\n zipWriter.add(\"META-INF/manifest.xml\", new TextReader(manifestXml));\n fonts.forEach((font) => {\n zipWriter.add(`Fonts/${font.fileName}`, new BlobReader(font.data));\n });\n pictures.forEach((picture) => {\n zipWriter.add(\n `Pictures/${picture.fileName}`,\n new BlobReader(picture.file),\n );\n });\n\n return zipWriter.close();\n }\n\n public registerStyle(style: (name: string) => React.ReactNode): string {\n const styleName = `BN_S${++this.styleCounter}`;\n this.automaticStyles.set(styleName, style(styleName));\n return styleName;\n }\n\n public async registerPicture(url: string): Promise<{\n path: string;\n mimeType: string;\n height: number;\n width: number;\n }> {\n const mimeTypeFileExtensionMap = {\n \"image/apng\": \"apng\",\n \"image/avif\": \"avif\",\n \"image/bmp\": \"bmp\",\n \"image/gif\": \"gif\",\n \"image/vnd.microsoft.icon\": \"ico\",\n \"image/jpeg\": \"jpg\",\n \"image/png\": \"png\",\n \"image/svg+xml\": \"svg\",\n \"image/tiff\": \"tiff\",\n \"image/webp\": \"webp\",\n };\n if (this.pictures.has(url)) {\n const picture = this.pictures.get(url)!;\n\n return {\n path: `Pictures/${picture.fileName}`,\n mimeType: picture.file.type,\n height: picture.height,\n width: picture.width,\n };\n }\n\n const blob = await this.resolveFile(url);\n const fileExtension =\n mimeTypeFileExtensionMap[\n blob.type as keyof typeof mimeTypeFileExtensionMap\n ] || \"png\";\n const fileName = `picture-${this.pictures.size}.${fileExtension}`;\n const { width, height } = await getImageDimensions(blob);\n\n this.pictures.set(url, {\n file: blob,\n fileName: fileName,\n height,\n width,\n });\n\n return { path: `Pictures/${fileName}`, mimeType: blob.type, height, width };\n }\n}\n"],"names":["getTabs","nestingLevel","jsx","createParagraphStyle","exporter","props","parentStyleName","styleAttributes","paragraphStyleAttributes","textStyleAttributes","paragraphStyles","textStyles","alignmentMap","backgroundColor","color","name","jsxs","createTableCellStyle","cellStyleCache","cell","key","styleName","createTableStyle","options","wrapWithLists","content","level","odtBlockMappingForDefaultSchema","block","numberedListIndex","continueNumbering","_block","_nestingLevel","_numberedListIndex","children","style","blockWithChildren","ex","column","index","odtExporter","path","mimeType","originalDimensions","width","height","captionHeight","imageFrame","tableWidthPT","totalWidth","colWidth","getCellStyleName","tableStyleName","_a","_","i","colWidthPT","row","rowIndex","c","colIndex","mapTableCell","textContent","line","Fragment","odtInlineContentMappingForDefaultSchema","ic","odtStyleMappingForDefaultSchema","val","odtDefaultSchemaMappings","loadFileBuffer","requireUrl","dataUrl","getImageDimensions","blob","bmp","imageMetaFunc","bytes","meta","stylesXml","ODTExporter","Exporter","schema","mappings","defaults","COLORS_DEFAULT","__publicField","interFont","geistMonoFont","styledText","stylesArray","styles","blocks","ret","xmlOptionToString","xmlDocument","xmlNamespacesRegEx","stringifiedDoc","blockContent","pictures","fonts","header","footer","font","manifestNode","picture","zipWriter","ZipWriter","BlobWriter","TextReader","contentXml","renderToString","manifestXml","BlobReader","url","mimeTypeFileExtensionMap","fileExtension","fileName"],"mappings":";;;;;;;AAaa,MAAAA,IAAU,CAACC,MACf,MAAM,KAAK,EAAE,QAAQA,EAAgB,GAAA,MAAO,gBAAAC,EAAA,YAAA,CAAA,CAAS,CAAE,GAG1DC,IAAuB,CAC3BC,GACAC,GACAC,IAAkB,YAClBC,IAA0C,CAAA,GAC1CC,IAAmD,IACnDC,IAA8C,CAAA,MAC3C;AACH,QAAMC,IAA0C;AAAA,IAC9C,GAAGF;AAAA,EACL,GACMG,IAAqC,EAAE,GAAGF,EAAoB;AAEpE,MAAIJ,EAAM,iBAAiBA,EAAM,kBAAkB,QAAQ;AACzD,UAAMO,IAAe;AAAA,MACnB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AACA,IAAAF,EAAgB,eAAe,IAC7BE,EAAaP,EAAM,aAA0C;AAAA,EAAA;AAGjE,QAAMQ,IACJR,EAAM,mBAAmBA,EAAM,oBAAoB,YAC/CD,EAAS,QAAQ,OACfC,EAAM,eACR,EAAE,aACF;AAMN,MAJIQ,MACFH,EAAgB,qBAAqB,IAAIG,IAGvCR,EAAM,aAAaA,EAAM,cAAc,WAAW;AACpD,UAAMS,IACJV,EAAS,QAAQ,OACfC,EAAM,SACR,EAAE;AACJ,IAAAM,EAAW,UAAU,IAAIG;AAAA,EAAA;AAG3B,SACE,CAACD,KACD,CAAC,OAAO,KAAKN,CAAe,EAAE,UAC9B,CAAC,OAAO,KAAKG,CAAe,EAAE,UAC9B,CAAC,OAAO,KAAKC,CAAU,EAAE,SAElBL,KAAmB,aAGrBF,EAAS,cAAc,CAACW,MAC7B,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,gBAAa;AAAA,MACb,cAAYD;AAAA,MACZ,2BAAyBT;AAAA,MACxB,GAAGC;AAAA,MAEH,UAAA;AAAA,QACCM,KAAA,gBAAAX;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,aAAU;AAAA,YACV,mBAAiBW;AAAA,UAAA;AAAA,QACnB;AAAA,QAED,OAAO,KAAKH,CAAe,EAAE,SAAS,KACrC,gBAAAR,EAAC,8BAA4B,EAAA,GAAGQ,GAAiB;AAAA,QAElD,OAAO,KAAKC,CAAU,EAAE,SAAS,KAChC,gBAAAT,EAAC,yBAAuB,EAAA,GAAGS,EAAY,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,CAG5C;AACH,GAEMM,IAAuB,CAC3Bb,MAC4C;AAEtC,QAAAc,wBAAqB,IAAoB;AAE/C,SAAO,CAACC,MAA8B;AACpC,UAAMC,IAAM,GAAGD,EAAK,MAAM,eAAe,IAAIA,EAAK,MAAM,SAAS,IAAIA,EAAK,MAAM,aAAa;AAEzF,QAAAD,EAAe,IAAIE,CAAG;AACjB,aAAAF,EAAe,IAAIE,CAAG;AAGzB,UAAAC,IAAYjB,EAAS,cAAc,CAACW,wBACvC,eAAY,EAAA,gBAAa,cAAa,cAAYA,GACjD,UAAA,gBAAAb;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAU;AAAA,QACV,sBAAmB;AAAA,QACnB,kBAAe;AAAA,QACf,mBAAgB;AAAA,QAChB,qBAAkB;AAAA,QAClB,oBAAiB;AAAA,QACjB,uBACEiB,EAAK,MAAM,oBAAoB,aAC/BA,EAAK,MAAM,kBACPf,EAAS,QAAQ,OACfe,EAAK,MACF,eACL,EAAE,aACF;AAAA,QAGN,YACEA,EAAK,MAAM,cAAc,aAAaA,EAAK,MAAM,YAC7Cf,EAAS,QAAQ,OACfe,EAAK,MAAM,SACb,EAAE,OACF;AAAA,MAAA;AAAA,OAGV,CACD;AAEc,WAAAD,EAAA,IAAIE,GAAKC,CAAS,GAE1BA;AAAA,EACT;AACF,GACMC,IAAmB,CACvBlB,GACAmB,MAEuBnB,EAAS,cAAc,CAACW,wBAC5C,eAAY,EAAA,gBAAa,SAAQ,cAAYA,GAC5C,UAAA,gBAAAb;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAY;AAAA,IACZ,sBAAmB;AAAA,IACnB,eAAa,GAAGqB,EAAQ,KAAK;AAAA,EAAA;GAEjC,CACD,GAKGC,IAAgB,CACpBC,GACAC,MAEIA,KAAS,IACJD,IAGP,gBAAAvB,EAAC,eACC,UAAC,gBAAAA,EAAA,kBAAA,EAAgB,YAAcuB,GAASC,IAAQ,CAAC,EAAA,CAAE,EACrD,CAAA,GAISC,IAQT;AAAA,EACF,WAAW,CAACC,GAAOxB,GAAUH,MAAiB;AAC5C,UAAMoB,IAAYlB;AAAA,MAChBC;AAAA,MACAwB,EAAM;AAAA,IACR;AAGE,WAAA,gBAAAZ,EAAC,UAAO,EAAA,mBAAiBK,GACtB,UAAA;AAAA,MAAArB,EAAQC,CAAY;AAAA,MACpBG,EAAS,uBAAuBwB,EAAM,OAAO;AAAA,IAAA,GAChD;AAAA,EAEJ;AAAA,EAEA,SAAS,CAACA,GAAOxB,GAAUH,MAAiB;AAM1C,UAAMoB,IALkBlB;AAAA,MACtBC;AAAA,MACAwB,EAAM;AAAA,MACN,gBAAgBA,EAAM,MAAM;AAAA,IAC9B;AAIE,WAAA,gBAAAZ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,sBAAoB,GAAGY,EAAM,MAAM,KAAK;AAAA,QACxC,mBAAiBP;AAAA,QAEhB,UAAA;AAAA,UAAArB,EAAQC,CAAY;AAAA,UACpBG,EAAS,uBAAuBwB,EAAM,OAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAChD;AAAA,EAEJ;AAAA,EAEA,OAAO,CAACA,GAAOxB,GAAUH,MAAiB;AAcxC,UAAMoB,IAbkBlB;AAAA,MACtBC;AAAA,MACAwB,EAAM;AAAA,MACN;AAAA,MACA,CAAC;AAAA,MACD;AAAA,QACE,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,MACrB;AAAA,MACA;AAAA,QACE,YAAY;AAAA,MAAA;AAAA,IAEhB;AAIE,WAAA,gBAAAZ,EAAC,UAAO,EAAA,mBAAiBK,GACtB,UAAA;AAAA,MAAArB,EAAQC,CAAY;AAAA,MACpBG,EAAS,uBAAuBwB,EAAM,OAAO;AAAA,IAAA,GAChD;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,gBAAgB,CAACA,GAAOxB,MACrB,gBAAAY,EAAA,UAAA,EAAO,mBAAgB,YACrB,UAAA;AAAA,IAAA;AAAA,IACAZ,EAAS,uBAAuBwB,EAAM,OAAO;AAAA,EAAA,GAChD;AAAA,EAGF,gBAAgB,CAACA,GAAOxB,GAAUH,MAAiB;AACjD,UAAMoB,IAAYlB;AAAA,MAChBC;AAAA,MACAwB,EAAM;AAAA,MACN;AAAA,MACA,EAAE,yBAAyB,SAAS;AAAA,IACtC;AACA,WACG,gBAAA1B,EAAA,aAAA,EAAU,mBAAgB,UACzB,4BAAC,kBACE,EAAA,UAAAsB;AAAA,MACC,gBAAAtB,EAAC,YAAO,mBAAiBmB,GACtB,YAAS,uBAAuBO,EAAM,OAAO,GAChD;AAAA,MACA3B;AAAA,OAEJ,EACF,CAAA;AAAA,EAEJ;AAAA,EAEA,kBAAkB,CAAC2B,GAAOxB,GAAUH,GAAc4B,MAAsB;AACtE,UAAMR,IAAYlB;AAAA,MAChBC;AAAA,MACAwB,EAAM;AAAA,IACR,GAEME,KAAqBD,KAAqB,KAAK,IAAI,SAAS;AAGhE,WAAA,gBAAA3B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,mBAAgB;AAAA,QAChB,2BAAyB4B;AAAA,QAEzB,UAAA,gBAAA5B;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAI4B,MAAsB,WAAW;AAAA,cACpC,oBAAoBF,EAAM,MAAM;AAAA,YAClC;AAAA,YAEC,UAAAJ;AAAA,cACC,gBAAAtB,EAAC,YAAO,mBAAiBmB,GACtB,YAAS,uBAAuBO,EAAM,OAAO,GAChD;AAAA,cACA3B;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AAAA,EAEA,eAAe,CAAC2B,GAAOxB,MACpB,gBAAAY,EAAA,UAAA,EAAO,mBAAgB,YACrB,UAAA;AAAA,IAAMY,EAAA,MAAM,UAAU,OAAO;AAAA,IAC7BxB,EAAS,uBAAuBwB,EAAM,OAAO;AAAA,EAAA,GAChD;AAAA,EAGF,WAAW,YACF,gBAAA1B,EAAC,UAAO,EAAA,mBAAgB,YAAY,CAAA;AAAA,EAG7C,SAAS,CAAC0B,GAAOxB,MAAa;AAC5B,UAAMiB,IAAYlB;AAAA,MAChBC;AAAA,MACAwB,EAAM;AAAA,MACN;AAAA,MACA,CAAC;AAAA,MACD;AAAA,QACE,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,QACpB,kBAAkB;AAAA,QAClB,qBAAqB;AAAA,MAAA;AAAA,IAEzB;AAEO,WAAA,gBAAA1B,EAAC,UAAO,EAAA,mBAAiBmB,EAAW,CAAA;AAAA,EAC7C;AAAA,EAEA,QAAQ,CAACU,GAAQ3B,GAAU4B,GAAeC,GAAoBC,MAAa;AAEnE,UAAAC,IADK/B,EACM,cAAc,CAACW,wBAC7B,eAAY,EAAA,cAAYA,GAAM,gBAAa,cAC1C,UAAA,gBAAAb;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,sBAAmB;AAAA,QACnB,aAAU;AAAA,QACV,kBAAe;AAAA,QACf,mBAAgB;AAAA,QAChB,qBAAkB;AAAA,QAClB,oBAAiB;AAAA,MAAA;AAAA,OAErB,CACD;AAED,WACG,gBAAAA,EAAA,oBAAA,EAAiB,oBAAkBiC,GAAQ,UAAAD,EAAS,CAAA;AAAA,EAEzD;AAAA,EACA,YAAY,CACVN,GACAxB,GACA4B,GACAC,GACAC,MACG;AACH,UAAME,IAAoBR,GASpBS,IAAKjC,GACL+B,IAAQE,EAAG,cAAc,CAACtB,wBAC7B,eAAY,EAAA,cAAYA,GAAM,gBAAa,SAC1C,UAAA,gBAAAb;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,sBAAmB;AAAA,MAAA;AAAA,OAEvB,CACD;AAED,6BACG,eAAY,EAAA,cAAY0B,EAAM,IAAI,oBAAkBO,GACjD,UAAA;AAAA,OAAAC,EAAkB,YAAY,CAAA,GAAI,IAAI,CAACE,GAAQC,MAAU;AACnDJ,cAAAA,IAAQE,EAAG,cAAc,CAACtB,wBAC7B,eAAY,EAAA,cAAYA,GAAM,gBAAa,gBAC1C,UAAA,gBAAAb;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,0BAAwB,GAAGoC,EAAO,MAAM,QAAQ,GAAG;AAAA,UAAA;AAAA,WAEvD,CACD;AAED,eAAQ,gBAAApC,EAAA,sBAAA,EAAmB,oBAAkBiC,EAAAA,GAAYI,CAAO;AAAA,MAAA,CACjE;AAAA,MACD,gBAAArC,EAAC,qBAAiB,UAAAgC,EAAS,CAAA;AAAA,IAAA,GAC7B;AAAA,EAEJ;AAAA,EAEA,OAAO,OAAON,GAAOxB,MAAa;AAChC,UAAMoC,IAAcpC,GAEd,EAAE,MAAAqC,GAAM,UAAAC,GAAU,GAAGC,EACzB,IAAA,MAAMH,EAAY,gBAAgBZ,EAAM,MAAM,GAAG,GAC7CP,IAAYlB;AAAA,MAChBC;AAAA,MACAwB,EAAM;AAAA,IACR,GACMgB,IAAQhB,EAAM,MAAM,gBAAgBe,EAAmB,OACvDE,IACHF,EAAmB,SAASA,EAAmB,QAASC,GACrDE,IAAgB,IAChBC,sBACH,UAAO,EAAA,mBAAiBnB,EAAM,MAAM,UAAU,YAAYP,GACzD,UAAA;AAAA,MAAA,gBAAAnB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,mBAAgB;AAAA,UAChB,oBAAiB;AAAA,UACjB,aAAW,GAAG0C,CAAK;AAAA,UACnB,cAAY,GAAGC,CAAM;AAAA,UACrB,mBAAiBjB,EAAM,MAAM,UAAU,SAAS,GAAGgB,CAAK;AAAA,UACvD,GAAI,CAAChB,EAAM,MAAM,WAAW;AAAA,YAC3B,oBAAoB;AAAA,UACtB;AAAA,UAEA,UAAA,gBAAA1B;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,cAAW;AAAA,cACX,cAAW;AAAA,cACX,iBAAc;AAAA,cACd,cAAYuC;AAAA,cACZ,kBAAgBC;AAAA,YAAA;AAAA,UAAA;AAAA,QAClB;AAAA,MACF;AAAA,wBACC,mBAAgB,EAAA;AAAA,wBAChB,aAAU,EAAA,mBAAgB,WAAW,UAAAd,EAAM,MAAM,QAAQ,CAAA;AAAA,IAAA,GAC5D;AAGE,WAAAA,EAAM,MAAM,UAEZ,gBAAA1B,EAAC,UAAO,EAAA,mBAAiBmB,GACvB,UAAA,gBAAAnB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,mBAAgB;AAAA,QAChB,oBAAiB;AAAA,QACjB,mBAAiB,GAAG0C,CAAK;AAAA,QACzB,aAAW,GAAGA,CAAK;AAAA,QACnB,cAAY,GAAGC,IAASC,CAAa;AAAA,QACrC,oBAAiB;AAAA,QAEjB,UAAA,gBAAA5C,EAAC,mBAAe,UAAW6C,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA,GAE/B,IAIGA;AAAA,EACT;AAAA,EAEA,OAAO,CAACnB,GAAOxB,MAAa;;AAQ1B,UAAM4C,KALJpB,EAAM,QAAQ,aAAa;AAAA,MACzB,CAACqB,GAAYC,OACVD,KAAc,MAAMC,KAAY;AAAA,MACnC;AAAA,IAAA,KACG,KAC6B,MAC9Bb,IAAKjC,GACL+C,IAAmBlC,EAAqBoB,CAAE,GAC1Ce,IAAiB9B,EAAiBe,GAAI,EAAE,OAAOW,GAAc;AAEnE,6BACG,eAAY,EAAA,cAAYpB,EAAM,IAAI,oBAAkBwB,GAClD,UAAA;AAAA,OAAMC,IAAAzB,EAAA,QAAQ,KAAK,CAAC,MAAd,gBAAAyB,EAAiB,MAAM,IAAI,CAACC,GAAGC,MAAM;AAG1C,cAAMC,KADJ5B,EAAM,QAAQ,aAAa2B,CAAC,KAAK,OACH,MAC1BpB,IAAQE,EAAG,cAAc,CAACtB,wBAC7B,eAAY,EAAA,cAAYA,GAAM,gBAAa,gBAC1C,UAAA,gBAAAb;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,sBAAoB,GAAGsD,CAAU;AAAA,UAAA;AAAA,WAErC,CACD;AACD,eAAQ,gBAAAtD,EAAA,sBAAA,EAAmB,oBAAkBiC,EAAA,GAAYoB,CAAG;AAAA,MAAA;AAAA,MAE7D3B,EAAM,QAAQ,KAAK,IAAI,CAAC6B,GAAKC,MAC3B,gBAAAxD,EAAA,mBAAA,EACE,UAAIuD,EAAA,MAAM,IAAI,CAACE,GAAGC,MAAa;AACxB,cAAAzC,IAAO0C,EAAaF,CAAC;AAEzB,eAAA,gBAAAzD;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,oBAAkBiD,EAAiBhC,CAAI;AAAA,YACvC,qBAAkB;AAAA,YAClB,2BAAwB;AAAA,YACxB,yCACEA,EAAK,MAAM;AAAA,YAGb,UAAA,gBAAAjB,EAAC,YAAO,mBAAgB,YACrB,YAAS,uBAAuBiB,EAAK,OAAO,EAC/C,CAAA;AAAA,UAAA;AAAA,UAVK,GAAGuC,CAAQ,IAAIE,CAAQ;AAAA,QAW9B;AAAA,MAAA,CAEH,EAlBmB,GAAAF,CAmBtB,CACD;AAAA,IAAA,GACH;AAAA,EAEJ;AAAA,EAEA,WAAW,CAAC9B,MAAU;;AACpB,UAAMkC,MAAeT,IAAAzB,EAAM,QAA8B,CAAC,MAArC,gBAAAyB,EAAwC,SAAQ;AAGnE,WAAA,gBAAArC,EAAC,UAAO,EAAA,mBAAgB,aACrB,UAAA;AAAA,MAAA,GAAG8C,EAAY,MAAM;AAAA,CAAI,EAAE,IAAI,CAACC,GAAMxB,MAGhC,gBAAAvB,EAAAgD,GAAA,EAAA,UAAA;AAAA,QAAUzB,MAAA,uBAAM,mBAAgB,CAAA,CAAA;AAAA,QAChCwB;AAAA,MAAA,GACH,CAEH;AAAA,IAAA,GACH;AAAA,EAEJ;AAAA,EAEA,MAAM,OAAOnC,MAGP,gBAAAZ,EAAAgD,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAA9D,EAAC,UAAO,EAAA,oBAAiB,YACtB,UAAA0B,EAAM,MAAM,MACX,gBAAA1B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,4BAAyB;AAAA,QACzB,cAAW;AAAA,QACX,cAAY0B,EAAM,MAAM;AAAA,QAExB,UAAC,gBAAA1B,EAAA,aAAA,EAAU,mBAAgB,oBAAmB,UAE9C,YAAA,CAAA;AAAA,MAAA;AAAA,QAGF,YAEJ,CAAA;AAAA,IACC0B,EAAM,MAAM,WACX,gBAAA1B,EAAC,YAAO,mBAAgB,WAAW,UAAM0B,EAAA,MAAM,QAAQ,CAAA;AAAA,EAAA,GAE3D;AAAA,EAIJ,OAAO,CAACA,MAEJ,gBAAAZ,EAAAgD,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAA9D,EAAA,UAAA,EAAO,oBAAiB,YACvB,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,4BAAyB;AAAA,QACzB,cAAW;AAAA,QACX,cAAY0B,EAAM,MAAM;AAAA,QAExB,UAAC,gBAAA1B,EAAA,aAAA,EAAU,mBAAgB,oBAAmB,UAAU,aAAA,CAAA;AAAA,MAAA;AAAA,IAAA,GAE5D;AAAA,IACC0B,EAAM,MAAM,WACX,gBAAA1B,EAAC,YAAO,mBAAgB,WAAW,UAAM0B,EAAA,MAAM,QAAQ,CAAA;AAAA,EAAA,GAE3D;AAAA,EAGF,OAAO,CAACA,MAEJ,gBAAAZ,EAAAgD,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAA9D,EAAA,UAAA,EAAO,oBAAiB,YACvB,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,4BAAyB;AAAA,QACzB,cAAW;AAAA,QACX,cAAY0B,EAAM,MAAM;AAAA,QAExB,UAAC,gBAAA1B,EAAA,aAAA,EAAU,mBAAgB,oBAAmB,UAAU,aAAA,CAAA;AAAA,MAAA;AAAA,IAAA,GAE5D;AAAA,IACC0B,EAAM,MAAM,WACX,gBAAA1B,EAAC,YAAO,mBAAgB,WAAW,UAAM0B,EAAA,MAAM,QAAQ,CAAA;AAAA,EAAA,EAE3D,CAAA;AAEJ,GCxkBaqC,IAKT;AAAA,EACF,MAAM,CAACC,GAAI9D,MAAa;AAChB,UAAAqB,IAAUyC,EAAG,QAAQ,IAAI,CAACP,MAAMvD,EAAS,oBAAoBuD,CAAC,CAAC;AAGnE,WAAA,gBAAAzD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,4BAAyB;AAAA,QACzB,cAAW;AAAA,QACX,cAAYgE,EAAG;AAAA,QAEd,UAAAzC;AAAA,MAAA;AAAA,IACH;AAAA,EAEJ;AAAA,EAEA,MAAM,CAACyC,GAAI9D,MACFA,EAAS,oBAAoB8D,CAAE;AAE1C,GC7BaC,IAGT;AAAA,EACF,MAAM,CAACC,MACAA,IAGE,EAAE,kBAAkB,OAAO,IAFzB,CAAC;AAAA,EAKZ,QAAQ,CAACA,MACFA,IAGE,EAAE,iBAAiB,SAAS,IAF1B,CAAC;AAAA,EAKZ,WAAW,CAACA,MACLA,IAGE,EAAE,8BAA8B,QAAQ,IAFtC,CAAC;AAAA,EAKZ,QAAQ,CAACA,MACFA,IAGE,EAAE,iCAAiC,QAAQ,IAFzC,CAAC;AAAA,EAKZ,WAAW,CAACA,GAAKhE,MACVgE,IAKE,EAAE,YADPhE,EAAS,QAAQ,OAAOgE,CAA2C,EAAE,KAC5C,IAJlB,CAAC;AAAA,EAOZ,iBAAiB,CAACA,GAAKhE,MAChBgE,IAME,EAAE,uBAFPhE,EAAS,QAAQ,OAAOgE,CAA2C,EAChE,WACiC,IAL7B,CAAC;AAAA,EAQZ,MAAM,CAACA,MACAA,IAGE,EAAE,mBAAmB,cAAc,IAFjC,CAAC;AAId,GCtDaC,IAA2B;AAAA,EACtC,cAAc1C;AAAA,EACd,sBAAsBsC;AAAA,EACtB,cAAcE;AAChB;ACkBA,eAAsBG,EAAeC,GAEH;AAkBzB;AAEL,UAAMC,IAAUD,EAAW;AAIpB,WADa,OADH,MAAM,MAAMC,CAAO,GACD,YAAY;AAAA,EACxC;AAEX;ACtDA,eAAsBC,EAAmBC,GAAY;AACnD,MAAI,OAAO,SAAW,KAAoD;AAClE,UAAAC,IAAM,MAAM,kBAAkBD,CAAI,GAClC,EAAE,OAAA9B,GAAO,QAAAC,EAAA,IAAW8B;AAC1B,WAAAA,EAAI,MAAM,GACH,EAAE,OAAA/B,GAAO,QAAAC,EAAO;AAAA,EAAA,OAClB;AAEL,UAAM+B,KAAiB,MAAM,OAAO,YAAY,GAAG,WAC7CC,IAAQ,IAAI,WAAW,MAAMH,EAAK,aAAa,GAC/CI,IAAOF,EAAcC,CAAK;AAChC,QAAI,CAACC,EAAK,SAAS,CAACA,EAAK;AACjB,YAAA,IAAI,MAAM,4BAA4B;AAE9C,WAAO,EAAE,OAAOA,EAAK,OAAO,QAAQA,EAAK,OAAO;AAAA,EAAA;AAEpD;AChBA,MAAeC,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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"}