From 6b38d4fbbc9791a78b243b71a204f915769f6f8b Mon Sep 17 00:00:00 2001 From: bokuweb Date: Thu, 18 Jul 2024 19:11:11 +0900 Subject: [PATCH 01/25] Add snap to grid (#744) * fix: snapToGrid * fix: * fix * fix * fix --- .../documents/elements/paragraph_property.rs | 4 +-- docx-core/src/reader/paragraph_property.rs | 5 ++-- docx-core/src/xml_builder/elements.rs | 13 +++++++- .../snapshots/lib__reader__read_from_doc.snap | 2 +- .../snapshots/reader__read_from_doc.snap | 2 +- docx-wasm/js/json/paragraph.ts | 1 + docx-wasm/js/paragraph.ts | 5 ++++ docx-wasm/package.json | 2 +- .../test/__snapshots__/index.test.js.snap | 30 +++++++++++++++++++ 9 files changed, 54 insertions(+), 10 deletions(-) diff --git a/docx-core/src/documents/elements/paragraph_property.rs b/docx-core/src/documents/elements/paragraph_property.rs index 519368e25..846bdad74 100644 --- a/docx-core/src/documents/elements/paragraph_property.rs +++ b/docx-core/src/documents/elements/paragraph_property.rs @@ -218,9 +218,7 @@ fn inner_build(p: &ParagraphProperty) -> Vec { .add_optional_child(&p.adjust_right_ind); if let Some(v) = p.snap_to_grid { - if v { - b = b.snap_to_grid() - } + b = b.snap_to_grid(v) } if let Some(v) = p.keep_next { diff --git a/docx-core/src/reader/paragraph_property.rs b/docx-core/src/reader/paragraph_property.rs index 11d6a9583..e6464ff5e 100644 --- a/docx-core/src/reader/paragraph_property.rs +++ b/docx-core/src/reader/paragraph_property.rs @@ -95,9 +95,8 @@ impl ElementReader for ParagraphProperty { continue; } XMLElement::SnapToGrid => { - if read_bool(&attributes) { - p.snap_to_grid = Some(true); - } + let v = read_bool(&attributes); + p.snap_to_grid = Some(v); } XMLElement::KeepNext => { if read_bool(&attributes) { diff --git a/docx-core/src/xml_builder/elements.rs b/docx-core/src/xml_builder/elements.rs index 3ea4aa935..f48e19920 100644 --- a/docx-core/src/xml_builder/elements.rs +++ b/docx-core/src/xml_builder/elements.rs @@ -25,6 +25,18 @@ impl XMLBuilder { self.close() } + pub(crate) fn snap_to_grid(mut self, v: bool) -> Self { + let v = if v { + "true".to_string() + } else { + "false".to_string() + }; + self.writer + .write(XmlEvent::start_element("w:snapToGrid").attr("w:val", &v)) + .expect(EXPECT_MESSAGE); + self.close() + } + #[allow(clippy::too_many_arguments)] pub(crate) fn run_fonts( mut self, @@ -167,7 +179,6 @@ impl XMLBuilder { // i.e. closed_with_usize!(sz_cs, "w:szCs"); closed_with_isize!(adjust_right_ind, "w:adjustRightInd"); - closed!(snap_to_grid, "w:snapToGrid"); closed_with_str!(text_alignment, "w:textAlignment"); closed!(field_character, "w:fldChar", "w:fldCharType", "w:dirty"); diff --git a/docx-core/tests/snapshots/lib__reader__read_from_doc.snap b/docx-core/tests/snapshots/lib__reader__read_from_doc.snap index 008b1c0d1..cd2119d5a 100644 --- a/docx-core/tests/snapshots/lib__reader__read_from_doc.snap +++ b/docx-core/tests/snapshots/lib__reader__read_from_doc.snap @@ -2,4 +2,4 @@ source: docx-core/tests/reader.rs expression: "&json" --- -"{\n \"contentType\": {\n \"types\": {\n \"/_rels/.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/docProps/app.xml\": \"application/vnd.openxmlformats-officedocument.extended-properties+xml\",\n \"/docProps/core.xml\": \"application/vnd.openxmlformats-package.core-properties+xml\",\n \"/docProps/custom.xml\": \"application/vnd.openxmlformats-officedocument.custom-properties+xml\",\n \"/word/_rels/document.xml.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/word/comments.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\",\n \"/word/commentsExtended.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml\",\n \"/word/document.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\",\n \"/word/fontTable.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\",\n \"/word/numbering.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\",\n \"/word/settings.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\",\n \"/word/styles.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"\n },\n \"web_extension_count\": 1,\n \"custom_xml_count\": 1,\n \"header_count\": 0,\n \"footer_count\": 0\n },\n \"rels\": {\n \"rels\": [\n [\n \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n \"rId1\",\n \"docProps/core.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",\n \"rId2\",\n \"docProps/app.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n \"rId3\",\n \"word/document.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\",\n \"rId4\",\n \"docProps/custom.xml\"\n ]\n ]\n },\n \"documentRels\": {\n \"hasComments\": false,\n \"hasNumberings\": false,\n \"hasFootnotes\": false,\n \"images\": [],\n \"hyperlinks\": [],\n \"customXmlCount\": 0,\n \"headerCount\": 0,\n \"footerCount\": 0\n },\n \"docProps\": {\n \"app\": {},\n \"core\": {\n \"config\": {\n \"created\": null,\n \"creator\": null,\n \"description\": null,\n \"language\": null,\n \"lastModifiedBy\": null,\n \"modified\": null,\n \"revision\": null,\n \"subject\": null,\n \"title\": null\n }\n },\n \"custom\": {\n \"properties\": {}\n }\n },\n \"styles\": {\n \"docDefaults\": {\n \"runPropertyDefault\": {\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"fonts\": {\n \"ascii\": \"Liberation Serif\",\n \"hiAnsi\": \"Liberation Serif\",\n \"eastAsia\": \"Linux Libertine G\",\n \"cs\": \"Linux Libertine G\"\n }\n }\n },\n \"paragraphPropertyDefault\": {\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n }\n }\n },\n \"styles\": [\n {\n \"styleId\": \"Normal\",\n \"name\": \"Normal\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 21,\n \"szCs\": 21,\n \"color\": \"auto\",\n \"fonts\": {\n \"ascii\": \"游明朝\",\n \"hiAnsi\": \"游明朝\",\n \"eastAsia\": \"游明朝\",\n \"cs\": \"Times New Roman\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"both\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z0\",\n \"name\": \"WW8Num1z0\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z1\",\n \"name\": \"WW8Num1z1\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z2\",\n \"name\": \"WW8Num1z2\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z3\",\n \"name\": \"WW8Num1z3\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z4\",\n \"name\": \"WW8Num1z4\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z5\",\n \"name\": \"WW8Num1z5\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z6\",\n \"name\": \"WW8Num1z6\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z7\",\n \"name\": \"WW8Num1z7\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z8\",\n \"name\": \"WW8Num1z8\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"Style14\",\n \"name\": \"段落フォント\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"Heading\",\n \"name\": \"Heading\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"fonts\": {\n \"ascii\": \"Liberation Sans\",\n \"hiAnsi\": \"Liberation Sans\",\n \"eastAsia\": \"Linux Libertine G\",\n \"cs\": \"Linux Libertine G\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 240,\n \"after\": 120\n },\n \"keepNext\": true,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TextBody\",\n \"name\": \"Body Text\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"before\": 0,\n \"after\": 140,\n \"line\": 276\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"List\",\n \"name\": \"List\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"TextBody\",\n \"next\": null\n },\n {\n \"styleId\": \"Caption\",\n \"name\": \"Caption\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 120,\n \"after\": 120\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"Index\",\n \"name\": \"Index\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"Style15\",\n \"name\": \"リスト段落\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 840,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TableContents\",\n \"name\": \"Table Contents\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TableHeading\",\n \"name\": \"Table Heading\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"bold\": true,\n \"boldCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"TableContents\",\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1\",\n \"name\": \"WW8Num1\",\n \"styleType\": \"numbering\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n }\n ]\n },\n \"document\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000001\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": [\n {\n \"type\": \"text\",\n \"data\": {\n \"preserveSpace\": true,\n \"text\": \"Hello\"\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"numberingProperty\": {\n \"id\": 1,\n \"level\": 0\n },\n \"tabs\": []\n },\n \"hasNumbering\": true\n }\n },\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000002\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"table\",\n \"data\": {\n \"rows\": [\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000003\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000004\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000005\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000006\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000007\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000008\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000009\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000a\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 2624,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": 2,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000b\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000c\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000d\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000e\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000f\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000010\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000011\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000012\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000013\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000014\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000015\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000016\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000017\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000018\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000019\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n }\n ],\n \"grid\": [\n 1312,\n 1312,\n 1312,\n 1312,\n 1313,\n 1323\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"width\": {\n \"width\": 7884,\n \"widthType\": \"dxa\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": null,\n \"left\": null,\n \"bottom\": null,\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null\n },\n \"margins\": {\n \"top\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"left\": {\n \"val\": 55,\n \"widthType\": \"dxa\"\n },\n \"bottom\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"right\": {\n \"val\": 55,\n \"widthType\": \"dxa\"\n }\n },\n \"indent\": {\n \"width\": 727,\n \"widthType\": \"dxa\"\n }\n }\n }\n },\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000001a\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"sectionProperty\": {\n \"pageSize\": {\n \"w\": 11906,\n \"h\": 16838,\n \"orient\": null\n },\n \"pageMargin\": {\n \"top\": 1985,\n \"left\": 1701,\n \"bottom\": 1701,\n \"right\": 1701,\n \"header\": 0,\n \"footer\": 0,\n \"gutter\": 0\n },\n \"columns\": 1,\n \"space\": 425,\n \"titlePg\": false,\n \"textDirection\": \"lrTb\",\n \"docGrid\": {\n \"gridType\": \"lines\",\n \"linePitch\": 360,\n \"charSpace\": 0\n },\n \"sectionType\": \"nextPage\",\n \"pageNumType\": {}\n },\n \"hasNumbering\": true\n },\n \"comments\": {\n \"comments\": []\n },\n \"numberings\": {\n \"abstractNums\": [\n {\n \"id\": 1,\n \"styleLink\": null,\n \"numStyleLink\": null,\n \"levels\": [\n {\n \"level\": 0,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 425,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 425\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 1,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 992,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 567\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 2,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 1418,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 567\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 3,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 1984,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 708\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 4,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 2551,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 850\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 5,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 3260,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1134\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 6,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 3827,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1276\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 7,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7.%8\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 4394,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1418\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 8,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7.%8.%9\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 5102,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1700\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n }\n ]\n },\n {\n \"id\": 2,\n \"styleLink\": null,\n \"numStyleLink\": null,\n \"levels\": [\n {\n \"level\": 0,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 1,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 2,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 3,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 4,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 5,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 6,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 7,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 8,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n }\n ]\n }\n ],\n \"numberings\": [\n {\n \"id\": 1,\n \"abstractNumId\": 1,\n \"levelOverrides\": []\n },\n {\n \"id\": 2,\n \"abstractNumId\": 2,\n \"levelOverrides\": []\n }\n ]\n },\n \"settings\": {\n \"defaultTabStop\": 840,\n \"zoom\": 100,\n \"docId\": null,\n \"docVars\": [],\n \"evenAndOddHeaders\": false,\n \"adjustLineHeightInTable\": false\n },\n \"fontTable\": {},\n \"media\": [],\n \"commentsExtended\": {\n \"children\": []\n },\n \"webSettings\": {\n \"divs\": []\n },\n \"taskpanes\": null,\n \"taskpanesRels\": {\n \"rels\": []\n },\n \"webExtensions\": [],\n \"customItems\": [],\n \"customItemProps\": [],\n \"customItemRels\": [],\n \"themes\": [],\n \"images\": [],\n \"hyperlinks\": [],\n \"footnotes\": {\n \"footnotes\": []\n }\n}" +"{\n \"contentType\": {\n \"types\": {\n \"/_rels/.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/docProps/app.xml\": \"application/vnd.openxmlformats-officedocument.extended-properties+xml\",\n \"/docProps/core.xml\": \"application/vnd.openxmlformats-package.core-properties+xml\",\n \"/docProps/custom.xml\": \"application/vnd.openxmlformats-officedocument.custom-properties+xml\",\n \"/word/_rels/document.xml.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/word/comments.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\",\n \"/word/commentsExtended.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml\",\n \"/word/document.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\",\n \"/word/fontTable.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\",\n \"/word/numbering.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\",\n \"/word/settings.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\",\n \"/word/styles.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"\n },\n \"web_extension_count\": 1,\n \"custom_xml_count\": 1,\n \"header_count\": 0,\n \"footer_count\": 0\n },\n \"rels\": {\n \"rels\": [\n [\n \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n \"rId1\",\n \"docProps/core.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",\n \"rId2\",\n \"docProps/app.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n \"rId3\",\n \"word/document.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\",\n \"rId4\",\n \"docProps/custom.xml\"\n ]\n ]\n },\n \"documentRels\": {\n \"hasComments\": false,\n \"hasNumberings\": false,\n \"hasFootnotes\": false,\n \"images\": [],\n \"hyperlinks\": [],\n \"customXmlCount\": 0,\n \"headerCount\": 0,\n \"footerCount\": 0\n },\n \"docProps\": {\n \"app\": {},\n \"core\": {\n \"config\": {\n \"created\": null,\n \"creator\": null,\n \"description\": null,\n \"language\": null,\n \"lastModifiedBy\": null,\n \"modified\": null,\n \"revision\": null,\n \"subject\": null,\n \"title\": null\n }\n },\n \"custom\": {\n \"properties\": {}\n }\n },\n \"styles\": {\n \"docDefaults\": {\n \"runPropertyDefault\": {\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"fonts\": {\n \"ascii\": \"Liberation Serif\",\n \"hiAnsi\": \"Liberation Serif\",\n \"eastAsia\": \"Linux Libertine G\",\n \"cs\": \"Linux Libertine G\"\n }\n }\n },\n \"paragraphPropertyDefault\": {\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n }\n }\n },\n \"styles\": [\n {\n \"styleId\": \"Normal\",\n \"name\": \"Normal\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 21,\n \"szCs\": 21,\n \"color\": \"auto\",\n \"fonts\": {\n \"ascii\": \"游明朝\",\n \"hiAnsi\": \"游明朝\",\n \"eastAsia\": \"游明朝\",\n \"cs\": \"Times New Roman\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"both\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z0\",\n \"name\": \"WW8Num1z0\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z1\",\n \"name\": \"WW8Num1z1\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z2\",\n \"name\": \"WW8Num1z2\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z3\",\n \"name\": \"WW8Num1z3\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z4\",\n \"name\": \"WW8Num1z4\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z5\",\n \"name\": \"WW8Num1z5\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z6\",\n \"name\": \"WW8Num1z6\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z7\",\n \"name\": \"WW8Num1z7\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z8\",\n \"name\": \"WW8Num1z8\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"Style14\",\n \"name\": \"段落フォント\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"Heading\",\n \"name\": \"Heading\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"fonts\": {\n \"ascii\": \"Liberation Sans\",\n \"hiAnsi\": \"Liberation Sans\",\n \"eastAsia\": \"Linux Libertine G\",\n \"cs\": \"Linux Libertine G\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 240,\n \"after\": 120\n },\n \"keepNext\": true,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TextBody\",\n \"name\": \"Body Text\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"before\": 0,\n \"after\": 140,\n \"line\": 276\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"List\",\n \"name\": \"List\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"TextBody\",\n \"next\": null\n },\n {\n \"styleId\": \"Caption\",\n \"name\": \"Caption\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 120,\n \"after\": 120\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"Index\",\n \"name\": \"Index\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"Style15\",\n \"name\": \"リスト段落\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 840,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TableContents\",\n \"name\": \"Table Contents\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TableHeading\",\n \"name\": \"Table Heading\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"bold\": true,\n \"boldCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"TableContents\",\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1\",\n \"name\": \"WW8Num1\",\n \"styleType\": \"numbering\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n }\n ]\n },\n \"document\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000001\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": [\n {\n \"type\": \"text\",\n \"data\": {\n \"preserveSpace\": true,\n \"text\": \"Hello\"\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"numberingProperty\": {\n \"id\": 1,\n \"level\": 0\n },\n \"tabs\": []\n },\n \"hasNumbering\": true\n }\n },\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000002\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"table\",\n \"data\": {\n \"rows\": [\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000003\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000004\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000005\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000006\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000007\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000008\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000009\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000a\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 2624,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": 2,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000b\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000c\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000d\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000e\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000f\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000010\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000011\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000012\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000013\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000014\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000015\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000016\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000017\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000018\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000019\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n }\n ],\n \"grid\": [\n 1312,\n 1312,\n 1312,\n 1312,\n 1313,\n 1323\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"width\": {\n \"width\": 7884,\n \"widthType\": \"dxa\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": null,\n \"left\": null,\n \"bottom\": null,\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null\n },\n \"margins\": {\n \"top\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"left\": {\n \"val\": 55,\n \"widthType\": \"dxa\"\n },\n \"bottom\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"right\": {\n \"val\": 55,\n \"widthType\": \"dxa\"\n }\n },\n \"indent\": {\n \"width\": 727,\n \"widthType\": \"dxa\"\n }\n }\n }\n },\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000001a\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"sectionProperty\": {\n \"pageSize\": {\n \"w\": 11906,\n \"h\": 16838,\n \"orient\": null\n },\n \"pageMargin\": {\n \"top\": 1985,\n \"left\": 1701,\n \"bottom\": 1701,\n \"right\": 1701,\n \"header\": 0,\n \"footer\": 0,\n \"gutter\": 0\n },\n \"columns\": 1,\n \"space\": 425,\n \"titlePg\": false,\n \"textDirection\": \"lrTb\",\n \"docGrid\": {\n \"gridType\": \"lines\",\n \"linePitch\": 360,\n \"charSpace\": 0\n },\n \"sectionType\": \"nextPage\",\n \"pageNumType\": {}\n },\n \"hasNumbering\": true\n },\n \"comments\": {\n \"comments\": []\n },\n \"numberings\": {\n \"abstractNums\": [\n {\n \"id\": 1,\n \"styleLink\": null,\n \"numStyleLink\": null,\n \"levels\": [\n {\n \"level\": 0,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 425,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 425\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 1,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 992,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 567\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 2,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 1418,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 567\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 3,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 1984,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 708\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 4,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 2551,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 850\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 5,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 3260,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1134\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 6,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 3827,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1276\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 7,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7.%8\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 4394,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1418\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 8,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7.%8.%9\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 5102,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1700\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n }\n ]\n },\n {\n \"id\": 2,\n \"styleLink\": null,\n \"numStyleLink\": null,\n \"levels\": [\n {\n \"level\": 0,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 1,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 2,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 3,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 4,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 5,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 6,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 7,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 8,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n }\n ]\n }\n ],\n \"numberings\": [\n {\n \"id\": 1,\n \"abstractNumId\": 1,\n \"levelOverrides\": []\n },\n {\n \"id\": 2,\n \"abstractNumId\": 2,\n \"levelOverrides\": []\n }\n ]\n },\n \"settings\": {\n \"defaultTabStop\": 840,\n \"zoom\": 100,\n \"docId\": null,\n \"docVars\": [],\n \"evenAndOddHeaders\": false,\n \"adjustLineHeightInTable\": false\n },\n \"fontTable\": {},\n \"media\": [],\n \"commentsExtended\": {\n \"children\": []\n },\n \"webSettings\": {\n \"divs\": []\n },\n \"taskpanes\": null,\n \"taskpanesRels\": {\n \"rels\": []\n },\n \"webExtensions\": [],\n \"customItems\": [],\n \"customItemProps\": [],\n \"customItemRels\": [],\n \"themes\": [],\n \"images\": [],\n \"hyperlinks\": [],\n \"footnotes\": {\n \"footnotes\": []\n }\n}" diff --git a/docx-core/tests/snapshots/reader__read_from_doc.snap b/docx-core/tests/snapshots/reader__read_from_doc.snap index 008b1c0d1..cd2119d5a 100644 --- a/docx-core/tests/snapshots/reader__read_from_doc.snap +++ b/docx-core/tests/snapshots/reader__read_from_doc.snap @@ -2,4 +2,4 @@ source: docx-core/tests/reader.rs expression: "&json" --- -"{\n \"contentType\": {\n \"types\": {\n \"/_rels/.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/docProps/app.xml\": \"application/vnd.openxmlformats-officedocument.extended-properties+xml\",\n \"/docProps/core.xml\": \"application/vnd.openxmlformats-package.core-properties+xml\",\n \"/docProps/custom.xml\": \"application/vnd.openxmlformats-officedocument.custom-properties+xml\",\n \"/word/_rels/document.xml.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/word/comments.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\",\n \"/word/commentsExtended.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml\",\n \"/word/document.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\",\n \"/word/fontTable.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\",\n \"/word/numbering.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\",\n \"/word/settings.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\",\n \"/word/styles.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"\n },\n \"web_extension_count\": 1,\n \"custom_xml_count\": 1,\n \"header_count\": 0,\n \"footer_count\": 0\n },\n \"rels\": {\n \"rels\": [\n [\n \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n \"rId1\",\n \"docProps/core.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",\n \"rId2\",\n \"docProps/app.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n \"rId3\",\n \"word/document.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\",\n \"rId4\",\n \"docProps/custom.xml\"\n ]\n ]\n },\n \"documentRels\": {\n \"hasComments\": false,\n \"hasNumberings\": false,\n \"hasFootnotes\": false,\n \"images\": [],\n \"hyperlinks\": [],\n \"customXmlCount\": 0,\n \"headerCount\": 0,\n \"footerCount\": 0\n },\n \"docProps\": {\n \"app\": {},\n \"core\": {\n \"config\": {\n \"created\": null,\n \"creator\": null,\n \"description\": null,\n \"language\": null,\n \"lastModifiedBy\": null,\n \"modified\": null,\n \"revision\": null,\n \"subject\": null,\n \"title\": null\n }\n },\n \"custom\": {\n \"properties\": {}\n }\n },\n \"styles\": {\n \"docDefaults\": {\n \"runPropertyDefault\": {\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"fonts\": {\n \"ascii\": \"Liberation Serif\",\n \"hiAnsi\": \"Liberation Serif\",\n \"eastAsia\": \"Linux Libertine G\",\n \"cs\": \"Linux Libertine G\"\n }\n }\n },\n \"paragraphPropertyDefault\": {\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n }\n }\n },\n \"styles\": [\n {\n \"styleId\": \"Normal\",\n \"name\": \"Normal\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 21,\n \"szCs\": 21,\n \"color\": \"auto\",\n \"fonts\": {\n \"ascii\": \"游明朝\",\n \"hiAnsi\": \"游明朝\",\n \"eastAsia\": \"游明朝\",\n \"cs\": \"Times New Roman\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"both\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z0\",\n \"name\": \"WW8Num1z0\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z1\",\n \"name\": \"WW8Num1z1\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z2\",\n \"name\": \"WW8Num1z2\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z3\",\n \"name\": \"WW8Num1z3\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z4\",\n \"name\": \"WW8Num1z4\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z5\",\n \"name\": \"WW8Num1z5\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z6\",\n \"name\": \"WW8Num1z6\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z7\",\n \"name\": \"WW8Num1z7\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z8\",\n \"name\": \"WW8Num1z8\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"Style14\",\n \"name\": \"段落フォント\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"Heading\",\n \"name\": \"Heading\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"fonts\": {\n \"ascii\": \"Liberation Sans\",\n \"hiAnsi\": \"Liberation Sans\",\n \"eastAsia\": \"Linux Libertine G\",\n \"cs\": \"Linux Libertine G\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 240,\n \"after\": 120\n },\n \"keepNext\": true,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TextBody\",\n \"name\": \"Body Text\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"before\": 0,\n \"after\": 140,\n \"line\": 276\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"List\",\n \"name\": \"List\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"TextBody\",\n \"next\": null\n },\n {\n \"styleId\": \"Caption\",\n \"name\": \"Caption\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 120,\n \"after\": 120\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"Index\",\n \"name\": \"Index\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"Style15\",\n \"name\": \"リスト段落\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 840,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TableContents\",\n \"name\": \"Table Contents\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TableHeading\",\n \"name\": \"Table Heading\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"bold\": true,\n \"boldCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"TableContents\",\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1\",\n \"name\": \"WW8Num1\",\n \"styleType\": \"numbering\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n }\n ]\n },\n \"document\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000001\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": [\n {\n \"type\": \"text\",\n \"data\": {\n \"preserveSpace\": true,\n \"text\": \"Hello\"\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"numberingProperty\": {\n \"id\": 1,\n \"level\": 0\n },\n \"tabs\": []\n },\n \"hasNumbering\": true\n }\n },\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000002\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"table\",\n \"data\": {\n \"rows\": [\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000003\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000004\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000005\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000006\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000007\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000008\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000009\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000a\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 2624,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": 2,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000b\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000c\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000d\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000e\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000f\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000010\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000011\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000012\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000013\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000014\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000015\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000016\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000017\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000018\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000019\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n }\n ],\n \"grid\": [\n 1312,\n 1312,\n 1312,\n 1312,\n 1313,\n 1323\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"width\": {\n \"width\": 7884,\n \"widthType\": \"dxa\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": null,\n \"left\": null,\n \"bottom\": null,\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null\n },\n \"margins\": {\n \"top\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"left\": {\n \"val\": 55,\n \"widthType\": \"dxa\"\n },\n \"bottom\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"right\": {\n \"val\": 55,\n \"widthType\": \"dxa\"\n }\n },\n \"indent\": {\n \"width\": 727,\n \"widthType\": \"dxa\"\n }\n }\n }\n },\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000001a\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"sectionProperty\": {\n \"pageSize\": {\n \"w\": 11906,\n \"h\": 16838,\n \"orient\": null\n },\n \"pageMargin\": {\n \"top\": 1985,\n \"left\": 1701,\n \"bottom\": 1701,\n \"right\": 1701,\n \"header\": 0,\n \"footer\": 0,\n \"gutter\": 0\n },\n \"columns\": 1,\n \"space\": 425,\n \"titlePg\": false,\n \"textDirection\": \"lrTb\",\n \"docGrid\": {\n \"gridType\": \"lines\",\n \"linePitch\": 360,\n \"charSpace\": 0\n },\n \"sectionType\": \"nextPage\",\n \"pageNumType\": {}\n },\n \"hasNumbering\": true\n },\n \"comments\": {\n \"comments\": []\n },\n \"numberings\": {\n \"abstractNums\": [\n {\n \"id\": 1,\n \"styleLink\": null,\n \"numStyleLink\": null,\n \"levels\": [\n {\n \"level\": 0,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 425,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 425\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 1,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 992,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 567\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 2,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 1418,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 567\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 3,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 1984,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 708\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 4,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 2551,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 850\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 5,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 3260,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1134\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 6,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 3827,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1276\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 7,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7.%8\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 4394,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1418\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 8,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7.%8.%9\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 5102,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1700\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n }\n ]\n },\n {\n \"id\": 2,\n \"styleLink\": null,\n \"numStyleLink\": null,\n \"levels\": [\n {\n \"level\": 0,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 1,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 2,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 3,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 4,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 5,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 6,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 7,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 8,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n }\n ]\n }\n ],\n \"numberings\": [\n {\n \"id\": 1,\n \"abstractNumId\": 1,\n \"levelOverrides\": []\n },\n {\n \"id\": 2,\n \"abstractNumId\": 2,\n \"levelOverrides\": []\n }\n ]\n },\n \"settings\": {\n \"defaultTabStop\": 840,\n \"zoom\": 100,\n \"docId\": null,\n \"docVars\": [],\n \"evenAndOddHeaders\": false,\n \"adjustLineHeightInTable\": false\n },\n \"fontTable\": {},\n \"media\": [],\n \"commentsExtended\": {\n \"children\": []\n },\n \"webSettings\": {\n \"divs\": []\n },\n \"taskpanes\": null,\n \"taskpanesRels\": {\n \"rels\": []\n },\n \"webExtensions\": [],\n \"customItems\": [],\n \"customItemProps\": [],\n \"customItemRels\": [],\n \"themes\": [],\n \"images\": [],\n \"hyperlinks\": [],\n \"footnotes\": {\n \"footnotes\": []\n }\n}" +"{\n \"contentType\": {\n \"types\": {\n \"/_rels/.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/docProps/app.xml\": \"application/vnd.openxmlformats-officedocument.extended-properties+xml\",\n \"/docProps/core.xml\": \"application/vnd.openxmlformats-package.core-properties+xml\",\n \"/docProps/custom.xml\": \"application/vnd.openxmlformats-officedocument.custom-properties+xml\",\n \"/word/_rels/document.xml.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/word/comments.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\",\n \"/word/commentsExtended.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml\",\n \"/word/document.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\",\n \"/word/fontTable.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\",\n \"/word/numbering.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\",\n \"/word/settings.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\",\n \"/word/styles.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"\n },\n \"web_extension_count\": 1,\n \"custom_xml_count\": 1,\n \"header_count\": 0,\n \"footer_count\": 0\n },\n \"rels\": {\n \"rels\": [\n [\n \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n \"rId1\",\n \"docProps/core.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",\n \"rId2\",\n \"docProps/app.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n \"rId3\",\n \"word/document.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\",\n \"rId4\",\n \"docProps/custom.xml\"\n ]\n ]\n },\n \"documentRels\": {\n \"hasComments\": false,\n \"hasNumberings\": false,\n \"hasFootnotes\": false,\n \"images\": [],\n \"hyperlinks\": [],\n \"customXmlCount\": 0,\n \"headerCount\": 0,\n \"footerCount\": 0\n },\n \"docProps\": {\n \"app\": {},\n \"core\": {\n \"config\": {\n \"created\": null,\n \"creator\": null,\n \"description\": null,\n \"language\": null,\n \"lastModifiedBy\": null,\n \"modified\": null,\n \"revision\": null,\n \"subject\": null,\n \"title\": null\n }\n },\n \"custom\": {\n \"properties\": {}\n }\n },\n \"styles\": {\n \"docDefaults\": {\n \"runPropertyDefault\": {\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"fonts\": {\n \"ascii\": \"Liberation Serif\",\n \"hiAnsi\": \"Liberation Serif\",\n \"eastAsia\": \"Linux Libertine G\",\n \"cs\": \"Linux Libertine G\"\n }\n }\n },\n \"paragraphPropertyDefault\": {\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n }\n }\n },\n \"styles\": [\n {\n \"styleId\": \"Normal\",\n \"name\": \"Normal\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 21,\n \"szCs\": 21,\n \"color\": \"auto\",\n \"fonts\": {\n \"ascii\": \"游明朝\",\n \"hiAnsi\": \"游明朝\",\n \"eastAsia\": \"游明朝\",\n \"cs\": \"Times New Roman\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"both\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z0\",\n \"name\": \"WW8Num1z0\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z1\",\n \"name\": \"WW8Num1z1\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z2\",\n \"name\": \"WW8Num1z2\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z3\",\n \"name\": \"WW8Num1z3\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z4\",\n \"name\": \"WW8Num1z4\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z5\",\n \"name\": \"WW8Num1z5\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z6\",\n \"name\": \"WW8Num1z6\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z7\",\n \"name\": \"WW8Num1z7\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1z8\",\n \"name\": \"WW8Num1z8\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"Style14\",\n \"name\": \"段落フォント\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"Heading\",\n \"name\": \"Heading\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"fonts\": {\n \"ascii\": \"Liberation Sans\",\n \"hiAnsi\": \"Liberation Sans\",\n \"eastAsia\": \"Linux Libertine G\",\n \"cs\": \"Linux Libertine G\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 240,\n \"after\": 120\n },\n \"keepNext\": true,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TextBody\",\n \"name\": \"Body Text\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"before\": 0,\n \"after\": 140,\n \"line\": 276\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"List\",\n \"name\": \"List\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"TextBody\",\n \"next\": null\n },\n {\n \"styleId\": \"Caption\",\n \"name\": \"Caption\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 120,\n \"after\": 120\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"Index\",\n \"name\": \"Index\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"Style15\",\n \"name\": \"リスト段落\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 840,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TableContents\",\n \"name\": \"Table Contents\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"Normal\",\n \"next\": null\n },\n {\n \"styleId\": \"TableHeading\",\n \"name\": \"Table Heading\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"bold\": true,\n \"boldCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"TableContents\",\n \"next\": null\n },\n {\n \"styleId\": \"WW8Num1\",\n \"name\": \"WW8Num1\",\n \"styleType\": \"numbering\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n }\n ]\n },\n \"document\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000001\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": [\n {\n \"type\": \"text\",\n \"data\": {\n \"preserveSpace\": true,\n \"text\": \"Hello\"\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"numberingProperty\": {\n \"id\": 1,\n \"level\": 0\n },\n \"tabs\": []\n },\n \"hasNumbering\": true\n }\n },\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000002\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"table\",\n \"data\": {\n \"rows\": [\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000003\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000004\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000005\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000006\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000007\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000008\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000009\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000a\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 2624,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": 2,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000b\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000c\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000d\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000e\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000000f\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000010\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000011\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000012\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000013\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n },\n {\n \"type\": \"tableRow\",\n \"data\": {\n \"cells\": [\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000014\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000015\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000016\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000017\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1312,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000018\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1313,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n },\n {\n \"type\": \"tableCell\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"00000019\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": [],\n \"snapToGrid\": false\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"property\": {\n \"width\": {\n \"width\": 1323,\n \"widthType\": \"dxa\"\n },\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 4,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": null,\n \"insideV\": null,\n \"tr2bl\": null,\n \"tl2br\": null\n },\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"gridAfter\": null,\n \"widthAfter\": null,\n \"gridBefore\": null,\n \"widthBefore\": null\n }\n }\n }\n ],\n \"grid\": [\n 1312,\n 1312,\n 1312,\n 1312,\n 1313,\n 1323\n ],\n \"hasNumbering\": false,\n \"property\": {\n \"width\": {\n \"width\": 7884,\n \"widthType\": \"dxa\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": null,\n \"left\": null,\n \"bottom\": null,\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null\n },\n \"margins\": {\n \"top\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"left\": {\n \"val\": 55,\n \"widthType\": \"dxa\"\n },\n \"bottom\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"right\": {\n \"val\": 55,\n \"widthType\": \"dxa\"\n }\n },\n \"indent\": {\n \"width\": 727,\n \"widthType\": \"dxa\"\n }\n }\n }\n },\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"0000001a\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": []\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"style\": \"Style15\",\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"sectionProperty\": {\n \"pageSize\": {\n \"w\": 11906,\n \"h\": 16838,\n \"orient\": null\n },\n \"pageMargin\": {\n \"top\": 1985,\n \"left\": 1701,\n \"bottom\": 1701,\n \"right\": 1701,\n \"header\": 0,\n \"footer\": 0,\n \"gutter\": 0\n },\n \"columns\": 1,\n \"space\": 425,\n \"titlePg\": false,\n \"textDirection\": \"lrTb\",\n \"docGrid\": {\n \"gridType\": \"lines\",\n \"linePitch\": 360,\n \"charSpace\": 0\n },\n \"sectionType\": \"nextPage\",\n \"pageNumType\": {}\n },\n \"hasNumbering\": true\n },\n \"comments\": {\n \"comments\": []\n },\n \"numberings\": {\n \"abstractNums\": [\n {\n \"id\": 1,\n \"styleLink\": null,\n \"numStyleLink\": null,\n \"levels\": [\n {\n \"level\": 0,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 425,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 425\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 1,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 992,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 567\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 2,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 1418,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 567\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 3,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 1984,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 708\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 4,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 2551,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 850\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 5,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 3260,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1134\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 6,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 3827,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1276\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 7,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7.%8\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 4394,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1418\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 8,\n \"start\": 1,\n \"format\": \"decimal\",\n \"text\": \"%1.%2.%3.%4.%5.%6.%7.%8.%9\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 5102,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 1700\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"tab\",\n \"pstyle\": null,\n \"levelRestart\": null\n }\n ]\n },\n {\n \"id\": 2,\n \"styleLink\": null,\n \"numStyleLink\": null,\n \"levels\": [\n {\n \"level\": 0,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 1,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 2,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 3,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 4,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 5,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 6,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 7,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n },\n {\n \"level\": 8,\n \"start\": 1,\n \"format\": \"none\",\n \"text\": \"\",\n \"jc\": \"start\",\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 0,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": {\n \"type\": \"hanging\",\n \"val\": 0\n },\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"runProperty\": {},\n \"suffix\": \"nothing\",\n \"pstyle\": null,\n \"levelRestart\": null\n }\n ]\n }\n ],\n \"numberings\": [\n {\n \"id\": 1,\n \"abstractNumId\": 1,\n \"levelOverrides\": []\n },\n {\n \"id\": 2,\n \"abstractNumId\": 2,\n \"levelOverrides\": []\n }\n ]\n },\n \"settings\": {\n \"defaultTabStop\": 840,\n \"zoom\": 100,\n \"docId\": null,\n \"docVars\": [],\n \"evenAndOddHeaders\": false,\n \"adjustLineHeightInTable\": false\n },\n \"fontTable\": {},\n \"media\": [],\n \"commentsExtended\": {\n \"children\": []\n },\n \"webSettings\": {\n \"divs\": []\n },\n \"taskpanes\": null,\n \"taskpanesRels\": {\n \"rels\": []\n },\n \"webExtensions\": [],\n \"customItems\": [],\n \"customItemProps\": [],\n \"customItemRels\": [],\n \"themes\": [],\n \"images\": [],\n \"hyperlinks\": [],\n \"footnotes\": {\n \"footnotes\": []\n }\n}" diff --git a/docx-wasm/js/json/paragraph.ts b/docx-wasm/js/json/paragraph.ts index 521c5a34a..dfb4e58e4 100644 --- a/docx-wasm/js/json/paragraph.ts +++ b/docx-wasm/js/json/paragraph.ts @@ -65,6 +65,7 @@ export type ParagraphPropertyJSON = { divId?: string | null; keepNext?: boolean; keepLines?: boolean; + snapToGrid?: boolean; pageBreakBefore?: boolean; widowControl?: boolean; outlineLvl?: number | null; diff --git a/docx-wasm/js/paragraph.ts b/docx-wasm/js/paragraph.ts index 387b9add5..5f0032079 100644 --- a/docx-wasm/js/paragraph.ts +++ b/docx-wasm/js/paragraph.ts @@ -149,6 +149,11 @@ export class Paragraph { return this; } + snapToGrid(v: boolean) { + this.property = { ...this.property, snapToGrid: v }; + return this; + } + keepNext(v: boolean) { this.property = { ...this.property, keepNext: v }; return this; diff --git a/docx-wasm/package.json b/docx-wasm/package.json index 362ef3d13..661bdf90f 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -1,6 +1,6 @@ { "name": "docx-wasm", - "version": "0.4.18-rc4", + "version": "0.4.18-rc8", "main": "dist/node/index.js", "browser": "dist/web/index.js", "author": "bokuweb ", diff --git a/docx-wasm/test/__snapshots__/index.test.js.snap b/docx-wasm/test/__snapshots__/index.test.js.snap index 56e4b58f5..34ac6cefd 100644 --- a/docx-wasm/test/__snapshots__/index.test.js.snap +++ b/docx-wasm/test/__snapshots__/index.test.js.snap @@ -8493,6 +8493,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -8650,6 +8651,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -11704,6 +11706,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -11861,6 +11864,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -39643,6 +39647,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -39800,6 +39805,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -100409,6 +100415,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -101071,6 +101078,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -101183,6 +101191,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -101440,6 +101449,7 @@ Object { "lineRule": "atLeast", }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -101613,6 +101623,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -101778,6 +101789,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -101868,6 +101880,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -101964,6 +101977,7 @@ Object { "lineRule": "atLeast", }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -102066,6 +102080,7 @@ Object { "lineRule": "atLeast", }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -102165,6 +102180,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -102256,6 +102272,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -102346,6 +102363,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -102437,6 +102455,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -102538,6 +102557,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -102643,6 +102663,7 @@ Object { "lineRule": "atLeast", }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], "textAlignment": "baseline", }, @@ -105073,6 +105094,7 @@ Object { "paragraphProperty": Object { "adjustRightInd": 0, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -105396,6 +105418,7 @@ Object { "startChars": 1400, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -106874,6 +106897,7 @@ Object { "paragraphProperty": Object { "alignment": "left", "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object {}, @@ -107023,6 +107047,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -107637,6 +107662,7 @@ Object { "paragraphProperty": Object { "alignment": "left", "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object {}, @@ -109926,6 +109952,7 @@ Object { "level": null, }, "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object { @@ -169796,6 +169823,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -169956,6 +169984,7 @@ Object { "next": null, "paragraphProperty": Object { "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [ Object { "leader": null, @@ -170117,6 +170146,7 @@ Object { "paragraphProperty": Object { "alignment": "left", "runProperty": Object {}, + "snapToGrid": false, "tabs": Array [], }, "runProperty": Object {}, From f6bcebc186486dc49e9049cf4747e3f72b7a6093 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Thu, 18 Jul 2024 19:11:21 +0900 Subject: [PATCH 02/25] fix: escape font (#745) --- docx-core/src/documents/elements/run_fonts.rs | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/docx-core/src/documents/elements/run_fonts.rs b/docx-core/src/documents/elements/run_fonts.rs index baba5dda4..21a244e47 100644 --- a/docx-core/src/documents/elements/run_fonts.rs +++ b/docx-core/src/documents/elements/run_fonts.rs @@ -1,6 +1,7 @@ use serde::{Deserialize, Serialize}; use crate::documents::BuildXML; +use crate::escape::escape; use crate::xml_builder::*; /* @@ -40,47 +41,56 @@ impl RunFonts { } pub fn ascii(mut self, f: impl Into) -> Self { - self.ascii = Some(f.into()); + let s = f.into(); + self.ascii = Some(escape(&s)); self } pub fn hi_ansi(mut self, f: impl Into) -> Self { - self.hi_ansi = Some(f.into()); + let s = f.into(); + self.hi_ansi = Some(escape(&s)); self } pub fn east_asia(mut self, f: impl Into) -> Self { - self.east_asia = Some(f.into()); + let s = f.into(); + self.east_asia = Some(escape(&s)); self } pub fn cs(mut self, f: impl Into) -> Self { - self.cs = Some(f.into()); + let s = f.into(); + self.cs = Some(escape(&s)); self } pub fn ascii_theme(mut self, f: impl Into) -> Self { - self.ascii_theme = Some(f.into()); + let s = f.into(); + self.ascii_theme = Some(escape(&s)); self } pub fn hi_ansi_theme(mut self, f: impl Into) -> Self { - self.hi_ansi_theme = Some(f.into()); + let s = f.into(); + self.hi_ansi_theme = Some(escape(&s)); self } pub fn east_asia_theme(mut self, f: impl Into) -> Self { - self.east_asia_theme = Some(f.into()); + let s = f.into(); + self.east_asia_theme = Some(escape(&s)); self } pub fn cs_theme(mut self, f: impl Into) -> Self { - self.cs_theme = Some(f.into()); + let s = f.into(); + self.cs_theme = Some(escape(&s)); self } pub fn hint(mut self, f: impl Into) -> Self { - self.hint = Some(f.into()); + let s = f.into(); + self.hint = Some(escape(&s)); self } } @@ -147,4 +157,14 @@ mod tests { let b = c.build(); assert_eq!(str::from_utf8(&b).unwrap(), r#""#); } + + #[test] + fn test_run_fonts_with_escape() { + let c = RunFonts::new().east_asia(r#""Calibri",sans-serif"#); + let b = c.build(); + assert_eq!( + str::from_utf8(&b).unwrap(), + r#""#, + ); + } } From 93eb2e1bc1b75e8fadbf7450d442f174d939a40c Mon Sep 17 00:00:00 2001 From: bokuweb Date: Tue, 30 Jul 2024 11:43:55 +0900 Subject: [PATCH 03/25] 0.4.8-rc9 (#746) --- docx-wasm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docx-wasm/package.json b/docx-wasm/package.json index 661bdf90f..53ca0d5c2 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -1,6 +1,6 @@ { "name": "docx-wasm", - "version": "0.4.18-rc8", + "version": "0.4.18-rc9", "main": "dist/node/index.js", "browser": "dist/web/index.js", "author": "bokuweb ", From 19b174da7c06d617b21db00ad8728d331b5ca7b5 Mon Sep 17 00:00:00 2001 From: Y N Date: Fri, 6 Sep 2024 05:44:31 +0000 Subject: [PATCH 04/25] fix to read comment inside Delete in Insert (#755) --- docx-core/src/documents/mod.rs | 12 ++++++++++++ docx-core/tests/reader.rs | 17 +++++++++++++++++ ...ader__read_comment_in_delete_in_insert.snap | 5 +++++ ...ader__read_comment_in_delete_in_insert.snap | 5 +++++ .../comment_in_delete_in_insert.docx | Bin 0 -> 17622 bytes 5 files changed, 39 insertions(+) create mode 100644 docx-core/tests/snapshots/lib__reader__read_comment_in_delete_in_insert.snap create mode 100644 docx-core/tests/snapshots/reader__read_comment_in_delete_in_insert.snap create mode 100644 fixtures/comment_in_delete_in_insert/comment_in_delete_in_insert.docx diff --git a/docx-core/src/documents/mod.rs b/docx-core/src/documents/mod.rs index 380b801af..fba1c3cc0 100644 --- a/docx-core/src/documents/mod.rs +++ b/docx-core/src/documents/mod.rs @@ -868,6 +868,18 @@ impl Docx { let comment = comment.clone(); c.as_mut().comment(comment); } + } else if let InsertChild::Delete(ref mut d) = child { + for child in &mut d.children { + if let DeleteChild::CommentStart(ref mut c) = child { + let comment_id = c.get_id(); + if let Some(comment) = + comments.iter().find(|c| c.id() == comment_id) + { + let comment = comment.clone(); + c.as_mut().comment(comment); + } + } + } } } } diff --git a/docx-core/tests/reader.rs b/docx-core/tests/reader.rs index ae93e55a8..8ee5e203d 100644 --- a/docx-core/tests/reader.rs +++ b/docx-core/tests/reader.rs @@ -260,6 +260,23 @@ pub fn read_extended_comment() { file.flush().unwrap(); } +#[test] +pub fn read_comment_in_delete_in_insert() { + let mut file = + File::open("../fixtures/comment_in_delete_in_insert/comment_in_delete_in_insert.docx") + .unwrap(); + let mut buf = vec![]; + file.read_to_end(&mut buf).unwrap(); + let json = read_docx(&buf).unwrap().json(); + + assert_json_snapshot!("read_comment_in_delete_in_insert", &json); + + let path = std::path::Path::new("./tests/output/comment_in_delete_in_insert.json"); + let mut file = std::fs::File::create(path).unwrap(); + file.write_all(json.as_bytes()).unwrap(); + file.flush().unwrap(); +} + #[test] pub fn read_line_spacing() { let mut file = File::open("../fixtures/line_spacing/line_spacing.docx").unwrap(); diff --git a/docx-core/tests/snapshots/lib__reader__read_comment_in_delete_in_insert.snap b/docx-core/tests/snapshots/lib__reader__read_comment_in_delete_in_insert.snap new file mode 100644 index 000000000..1dbb1fa2f --- /dev/null +++ b/docx-core/tests/snapshots/lib__reader__read_comment_in_delete_in_insert.snap @@ -0,0 +1,5 @@ +--- +source: docx-core/tests/reader.rs +expression: "&json" +--- +"{\n \"contentType\": {\n \"types\": {\n \"/_rels/.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/docProps/app.xml\": \"application/vnd.openxmlformats-officedocument.extended-properties+xml\",\n \"/docProps/core.xml\": \"application/vnd.openxmlformats-package.core-properties+xml\",\n \"/docProps/custom.xml\": \"application/vnd.openxmlformats-officedocument.custom-properties+xml\",\n \"/word/_rels/document.xml.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/word/comments.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\",\n \"/word/commentsExtended.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml\",\n \"/word/document.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\",\n \"/word/fontTable.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\",\n \"/word/numbering.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\",\n \"/word/settings.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\",\n \"/word/styles.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"\n },\n \"web_extension_count\": 1,\n \"custom_xml_count\": 1,\n \"header_count\": 0,\n \"footer_count\": 0\n },\n \"rels\": {\n \"rels\": [\n [\n \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n \"rId1\",\n \"docProps/core.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",\n \"rId2\",\n \"docProps/app.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n \"rId3\",\n \"word/document.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\",\n \"rId4\",\n \"docProps/custom.xml\"\n ]\n ]\n },\n \"documentRels\": {\n \"hasComments\": true,\n \"hasNumberings\": false,\n \"hasFootnotes\": false,\n \"images\": [],\n \"hyperlinks\": [],\n \"customXmlCount\": 0,\n \"headerCount\": 0,\n \"footerCount\": 0\n },\n \"docProps\": {\n \"app\": {},\n \"core\": {\n \"config\": {\n \"created\": null,\n \"creator\": null,\n \"description\": null,\n \"language\": null,\n \"lastModifiedBy\": null,\n \"modified\": null,\n \"revision\": null,\n \"subject\": null,\n \"title\": null\n }\n },\n \"custom\": {\n \"properties\": {}\n }\n },\n \"styles\": {\n \"docDefaults\": {\n \"runPropertyDefault\": {\n \"runProperty\": {\n \"sz\": 22,\n \"szCs\": 22,\n \"fonts\": {\n \"asciiTheme\": \"minorHAnsi\",\n \"hiAnsiTheme\": \"minorHAnsi\",\n \"eastAsiaTheme\": \"minorEastAsia\",\n \"csTheme\": \"minorBidi\"\n }\n }\n },\n \"paragraphPropertyDefault\": {\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"after\": 160,\n \"line\": 259\n },\n \"tabs\": []\n }\n }\n },\n \"styles\": [\n {\n \"styleId\": \"a\",\n \"name\": \"Normal\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"1\",\n \"name\": \"heading 1\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 32,\n \"szCs\": 32,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 280,\n \"after\": 80\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 0,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"10\"\n },\n {\n \"styleId\": \"2\",\n \"name\": \"heading 2\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 160,\n \"after\": 80\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 1,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"20\"\n },\n {\n \"styleId\": \"3\",\n \"name\": \"heading 3\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 160,\n \"after\": 80\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 2,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"30\"\n },\n {\n \"styleId\": \"4\",\n \"name\": \"heading 4\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 3,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"40\"\n },\n {\n \"styleId\": \"5\",\n \"name\": \"heading 5\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 100,\n \"startChars\": 100,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 4,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"50\"\n },\n {\n \"styleId\": \"6\",\n \"name\": \"heading 6\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 200,\n \"startChars\": 200,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 5,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"60\"\n },\n {\n \"styleId\": \"7\",\n \"name\": \"heading 7\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 300,\n \"startChars\": 300,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 6,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"70\"\n },\n {\n \"styleId\": \"8\",\n \"name\": \"heading 8\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 400,\n \"startChars\": 400,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 7,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"80\"\n },\n {\n \"styleId\": \"9\",\n \"name\": \"heading 9\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 500,\n \"startChars\": 500,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 8,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"90\"\n },\n {\n \"styleId\": \"a0\",\n \"name\": \"Default Paragraph Font\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"a1\",\n \"name\": \"Normal Table\",\n \"styleType\": \"table\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": null,\n \"left\": null,\n \"bottom\": null,\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null\n },\n \"margins\": {\n \"top\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"left\": {\n \"val\": 108,\n \"widthType\": \"dxa\"\n },\n \"bottom\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"right\": {\n \"val\": 108,\n \"widthType\": \"dxa\"\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"a2\",\n \"name\": \"No List\",\n \"styleType\": \"numbering\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"10\",\n \"name\": \"見出し 1 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 32,\n \"szCs\": 32,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"1\"\n },\n {\n \"styleId\": \"20\",\n \"name\": \"見出し 2 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"2\"\n },\n {\n \"styleId\": \"30\",\n \"name\": \"見出し 3 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"3\"\n },\n {\n \"styleId\": \"40\",\n \"name\": \"見出し 4 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"4\"\n },\n {\n \"styleId\": \"50\",\n \"name\": \"見出し 5 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"5\"\n },\n {\n \"styleId\": \"60\",\n \"name\": \"見出し 6 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"6\"\n },\n {\n \"styleId\": \"70\",\n \"name\": \"見出し 7 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"7\"\n },\n {\n \"styleId\": \"80\",\n \"name\": \"見出し 8 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"8\"\n },\n {\n \"styleId\": \"90\",\n \"name\": \"見出し 9 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"9\"\n },\n {\n \"styleId\": \"a3\",\n \"name\": \"Title\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 56,\n \"szCs\": 56,\n \"characterSpacing\": -10,\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"after\": 80,\n \"line\": 240\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"a4\"\n },\n {\n \"styleId\": \"a4\",\n \"name\": \"表題 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 56,\n \"szCs\": 56,\n \"characterSpacing\": -10,\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"a3\"\n },\n {\n \"styleId\": \"a5\",\n \"name\": \"Subtitle\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"color\": \"595959\",\n \"characterSpacing\": 15,\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"numberingProperty\": {\n \"id\": null,\n \"level\": null\n },\n \"alignment\": \"center\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"a6\"\n },\n {\n \"styleId\": \"a6\",\n \"name\": \"副題 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"color\": \"595959\",\n \"characterSpacing\": 15,\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"a5\"\n },\n {\n \"styleId\": \"a7\",\n \"name\": \"Quote\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"404040\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"lineSpacing\": {\n \"before\": 160\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"a8\"\n },\n {\n \"styleId\": \"a8\",\n \"name\": \"引用文 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"404040\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"a7\"\n },\n {\n \"styleId\": \"a9\",\n \"name\": \"List Paragraph\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 720,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null\n },\n {\n \"styleId\": \"21\",\n \"name\": \"Intense Emphasis\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"0F4761\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null\n },\n {\n \"styleId\": \"22\",\n \"name\": \"Intense Quote\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"0F4761\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"indent\": {\n \"start\": 864,\n \"startChars\": null,\n \"end\": 864,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 360,\n \"after\": 360\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"23\"\n },\n {\n \"styleId\": \"23\",\n \"name\": \"引用文 2 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"0F4761\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"22\"\n },\n {\n \"styleId\": \"24\",\n \"name\": \"Intense Reference\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"0F4761\",\n \"bold\": true,\n \"boldCs\": true,\n \"characterSpacing\": 5\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null\n },\n {\n \"styleId\": \"aa\",\n \"name\": \"Revision\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"after\": 0,\n \"line\": 240\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"ab\",\n \"name\": \"annotation reference\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 18,\n \"szCs\": 18\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null\n },\n {\n \"styleId\": \"ac\",\n \"name\": \"annotation text\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"ad\"\n },\n {\n \"styleId\": \"ad\",\n \"name\": \"コメント文字列 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"ac\"\n },\n {\n \"styleId\": \"ae\",\n \"name\": \"annotation subject\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"bold\": true,\n \"boldCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"ac\",\n \"next\": null,\n \"link\": \"af\"\n },\n {\n \"styleId\": \"af\",\n \"name\": \"コメント内容 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"bold\": true,\n \"boldCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"ad\",\n \"next\": null,\n \"link\": \"ae\"\n }\n ]\n },\n \"document\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"21D4BAF0\",\n \"children\": [\n {\n \"type\": \"insert\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"delete\",\n \"data\": {\n \"author\": \"TestName2\",\n \"date\": \"2024-08-26T08:38:00Z\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": [\n {\n \"type\": \"deleteText\",\n \"data\": {\n \"text\": \"Hello\",\n \"preserveSpace\": true\n }\n }\n ]\n }\n },\n {\n \"type\": \"commentRangeStart\",\n \"data\": {\n \"id\": 0,\n \"comment\": {\n \"id\": 0,\n \"author\": \"TestName2\",\n \"date\": \"2024-09-06T11:13:00Z\",\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"37D90BEC\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"style\": \"ab\"\n },\n \"children\": []\n }\n },\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"color\": \"000000\"\n },\n \"children\": [\n {\n \"type\": \"text\",\n \"data\": {\n \"preserveSpace\": true,\n \"text\": \"Hello Comment\"\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"parentCommentId\": null\n }\n }\n },\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": [\n {\n \"type\": \"deleteText\",\n \"data\": {\n \"text\": \"World\",\n \"preserveSpace\": true\n }\n }\n ]\n }\n }\n ]\n }\n }\n ],\n \"author\": \"TestName1\",\n \"date\": \"2024-08-19T14:20:00Z\"\n }\n },\n {\n \"type\": \"commentRangeEnd\",\n \"data\": {\n \"id\": 0\n }\n },\n {\n \"type\": \"delete\",\n \"data\": {\n \"author\": \"TestName2\",\n \"date\": \"2024-08-26T08:38:00Z\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"style\": \"ac\"\n },\n \"children\": []\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"sectionProperty\": {\n \"pageSize\": {\n \"w\": 11906,\n \"h\": 16838,\n \"orient\": null\n },\n \"pageMargin\": {\n \"top\": 1985,\n \"left\": 1701,\n \"bottom\": 1701,\n \"right\": 1701,\n \"header\": 851,\n \"footer\": 992,\n \"gutter\": 0\n },\n \"columns\": 1,\n \"space\": 425,\n \"titlePg\": false,\n \"textDirection\": \"lrTb\",\n \"docGrid\": {\n \"gridType\": \"lines\",\n \"linePitch\": 360,\n \"charSpace\": null\n }\n },\n \"hasNumbering\": false\n },\n \"comments\": {\n \"comments\": [\n {\n \"id\": 0,\n \"author\": \"TestName2\",\n \"date\": \"2024-09-06T11:13:00Z\",\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"37D90BEC\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"style\": \"ab\"\n },\n \"children\": []\n }\n },\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"color\": \"000000\"\n },\n \"children\": [\n {\n \"type\": \"text\",\n \"data\": {\n \"preserveSpace\": true,\n \"text\": \"Hello Comment\"\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"parentCommentId\": null\n }\n ]\n },\n \"numberings\": {\n \"abstractNums\": [],\n \"numberings\": []\n },\n \"settings\": {\n \"defaultTabStop\": 840,\n \"zoom\": 100,\n \"docId\": \"67A194D4-06B5-034F-A576-D151C3DA400D\",\n \"docVars\": [],\n \"evenAndOddHeaders\": false,\n \"adjustLineHeightInTable\": true,\n \"characterSpacingControl\": \"compressPunctuation\"\n },\n \"fontTable\": {},\n \"media\": [],\n \"commentsExtended\": {\n \"children\": [\n {\n \"paragraphId\": \"37D90BEC\",\n \"done\": false,\n \"parentParagraphId\": null\n }\n ]\n },\n \"webSettings\": {\n \"divs\": []\n },\n \"taskpanes\": null,\n \"taskpanesRels\": {\n \"rels\": []\n },\n \"webExtensions\": [],\n \"customItems\": [],\n \"customItemProps\": [],\n \"customItemRels\": [],\n \"themes\": [\n {\n \"fontSchema\": {\n \"majorFont\": {\n \"latin\": \"游ゴシック Light\",\n \"ea\": \"\",\n \"cs\": \"\",\n \"fonts\": [\n {\n \"script\": \"Jpan\",\n \"typeface\": \"游ゴシック Light\"\n },\n {\n \"script\": \"Hang\",\n \"typeface\": \"맑은 고딕\"\n },\n {\n \"script\": \"Hans\",\n \"typeface\": \"等线 Light\"\n },\n {\n \"script\": \"Hant\",\n \"typeface\": \"新細明體\"\n },\n {\n \"script\": \"Arab\",\n \"typeface\": \"Times New Roman\"\n },\n {\n \"script\": \"Hebr\",\n \"typeface\": \"Times New Roman\"\n },\n {\n \"script\": \"Thai\",\n \"typeface\": \"Angsana New\"\n },\n {\n \"script\": \"Ethi\",\n \"typeface\": \"Nyala\"\n },\n {\n \"script\": \"Beng\",\n \"typeface\": \"Vrinda\"\n },\n {\n \"script\": \"Gujr\",\n \"typeface\": \"Shruti\"\n },\n {\n \"script\": \"Khmr\",\n \"typeface\": \"MoolBoran\"\n },\n {\n \"script\": \"Knda\",\n \"typeface\": \"Tunga\"\n },\n {\n \"script\": \"Guru\",\n \"typeface\": \"Raavi\"\n },\n {\n \"script\": \"Cans\",\n \"typeface\": \"Euphemia\"\n },\n {\n \"script\": \"Cher\",\n \"typeface\": \"Plantagenet Cherokee\"\n },\n {\n \"script\": \"Yiii\",\n \"typeface\": \"Microsoft Yi Baiti\"\n },\n {\n \"script\": \"Tibt\",\n \"typeface\": \"Microsoft Himalaya\"\n },\n {\n \"script\": \"Thaa\",\n \"typeface\": \"MV Boli\"\n },\n {\n \"script\": \"Deva\",\n \"typeface\": \"Mangal\"\n },\n {\n \"script\": \"Telu\",\n \"typeface\": \"Gautami\"\n },\n {\n \"script\": \"Taml\",\n \"typeface\": \"Latha\"\n },\n {\n \"script\": \"Syrc\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Orya\",\n \"typeface\": \"Kalinga\"\n },\n {\n \"script\": \"Mlym\",\n \"typeface\": \"Kartika\"\n },\n {\n \"script\": \"Laoo\",\n \"typeface\": \"DokChampa\"\n },\n {\n \"script\": \"Sinh\",\n \"typeface\": \"Iskoola Pota\"\n },\n {\n \"script\": \"Mong\",\n \"typeface\": \"Mongolian Baiti\"\n },\n {\n \"script\": \"Viet\",\n \"typeface\": \"Times New Roman\"\n },\n {\n \"script\": \"Uigh\",\n \"typeface\": \"Microsoft Uighur\"\n },\n {\n \"script\": \"Geor\",\n \"typeface\": \"Sylfaen\"\n },\n {\n \"script\": \"Armn\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Bugi\",\n \"typeface\": \"Leelawadee UI\"\n },\n {\n \"script\": \"Bopo\",\n \"typeface\": \"Microsoft JhengHei\"\n },\n {\n \"script\": \"Java\",\n \"typeface\": \"Javanese Text\"\n },\n {\n \"script\": \"Lisu\",\n \"typeface\": \"Segoe UI\"\n },\n {\n \"script\": \"Mymr\",\n \"typeface\": \"Myanmar Text\"\n },\n {\n \"script\": \"Nkoo\",\n \"typeface\": \"Ebrima\"\n },\n {\n \"script\": \"Olck\",\n \"typeface\": \"Nirmala UI\"\n },\n {\n \"script\": \"Osma\",\n \"typeface\": \"Ebrima\"\n },\n {\n \"script\": \"Phag\",\n \"typeface\": \"Phagspa\"\n },\n {\n \"script\": \"Syrn\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Syrj\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Syre\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Sora\",\n \"typeface\": \"Nirmala UI\"\n },\n {\n \"script\": \"Tale\",\n \"typeface\": \"Microsoft Tai Le\"\n },\n {\n \"script\": \"Talu\",\n \"typeface\": \"Microsoft New Tai Lue\"\n },\n {\n \"script\": \"Tfng\",\n \"typeface\": \"Ebrima\"\n }\n ]\n },\n \"minorFont\": {\n \"latin\": \"游明朝\",\n \"ea\": \"\",\n \"cs\": \"\",\n \"fonts\": [\n {\n \"script\": \"Jpan\",\n \"typeface\": \"游明朝\"\n },\n {\n \"script\": \"Hang\",\n \"typeface\": \"맑은 고딕\"\n },\n {\n \"script\": \"Hans\",\n \"typeface\": \"等线\"\n },\n {\n \"script\": \"Hant\",\n \"typeface\": \"新細明體\"\n },\n {\n \"script\": \"Arab\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Hebr\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Thai\",\n \"typeface\": \"Cordia New\"\n },\n {\n \"script\": \"Ethi\",\n \"typeface\": \"Nyala\"\n },\n {\n \"script\": \"Beng\",\n \"typeface\": \"Vrinda\"\n },\n {\n \"script\": \"Gujr\",\n \"typeface\": \"Shruti\"\n },\n {\n \"script\": \"Khmr\",\n \"typeface\": \"DaunPenh\"\n },\n {\n \"script\": \"Knda\",\n \"typeface\": \"Tunga\"\n },\n {\n \"script\": \"Guru\",\n \"typeface\": \"Raavi\"\n },\n {\n \"script\": \"Cans\",\n \"typeface\": \"Euphemia\"\n },\n {\n \"script\": \"Cher\",\n \"typeface\": \"Plantagenet Cherokee\"\n },\n {\n \"script\": \"Yiii\",\n \"typeface\": \"Microsoft Yi Baiti\"\n },\n {\n \"script\": \"Tibt\",\n \"typeface\": \"Microsoft Himalaya\"\n },\n {\n \"script\": \"Thaa\",\n \"typeface\": \"MV Boli\"\n },\n {\n \"script\": \"Deva\",\n \"typeface\": \"Mangal\"\n },\n {\n \"script\": \"Telu\",\n \"typeface\": \"Gautami\"\n },\n {\n \"script\": \"Taml\",\n \"typeface\": \"Latha\"\n },\n {\n \"script\": \"Syrc\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Orya\",\n \"typeface\": \"Kalinga\"\n },\n {\n \"script\": \"Mlym\",\n \"typeface\": \"Kartika\"\n },\n {\n \"script\": \"Laoo\",\n \"typeface\": \"DokChampa\"\n },\n {\n \"script\": \"Sinh\",\n \"typeface\": \"Iskoola Pota\"\n },\n {\n \"script\": \"Mong\",\n \"typeface\": \"Mongolian Baiti\"\n },\n {\n \"script\": \"Viet\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Uigh\",\n \"typeface\": \"Microsoft Uighur\"\n },\n {\n \"script\": \"Geor\",\n \"typeface\": \"Sylfaen\"\n },\n {\n \"script\": \"Armn\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Bugi\",\n \"typeface\": \"Leelawadee UI\"\n },\n {\n \"script\": \"Bopo\",\n \"typeface\": \"Microsoft JhengHei\"\n },\n {\n \"script\": \"Java\",\n \"typeface\": \"Javanese Text\"\n },\n {\n \"script\": \"Lisu\",\n \"typeface\": \"Segoe UI\"\n },\n {\n \"script\": \"Mymr\",\n \"typeface\": \"Myanmar Text\"\n },\n {\n \"script\": \"Nkoo\",\n \"typeface\": \"Ebrima\"\n },\n {\n \"script\": \"Olck\",\n \"typeface\": \"Nirmala UI\"\n },\n {\n \"script\": \"Osma\",\n \"typeface\": \"Ebrima\"\n },\n {\n \"script\": \"Phag\",\n \"typeface\": \"Phagspa\"\n },\n {\n \"script\": \"Syrn\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Syrj\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Syre\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Sora\",\n \"typeface\": \"Nirmala UI\"\n },\n {\n \"script\": \"Tale\",\n \"typeface\": \"Microsoft Tai Le\"\n },\n {\n \"script\": \"Talu\",\n \"typeface\": \"Microsoft New Tai Lue\"\n },\n {\n \"script\": \"Tfng\",\n \"typeface\": \"Ebrima\"\n }\n ]\n }\n }\n }\n ],\n \"images\": [],\n \"hyperlinks\": [],\n \"footnotes\": {\n \"footnotes\": []\n }\n}" diff --git a/docx-core/tests/snapshots/reader__read_comment_in_delete_in_insert.snap b/docx-core/tests/snapshots/reader__read_comment_in_delete_in_insert.snap new file mode 100644 index 000000000..1dbb1fa2f --- /dev/null +++ b/docx-core/tests/snapshots/reader__read_comment_in_delete_in_insert.snap @@ -0,0 +1,5 @@ +--- +source: docx-core/tests/reader.rs +expression: "&json" +--- +"{\n \"contentType\": {\n \"types\": {\n \"/_rels/.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/docProps/app.xml\": \"application/vnd.openxmlformats-officedocument.extended-properties+xml\",\n \"/docProps/core.xml\": \"application/vnd.openxmlformats-package.core-properties+xml\",\n \"/docProps/custom.xml\": \"application/vnd.openxmlformats-officedocument.custom-properties+xml\",\n \"/word/_rels/document.xml.rels\": \"application/vnd.openxmlformats-package.relationships+xml\",\n \"/word/comments.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\",\n \"/word/commentsExtended.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml\",\n \"/word/document.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\",\n \"/word/fontTable.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\",\n \"/word/numbering.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\",\n \"/word/settings.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\",\n \"/word/styles.xml\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"\n },\n \"web_extension_count\": 1,\n \"custom_xml_count\": 1,\n \"header_count\": 0,\n \"footer_count\": 0\n },\n \"rels\": {\n \"rels\": [\n [\n \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n \"rId1\",\n \"docProps/core.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",\n \"rId2\",\n \"docProps/app.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n \"rId3\",\n \"word/document.xml\"\n ],\n [\n \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\",\n \"rId4\",\n \"docProps/custom.xml\"\n ]\n ]\n },\n \"documentRels\": {\n \"hasComments\": true,\n \"hasNumberings\": false,\n \"hasFootnotes\": false,\n \"images\": [],\n \"hyperlinks\": [],\n \"customXmlCount\": 0,\n \"headerCount\": 0,\n \"footerCount\": 0\n },\n \"docProps\": {\n \"app\": {},\n \"core\": {\n \"config\": {\n \"created\": null,\n \"creator\": null,\n \"description\": null,\n \"language\": null,\n \"lastModifiedBy\": null,\n \"modified\": null,\n \"revision\": null,\n \"subject\": null,\n \"title\": null\n }\n },\n \"custom\": {\n \"properties\": {}\n }\n },\n \"styles\": {\n \"docDefaults\": {\n \"runPropertyDefault\": {\n \"runProperty\": {\n \"sz\": 22,\n \"szCs\": 22,\n \"fonts\": {\n \"asciiTheme\": \"minorHAnsi\",\n \"hiAnsiTheme\": \"minorHAnsi\",\n \"eastAsiaTheme\": \"minorEastAsia\",\n \"csTheme\": \"minorBidi\"\n }\n }\n },\n \"paragraphPropertyDefault\": {\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"after\": 160,\n \"line\": 259\n },\n \"tabs\": []\n }\n }\n },\n \"styles\": [\n {\n \"styleId\": \"a\",\n \"name\": \"Normal\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"1\",\n \"name\": \"heading 1\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 32,\n \"szCs\": 32,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 280,\n \"after\": 80\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 0,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"10\"\n },\n {\n \"styleId\": \"2\",\n \"name\": \"heading 2\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 160,\n \"after\": 80\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 1,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"20\"\n },\n {\n \"styleId\": \"3\",\n \"name\": \"heading 3\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 160,\n \"after\": 80\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 2,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"30\"\n },\n {\n \"styleId\": \"4\",\n \"name\": \"heading 4\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 3,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"40\"\n },\n {\n \"styleId\": \"5\",\n \"name\": \"heading 5\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 100,\n \"startChars\": 100,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 4,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"50\"\n },\n {\n \"styleId\": \"6\",\n \"name\": \"heading 6\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 200,\n \"startChars\": 200,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 5,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"60\"\n },\n {\n \"styleId\": \"7\",\n \"name\": \"heading 7\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 300,\n \"startChars\": 300,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 6,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"70\"\n },\n {\n \"styleId\": \"8\",\n \"name\": \"heading 8\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 400,\n \"startChars\": 400,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 7,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"80\"\n },\n {\n \"styleId\": \"9\",\n \"name\": \"heading 9\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 500,\n \"startChars\": 500,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 80,\n \"after\": 40\n },\n \"keepNext\": true,\n \"keepLines\": true,\n \"outlineLvl\": 8,\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"90\"\n },\n {\n \"styleId\": \"a0\",\n \"name\": \"Default Paragraph Font\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"a1\",\n \"name\": \"Normal Table\",\n \"styleType\": \"table\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": null,\n \"left\": null,\n \"bottom\": null,\n \"right\": null,\n \"insideH\": null,\n \"insideV\": null\n },\n \"margins\": {\n \"top\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"left\": {\n \"val\": 108,\n \"widthType\": \"dxa\"\n },\n \"bottom\": {\n \"val\": 0,\n \"widthType\": \"dxa\"\n },\n \"right\": {\n \"val\": 108,\n \"widthType\": \"dxa\"\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"a2\",\n \"name\": \"No List\",\n \"styleType\": \"numbering\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"10\",\n \"name\": \"見出し 1 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 32,\n \"szCs\": 32,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"1\"\n },\n {\n \"styleId\": \"20\",\n \"name\": \"見出し 2 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"2\"\n },\n {\n \"styleId\": \"30\",\n \"name\": \"見出し 3 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 24,\n \"szCs\": 24,\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"3\"\n },\n {\n \"styleId\": \"40\",\n \"name\": \"見出し 4 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"4\"\n },\n {\n \"styleId\": \"50\",\n \"name\": \"見出し 5 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"5\"\n },\n {\n \"styleId\": \"60\",\n \"name\": \"見出し 6 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"6\"\n },\n {\n \"styleId\": \"70\",\n \"name\": \"見出し 7 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"7\"\n },\n {\n \"styleId\": \"80\",\n \"name\": \"見出し 8 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"8\"\n },\n {\n \"styleId\": \"90\",\n \"name\": \"見出し 9 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"000000\",\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"9\"\n },\n {\n \"styleId\": \"a3\",\n \"name\": \"Title\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 56,\n \"szCs\": 56,\n \"characterSpacing\": -10,\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"after\": 80,\n \"line\": 240\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"a4\"\n },\n {\n \"styleId\": \"a4\",\n \"name\": \"表題 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 56,\n \"szCs\": 56,\n \"characterSpacing\": -10,\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"a3\"\n },\n {\n \"styleId\": \"a5\",\n \"name\": \"Subtitle\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"color\": \"595959\",\n \"characterSpacing\": 15,\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"numberingProperty\": {\n \"id\": null,\n \"level\": null\n },\n \"alignment\": \"center\",\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"a6\"\n },\n {\n \"styleId\": \"a6\",\n \"name\": \"副題 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 28,\n \"szCs\": 28,\n \"color\": \"595959\",\n \"characterSpacing\": 15,\n \"fonts\": {\n \"asciiTheme\": \"majorHAnsi\",\n \"hiAnsiTheme\": \"majorHAnsi\",\n \"eastAsiaTheme\": \"majorEastAsia\",\n \"csTheme\": \"majorBidi\"\n }\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"a5\"\n },\n {\n \"styleId\": \"a7\",\n \"name\": \"Quote\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"404040\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"lineSpacing\": {\n \"before\": 160\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"a8\"\n },\n {\n \"styleId\": \"a8\",\n \"name\": \"引用文 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"404040\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"a7\"\n },\n {\n \"styleId\": \"a9\",\n \"name\": \"List Paragraph\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"indent\": {\n \"start\": 720,\n \"startChars\": null,\n \"end\": null,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null\n },\n {\n \"styleId\": \"21\",\n \"name\": \"Intense Emphasis\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"0F4761\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null\n },\n {\n \"styleId\": \"22\",\n \"name\": \"Intense Quote\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"color\": \"0F4761\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"alignment\": \"center\",\n \"indent\": {\n \"start\": 864,\n \"startChars\": null,\n \"end\": 864,\n \"specialIndent\": null,\n \"hangingChars\": null,\n \"firstLineChars\": null\n },\n \"lineSpacing\": {\n \"before\": 360,\n \"after\": 360\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"23\"\n },\n {\n \"styleId\": \"23\",\n \"name\": \"引用文 2 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"0F4761\",\n \"italic\": true,\n \"italicCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"22\"\n },\n {\n \"styleId\": \"24\",\n \"name\": \"Intense Reference\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"color\": \"0F4761\",\n \"bold\": true,\n \"boldCs\": true,\n \"characterSpacing\": 5\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null\n },\n {\n \"styleId\": \"aa\",\n \"name\": \"Revision\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"lineSpacing\": {\n \"lineRule\": \"auto\",\n \"after\": 0,\n \"line\": 240\n },\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": null,\n \"next\": null\n },\n {\n \"styleId\": \"ab\",\n \"name\": \"annotation reference\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"sz\": 18,\n \"szCs\": 18\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null\n },\n {\n \"styleId\": \"ac\",\n \"name\": \"annotation text\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a\",\n \"next\": null,\n \"link\": \"ad\"\n },\n {\n \"styleId\": \"ad\",\n \"name\": \"コメント文字列 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {},\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"a0\",\n \"next\": null,\n \"link\": \"ac\"\n },\n {\n \"styleId\": \"ae\",\n \"name\": \"annotation subject\",\n \"styleType\": \"paragraph\",\n \"runProperty\": {\n \"bold\": true,\n \"boldCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"ac\",\n \"next\": null,\n \"link\": \"af\"\n },\n {\n \"styleId\": \"af\",\n \"name\": \"コメント内容 (文字)\",\n \"styleType\": \"character\",\n \"runProperty\": {\n \"bold\": true,\n \"boldCs\": true\n },\n \"paragraphProperty\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"tableProperty\": {\n \"width\": {\n \"width\": 0,\n \"widthType\": \"auto\"\n },\n \"justification\": \"left\",\n \"borders\": {\n \"top\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"top\",\n \"space\": 0\n },\n \"left\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"left\",\n \"space\": 0\n },\n \"bottom\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"bottom\",\n \"space\": 0\n },\n \"right\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"right\",\n \"space\": 0\n },\n \"insideH\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideH\",\n \"space\": 0\n },\n \"insideV\": {\n \"borderType\": \"single\",\n \"size\": 2,\n \"color\": \"000000\",\n \"position\": \"insideV\",\n \"space\": 0\n }\n }\n },\n \"tableCellProperty\": {\n \"width\": null,\n \"borders\": null,\n \"gridSpan\": null,\n \"verticalMerge\": null,\n \"verticalAlign\": null,\n \"textDirection\": null,\n \"shading\": null\n },\n \"basedOn\": \"ad\",\n \"next\": null,\n \"link\": \"ae\"\n }\n ]\n },\n \"document\": {\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"21D4BAF0\",\n \"children\": [\n {\n \"type\": \"insert\",\n \"data\": {\n \"children\": [\n {\n \"type\": \"delete\",\n \"data\": {\n \"author\": \"TestName2\",\n \"date\": \"2024-08-26T08:38:00Z\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": [\n {\n \"type\": \"deleteText\",\n \"data\": {\n \"text\": \"Hello\",\n \"preserveSpace\": true\n }\n }\n ]\n }\n },\n {\n \"type\": \"commentRangeStart\",\n \"data\": {\n \"id\": 0,\n \"comment\": {\n \"id\": 0,\n \"author\": \"TestName2\",\n \"date\": \"2024-09-06T11:13:00Z\",\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"37D90BEC\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"style\": \"ab\"\n },\n \"children\": []\n }\n },\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"color\": \"000000\"\n },\n \"children\": [\n {\n \"type\": \"text\",\n \"data\": {\n \"preserveSpace\": true,\n \"text\": \"Hello Comment\"\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"parentCommentId\": null\n }\n }\n },\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {},\n \"children\": [\n {\n \"type\": \"deleteText\",\n \"data\": {\n \"text\": \"World\",\n \"preserveSpace\": true\n }\n }\n ]\n }\n }\n ]\n }\n }\n ],\n \"author\": \"TestName1\",\n \"date\": \"2024-08-19T14:20:00Z\"\n }\n },\n {\n \"type\": \"commentRangeEnd\",\n \"data\": {\n \"id\": 0\n }\n },\n {\n \"type\": \"delete\",\n \"data\": {\n \"author\": \"TestName2\",\n \"date\": \"2024-08-26T08:38:00Z\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"style\": \"ac\"\n },\n \"children\": []\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"sectionProperty\": {\n \"pageSize\": {\n \"w\": 11906,\n \"h\": 16838,\n \"orient\": null\n },\n \"pageMargin\": {\n \"top\": 1985,\n \"left\": 1701,\n \"bottom\": 1701,\n \"right\": 1701,\n \"header\": 851,\n \"footer\": 992,\n \"gutter\": 0\n },\n \"columns\": 1,\n \"space\": 425,\n \"titlePg\": false,\n \"textDirection\": \"lrTb\",\n \"docGrid\": {\n \"gridType\": \"lines\",\n \"linePitch\": 360,\n \"charSpace\": null\n }\n },\n \"hasNumbering\": false\n },\n \"comments\": {\n \"comments\": [\n {\n \"id\": 0,\n \"author\": \"TestName2\",\n \"date\": \"2024-09-06T11:13:00Z\",\n \"children\": [\n {\n \"type\": \"paragraph\",\n \"data\": {\n \"id\": \"37D90BEC\",\n \"children\": [\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"style\": \"ab\"\n },\n \"children\": []\n }\n },\n {\n \"type\": \"run\",\n \"data\": {\n \"runProperty\": {\n \"color\": \"000000\"\n },\n \"children\": [\n {\n \"type\": \"text\",\n \"data\": {\n \"preserveSpace\": true,\n \"text\": \"Hello Comment\"\n }\n }\n ]\n }\n }\n ],\n \"property\": {\n \"runProperty\": {},\n \"tabs\": []\n },\n \"hasNumbering\": false\n }\n }\n ],\n \"parentCommentId\": null\n }\n ]\n },\n \"numberings\": {\n \"abstractNums\": [],\n \"numberings\": []\n },\n \"settings\": {\n \"defaultTabStop\": 840,\n \"zoom\": 100,\n \"docId\": \"67A194D4-06B5-034F-A576-D151C3DA400D\",\n \"docVars\": [],\n \"evenAndOddHeaders\": false,\n \"adjustLineHeightInTable\": true,\n \"characterSpacingControl\": \"compressPunctuation\"\n },\n \"fontTable\": {},\n \"media\": [],\n \"commentsExtended\": {\n \"children\": [\n {\n \"paragraphId\": \"37D90BEC\",\n \"done\": false,\n \"parentParagraphId\": null\n }\n ]\n },\n \"webSettings\": {\n \"divs\": []\n },\n \"taskpanes\": null,\n \"taskpanesRels\": {\n \"rels\": []\n },\n \"webExtensions\": [],\n \"customItems\": [],\n \"customItemProps\": [],\n \"customItemRels\": [],\n \"themes\": [\n {\n \"fontSchema\": {\n \"majorFont\": {\n \"latin\": \"游ゴシック Light\",\n \"ea\": \"\",\n \"cs\": \"\",\n \"fonts\": [\n {\n \"script\": \"Jpan\",\n \"typeface\": \"游ゴシック Light\"\n },\n {\n \"script\": \"Hang\",\n \"typeface\": \"맑은 고딕\"\n },\n {\n \"script\": \"Hans\",\n \"typeface\": \"等线 Light\"\n },\n {\n \"script\": \"Hant\",\n \"typeface\": \"新細明體\"\n },\n {\n \"script\": \"Arab\",\n \"typeface\": \"Times New Roman\"\n },\n {\n \"script\": \"Hebr\",\n \"typeface\": \"Times New Roman\"\n },\n {\n \"script\": \"Thai\",\n \"typeface\": \"Angsana New\"\n },\n {\n \"script\": \"Ethi\",\n \"typeface\": \"Nyala\"\n },\n {\n \"script\": \"Beng\",\n \"typeface\": \"Vrinda\"\n },\n {\n \"script\": \"Gujr\",\n \"typeface\": \"Shruti\"\n },\n {\n \"script\": \"Khmr\",\n \"typeface\": \"MoolBoran\"\n },\n {\n \"script\": \"Knda\",\n \"typeface\": \"Tunga\"\n },\n {\n \"script\": \"Guru\",\n \"typeface\": \"Raavi\"\n },\n {\n \"script\": \"Cans\",\n \"typeface\": \"Euphemia\"\n },\n {\n \"script\": \"Cher\",\n \"typeface\": \"Plantagenet Cherokee\"\n },\n {\n \"script\": \"Yiii\",\n \"typeface\": \"Microsoft Yi Baiti\"\n },\n {\n \"script\": \"Tibt\",\n \"typeface\": \"Microsoft Himalaya\"\n },\n {\n \"script\": \"Thaa\",\n \"typeface\": \"MV Boli\"\n },\n {\n \"script\": \"Deva\",\n \"typeface\": \"Mangal\"\n },\n {\n \"script\": \"Telu\",\n \"typeface\": \"Gautami\"\n },\n {\n \"script\": \"Taml\",\n \"typeface\": \"Latha\"\n },\n {\n \"script\": \"Syrc\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Orya\",\n \"typeface\": \"Kalinga\"\n },\n {\n \"script\": \"Mlym\",\n \"typeface\": \"Kartika\"\n },\n {\n \"script\": \"Laoo\",\n \"typeface\": \"DokChampa\"\n },\n {\n \"script\": \"Sinh\",\n \"typeface\": \"Iskoola Pota\"\n },\n {\n \"script\": \"Mong\",\n \"typeface\": \"Mongolian Baiti\"\n },\n {\n \"script\": \"Viet\",\n \"typeface\": \"Times New Roman\"\n },\n {\n \"script\": \"Uigh\",\n \"typeface\": \"Microsoft Uighur\"\n },\n {\n \"script\": \"Geor\",\n \"typeface\": \"Sylfaen\"\n },\n {\n \"script\": \"Armn\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Bugi\",\n \"typeface\": \"Leelawadee UI\"\n },\n {\n \"script\": \"Bopo\",\n \"typeface\": \"Microsoft JhengHei\"\n },\n {\n \"script\": \"Java\",\n \"typeface\": \"Javanese Text\"\n },\n {\n \"script\": \"Lisu\",\n \"typeface\": \"Segoe UI\"\n },\n {\n \"script\": \"Mymr\",\n \"typeface\": \"Myanmar Text\"\n },\n {\n \"script\": \"Nkoo\",\n \"typeface\": \"Ebrima\"\n },\n {\n \"script\": \"Olck\",\n \"typeface\": \"Nirmala UI\"\n },\n {\n \"script\": \"Osma\",\n \"typeface\": \"Ebrima\"\n },\n {\n \"script\": \"Phag\",\n \"typeface\": \"Phagspa\"\n },\n {\n \"script\": \"Syrn\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Syrj\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Syre\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Sora\",\n \"typeface\": \"Nirmala UI\"\n },\n {\n \"script\": \"Tale\",\n \"typeface\": \"Microsoft Tai Le\"\n },\n {\n \"script\": \"Talu\",\n \"typeface\": \"Microsoft New Tai Lue\"\n },\n {\n \"script\": \"Tfng\",\n \"typeface\": \"Ebrima\"\n }\n ]\n },\n \"minorFont\": {\n \"latin\": \"游明朝\",\n \"ea\": \"\",\n \"cs\": \"\",\n \"fonts\": [\n {\n \"script\": \"Jpan\",\n \"typeface\": \"游明朝\"\n },\n {\n \"script\": \"Hang\",\n \"typeface\": \"맑은 고딕\"\n },\n {\n \"script\": \"Hans\",\n \"typeface\": \"等线\"\n },\n {\n \"script\": \"Hant\",\n \"typeface\": \"新細明體\"\n },\n {\n \"script\": \"Arab\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Hebr\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Thai\",\n \"typeface\": \"Cordia New\"\n },\n {\n \"script\": \"Ethi\",\n \"typeface\": \"Nyala\"\n },\n {\n \"script\": \"Beng\",\n \"typeface\": \"Vrinda\"\n },\n {\n \"script\": \"Gujr\",\n \"typeface\": \"Shruti\"\n },\n {\n \"script\": \"Khmr\",\n \"typeface\": \"DaunPenh\"\n },\n {\n \"script\": \"Knda\",\n \"typeface\": \"Tunga\"\n },\n {\n \"script\": \"Guru\",\n \"typeface\": \"Raavi\"\n },\n {\n \"script\": \"Cans\",\n \"typeface\": \"Euphemia\"\n },\n {\n \"script\": \"Cher\",\n \"typeface\": \"Plantagenet Cherokee\"\n },\n {\n \"script\": \"Yiii\",\n \"typeface\": \"Microsoft Yi Baiti\"\n },\n {\n \"script\": \"Tibt\",\n \"typeface\": \"Microsoft Himalaya\"\n },\n {\n \"script\": \"Thaa\",\n \"typeface\": \"MV Boli\"\n },\n {\n \"script\": \"Deva\",\n \"typeface\": \"Mangal\"\n },\n {\n \"script\": \"Telu\",\n \"typeface\": \"Gautami\"\n },\n {\n \"script\": \"Taml\",\n \"typeface\": \"Latha\"\n },\n {\n \"script\": \"Syrc\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Orya\",\n \"typeface\": \"Kalinga\"\n },\n {\n \"script\": \"Mlym\",\n \"typeface\": \"Kartika\"\n },\n {\n \"script\": \"Laoo\",\n \"typeface\": \"DokChampa\"\n },\n {\n \"script\": \"Sinh\",\n \"typeface\": \"Iskoola Pota\"\n },\n {\n \"script\": \"Mong\",\n \"typeface\": \"Mongolian Baiti\"\n },\n {\n \"script\": \"Viet\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Uigh\",\n \"typeface\": \"Microsoft Uighur\"\n },\n {\n \"script\": \"Geor\",\n \"typeface\": \"Sylfaen\"\n },\n {\n \"script\": \"Armn\",\n \"typeface\": \"Arial\"\n },\n {\n \"script\": \"Bugi\",\n \"typeface\": \"Leelawadee UI\"\n },\n {\n \"script\": \"Bopo\",\n \"typeface\": \"Microsoft JhengHei\"\n },\n {\n \"script\": \"Java\",\n \"typeface\": \"Javanese Text\"\n },\n {\n \"script\": \"Lisu\",\n \"typeface\": \"Segoe UI\"\n },\n {\n \"script\": \"Mymr\",\n \"typeface\": \"Myanmar Text\"\n },\n {\n \"script\": \"Nkoo\",\n \"typeface\": \"Ebrima\"\n },\n {\n \"script\": \"Olck\",\n \"typeface\": \"Nirmala UI\"\n },\n {\n \"script\": \"Osma\",\n \"typeface\": \"Ebrima\"\n },\n {\n \"script\": \"Phag\",\n \"typeface\": \"Phagspa\"\n },\n {\n \"script\": \"Syrn\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Syrj\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Syre\",\n \"typeface\": \"Estrangelo Edessa\"\n },\n {\n \"script\": \"Sora\",\n \"typeface\": \"Nirmala UI\"\n },\n {\n \"script\": \"Tale\",\n \"typeface\": \"Microsoft Tai Le\"\n },\n {\n \"script\": \"Talu\",\n \"typeface\": \"Microsoft New Tai Lue\"\n },\n {\n \"script\": \"Tfng\",\n \"typeface\": \"Ebrima\"\n }\n ]\n }\n }\n }\n ],\n \"images\": [],\n \"hyperlinks\": [],\n \"footnotes\": {\n \"footnotes\": []\n }\n}" diff --git a/fixtures/comment_in_delete_in_insert/comment_in_delete_in_insert.docx b/fixtures/comment_in_delete_in_insert/comment_in_delete_in_insert.docx new file mode 100644 index 0000000000000000000000000000000000000000..418212f398f497b327b2d9fdcb36ba548c6ee6b7 GIT binary patch literal 17622 zcmb7Lb6{Of)4#FNps^Y@HXAlcW7}3^+g4*+4H~Pl)!4QhHFomdKFovn{l4#y*?aFf zXMa0)XLfdW&WwyW7&saL0DuOJsFJA$jzr&wg8%@v&;S4`02iSC-pbP6(9&L8!NuCp zPLtNz!dy`S1_0(~xM1{?9Gu|*AmEq49>0LJBn(P*(IX38i#+&kTf~1g^g$L|fItdC zP{?ujt|TuN(o?UyzjGrK#Q_1`5}2fZBV@O`5-W;Jo@!nk^QGOz&|d1peiX`Br%3)T zhez@Kc+@0~GbdJNreSp{gmi`aeHyJm#ca4srFZE4l**XO+wcZCT0o$&>z{oBF9aXN9m7i`q58?R$XfoBTAfrj-6NAiay&% zbW=bP=RHzbS33gz1D`-du|P9_Lk#IngZo^V3SdI-L_~8M%3C63in!wrJry`!b zZeJMrX)O=ABVt4$Go?@9E}%6YQ`x~tXJ~$1alFGLC9^0}EG=ZzudDe&u}%`p27?2t zbj-^IE%>OV+Dj1^&i9;UBDBFlStZgd@mDFXGm{VN2N%dXOjWG;g*?7-fl9EiJa$>; zdkw}^?tIpNK$HOr78WR20H7Zz*k8W<)<6OUt8Hs&Zb$cvES-UJq%r!3EPwX@RWSen zA^?6gcKtrEzZ56{0QX0K+Mg)DfLN1{p!}r2DMV>ZhglarJl~1mqu+Ro>_P`-t`wdA z*dpdU6tudi1nT0P+3eHfySX_~&3)YugA5^05wcDObFe*yO9Qp+S6|64i+!#36W}z_PP~L znkN4_$bX(~7~pIfSn12yT3P>pCfqduk-!YNuKIx!j{Fir*V_7zW%wUvJzZ`PIP1vG z7Mp9q7>X05H<_dQ8RUg)G(qj1FKG&Y-R7QrcI5NxQ4!fm*{`20t+lm z*W9T#jW#yPmtU9}bXVq)uso+G(~YMe*2NmV(HPP zkaN(TE!V>0(I(Xos)K7eC307H7HkK-J`v>rp}CwTsC21j0BhinJd2ZDx_)J32jtdU z1~$SuF}TNIl?Qo}QFqOW%_Og|vZ zp@fAVA|XP8;_q|&?r)jS%oL6|J+U@Ewpmpg?yIyez z%Ip*5C7xM4TT=1L2}^7^tWS5-lu7?%tZ3s%(Y4Zm^iEfaVZJJd8mEKQbi7> z89GAq;ZlHlnEeej>g_2x4a~b@M?rP*5i@a?Sy9t=tUz$NsF}4a^fm5}{GWH$_=+9~ z<#m-|5p%dI3lfE=bTW2Jo8@yXp8=~#<(A*HF9WEn^t?BMtH)qd`Eb`g_9>aX+(C^> zHXChNCiyH1Hiz#AcaG-oT_0~W%Eiq-qa}~(#2csJu&wUl_IA+I#5u63Hn1V$rpxFD z9h>!m-rRn_4tfIZ2@edQSP{mJ6I>Qv%qrRTcB9Rz2(|mX0ryb_T|M(Z)u0=Q^OOE&F>7N-Ef@HZdrzXz5KCI1%7-(N z!37aug zG1lChcsC|vSM{}xsKtA7jgG-0))>wkQ=^Q$oym6%I%;H7AtAv5>aHL}c+ z#lp9EWyyhr$ul6$$dgrbAnUsshq#G!$+t|??>7P~;eV-V$LqwW3y8%9Y zCOl94kr#YnEI^jqh=ZT*AU{%gN*JBG{BwPaKJB(8a?It*NF1v@3K$|QLPthcT4d;{ z0g^&EUc8=+B`W^w@FQN-d~P998CGfORJu$y?Y4M`#TP0sFdsEuF2S z>xy9PLCyKeQYDEZw9_hTdNn!4B2j;RS=Fj6VFOz#MWvxEBTI6Udt^atr;xC4-u8~v z@oi^jd@Cjp=>9IGx@4nd5UjQaRqt@z6e5_0Z?C9>lpL;GI)~ew-RMZ__qe6UgEaO{ zgShfU7uM`>MkFUVw|_)qHAi+iHFR+Cc7(q&plv!zeIGQSh!>>$X7kwwv(BmIu2Sn! zgO{gFd3BtNA#6!B)2e+jaoHdh_M>*cG0MZfUF$&o2iAsjwNwrKqaPT5s$+~gnX1@b z1jarX08ohht5Nzzn}HjWg9Xs9`@<+rnk*Roq`zxpqPSHqCtBY%@vsx$q5QcBG{2;< z1=Ajbpk5+RgiYT%HKBM|kf5jNsNn!D4K_3mCHw zl|&XwBytpHA3(K)Fhe;;iaj+7k1)%`dP^4WL>}u+|51ipZHY-)7zs9WQ3_h8t6$o`jAgM$B^7?2C zGf25}Ov3r##Is4+C0PxWeAeaeM(Z$YLQRL8^!C`+)IYcnQTnu`t*lx*G!?HqvrFtx zmfD&wjh^r>AgwbI2oehnX$~81Vv-a(wO+M2W0#N}Hd8|0ZNtlxO$cYNT85#Nty^Z26T> zICPV`{noPTWN9(AfrDfR`*bY+%B($>lT?Pn7Yy8Cd}8!L zeN#EB9S0cCH1`+@3Q>b>MAKxG)gkGSD&MSC9k3{kMbm()#(Q0;J)ggeb2^%S{?leG z0=KYK4nX(GqkriwKTT-!)9avcdwuHH=EI-yehvTg6z3k{74|@!b9TY zEf%8Q*k2q_pD@0-D>@OSy8FS*2y|om@nkj@nXrRf_drZ5#@_4EVbosw+WKlcfXNt9 zO#W?Pnb%eWVz3IC!cgGx%rSyY2z>-NPXl2ygX#r_RZ{6 z>{x^a3%t+mAv`fy&lHKOV41Nb{49^%^<9=p{$5aKA;KWd4!PjRvQj%e_FH=~Ce7TfHt~>eHNDKw z$uAxjzT(iF4hWOvW}@ai1UK4A8k^*|8V-e{c$ zek`oMK-AxF9-jELzD=JKi!O^pc}*DI7~Se-bclAbRHK%(+bY=DuP_QXoBv zggd)3k&n|4W|>ME7rHdJF8Wa+(Yo&)1*J*Z*3gP!$%v>|zpBO8j3 zX%H#%$vWhoQW2B?us$C1>}ag2A(-Q1(Y5JA)M6&#gju<9<+t#<#6qw49#eA$&=I{24Q~qOwX@(O zyey`QuzKEhnAjZY3hViM2?dE&!J4PGb-uRG44c~$+AK}Q=+eDxi7_?styGYXWvNiBq^_WEU1F0w#38F9(P}l zpW(y^qR!cnbDt^YwAu5dQ%MUmp9j%a$9B}uK(?Vg zxGA^`R*#6yzO_%6Q+AJ0oj~Dd1{zUgMse@M2{A5_Z z?cir~kmIyu74eYqT+7u6{m$w_dcPO{?0ehkZQGybkrL=qAvE5W{XFA=AiOY-`c@V{ zJ*q#=BQnsP`bmE?kEKADYJ(oR?X@5@pVY8FV2Kt9d=o}psxp`n$fo`^!50ggc1 zW8`_3By1CrrnZ3j=;(8$aqs$$<0#gGtOeuS9WCo^x8P6}vgEm;7VQ!%zoMXU(lb+i5P4yXyPM96_6kTNfgSbOX8)9uX@R(-jeTx8doL=mmQ%?^xC$J=!M!9 zp}xBSYrDy>2`^%(SiyV6rPn+N2VQE>dvDn<7>f%X$=PcoR+E4Knu0ymKEl}9)tB{< zA1o-S17>B%Oi?FA12ULhp{+ zsWcVmX`G=D&-r4IG4#rLyI#h7SRG#T3K23bR}-)jvcOL<)eNXZh63{xrdeA{i)ODB zqdGt~-i3&XT$-fF&PW2N-*wqrC08PNA6FHT>c8DArIPD$)RV+AuRtRkR;V8P(JF!| zfs?nq%4*oBs&8B78`%#?5~os43gbH|82yD)&tm>bSpQ9>Z0m|I`dTv;KLCRyC*_x&TYa*gd)Qx&5{XmCc$d-hZNIsR)x&7B(P2&;rmy{fPva`w{@yshj-eVs@FXe5`zrVqR$m|68LK9ioVDL;_LY;SB zJex$2#x^E=$0!ZbXu9FYirp)NM_`+MdSC6P>>#uLUZJ6l*2>E06zb2lGYNDpHb%|; zw16=Z44`{~_WSAB$xu)J@7_fu(6jhSe_KB3ld@Kwgvfw3C)8)Kb`4{LgdRh> z!59l(z`EIh_eX&8ayfy;w9vAjrnU*(^>(D+t*tThE$A-#LU?2#45X#O+8HTcc8-qe7`%VVY8oi3z(BN8$5#LV-aG(+^t-I=>|M+a|Fm+^KoR| zD{`Al&f7oK`AB6$ZZ8&tl#7LMp1w(u5ySk9rEMuG>K;FQ+%Rr0Ea$Za<>^{Iy|{w! zxZ*WB@I0hi2}_Cn$s=*)(~`MZSKRwLJ?yPH3JJ0&YE^!%62kJ_xzwI$@mP|!M^pMB zsStv)szxxr)H_RD(sA}j`nLKU^Rz^!#>EHi$t>Y{(+~S0Z{H`jnn5j4@u}Y?19sew zbh;phuD{c_=uN-XnhBjeNF>$ss+>G%?-p+nno=h?f_%gp`ea*E| z{dG=uzI91?QRUbfGr)91gCMH=@-ggT<*Z8bu{r7U2i*;)GwwK&ec6rJ?;}t>b%_2| zyt7cKj&;bpWTuAal_%Tk_1ytYIW|d|r!n9`=@}P=TVXv6l2GX+VO@|DU7#ph2|?pO zR?g3hK@hp<`dc#7DU+?x4)NnX-3hCGPa>4^N1r(G*Qj|U3Q2^dBUZj~ zU#nr{HnPY>LI#rwNu>;c7Xt7ZBQ%o7s61y9*;CF)XX*=k6IE7?u(kC(N=)2CE{`%! zffvnxUUb9)UOX`PdGXUY>CUpwuI%xYZs`8xCWTlRMLwc<7<~uHP^J4GG~V!nJGQ<$ zNFqB@o6re3>LJRLTg#H;;f0eNYvhKYzVV@U6)w*Cipfn3FvNH3cu z@bh#Df_m;NU~}-90GfKJaelE z{s18}XSZ~Bo&sGsx=ad}UMX|-^c&c(QfG17Sf6h+4-MyK z!X`-CHBx>IdQ_-;(RvO5Nu=)?~C;+-2*q@ zl)2W2PPmo#CN0v_SL=|NZT1+Ul_T;;A05Yacb|p$?pS|U&9;bFwik$lmNAd_LoK$+y#lbs~jVmgSI}DPm`SyGWtJd}%CCGtT^9$d`!t7hq zEgd9H&y;-kwe-(;nja0Oo~B^2YUz3|qu4x#gse*|1%zvRVds5Wq(EaxTJ3uvAQybO z#cG87vI-s{IAL>~(;$?>HLEOCnhX}{ozM&>=_?ITBJ1>DMb?=hbKPy4ES(xgKA9f6 zv3`%TqfsE-RV(Bksg-d^`&hCfGfSiNwJ;2WN@EH=+>X{0s;ILzOItmi_#t^7cGlOE z;|1Mc<8k8e!i2;p)CkmPZNn~$xnURBbB5`mtgcNGfM3L{jld0c7~3!#eX15-e`p}t za({!9pJ1ECG4CtE^O+b2!bn9tzb740ZE1NUw+0OPN~BeN)YC-UI-{`JiVT9atcOLfGGsrYXNAF2mQOqoq zWlO^@v~%t>g@$R_J3A@9IfA@0^-`9trjk0uZJsFUqR>9fvB-?=aQ}P1r~(`TzyLE4_}5N9 zfeoPO{Q2S>p?xU2fUE=(frCo^%F54yezHn9{Bx9l@)|{?1?+T$3@ZDx6T*9F@DzXK zzjpdL$}%#jNWlwK`HMik^ngRzy0URqM6ROFrV>ttyS6bIyR++wu7#ycC$^|ghp)3$^1fXN3LBZ; znq9`eg%TVd4<3!X3>IXdi?4FHNPzEJH*0R{2SBcjd7gh8ev z{D_ld{{&uUv0ocnQ>(|?}A<-zZ_FzSrjXprYcAk14OTr;OHe{nL9B8I#1j3v> zNI3@J{oY29O=hx2A9}E5zNDYeD6n}4=irF+j3MMveh>VFltVIs9^**&wR7yaTLE*y zLMA{rK}4BvC&V7YC_|(xluatH1ePAy$o*_mfQ=7(II3y3*w01-*fdzypqfTo$_ND8 zyrG$haC}2E4Q!SRagGEVW!V-&YBYW}BEL2i7E!>b{>uZuJnEc|x%q2n``n-CzYX!r zIKMYVz#IF*%O>O#5sl+gdD}l5p}#iyKY!vl?brnaC@%$i?&Fpc3imTize4BTMRr6KLUP{X)d899jx>J0-Rcf_%v$Yso z?bis)E(--7P%Wyn;H`p3W@;poHSeevQLV;A(XUI30U$d2cH8{)ha%=!&N9#~&anKWP^$ zTDf@T>diCW#R{fjD8akjln17DLQtSF)yKs*7GVuB0H2I z`X)K?ZAX9gJm7k_%B1lN>{U?u@aT5*RYeyM-Yj}Xn!9Yq{D~+cyQo1BeOFI`=eYb2 zxH(+HJ0a;&x`cJ)v=$T$FOjDyJhNMQZgY!=kO4ERQr>AK{?pH`zPufz;lWQ+t2eRP zyfB@Iy_v3;q}7-sj55}*zbasitAc;D^7=ATHIZ1dn9mM(C&nH3i0J{*gYJl?0Yc0E z!5*Rm(9?^)RkjxNB@G1cGdU^>Id$8naV1R;5-Ajl|8xY{KKqzVhtJv?X$}~Sf1^#- zYs9G%P8sQWpYQxOn|vvVH6?3&*6sM?KH$=kmbirhV3#F`Q_7B6t};vPQ3YT}Z`qO4 z@&xR&TmzeIvK$ea3pvO5{_I@7#wXJnj9AlVLr4s@P{cVFSp^2utILKsb;xIFX}$4U z`zCI9$&&46^6{2qFwul-C;|2?C^oNjyY1>&u1+p{e1(F1daE^^_FWaNE+-4kd#&Yo0R} z8DQPwHP_T5;ZOlFHpaJ3f@)mUX~V@x2Ck-soeRZ9^iPWjwQ}3R1`Zynr&d|gg{9#TXpMGmwO9`_R`sDLm$$yJ77~Ad#?`D`-n>ykg-r)eg14$_K=pnA zWDq3ljwoS+%v5dt@v(mO@nn%#CqN>H@rKws!ik#siT;u#q*gL4XWs35X^?vSQW@N? z@K~2cl4Qq@ULt`=CODNO9p}B~rxGen|8$S5%)Bre^X4C27Zr9S(Ranl4o)-9L(5pc zXXD93rX>f1!cMZ(;io7E>`!RkY0|kskL#7sV01j9 zt}~XSnaR!{{471uDdpM#_)`7 zFpXyP zk)WEoEH!ui+wx5sl0E3c)nZ)BO^Z}iiDuNRGsGyVoJRSWEouRAreYURD6zEhT_JVP(U7fMn%m8 z_QRXWPu(mr5~9dyQOVoiDa-3plwmV+SWehjTR4xgJod>S0$fj)ZGB>Vex5xyx*ncg&C0)_t>Z_KB$LHdlvjy~(2{X#>0i?<&%?LA z4jt}w67}EaU$7`C%`UFYDOi2DVzYX>l6K(lLavbG*h8vWPPxT+mg0GO5x$`XhN(rG zp84&7VQOnQ008Ir@XhaGY9VJ}UZhBnU7Lf3smXZm>+I#%BMmZ^)=w71&@P$ zo>MNyB8HgfxjITv1?_TZxWHwm)KhXGQtC}k0mG!YA81y-)+Z7YtU6dQirAfM?iO@? zt<#9r)mZ8r4z$^PZOIe!1{Ih`WoK7LvJ>+VMN7JlEo zYYPrr9Z_npO^A8|sUFd;HyW)-{gV-9jCyI8Mn)oq;pm%R_=`xF%#t&r#<5P5^U!S@ znS&~G)B(pmaNUS?^mQN_ulK&?DfL$8sB7nM+Bd#I-%`m-OXSZEj5*d_iE?~SjZ3G{ zv3ri-yz*Fte9%CDE7N3PM_Eo$EXY~$>R875ggM9orr`F9lWcv)9l0}WAJ&-r`&X_R zF?Y>Vf;rEz2XG>6b58tCy!)!&7^dE8WSrMZg$9dSQt!%$&oFr3flC@yH)pCUBi~kb z$D}1a_!>T*rDqHyy?ULqBiAAbe`vA#ryP1Tz}mIw4lnXbt%k4yBj-TmaqsT( zBS?Ck7}G^eUFg%j1^-ZcKjauj^Vp}!j0}D4)e-7zDM3@pn{P;;eNJ9Qf)_kgoIO9? za;V;9utw=8!AU7S1(-ZrJU(2g`B$UC^g^?_x?NFsIjD)$oH6MezB>lB35l6h zvdOz~A>VTgfujlNB17oPw8n}N=G1!ZaBYznKJJo_wo;;|-$$!-bizt`fKd2-i?V}* zg%W3~01rc?!OotC`Jfwwfpmqkw$W7H5e%&z7UiPtUfSvaH+RoVaBQK=EjfQm=4U?nn7;TTmg}rgqcaBO>5RO4l|C z$wLoXNr2evs73W}VOtFmjRptkAedRpkrFpcAp;@z;Ra2Pqbhz>fc=?ik#)0os zqi<^lP5tqRDrL4Wmpaa=do{eL`Re1Dx(2@JQ8fBj)VC)1qO;F{pQ`!qY1Kc|qJK%Q zvNtibF#I!N@PEy%)>Tb0$b$p`W(ffR^uL1q0>$u$ZvTgT-y>D^kGO1To^%(y!7i&q zhE7*{Rfuj8v2!6IY;RqrM$C-2ro&&0>bt@CpuEqf3lLDd8;fhb%#MS^HlYZ3!hA1~ z`V?$tWR!n0b&I`W0byJpNm!q_^_0a|@i42L* zss`Nc+SjtDa8M>Izf@rf;9?Q_W-GWEvv=czlJ{w+;Xb?AKKNB~WM;kJY7_a9*F|hT zDsDV1mOt0gFV%YEUk?oi6*YyxG3$+gH5N?|@X_e^Y1Ga43T$wh)_{H$O`IBiP~gSX zkle1bm1jG2LI++NDNi#G_c)^P%vmNc$ph!{7T}tpQPdJxyIiH{U^EABa#uL6Su!Vt zo;j|qF{@3*mLB6vM|+xo$>R7iy{=?UT)ep{&`L$BT1nx@F^aZUS0ZOb=%nnAw-kiz z*rmCH@n*H}-qR7j7ptrJq1IroxWIISVrZ1}k&+;!Sp{yL$50bSBpnVS(mN@99N87+ z`m84`wr^A#|Jl>l-TmxFxgz3`4{{AtIBrmPu+jp{n{-gsU2d=o0h~##Koej4K+GBB znBm=Phs}a1vu2xPhXxwVTh)eHUXRC<$h0XElnqZ`_fXWJ#bPn?o1GA17P zhtucAbZz(FPck!2)({}?Rh^N7g8dfvkeBkaHL{FAr;K-F_aKmsNwK3xb-_`w5E_X= zAw1kbVW!qnL~1uZ$R-03ow-+(p-&*FU#oyMqx-{J2gyz3Ni-Fx4``@Tbw`(HruC>U zX+k5}+tn*IFNO3mK2=H?Qt`nKYrfG$^gts5iDBRr5Fx$-==YRy&FRNYW&@DuO$5HM zh$3AFXqmtTP0*p@@$XypuyS4V$D*X)v2w~p+gkDE$cF^$^&Zf_rk`RABpP^ApABtK za!ocQ4?hxcQS%8JA{}HygWN7i60Na5Ye-wI{v=AY@J(_%F`g}sT#8WLej$3h^_T7N zT*9!Hjt`82M05E9;=aXPB&OoL?G&@i*9<7Ti;LF=*b`79j3`XY34996pHLb7MLsuo z2$1%$V$KMEV7iJQTM-U!f6vYbz0{Q5HOVj?+ltlyr7FO_t^sCRMRMWQ26UcKWN&2> z6;V@=drFtFaaD{n89gk~;H0}-UZBM1(JiB?9;#DeG0Gn5`5IRgCuiuoe;T2g$H1kf)o$6xQ%uO%myt!Q!2& z;#*!N7MJ_ms)U9whO{4(k(36h2Qir3wqwm;>`uG_lcKm8h)hyH2OuT7d5y)Vn-Zg| zX|P3r-Lj`jb=<-ijC#wSV!iIr0`%EpbES9eGEMV9>3=g^H`w|vC0@?HlwP6x-ra73e=Fq;i`X*#&83Tjz=aY(`#TSO9yjS{~xFETeHR9R@MqHr{+ zl7v;>-v!gY<-0^9i8WvyOT;bmz#O0HcHPOHZY<$2A8F)LI}zZbMidRh7B5H!59Z?h z#ZkMW{3AT%-rE=732iein9R@KV=Dv;w=P*Tg<3=E$4@}Bz!~G%g!bZ5pshz>JTO09bxnJ1}GJlg)7IbmvfeF zEJ~K`@kMik32T=3mo#tnGbN0yPA8vg*>2aHr&>40$MQ_^%nLgAQ{5NGTLw-@HzC_6 z7?IK=HEpq_O2*6}F6XB-CDrHSLw(BN=t8K~R9b-E`Y+dS+WBmbVfUWq3m{J!F zb4rg=w#E^2dfD>ZS{j%P(k^0#=ZsXg?b=&{|HHod|E)=C=Umj00HzW&KmdTd=5L$t zuOKh;oBvv*p;idx7wlm0o_D9PSL zj9lYF@LTb(6g0wGLi)Y01+Oyf;@}D)dV77Z$Qx{G3AG!2)rnRGL7EduJdRVa&6{(v zBo%v?6kML?zjeM{AR85jK@x7A&D!^d7>y`MPEuYI3ZU|4yjl!x!QKoaDr@q;@xO&b zzV$yv${mOIS;7M;65oeUNz*g^P5^n5j_AxdSAC7-9=pC7!>8YXDtu23K6${1ZZ70Y zz7_2l%2xuL0yy9_Smm|D^~iw#6s})f!40(vKfjt`ni;6X@55OI{Y1jJK3vMt-f8o4gop2Q=>$A? z9u5AAXIL-{1rDE8RGjCd+l`mA8}BJRZXv5gXg)@`2a=2rsjgnz#gpd~_As{&H43<) z+*rO-L9d&3OKUTpA0|_b&HxAcjClx1BnlY^W%GsHM@7)=jfO+$(pESFeNpbVO4G1ffuL!_5Qa>mDD0yurxg%&2{!C+m*<-dBL zzox;>YJdsi55u^;(o^ZaR!N1Q&~X3MuuorRQFcmCYrbyO^|de{6=@TnfXg!zMNW1d z+eyyOV7YYVedL8xnXr^{e-&KrVoI*Q0Y|z#VeRCw;rzGOqL8%eVBe}WHTaU5vN&PZYFNdvCfrm+8NaP9W^>r^FwwUZBzLG^K^HG%) zSJRbvMJTU9YShCu6A_6o8S0pZh~C5I?I!obMHMQ81CnmEo=sY@rk|NY6L98Vqnf|Z*q=U$)tj(G7@Q6x6;Wk&WTXJ| z1sDVYQT|4c8zk#|QxK7(Q|h(C_NKlYvYxHq3p@5WFnTEJ8(gjHCsV0#KTV`iVR5*J z;7KaAcl_sIk-1bW?lp;PoUMZkk0ir=PRZ&Ln`IF!$-O9 zAop=*zd>(2NLP3GCVi4ybyOj3-9p zH_?9>yp$g0N}}qAOSfz(0}t2Ed-JMm1bxNYWvF zF`dITk4durEqk>lzs5CbUl;yPU;uv?g^6B8L5L>-y)Wq3$u+T@zVGRr;LUX86dx6XTCeo#^ws1+C{FdM{5iXZ*lropJFdJ$_y#9ot7 zXPQhNRmGf7olT_PeGSrS0eyq}-eaO?H~07)7~2B@#RvOOrP`Rk)b;{5LqML-&#(Vl zxDD}Z;r8E@`B&h7Khr`2eg*zngL=e255)g{lLlh_EFAt$m+G z2>34r#Q%*sn7=Uh0a)YoqR#gJ#@}D7Y+v#h`V#Jsn%n=z z9+3kA{vV9iU*mBv`E~d!;LGS75c>aVzW&Oq3F~jX{{IZ@U(Y} Date: Tue, 15 Oct 2024 18:30:05 +0900 Subject: [PATCH 05/25] Support ptab in r (#756) * feat: add ptab * feat: wasm object * fix: suppoert ptab * spec: add read test for ptab * rc10 * rc11 * rc12 --- .../src/documents/elements/positional_tab.rs | 11 + docx-core/src/documents/elements/run.rs | 13 + docx-core/src/reader/mod.rs | 3 +- docx-core/src/reader/positional_tab.rs | 81 +++++ docx-core/src/reader/run.rs | 5 + docx-core/src/reader/run_property.rs | 5 + docx-core/src/reader/xml_element.rs | 2 + .../src/types/positional_tab_relative_to.rs | 1 + docx-wasm/js/index.ts | 1 + docx-wasm/js/json/bindings/PositionalTab.ts | 2 +- .../json/bindings/PositionalTabRelativeTo.ts | 2 +- docx-wasm/js/json/run.ts | 13 + docx-wasm/js/positional-tab.ts | 50 +++ docx-wasm/js/run.ts | 10 +- docx-wasm/js/tab-leader.ts | 22 ++ docx-wasm/package.json | 2 +- docx-wasm/src/lib.rs | 2 + docx-wasm/src/positional_tab.rs | 38 +++ docx-wasm/src/run.rs | 5 + .../test/__snapshots__/index.test.js.snap | 288 ++++++++++++++++++ docx-wasm/test/index.test.js | 22 ++ fixtures/ptab/ptab.docx | Bin 0 -> 18350 bytes 22 files changed, 573 insertions(+), 5 deletions(-) create mode 100644 docx-core/src/reader/positional_tab.rs create mode 100644 docx-wasm/js/positional-tab.ts create mode 100644 docx-wasm/js/tab-leader.ts create mode 100644 docx-wasm/src/positional_tab.rs create mode 100644 fixtures/ptab/ptab.docx diff --git a/docx-core/src/documents/elements/positional_tab.rs b/docx-core/src/documents/elements/positional_tab.rs index cd0895745..91fb18120 100644 --- a/docx-core/src/documents/elements/positional_tab.rs +++ b/docx-core/src/documents/elements/positional_tab.rs @@ -7,12 +7,23 @@ use crate::xml_builder::*; #[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] #[cfg_attr(feature = "wasm", derive(ts_rs::TS))] #[cfg_attr(feature = "wasm", ts(export))] +#[serde(rename_all = "camelCase")] pub struct PositionalTab { pub alignment: PositionalTabAlignmentType, pub relative_to: PositionalTabRelativeTo, pub leader: TabLeaderType, } +impl Default for PositionalTab { + fn default() -> Self { + Self { + alignment: PositionalTabAlignmentType::Left, + relative_to: PositionalTabRelativeTo::Margin, + leader: TabLeaderType::None, + } + } +} + impl PositionalTab { pub fn new( alignment: PositionalTabAlignmentType, diff --git a/docx-core/src/documents/elements/run.rs b/docx-core/src/documents/elements/run.rs index 786ceea6b..22911352a 100644 --- a/docx-core/src/documents/elements/run.rs +++ b/docx-core/src/documents/elements/run.rs @@ -29,6 +29,7 @@ pub enum RunChild { Sym(Sym), DeleteText(DeleteText), Tab(Tab), + PTab(PositionalTab), Break(Break), Drawing(Box), Shape(Box), @@ -72,6 +73,12 @@ impl Serialize for RunChild { t.serialize_field("type", "tab")?; t.end() } + RunChild::PTab(ref s) => { + let mut t = serializer.serialize_struct("PTab", 1)?; + t.serialize_field("type", "ptab")?; + t.serialize_field("data", s)?; + t.end() + } RunChild::Break(ref s) => { let mut t = serializer.serialize_struct("Break", 2)?; t.serialize_field("type", "break")?; @@ -201,6 +208,11 @@ impl Run { self } + pub fn add_ptab(mut self, ptab: PositionalTab) -> Run { + self.children.push(RunChild::PTab(ptab)); + self + } + pub fn add_image(mut self, pic: Pic) -> Run { self.children .push(RunChild::Drawing(Box::new(Drawing::new().pic(pic)))); @@ -326,6 +338,7 @@ impl BuildXML for Run { RunChild::Sym(t) => b = b.add_child(t), RunChild::DeleteText(t) => b = b.add_child(t), RunChild::Tab(t) => b = b.add_child(t), + RunChild::PTab(t) => b = b.add_child(t), RunChild::Break(t) => b = b.add_child(t), RunChild::Drawing(t) => b = b.add_child(t), RunChild::Shape(_t) => { diff --git a/docx-core/src/reader/mod.rs b/docx-core/src/reader/mod.rs index 495fe5454..0d544ff7b 100644 --- a/docx-core/src/reader/mod.rs +++ b/docx-core/src/reader/mod.rs @@ -37,6 +37,7 @@ mod paragraph; mod paragraph_property; mod paragraph_property_change; mod pic; +mod positional_tab; mod read_zip; mod rels; mod run; @@ -55,8 +56,8 @@ mod table_cell; mod table_cell_borders; mod table_cell_margins; mod table_cell_property; -mod table_property; mod table_position_property; +mod table_property; mod table_row; mod tabs; mod text_box_content; diff --git a/docx-core/src/reader/positional_tab.rs b/docx-core/src/reader/positional_tab.rs new file mode 100644 index 000000000..8e7363e8f --- /dev/null +++ b/docx-core/src/reader/positional_tab.rs @@ -0,0 +1,81 @@ +use std::io::Read; +use std::str::FromStr; + +use xml::attribute::OwnedAttribute; +use xml::reader::{EventReader, XmlEvent}; + +use crate::{PositionalTabAlignmentType, PositionalTabRelativeTo, TabLeaderType}; + +use super::*; + +fn read_leader(attributes: &[OwnedAttribute]) -> Result { + for a in attributes { + let local_name = &a.name.local_name; + if local_name == "leader" { + let v = a.value.to_owned(); + if let Ok(t) = TabLeaderType::from_str(&v) { + return Ok(t); + } + } + } + Err(ReaderError::TypeError(crate::TypeError::FromStrError)) +} + +fn read_alignment( + attributes: &[OwnedAttribute], +) -> Result { + for a in attributes { + let local_name = &a.name.local_name; + if local_name == "alignment" { + let v = a.value.to_owned(); + if let Ok(t) = PositionalTabAlignmentType::from_str(&v) { + return Ok(t); + } + } + } + Err(ReaderError::TypeError(crate::TypeError::FromStrError)) +} + +fn read_relative_to(attributes: &[OwnedAttribute]) -> Result { + for a in attributes { + let local_name = &a.name.local_name; + if local_name == "alignment" { + let v = a.value.to_owned(); + if let Ok(t) = PositionalTabRelativeTo::from_str(&v) { + return Ok(t); + } + } + } + Err(ReaderError::TypeError(crate::TypeError::FromStrError)) +} + +impl ElementReader for PositionalTab { + fn read( + r: &mut EventReader, + attrs: &[OwnedAttribute], + ) -> Result { + let mut tab = PositionalTab::default(); + if let Ok(t) = read_alignment(attrs) { + tab = tab.alignment(t); + } + if let Ok(v) = read_relative_to(attrs) { + tab = tab.relative_to(v); + } + if let Ok(leader) = read_leader(attrs) { + tab = tab.leader(leader); + } + loop { + let e = r.next(); + match e { + Ok(XmlEvent::EndElement { name, .. }) => { + let e = XMLElement::from_str(&name.local_name).unwrap(); + if e == XMLElement::PTab { + return Ok(tab); + } + } + Err(_) => return Err(ReaderError::XMLReadError), + _ => {} + } + } + } +} diff --git a/docx-core/src/reader/run.rs b/docx-core/src/reader/run.rs index e4f52135c..4970b59a0 100644 --- a/docx-core/src/reader/run.rs +++ b/docx-core/src/reader/run.rs @@ -71,6 +71,11 @@ impl ElementReader for Run { XMLElement::Tab => { run = run.add_tab(); } + XMLElement::PTab => { + if let Ok(v) = PositionalTab::read(r, &attributes) { + run = run.add_ptab(v); + } + } XMLElement::Sym => { if let Some(font) = read(&attributes, "font") { if let Some(char) = read(&attributes, "char") { diff --git a/docx-core/src/reader/run_property.rs b/docx-core/src/reader/run_property.rs index 5f21ef421..34ad0905b 100644 --- a/docx-core/src/reader/run_property.rs +++ b/docx-core/src/reader/run_property.rs @@ -79,6 +79,11 @@ impl ElementReader for RunProperty { } rp = rp.caps(); } + XMLElement::PTab => { + if let Ok(v) = PositionalTab::read(r, &attributes) { + rp = rp.ptab(v) + } + } XMLElement::Highlight => rp = rp.highlight(attributes[0].value.clone()), XMLElement::Strike => { if !read_bool(&attributes) { diff --git a/docx-core/src/reader/xml_element.rs b/docx-core/src/reader/xml_element.rs index ddf100a2a..4a965e0bb 100644 --- a/docx-core/src/reader/xml_element.rs +++ b/docx-core/src/reader/xml_element.rs @@ -37,6 +37,7 @@ pub enum XMLElement { Break, Tab, Tabs, + PTab, Sym, ParagraphStyle, ParagraphPropertyChange, @@ -289,6 +290,7 @@ impl FromStr for XMLElement { "name" => Ok(XMLElement::Name), "tab" => Ok(XMLElement::Tab), "tabs" => Ok(XMLElement::Tabs), + "ptab" => Ok(XMLElement::PTab), "br" => Ok(XMLElement::Break), "ind" => Ok(XMLElement::Indent), "numPr" => Ok(XMLElement::NumberingProperty), diff --git a/docx-core/src/types/positional_tab_relative_to.rs b/docx-core/src/types/positional_tab_relative_to.rs index 862139e76..c7283f894 100644 --- a/docx-core/src/types/positional_tab_relative_to.rs +++ b/docx-core/src/types/positional_tab_relative_to.rs @@ -11,6 +11,7 @@ use super::errors; #[cfg_attr(feature = "wasm", derive(ts_rs::TS))] #[cfg_attr(feature = "wasm", ts(export))] #[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[serde(rename_all = "camelCase")] pub enum PositionalTabRelativeTo { Indent, Margin, diff --git a/docx-wasm/js/index.ts b/docx-wasm/js/index.ts index 0192ddfb9..7b0caec28 100644 --- a/docx-wasm/js/index.ts +++ b/docx-wasm/js/index.ts @@ -672,3 +672,4 @@ export * from "./page-num"; export * from "./num-pages"; export * from "./footer"; export * from "./image"; +export * from "./positional-tab"; diff --git a/docx-wasm/js/json/bindings/PositionalTab.ts b/docx-wasm/js/json/bindings/PositionalTab.ts index 5327ded36..891c291c3 100644 --- a/docx-wasm/js/json/bindings/PositionalTab.ts +++ b/docx-wasm/js/json/bindings/PositionalTab.ts @@ -2,4 +2,4 @@ import type { PositionalTabAlignmentType } from "./PositionalTabAlignmentType"; import type { PositionalTabRelativeTo } from "./PositionalTabRelativeTo"; import type { TabLeaderType } from "./TabLeaderType"; -export interface PositionalTab { alignment: PositionalTabAlignmentType, relative_to: PositionalTabRelativeTo, leader: TabLeaderType, } \ No newline at end of file +export interface PositionalTab { alignment: PositionalTabAlignmentType, relativeTo: PositionalTabRelativeTo, leader: TabLeaderType, } \ No newline at end of file diff --git a/docx-wasm/js/json/bindings/PositionalTabRelativeTo.ts b/docx-wasm/js/json/bindings/PositionalTabRelativeTo.ts index 7de1562e9..9a7ba21b4 100644 --- a/docx-wasm/js/json/bindings/PositionalTabRelativeTo.ts +++ b/docx-wasm/js/json/bindings/PositionalTabRelativeTo.ts @@ -1,2 +1,2 @@ -export type PositionalTabRelativeTo = "Indent" | "Margin"; \ No newline at end of file +export type PositionalTabRelativeTo = "indent" | "margin"; \ No newline at end of file diff --git a/docx-wasm/js/json/run.ts b/docx-wasm/js/json/run.ts index f0566bd0f..0d5a57390 100644 --- a/docx-wasm/js/json/run.ts +++ b/docx-wasm/js/json/run.ts @@ -11,6 +11,9 @@ import { VertAlignType } from "../run"; import { FieldChar } from "./bindings/FieldChar"; import { InstrHyperlink } from "./bindings/InstrHyperlink"; import { InstrToC } from "./bindings/InstrToC"; +import { PositionalTabAlignmentType } from "./bindings/PositionalTabAlignmentType"; +import { PositionalTabRelativeTo } from "./bindings/PositionalTabRelativeTo"; +import { TabLeaderType } from "./bindings/TabLeaderType"; export type TextBorderJSON = { borderType: BorderType; @@ -61,6 +64,7 @@ export type RunChildJSON = | TabJSON | BreakJSON | DrawingJSON + | PtabJSON | ShapeJSON | CommentRangeStartJSON | CommentRangeEndJSON @@ -75,6 +79,15 @@ export type TextJSON = { }; }; +export type PtabJSON = { + type: "ptab"; + data: { + alignment: PositionalTabAlignmentType; + relativeTo: PositionalTabRelativeTo; + leader: TabLeaderType; + }; +}; + export type SymJSON = { type: "sym"; data: { diff --git a/docx-wasm/js/positional-tab.ts b/docx-wasm/js/positional-tab.ts new file mode 100644 index 000000000..b388d77ba --- /dev/null +++ b/docx-wasm/js/positional-tab.ts @@ -0,0 +1,50 @@ +import { PositionalTabAlignmentType } from "./json/bindings/PositionalTabAlignmentType"; +import { PositionalTabRelativeTo } from "./json/bindings/PositionalTabRelativeTo"; +import { TabLeaderType } from "./json/bindings/TabLeaderType"; +import { + createPositionalTab, + PositionalTabAlignmentType as _PositionalTabAlignmentType, + PositionalTabRelativeTo as _PositionalTabRelativeTo, + TabLeaderType as _TabLeaderType, +} from "./pkg/docx_wasm"; +import { convertTabLeader } from "./tab-leader"; + +export class PositionalTab { + _alignment: PositionalTabAlignmentType = "left"; + _relativeTo: PositionalTabRelativeTo = "margin"; + _leader: TabLeaderType = "none"; + + alignment(t: PositionalTabAlignmentType) { + this._alignment = t; + return this; + } + + relativeTo(t: PositionalTabRelativeTo) { + this._relativeTo = t; + return this; + } + + leader(l: TabLeaderType) { + this._leader = l; + return this; + } + + buildWasmObject() { + const alignment = (() => { + if (this._alignment === "left") return _PositionalTabAlignmentType.Left; + if (this._alignment === "center") + return _PositionalTabAlignmentType.Center; + if (this._alignment === "right") return _PositionalTabAlignmentType.Right; + return _PositionalTabAlignmentType.Left; + })(); + + const relativeTo = (() => { + if (this._relativeTo === "indent") return _PositionalTabRelativeTo.Indent; + return _PositionalTabRelativeTo.Margin; + })(); + + const leader = convertTabLeader(this._leader); + + return createPositionalTab(alignment, relativeTo, leader); + } +} diff --git a/docx-wasm/js/run.ts b/docx-wasm/js/run.ts index 03e857b8c..a279a113a 100644 --- a/docx-wasm/js/run.ts +++ b/docx-wasm/js/run.ts @@ -6,8 +6,9 @@ import { Tab } from "./tab"; import { Break, BreakType } from "./break"; import { BorderType } from "./border"; import { Image } from "./image"; +import { PositionalTab } from "./positional-tab"; -export type RunChild = Text | DeleteText | Tab | Break | Image; +export type RunChild = Text | DeleteText | Tab | Break | Image | PositionalTab; export type TextBorder = { borderType: BorderType; @@ -193,6 +194,11 @@ export class Run { return this; } + addPositionalTab(ptab: PositionalTab) { + this.children.push(ptab); + return this; + } + addBreak(type: BreakType) { this.children.push(new Break(type)); return this; @@ -290,6 +296,8 @@ export class Run { run = run.add_delete_text(child.text); } else if (child instanceof Tab) { run = run.add_tab(); + } else if (child instanceof PositionalTab) { + run = run.add_ptab(child.buildWasmObject()); } else if (child instanceof Break) { if (child.type === "column") { run = run.add_break(wasm.BreakType.Column); diff --git a/docx-wasm/js/tab-leader.ts b/docx-wasm/js/tab-leader.ts new file mode 100644 index 000000000..0f787ccb4 --- /dev/null +++ b/docx-wasm/js/tab-leader.ts @@ -0,0 +1,22 @@ +import * as wasm from "./pkg"; +import { TabLeaderType } from "./json/bindings/TabLeaderType"; + +export const convertTabLeader = (leader: TabLeaderType) => { + switch (leader) { + case "dot": + return wasm.TabLeaderType.Dot; + break; + case "heavy": + return wasm.TabLeaderType.Heavy; + case "hyphen": + return wasm.TabLeaderType.Hyphen; + case "middleDot": + return wasm.TabLeaderType.MiddleDot; + case "none": + return wasm.TabLeaderType.None; + case "underscore": + return wasm.TabLeaderType.Underscore; + default: + return wasm.TabLeaderType.None; + } +}; diff --git a/docx-wasm/package.json b/docx-wasm/package.json index 53ca0d5c2..d7f3f099a 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -1,6 +1,6 @@ { "name": "docx-wasm", - "version": "0.4.18-rc9", + "version": "0.4.18-rc12", "main": "dist/node/index.js", "browser": "dist/web/index.js", "author": "bokuweb ", diff --git a/docx-wasm/src/lib.rs b/docx-wasm/src/lib.rs index 1660a7ef7..8457e7489 100644 --- a/docx-wasm/src/lib.rs +++ b/docx-wasm/src/lib.rs @@ -17,6 +17,7 @@ mod page_num; mod page_num_type; mod paragraph; mod pic; +mod positional_tab; mod reader; mod run; mod run_fonts; @@ -49,6 +50,7 @@ pub use page_num::*; pub use page_num_type::*; pub use paragraph::*; pub use pic::*; +pub use positional_tab::*; pub use reader::*; pub use run::*; pub use run_fonts::*; diff --git a/docx-wasm/src/positional_tab.rs b/docx-wasm/src/positional_tab.rs new file mode 100644 index 000000000..43972e409 --- /dev/null +++ b/docx-wasm/src/positional_tab.rs @@ -0,0 +1,38 @@ +use wasm_bindgen::prelude::*; + +#[wasm_bindgen] +#[derive(Debug)] +pub struct PositionalTab(docx_rs::PositionalTab); + +#[wasm_bindgen(js_name = createPositionalTab)] +pub fn create_positional_tab( + alignment: docx_rs::PositionalTabAlignmentType, + relative_to: docx_rs::PositionalTabRelativeTo, + leader: docx_rs::TabLeaderType, +) -> PositionalTab { + PositionalTab(docx_rs::PositionalTab::new(alignment, relative_to, leader)) +} + +#[wasm_bindgen] +impl PositionalTab { + pub fn alignment(mut self, alignment: docx_rs::PositionalTabAlignmentType) -> Self { + self.0 = self.0.alignment(alignment); + self + } + + pub fn relative_to(mut self, relative_to: docx_rs::PositionalTabRelativeTo) -> Self { + self.0 = self.0.relative_to(relative_to); + self + } + + pub fn leader(mut self, leader: docx_rs::TabLeaderType) -> Self { + self.0 = self.0.leader(leader); + self + } +} + +impl PositionalTab { + pub fn take(self) -> docx_rs::PositionalTab { + self.0 + } +} diff --git a/docx-wasm/src/run.rs b/docx-wasm/src/run.rs index bc6b3da9f..2aadfb45c 100644 --- a/docx-wasm/src/run.rs +++ b/docx-wasm/src/run.rs @@ -39,6 +39,11 @@ impl Run { self } + pub fn add_ptab(mut self, ptab: PositionalTab) -> Run { + self.0 = self.0.add_ptab(ptab.take()); + self + } + pub fn add_break(mut self, break_type: docx_rs::BreakType) -> Run { self.0 .children diff --git a/docx-wasm/test/__snapshots__/index.test.js.snap b/docx-wasm/test/__snapshots__/index.test.js.snap index 34ac6cefd..86edb8a29 100644 --- a/docx-wasm/test/__snapshots__/index.test.js.snap +++ b/docx-wasm/test/__snapshots__/index.test.js.snap @@ -41792,6 +41792,269 @@ Object { } `; +exports[`reader should read ptab 1`] = ` +Object { + "comments": Object { + "comments": Array [], + }, + "commentsExtended": Object { + "children": Array [], + }, + "contentType": Object { + "custom_xml_count": 1, + "footer_count": 0, + "header_count": 0, + "types": Object { + "/_rels/.rels": "application/vnd.openxmlformats-package.relationships+xml", + "/docProps/app.xml": "application/vnd.openxmlformats-officedocument.extended-properties+xml", + "/docProps/core.xml": "application/vnd.openxmlformats-package.core-properties+xml", + "/docProps/custom.xml": "application/vnd.openxmlformats-officedocument.custom-properties+xml", + "/word/_rels/document.xml.rels": "application/vnd.openxmlformats-package.relationships+xml", + "/word/comments.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml", + "/word/commentsExtended.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml", + "/word/document.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", + "/word/fontTable.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml", + "/word/numbering.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml", + "/word/settings.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml", + "/word/styles.xml": "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml", + }, + "web_extension_count": 1, + }, + "customItemProps": Array [], + "customItemRels": Array [], + "customItems": Array [], + "docProps": Object { + "app": Object {}, + "core": Object { + "config": Object { + "created": null, + "creator": null, + "description": null, + "language": null, + "lastModifiedBy": null, + "modified": null, + "revision": null, + "subject": null, + "title": null, + }, + }, + "custom": Object { + "properties": Object {}, + }, + }, + "document": Object { + "children": Array [ + Object { + "data": Object { + "children": Array [ + Object { + "data": Object { + "children": Array [ + Object { + "data": Object { + "alignment": "right", + "leader": "none", + "relativeTo": "margin", + }, + "type": "ptab", + }, + Object { + "data": Object { + "preserveSpace": true, + "text": "Hello world!!", + }, + "type": "text", + }, + ], + "runProperty": Object {}, + }, + "type": "run", + }, + ], + "hasNumbering": false, + "id": "00000001", + "property": Object { + "runProperty": Object {}, + "tabs": Array [], + }, + }, + "type": "paragraph", + }, + ], + "hasNumbering": false, + "sectionProperty": Object { + "columns": 1, + "pageMargin": Object { + "bottom": 1701, + "footer": 992, + "gutter": 0, + "header": 851, + "left": 1701, + "right": 1701, + "top": 1985, + }, + "pageSize": Object { + "h": 16838, + "orient": null, + "w": 11906, + }, + "space": 425, + "textDirection": "lrTb", + "titlePg": false, + }, + }, + "documentRels": Object { + "customXmlCount": 0, + "footerCount": 0, + "hasComments": false, + "hasFootnotes": false, + "hasNumberings": false, + "headerCount": 0, + "hyperlinks": Array [], + "images": Array [], + }, + "fontTable": Object {}, + "footnotes": Object { + "footnotes": Array [], + }, + "hyperlinks": Array [], + "images": Array [], + "media": Array [], + "numberings": Object { + "abstractNums": Array [], + "numberings": Array [], + }, + "rels": Object { + "rels": Array [ + Array [ + "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties", + "rId1", + "docProps/core.xml", + ], + Array [ + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties", + "rId2", + "docProps/app.xml", + ], + Array [ + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", + "rId3", + "word/document.xml", + ], + Array [ + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties", + "rId4", + "docProps/custom.xml", + ], + ], + }, + "settings": Object { + "adjustLineHeightInTable": false, + "defaultTabStop": 840, + "docId": null, + "docVars": Array [], + "evenAndOddHeaders": false, + "zoom": 100, + }, + "styles": Object { + "docDefaults": Object { + "paragraphPropertyDefault": Object { + "paragraphProperty": Object { + "runProperty": Object {}, + "tabs": Array [], + }, + }, + "runPropertyDefault": Object { + "runProperty": Object {}, + }, + }, + "styles": Array [ + Object { + "basedOn": null, + "name": "Normal", + "next": null, + "paragraphProperty": Object { + "runProperty": Object {}, + "tabs": Array [], + }, + "runProperty": Object {}, + "styleId": "Normal", + "styleType": "paragraph", + "tableCellProperty": Object { + "borders": null, + "gridSpan": null, + "shading": null, + "textDirection": null, + "verticalAlign": null, + "verticalMerge": null, + "width": null, + }, + "tableProperty": Object { + "borders": Object { + "bottom": Object { + "borderType": "single", + "color": "000000", + "position": "bottom", + "size": 2, + "space": 0, + }, + "insideH": Object { + "borderType": "single", + "color": "000000", + "position": "insideH", + "size": 2, + "space": 0, + }, + "insideV": Object { + "borderType": "single", + "color": "000000", + "position": "insideV", + "size": 2, + "space": 0, + }, + "left": Object { + "borderType": "single", + "color": "000000", + "position": "left", + "size": 2, + "space": 0, + }, + "right": Object { + "borderType": "single", + "color": "000000", + "position": "right", + "size": 2, + "space": 0, + }, + "top": Object { + "borderType": "single", + "color": "000000", + "position": "top", + "size": 2, + "space": 0, + }, + }, + "justification": "left", + "width": Object { + "width": 0, + "widthType": "auto", + }, + }, + }, + ], + }, + "taskpanes": null, + "taskpanesRels": Object { + "rels": Array [], + }, + "themes": Array [], + "webExtensions": Array [], + "webSettings": Object { + "divs": Array [], + }, +} +`; + exports[`reader should read sectionProperty in ppr 1`] = ` Object { "comments": Object { @@ -171837,6 +172100,31 @@ exports[`writer should write paragraph delete 3`] = ` " `; +exports[`writer should write ptab 1`] = ` +" + + + + + +" +`; + +exports[`writer should write ptab 2`] = ` +" + + Hello world!! + +" +`; + +exports[`writer should write ptab 3`] = ` +" + + +" +`; + exports[`writer should write strike 1`] = ` " diff --git a/docx-wasm/test/index.test.js b/docx-wasm/test/index.test.js index cc3cc5d6b..bf49fd0ba 100644 --- a/docx-wasm/test/index.test.js +++ b/docx-wasm/test/index.test.js @@ -214,6 +214,12 @@ describe("reader", () => { const json = w.readDocx(buffer); expect(json).toMatchSnapshot(); }); + + test("should read ptab", () => { + const buffer = readFileSync("../fixtures/ptab/ptab.docx"); + const json = w.readDocx(buffer); + expect(json).toMatchSnapshot(); + }); }); describe("writer", () => { @@ -1063,4 +1069,20 @@ describe("writer", () => { } } }); + + test("should write ptab", () => { + const p = new w.Paragraph().addRun( + new w.Run() + .addPositionalTab(new w.PositionalTab().alignment("right")) + .addText("Hello world!!") + ); + const buffer = new w.Docx().addParagraph(p).build(); + const z = new Zip(Buffer.from(buffer)); + for (const e of z.getEntries()) { + if (e.entryName.match(/document.xml|numbering.xml/)) { + expect(z.readAsText(e)).toMatchSnapshot(); + } + } + writeFileSync("../output/js/ptab.docx", buffer); + }); }); diff --git a/fixtures/ptab/ptab.docx b/fixtures/ptab/ptab.docx new file mode 100644 index 0000000000000000000000000000000000000000..0bc012fa6c6717b202b0366ca5082230cb40172b GIT binary patch literal 18350 zcmeHP&2J<}6?d`;f&dB$T#!(h9kh^DWcT!pJ+?=-BkzaVO?Efd+F_%OP}J_OnQ6Aa z(%my-N8$kD0)GGz2X5q$3!otW11=~>j(~)OgaBzdfP~-#zgN}OA2l;}&rCbX!6Ub) zySm=1S5@!3s%HPyOHX}iNqjCR-{R|Oe2x6j()OoT`K+w+R>+*_l!~81#k1;s26Zgo z+zxX;G8}*lWp4s9MHPrQ@?Rr0sgN~*}W}mr6wBiTM!<()jx<-u0u%`uv z`N-%ot=VX_HB+>@98;_Hoo8ybtsAUs44k-@5JcFw>$XcEf!C|oZXSb9K@xw~&Vu?* zz=~j^pah%>hUYV(j@+O?BY!>m%R(@I*5{j|WNin;I?UkaX3tfL`9656ch{C92#H6T85#kNpBNk$ktDmG4btyt3 z7RMmt9C%k^E=NXu;;{1|g5ym|*wVPCuv2t?p6dSckAHe{X^Ad!esYGRtOIgCZ{_B6 zL<*KtI3jtpwcFNqJ-lt{^_p-ACz znnYByJW)cBZX~8o_+UlaCRo1-WTkd?I#sPIsVdT)5yW+Gs)}+x$)s^wt&*ZKW0?_^ zOmyw2A6dRspIKBrT>;xV)`RBw)!i^~} z8^!S!d@_+UFyvm;8G>ccmWWA6WiP+Qbpv^$MfLEv5C8k)A3-(H^;~{bq+rZFEN0Ll z9O~$F%%DtP3Q^2-c^1QCnJLO(5IQ^zvP_LRjJqzHzM^Y&F*zN}j9KVrkyIXlzsc2f z?U+YL$`&*s+X2g z1c;e&j3~Z~NV97*>)J_HbNm$n$adTWVs1hu0!}H~3fa)6P;*D$((;cGWjq$yM`7F# zH*Wp>FJM@@D8QDCt_j6KuE*T0tMY6*v8ROHlZ0=A4m)poe%Sf@3-3dg>G}$Wg)8tW zAw-$+Aq7{^s^xWDL4*rNuoC+}X}}AuXc701GP@z3g;P4+u2yR8Q^z@@A}u(DDH3DhZ`TK**Gam(oOXE`q<2J@lP_sr!g+N?VbCPD z;c4v;DGwv`$*4@LYE&n@4hk<*G8O#K^i^y>g4vKiI}Fb6TvQl(ja6J3y1K;ZZXI4YhVD! zx_p@kh&dUciijb=h?%h-R^*9cJ@`w$I%a|7xV zBoeK7TyG%2rBR8IPt2Yj*3G@`CzNlj@ycD_hhMr~-`s>{8g+Vum_K5%fOpFDoe0HA zuU4D9J)}v1ooc|7%IL=}pAcRsRh{Bj{r3ItPksRBfv#tzcFim&jRrTX)rv&5YO^wR zIG327mssg*TwXA5$r4VKNJ#RSlNU@h+IDYcTTGH?zp+-;)b1~`+!YrJZwtlMPKmeT0A);qC=O?RqJXL={x^xeT`vdzO zw(D81Aftt#T&z4UK*!l+Fpn(uYgj)f?|u&nhyg6(xi-mXZO^fTyLK4*;cYAeVqxig zo3y)K7NQv&36{H9_O?TR#7F)Xx3cHkI=JuwoMkwvEwHiq=o+{Cw@!jSMxWM}=kGfg zNy^PYK}xX{rd}+0C|3Qw58nRO0W3OQ&r7Rbh(s6Al7uI!Rz+6i50JVe>QY%hv|Sd} z?y*trzV8~IbW_c~5kl8XF%}AsMi=0QYda_MO~|2yjN@fs$7Wx?8ycZaGL^br)bbbw z2Pf{44+AN%s|~}&6PbzX8{P$VQ`=41No_Y8*%5?95>=+d;7HC93JbpbhadiW@6yr| zU8$W0>!z#A3vi%BlQ7{$*q)?j@_7o1aI*+>EZmzA$XT7mFoR;5uFll3rJmxClR}fl=j?0{844gNT(Y|Q4EtF-y4vxoO_}mNF+9#p@Ua8 zzL4?Y5fRpY!qmv{@En*hihFKaYB3Xg@sL;H!98FPu`DPp%oTkld+~}Xiz$7Ol*`$)A9!r+SmDoj>ufxhX@c4d>*nz3^k*@f<`F2Z}rkX6`*E0+gyPATI-AG3K*=MH6~2~1B zM{`gFD9P7`+k#78W(_zuW9u5WDlw;(M$8{~N&)M6N*5*s?31>{;9L+^XoQ+59UxV{ zKwbSdf!Vhzlo>%vk_5R!3OoUz757M#)Fgx|)7+IT3W`}A>1~shRQQsJjby!E1Ek~z z!ef^d4T-0n;;~cF0G_d-ooIa|5=l&skO=EA3V)x9VolN!ow&Ik1y%0$7zHyd0cA6t zvCr*H35{sO@C+Tq(LEZi9M=T1Zi^vTrkD(R_>U{U_%jkgbfw84+FsychXFsIus|{> z#dG1|WZU6#7KQr~7aq>aM6u3|6Zg6_<*>X3X=y(4Q-PR^44G+WX;q5{2b4W!h;Rg0|H!j{DuhNmfZ z*t(8JusBxN$3~qz#@SpO{la&{4>wFSgOVSoY-ygb=%=q?V{JRaK0EHr(-*&G$Gn{8 znr^It*phEtzxX0gn7q@SY{~CviKs`5`A*g|j+$mZW zP(5du0bc!Fj^O0fp$e^@$IGB!{(KHvp3YOj)l*R!_7a8X2a4;=C5el*gfhtNV~M@O|W4IXK@K%HtLlSlttv0Y8C5 zQ35!3He3Z)cS~j9U&jy5aB$k;!uOF;j#q_Ox4LBT??Xa3yvzts0#_I9Gw>I_k$|UZ x=}GWvZaRY>HI(M_nQFBcYPgu8d1*5pg Date: Tue, 15 Oct 2024 18:51:20 +0900 Subject: [PATCH 06/25] feat: Support paragraph color (#761) --- docx-core/src/documents/elements/paragraph.rs | 5 +++++ docx-wasm/js/paragraph-property.ts | 4 ++++ docx-wasm/js/paragraph.ts | 5 +++++ docx-wasm/src/paragraph.rs | 5 +++++ 4 files changed, 19 insertions(+) diff --git a/docx-core/src/documents/elements/paragraph.rs b/docx-core/src/documents/elements/paragraph.rs index 71d744d91..84cdf9070 100644 --- a/docx-core/src/documents/elements/paragraph.rs +++ b/docx-core/src/documents/elements/paragraph.rs @@ -305,6 +305,11 @@ impl Paragraph { self } + pub fn color(mut self, c: impl Into) -> Self { + self.property.run_property = self.property.run_property.color(c); + self + } + pub fn bold(mut self) -> Self { self.property.run_property = self.property.run_property.bold(); self diff --git a/docx-wasm/js/paragraph-property.ts b/docx-wasm/js/paragraph-property.ts index 8b52a83f8..46a4435b7 100644 --- a/docx-wasm/js/paragraph-property.ts +++ b/docx-wasm/js/paragraph-property.ts @@ -299,6 +299,10 @@ export const setParagraphProperty = ( target = target.bold() as T; } + if (property.runProperty.color) { + target = target.color(property.runProperty.color) as T; + } + if (typeof property.lineSpacing !== "undefined") { const spacing = buildLineSpacing(property); if (spacing) { diff --git a/docx-wasm/js/paragraph.ts b/docx-wasm/js/paragraph.ts index 5f0032079..2aa93e8de 100644 --- a/docx-wasm/js/paragraph.ts +++ b/docx-wasm/js/paragraph.ts @@ -180,6 +180,11 @@ export class Paragraph { return this; } + color(color: string) { + this.property.runProperty = { ...this.property.runProperty, color }; + return this; + } + bold() { this.property.runProperty = { ...this.property.runProperty, bold: true }; return this; diff --git a/docx-wasm/src/paragraph.rs b/docx-wasm/src/paragraph.rs index 0dc265eac..8249c969d 100644 --- a/docx-wasm/src/paragraph.rs +++ b/docx-wasm/src/paragraph.rs @@ -178,6 +178,11 @@ impl Paragraph { self } + pub fn color(mut self, c: &str) -> Self { + self.0 = self.0.color(c); + self + } + pub fn bold(mut self) -> Self { self.0 = self.0.bold(); self From bf5ccac4b113f54edebc61c641fd02b7bc99d4af Mon Sep 17 00:00:00 2001 From: Igor Strebz Date: Tue, 22 Oct 2024 04:28:58 +0300 Subject: [PATCH 07/25] Make 'image' crate optional (#764) Discussion at #763. --- docx-core/Cargo.toml | 5 +-- docx-core/src/documents/elements/drawing.rs | 30 ++++-------------- docx-core/src/documents/elements/pic.rs | 34 ++++++++++++--------- docx-core/src/documents/mod.rs | 10 ++++-- 4 files changed, 36 insertions(+), 43 deletions(-) diff --git a/docx-core/Cargo.toml b/docx-core/Cargo.toml index 564e94c48..20675e00d 100644 --- a/docx-core/Cargo.toml +++ b/docx-core/Cargo.toml @@ -18,7 +18,8 @@ name = "docx_rs" path = "src/lib.rs" [features] -wasm = ["wasm-bindgen", "ts-rs"] +default = ["image"] +wasm = ["wasm-bindgen", "ts-rs", "image"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -29,7 +30,7 @@ zip = { version = "0.6.3", default-features = false, features = ["deflate"] } serde = { version = "1.0", features = ["derive"] } serde_json = {version = "1.0" } base64 = "0.13.1" -image = { version = "0.24.4", default-features = false, features=["gif", "jpeg", "png", "bmp", "tiff"] } +image = { version = "0.24.4", default-features = false, features=["gif", "jpeg", "png", "bmp", "tiff"], optional = true } wasm-bindgen = { version = "0.2.78", optional = true } ts-rs = { version = "6.1", optional = true } diff --git a/docx-core/src/documents/elements/drawing.rs b/docx-core/src/documents/elements/drawing.rs index 69bac1b95..2af72c2ae 100644 --- a/docx-core/src/documents/elements/drawing.rs +++ b/docx-core/src/documents/elements/drawing.rs @@ -163,12 +163,8 @@ mod tests { #[test] fn test_drawing_build_with_pic() { - use std::io::Read; - - let mut img = std::fs::File::open("../images/cat_min.jpg").unwrap(); - let mut buf = Vec::new(); - let _ = img.read_to_end(&mut buf).unwrap(); - let d = Drawing::new().pic(Pic::new(&buf)).build(); + let pic = Pic::new_with_dimensions(Vec::new(), 320, 240); + let d = Drawing::new().pic(pic).build(); assert_eq!( str::from_utf8(&d).unwrap(), r#" @@ -212,12 +208,8 @@ mod tests { #[test] fn test_drawing_build_with_pic_overlap() { - use std::io::Read; - - let mut img = std::fs::File::open("../images/cat_min.jpg").unwrap(); - let mut buf = Vec::new(); - let _ = img.read_to_end(&mut buf).unwrap(); - let d = Drawing::new().pic(Pic::new(&buf).overlapping()).build(); + let pic = Pic::new_with_dimensions(Vec::new(), 320, 240).overlapping(); + let d = Drawing::new().pic(pic).build(); assert_eq!( str::from_utf8(&d).unwrap(), r#" @@ -262,12 +254,7 @@ mod tests { #[test] fn test_drawing_build_with_pic_align_right() { - use std::io::Read; - - let mut img = std::fs::File::open("../images/cat_min.jpg").unwrap(); - let mut buf = Vec::new(); - let _ = img.read_to_end(&mut buf).unwrap(); - let mut pic = Pic::new(&buf).floating(); + let mut pic = Pic::new_with_dimensions(Vec::new(), 320, 240).floating(); pic = pic.relative_from_h(RelativeFromHType::Column); pic = pic.relative_from_v(RelativeFromVType::Paragraph); pic = pic.position_h(DrawingPosition::Align(PicAlign::Right)); @@ -323,12 +310,7 @@ mod tests { #[test] fn test_issue686() { - use std::io::Read; - - let mut img = std::fs::File::open("../images/cat_min.jpg").unwrap(); - let mut buf = Vec::new(); - let _ = img.read_to_end(&mut buf).unwrap(); - let pic = Pic::new(&buf) + let pic = Pic::new_with_dimensions(Vec::new(), 320, 240) .size(320 * 9525, 240 * 9525) .floating() .offset_x(300 * 9525) diff --git a/docx-core/src/documents/elements/pic.rs b/docx-core/src/documents/elements/pic.rs index 18b310a56..5a331e561 100644 --- a/docx-core/src/documents/elements/pic.rs +++ b/docx-core/src/documents/elements/pic.rs @@ -1,4 +1,3 @@ -use image::*; use serde::Serialize; use crate::documents::*; @@ -50,18 +49,28 @@ pub struct Pic { } impl Pic { + #[cfg(feature = "image")] + /// Make a `Pic`. + /// + /// Converts the passed image to PNG internally and computes its size. pub fn new(buf: &[u8]) -> Pic { - let id = create_pic_rid(generate_pic_id()); - let dimg = image::load_from_memory(buf).expect("Should load image from memory."); - let size = dimg.dimensions(); - let mut image = std::io::Cursor::new(vec![]); - // For now only png supported - dimg.write_to(&mut image, ImageFormat::Png) + let img = ::image::load_from_memory(buf).expect("Should load image from memory."); + let (w, h) = ::image::GenericImageView::dimensions(&img); + let mut buf = std::io::Cursor::new(vec![]); + img.write_to(&mut buf, ::image::ImageFormat::Png) .expect("Unable to write dynamic image"); + Self::new_with_dimensions(buf.into_inner(), w, h) + } + + /// Make a `Pic` element. For now only PNG is supported. + /// + /// Use [Pic::new] method, to call `image` crate do conversion for you. + pub fn new_with_dimensions(buffer: Vec, width_px: u32, height_px: u32) -> Pic { + let id = create_pic_rid(generate_pic_id()); Self { id, - image: image.into_inner(), - size: (from_px(size.0), from_px(size.1)), + image: buffer, + size: (from_px(width_px), from_px(height_px)), position_type: DrawingPositionType::Inline, simple_pos: false, simple_pos_x: 0, @@ -236,12 +245,7 @@ mod tests { #[test] fn test_pic_build() { - use std::io::Read; - - let mut img = std::fs::File::open("../images/cat_min.jpg").unwrap(); - let mut buf = Vec::new(); - let _ = img.read_to_end(&mut buf).unwrap(); - let b = Pic::new(&buf).build(); + let b = Pic::new_with_dimensions(Vec::new(), 320, 240).build(); assert_eq!( str::from_utf8(&b).unwrap(), r#" diff --git a/docx-core/src/documents/mod.rs b/docx-core/src/documents/mod.rs index fba1c3cc0..5d86bbac8 100644 --- a/docx-core/src/documents/mod.rs +++ b/docx-core/src/documents/mod.rs @@ -43,7 +43,6 @@ mod xml_docx; pub(crate) use build_xml::BuildXML; pub(crate) use history_id::HistoryId; pub(crate) use hyperlink_id::*; -use image::ImageFormat; pub(crate) use paragraph_id::*; pub(crate) use paragraph_property_change_id::ParagraphPropertyChangeId; pub(crate) use pic_id::*; @@ -246,15 +245,22 @@ impl Docx { path: impl Into, buf: Vec, ) -> Self { + #[cfg(feature = "image")] if let Ok(dimg) = image::load_from_memory(&buf) { let mut png = std::io::Cursor::new(vec![]); // For now only png supported - dimg.write_to(&mut png, ImageFormat::Png) + dimg.write_to(&mut png, image::ImageFormat::Png) .expect("Unable to write dynamic image"); self.images .push((id.into(), path.into(), Image(buf), Png(png.into_inner()))); } + #[cfg(not(feature = "image"))] + // without 'image' crate we can only test for PNG file signature + if buf.starts_with(&[137, 80, 78, 71, 13, 10, 26, 10]) { + self.images + .push((id.into(), path.into(), Image(buf.clone()), Png(buf))); + } self } From 4e264b9d3fed2303eadad4d8e4322cdd2d3c094d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:29:11 +0900 Subject: [PATCH 08/25] build(deps): bump elliptic from 6.5.5 to 6.5.7 in /docx-wasm (#760) Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.5 to 6.5.7. - [Commits](https://github.com/indutny/elliptic/compare/v6.5.5...v6.5.7) --- updated-dependencies: - dependency-name: elliptic dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docx-wasm/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docx-wasm/yarn.lock b/docx-wasm/yarn.lock index 9ed269fc3..341861c7a 100644 --- a/docx-wasm/yarn.lock +++ b/docx-wasm/yarn.lock @@ -2220,9 +2220,9 @@ electron-to-chromium@^1.4.668: integrity sha512-LRMMrM9ITOvue0PoBrvNIraVmuDbJV5QC9ierz/z5VilMdPOVMjOtpICNld3PuXuTZ3CHH/UPxX9gHhAPwi+0Q== elliptic@^6.5.3, elliptic@^6.5.5: - version "6.5.5" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded" - integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== + version "6.5.7" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b" + integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q== dependencies: bn.js "^4.11.9" brorand "^1.1.0" From b79776f94056347cf6edb94571558c4b9a1f139d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:29:20 +0900 Subject: [PATCH 09/25] build(deps): bump express from 4.19.2 to 4.21.0 in /docx-wasm (#758) Bumps [express](https://github.com/expressjs/express) from 4.19.2 to 4.21.0. - [Release notes](https://github.com/expressjs/express/releases) - [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md) - [Commits](https://github.com/expressjs/express/compare/4.19.2...4.21.0) --- updated-dependencies: - dependency-name: express dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docx-wasm/yarn.lock | 95 ++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 45 deletions(-) diff --git a/docx-wasm/yarn.lock b/docx-wasm/yarn.lock index 341861c7a..214d76fa2 100644 --- a/docx-wasm/yarn.lock +++ b/docx-wasm/yarn.lock @@ -1237,10 +1237,10 @@ bn.js@^5.0.0, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.20.2: - version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== +body-parser@1.20.3: + version "1.20.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== dependencies: bytes "3.1.2" content-type "~1.0.5" @@ -1250,7 +1250,7 @@ body-parser@1.20.2: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.11.0" + qs "6.13.0" raw-body "2.5.2" type-is "~1.6.18" unpipe "1.0.0" @@ -2257,6 +2257,11 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -2458,36 +2463,36 @@ expect@^28.1.3: jest-util "^28.1.3" express@^4.17.1: - version "4.19.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + version "4.21.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.0.tgz#d57cb706d49623d4ac27833f1cbc466b668eb915" + integrity sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.2" + body-parser "1.20.3" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.2.0" + finalhandler "1.3.1" fresh "0.5.2" http-errors "2.0.0" - merge-descriptors "1.0.1" + merge-descriptors "1.0.3" methods "~1.1.2" on-finished "2.4.1" parseurl "~1.3.3" - path-to-regexp "0.1.7" + path-to-regexp "0.1.10" proxy-addr "~2.0.7" - qs "6.11.0" + qs "6.13.0" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" + send "0.19.0" + serve-static "1.16.2" setprototypeof "1.2.0" statuses "2.0.1" type-is "~1.6.18" @@ -2602,13 +2607,13 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== dependencies: debug "2.6.9" - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" on-finished "2.4.1" parseurl "~1.3.3" @@ -4073,10 +4078,10 @@ meow@^10.1.2: type-fest "^1.2.2" yargs-parser "^20.2.9" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== merge-stream@^2.0.0: version "2.0.0" @@ -4718,10 +4723,10 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" + integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== path-type@^4.0.0: version "4.0.0" @@ -4910,12 +4915,12 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== +qs@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" qs@^6.11.2: version "6.12.1" @@ -5279,10 +5284,10 @@ semver@^7.3.4, semver@^7.3.5, semver@^7.5.3: dependencies: lru-cache "^6.0.0" -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== +send@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== dependencies: debug "2.6.9" depd "2.0.0" @@ -5318,15 +5323,15 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== dependencies: - encodeurl "~1.0.2" + encodeurl "~2.0.0" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.18.0" + send "0.19.0" set-blocking@^2.0.0: version "2.0.0" @@ -5424,7 +5429,7 @@ shell-quote@^1.6.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== -side-channel@^1.0.4, side-channel@^1.0.6: +side-channel@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== From b1ca81c13df3c007fc238834298adb77c7648907 Mon Sep 17 00:00:00 2001 From: unvalley <38400669+unvalley@users.noreply.github.com> Date: Tue, 29 Oct 2024 17:31:09 +0900 Subject: [PATCH 10/25] ci: upgrade setup-node to v4 and node-version to v20 (#767) --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 266b04c5b..c7bab3599 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,9 +6,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - - uses: actions/setup-node@master + - uses: actions/setup-node@v4 with: - node-version: 14 + node-version: 20 - uses: actions-rs/toolchain@v1 with: profile: minimal @@ -68,9 +68,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@master + - uses: actions/setup-node@v4 with: - node-version: 14 + node-version: 20 - uses: actions-rs/toolchain@v1 with: profile: minimal From 6023afbd4f98668ff9e65dc5147c14918ad8e4ec Mon Sep 17 00:00:00 2001 From: unvalley <38400669+unvalley@users.noreply.github.com> Date: Tue, 29 Oct 2024 17:31:54 +0900 Subject: [PATCH 11/25] ci: upgrade actions checkout and cache to v4 (#766) Co-authored-by: bokuweb --- .github/workflows/ci.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7bab3599..3657bf19b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 @@ -15,17 +15,17 @@ jobs: toolchain: stable override: true - name: Cache cargo registry - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ~/.cargo/git key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} @@ -46,19 +46,19 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true - name: Cache cargo registry - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ~/.cargo/git key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} @@ -67,7 +67,7 @@ jobs: build-wasm: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 @@ -84,7 +84,7 @@ jobs: name: Clippy runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: profile: minimal From f835106dc2299ff0e9c1a9f983b120c568eed1aa Mon Sep 17 00:00:00 2001 From: unvalley <38400669+unvalley@users.noreply.github.com> Date: Tue, 29 Oct 2024 19:12:02 +0900 Subject: [PATCH 12/25] ci: use moonrepo/setup-rust (#770) * ci: use moonrepo/setup-rust * ci: fix typo * chore: don't clippy for now --- .github/workflows/ci.yml | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3657bf19b..84ef5e5b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,11 +9,11 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 20 - - uses: actions-rs/toolchain@v1 + - uses: moonrepo/setup-rust@v1 with: profile: minimal - toolchain: stable - override: true + cache: false + inherit-toolchain: true - name: Cache cargo registry uses: actions/cache@v4 with: @@ -47,11 +47,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions-rs/toolchain@v1 + - uses: moonrepo/setup-rust@v1 with: profile: minimal - toolchain: stable - override: true + inherit-toolchain: true - name: Cache cargo registry uses: actions/cache@v4 with: @@ -71,11 +70,10 @@ jobs: - uses: actions/setup-node@v4 with: node-version: 20 - - uses: actions-rs/toolchain@v1 + - uses: moonrepo/setup-rust@v1 with: profile: minimal - toolchain: 1.58.1 - override: true + inherit-toolchain: true - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - run: rustup target add wasm32-unknown-unknown - run: cd docx-wasm && yarn install && yarn wasm-pack:node && yarn wasm-pack:dev && tsc -p tsconfig.node.json && yarn test @@ -85,13 +83,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions-rs/toolchain@v1 + - uses: moonrepo/setup-rust@v1 with: - profile: minimal - toolchain: 1.56.1 - override: true - - run: rustup component add clippy - - uses: actions-rs/cargo@v1 - with: - command: clippy - args: -- -D warnings + inherit-toolchain: true + components: clippy + # TODO(@unvalley): enable + # - run: cargo clippy -- -D warnings \ No newline at end of file From de071a60dd1ae6ad103490c464fca4fdb77e6292 Mon Sep 17 00:00:00 2001 From: unvalley <38400669+unvalley@users.noreply.github.com> Date: Tue, 29 Oct 2024 19:12:43 +0900 Subject: [PATCH 13/25] build: yarn to pnpm (#771) * build: yarn to pnpm * ci: pnpm i --forzen-lockfile * docs: pnpm version on README * ci: install pnpm * ci: install pnpm --- .github/workflows/ci.yml | 7 +- CONTRIBUTING.md | 4 +- README.md | 8 +- docx-wasm/package.json | 4 +- docx-wasm/pnpm-lock.yaml | 7413 ++++++++++++++++++++++++++++++++++++++ docx-wasm/yarn.lock | 6497 --------------------------------- vrt/pnpm-lock.yaml | 112 + vrt/yarn.lock | 135 - yarn.lock | 4 - 9 files changed, 7537 insertions(+), 6647 deletions(-) create mode 100644 docx-wasm/pnpm-lock.yaml delete mode 100644 docx-wasm/yarn.lock create mode 100644 vrt/pnpm-lock.yaml delete mode 100644 vrt/yarn.lock delete mode 100644 yarn.lock diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84ef5e5b2..22ce2be97 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,8 +34,8 @@ jobs: sudo add-apt-repository ppa:libreoffice/ppa sudo apt-get update sudo apt-get install libreoffice - npm i -g reg-cli - cd vrt && yarn --frozen-lockfile && cd ../ + npm i -g reg-cli pnpm + cd vrt && pnpm i --frozen-lockfile && cd ../ - name: test run: make test -B # && make vrt -B - uses: actions/upload-artifact@master @@ -76,7 +76,8 @@ jobs: inherit-toolchain: true - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - run: rustup target add wasm32-unknown-unknown - - run: cd docx-wasm && yarn install && yarn wasm-pack:node && yarn wasm-pack:dev && tsc -p tsconfig.node.json && yarn test + - run: npm install -g pnpm + - run: cd docx-wasm && pnpm install && pnpm wasm-pack:node && pnpm wasm-pack:dev && tsc -p tsconfig.node.json && pnpm test lint: name: Clippy diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 929e1ca34..9cf80a926 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,8 +13,8 @@ Pull requests are always welcome. 2. Create branch: `git checkout -b my-new-feature` 3. Test `docx-core`: `make test && make lint` 4. Update snapshot test result (If needed): `cargo-insta review` -5. Test `docx-wasm`: `cd docx-wasm && yarn install && yarn test` -6. Update snapshot test result (If needed): `cd docx-wasm & yarn test -- --updateSnapshot` +5. Test `docx-wasm`: `cd docx-wasm && pnpm install && pnpm test` +6. Update snapshot test result (If needed): `cd docx-wasm & pnpm test -- --updateSnapshot` 7. Push: `git push origin my-new-feature` 8. Send PR :) diff --git a/README.md b/README.md index 374c960c9..f89d6a446 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ docx-rs = "0.4" ### Browser/Node.js ``` -$ yarn add docx-wasm +$ pnpm add docx-wasm ``` ## Example @@ -91,7 +91,7 @@ writeFileSync("hello.docx", Buffer.from(buffer)); ### Requirements - Node.js 16+ -- yarn 1+ +- pnpm 9+ - wasm-pack0.10.1 (https://rustwasm.github.io/wasm-pack/) - insta (https://github.com/mitsuhiko/insta) @@ -140,13 +140,13 @@ $ make test Please run following command. ``` -$ cd docx-wasm && yarn install && yarn test +$ cd docx-wasm && pnpm install && pnpm test ``` If snapshot testing is failed, fix code or update snapshot files. (See https://jestjs.io/docs/snapshot-testing). ``` -$ yarn test -- --updateSnapshot +$ pnpm test -- --updateSnapshot ``` ## Features diff --git a/docx-wasm/package.json b/docx-wasm/package.json index d7f3f099a..254e8e514 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -20,9 +20,9 @@ "copy": "cpy 'dist/node/pkg/package.json' 'dist/web/pkg'", "tsrs": "cd ../ && make test", "copy:bindings": "cpy '../docx-core/bindings' './js/json'", - "prepublishOnly": "npm run build" + "prepublishOnly": "pnpm run build" }, - "resolutions": { + "overrides": { "**/serialize-javascript": "6.0.2" }, "devDependencies": { diff --git a/docx-wasm/pnpm-lock.yaml b/docx-wasm/pnpm-lock.yaml new file mode 100644 index 000000000..b73121554 --- /dev/null +++ b/docx-wasm/pnpm-lock.yaml @@ -0,0 +1,7413 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@types/file-saver': + specifier: 2.0.7 + version: 2.0.7 + '@wasm-tool/wasm-pack-plugin': + specifier: 1.6.0 + version: 1.6.0 + adm-zip: + specifier: 0.5.14 + version: 0.5.14 + cpy-cli: + specifier: 4.2.0 + version: 4.2.0 + file-saver: + specifier: 2.0.5 + version: 2.0.5 + html-webpack-plugin: + specifier: 5.5.3 + version: 5.5.3(webpack@4.46.0) + jest: + specifier: 28.1.3 + version: 28.1.3(@types/node@22.8.2) + npm-run-all2: + specifier: 5.0.2 + version: 5.0.2 + text-encoding: + specifier: 0.7.0 + version: 0.7.0 + ts-loader: + specifier: 9.4.2 + version: 9.4.2(typescript@4.9.3)(webpack@4.46.0) + typescript: + specifier: 4.9.3 + version: 4.9.3 + webpack: + specifier: 4.46.0 + version: 4.46.0(webpack-cli@5.0.1) + webpack-cli: + specifier: 5.0.1 + version: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) + webpack-dev-server: + specifier: 3.11.3 + version: 3.11.3(webpack-cli@5.0.1)(webpack@4.46.0) + webpack-merge: + specifier: 5.8.0 + version: 5.8.0 + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/code-frame@7.26.0': + resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.26.0': + resolution: {integrity: sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.0': + resolution: {integrity: sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.1': + resolution: {integrity: sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@28.1.3': + resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/core@28.1.3': + resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@28.1.3': + resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/expect-utils@28.1.3': + resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/expect@28.1.3': + resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/fake-timers@28.1.3': + resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/globals@28.1.3': + resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/reporters@28.1.3': + resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/schemas@28.1.3': + resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/source-map@28.1.2': + resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/test-result@28.1.3': + resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/test-sequencer@28.1.3': + resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/transform@28.1.3': + resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jest/types@28.1.3': + resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@sinclair/typebox@0.24.51': + resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} + + '@sinonjs/commons@1.8.6': + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} + + '@sinonjs/fake-timers@9.1.2': + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/file-saver@2.0.7': + resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} + + '@types/glob@7.2.0': + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/node@22.8.2': + resolution: {integrity: sha512-NzaRNFV+FZkvK/KLCsNdTvID0SThyrs5SHB6tsD/lajr22FGC73N2QeDPM2wHtVde8mgcXuSsHQkH5cX1pbPLw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/prettier@2.7.3': + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@wasm-tool/wasm-pack-plugin@1.6.0': + resolution: {integrity: sha512-Iax4nEgIvVCZqrmuseJm7ln/muWpg7uT5fXMAT0crYo+k5JTuZE58DJvBQoeIAegA3IM9cZgfkcZjAOUCPsT1g==} + + '@webassemblyjs/ast@1.9.0': + resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==} + + '@webassemblyjs/floating-point-hex-parser@1.9.0': + resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==} + + '@webassemblyjs/helper-api-error@1.9.0': + resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==} + + '@webassemblyjs/helper-buffer@1.9.0': + resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==} + + '@webassemblyjs/helper-code-frame@1.9.0': + resolution: {integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==} + + '@webassemblyjs/helper-fsm@1.9.0': + resolution: {integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==} + + '@webassemblyjs/helper-module-context@1.9.0': + resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==} + + '@webassemblyjs/helper-wasm-bytecode@1.9.0': + resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==} + + '@webassemblyjs/helper-wasm-section@1.9.0': + resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==} + + '@webassemblyjs/ieee754@1.9.0': + resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==} + + '@webassemblyjs/leb128@1.9.0': + resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==} + + '@webassemblyjs/utf8@1.9.0': + resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==} + + '@webassemblyjs/wasm-edit@1.9.0': + resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==} + + '@webassemblyjs/wasm-gen@1.9.0': + resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==} + + '@webassemblyjs/wasm-opt@1.9.0': + resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==} + + '@webassemblyjs/wasm-parser@1.9.0': + resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==} + + '@webassemblyjs/wast-parser@1.9.0': + resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==} + + '@webassemblyjs/wast-printer@1.9.0': + resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==} + + '@webpack-cli/configtest@2.1.1': + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/info@2.0.2': + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + + '@webpack-cli/serve@2.0.5': + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn@6.4.2: + resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + adm-zip@0.5.14: + resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==} + engines: {node: '>=12.0'} + + aggregate-error@4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + + ajv-errors@1.0.1: + resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==} + peerDependencies: + ajv: '>=5.0.0' + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-colors@3.2.4: + resolution: {integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + anymatch@2.0.0: + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + aproba@1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-flatten@2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + + array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} + + array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + + array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + arrify@3.0.0: + resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} + engines: {node: '>=12'} + + asn1.js@4.10.1: + resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} + + assert@1.5.1: + resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} + + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + async-each@1.0.6: + resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + + async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + babel-jest@28.1.3: + resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@28.1.3: + resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + babel-preset-current-node-syntax@1.1.0: + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + peerDependencies: + '@babel/core': ^7.0.0 + + babel-preset-jest@28.1.3: + resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + binary-extensions@1.13.1: + resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} + engines: {node: '>=0.10.0'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + + bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bonjour@3.5.0: + resolution: {integrity: sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + + browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + + browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + + browserify-rsa@4.1.1: + resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} + engines: {node: '>= 0.10'} + + browserify-sign@4.2.3: + resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} + engines: {node: '>= 0.12'} + + browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-indexof@1.1.1: + resolution: {integrity: sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==} + + buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + + buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + + builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cacache@12.0.4: + resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==} + + cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001674: + resolution: {integrity: sha512-jOsKlZVRnzfhLojb+Ykb+gyUSp9Xb57So+fAiFlLzzTKpqg8xxSav0e40c8/4F/v9N8QSvrRRaLeVzQbLqomYw==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + chokidar@2.1.8: + resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + + cjs-module-lexer@1.4.1: + resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} + + class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + + clean-stack@4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + + cliui@5.0.0: + resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + + collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + + connect-history-api-fallback@1.6.0: + resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} + engines: {node: '>=0.8'} + + console-browserify@1.2.0: + resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} + + constants-browserify@1.0.0: + resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + copy-concurrently@1.0.5: + resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==} + deprecated: This package is no longer supported. + + copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cp-file@9.1.0: + resolution: {integrity: sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==} + engines: {node: '>=10'} + + cpy-cli@4.2.0: + resolution: {integrity: sha512-b04b+cbdr29CdpREPKw/itrfjO43Ty0Aj7wRM6M6LoE4GJxZJCk9Xp+Eu1IqztkKh3LxIBt1tDplENsa6KYprg==} + engines: {node: '>=12.20'} + hasBin: true + + cpy@9.0.1: + resolution: {integrity: sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==} + engines: {node: ^12.20.0 || ^14.17.0 || >=16.0.0} + + create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + + create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + + create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + + cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-browserify@3.12.1: + resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} + engines: {node: '>= 0.10'} + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cyclist@1.0.2: + resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + + deep-equal@1.1.2: + resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} + engines: {node: '>= 0.4'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-gateway@4.2.0: + resolution: {integrity: sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==} + engines: {node: '>=6'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + + define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + + del@4.1.1: + resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} + engines: {node: '>=6'} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + diff-sequences@28.1.1: + resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dns-equal@1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + + dns-packet@1.3.4: + resolution: {integrity: sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==} + + dns-txt@2.0.2: + resolution: {integrity: sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==} + + dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + domain-browser@1.2.0: + resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==} + engines: {node: '>=0.4', npm: '>=1.2'} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.49: + resolution: {integrity: sha512-ZXfs1Of8fDb6z7WEYZjXpgIRF6MEu8JdeGA0A40aZq6OQbS+eJpnnV49epZRna2DU/YsEjSQuGtQPPtvt6J65A==} + + elliptic@6.6.0: + resolution: {integrity: sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==} + + emittery@0.10.2: + resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + engines: {node: '>=12'} + + emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@4.5.0: + resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} + engines: {node: '>=6.9.0'} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + envinfo@7.14.0: + resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} + engines: {node: '>=4'} + hasBin: true + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-scope@4.0.3: + resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} + engines: {node: '>=4.0.0'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + eventsource@2.0.2: + resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} + engines: {node: '>=12.0.0'} + + evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + + execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + + expect@28.1.3: + resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + express@4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} + engines: {node: '>= 0.10.0'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + + extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + figgy-pudding@3.5.2: + resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} + deprecated: This module is no longer supported. + + file-saver@2.0.5: + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + + find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flush-write-stream@1.1.1: + resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + + fs-write-stream-atomic@1.0.10: + resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==} + deprecated: This package is no longer supported. + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@1.2.13: + resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} + engines: {node: '>= 4.0'} + os: [darwin] + deprecated: Upgrade to fsevents v2 to mitigate potential security issues + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + globby@6.1.0: + resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} + engines: {node: '>=0.10.0'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + + has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + + has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + + hash-base@3.0.4: + resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==} + engines: {node: '>=4'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-entities@1.4.0: + resolution: {integrity: sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-webpack-plugin@5.5.3: + resolution: {integrity: sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==} + engines: {node: '>=10.13.0'} + peerDependencies: + webpack: ^5.20.0 + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-middleware@0.19.1: + resolution: {integrity: sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==} + engines: {node: '>=4.0.0'} + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + iferr@0.1.5: + resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-local@2.0.0: + resolution: {integrity: sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==} + engines: {node: '>=6'} + hasBin: true + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internal-ip@4.3.0: + resolution: {integrity: sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==} + engines: {node: '>=6'} + + interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + + ip-regex@2.1.0: + resolution: {integrity: sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==} + engines: {node: '>=4'} + + ip@1.1.9: + resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-absolute-url@3.0.3: + resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} + engines: {node: '>=8'} + + is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@1.0.1: + resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} + engines: {node: '>=0.10.0'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + + is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + + is-path-in-cwd@2.1.0: + resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==} + engines: {node: '>=6'} + + is-path-inside@2.1.0: + resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} + engines: {node: '>=6'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} + engines: {node: '>=4'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + jest-changed-files@28.1.3: + resolution: {integrity: sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-circus@28.1.3: + resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-cli@28.1.3: + resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@28.1.3: + resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + + jest-diff@28.1.3: + resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-docblock@28.1.1: + resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-each@28.1.3: + resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-environment-node@28.1.3: + resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-get-type@28.0.2: + resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-haste-map@28.1.3: + resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-leak-detector@28.1.3: + resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-matcher-utils@28.1.3: + resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-message-util@28.1.3: + resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-mock@28.1.3: + resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@28.0.2: + resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-resolve-dependencies@28.1.3: + resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-resolve@28.1.3: + resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-runner@28.1.3: + resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-runtime@28.1.3: + resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-snapshot@28.1.3: + resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-util@28.1.3: + resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-validate@28.1.3: + resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-watcher@28.1.3: + resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest-worker@28.1.3: + resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + jest@28.1.3: + resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + junk@4.0.1: + resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} + engines: {node: '>=12.20'} + + killable@1.0.1: + resolution: {integrity: sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==} + + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + + kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + loader-runner@2.4.0: + resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + + loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loglevel@1.9.2: + resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} + engines: {node: '>= 0.6.0'} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + + md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memory-fs@0.4.1: + resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} + + memory-fs@0.5.0: + resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + + memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + + meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mississippi@3.0.0: + resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} + engines: {node: '>=4.0.0'} + + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + move-concurrently@1.0.1: + resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} + deprecated: This package is no longer supported. + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multicast-dns-service-types@1.1.0: + resolution: {integrity: sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==} + + multicast-dns@6.2.3: + resolution: {integrity: sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==} + hasBin: true + + nan@2.22.0: + resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} + + nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + nested-error-stacks@2.1.1: + resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} + + nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-forge@0.10.0: + resolution: {integrity: sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==} + engines: {node: '>= 6.0.0'} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-libs-browser@2.2.1: + resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==} + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-all2@5.0.2: + resolution: {integrity: sha512-S2G6FWZ3pNWAAKm2PFSOtEAG/N+XO/kz3+9l6V91IY+Y3XFSt7Lp7DV92KCgEboEW0hRTu0vFaMe4zXDZYaOyA==} + engines: {node: '>= 10'} + hasBin: true + + npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + opn@5.5.0: + resolution: {integrity: sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==} + engines: {node: '>=4'} + + os-browserify@0.3.0: + resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} + + p-event@4.2.0: + resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} + engines: {node: '>=8'} + + p-filter@3.0.0: + resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} + + p-retry@3.0.1: + resolution: {integrity: sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==} + engines: {node: '>=6'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parallel-transform@1.2.0: + resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parse-asn1@5.1.7: + resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} + engines: {node: '>= 0.10'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + path-browserify@0.0.1: + resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} + + path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pidtree@0.5.0: + resolution: {integrity: sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==} + engines: {node: '>=0.10'} + hasBin: true + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + + pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + + posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + + pretty-format@28.1.3: + resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + + pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} + engines: {node: '>=0.4.x'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@2.2.1: + resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} + engines: {node: '>=0.10'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + + redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + + regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + engines: {node: '>= 0.4'} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + + repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-cwd@2.0.0: + resolution: {integrity: sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==} + engines: {node: '>=4'} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + resolve.exports@1.1.1: + resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} + engines: {node: '>=10'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + run-queue@1.0.3: + resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + schema-utils@1.0.0: + resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==} + engines: {node: '>= 4'} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@1.10.14: + resolution: {integrity: sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + + snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + + snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + + sockjs-client@1.6.1: + resolution: {integrity: sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==} + engines: {node: '>=12'} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + source-list-map@2.0.1: + resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} + + source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + ssri@6.0.2: + resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + stream-browserify@2.0.2: + resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} + + stream-each@1.2.3: + resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} + + stream-http@2.8.3: + resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@6.1.0: + resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} + engines: {node: '>=6'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + + terser-webpack-plugin@1.4.6: + resolution: {integrity: sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==} + engines: {node: '>= 6.9.0'} + peerDependencies: + webpack: ^4.0.0 + + terser@4.8.1: + resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} + engines: {node: '>=6.0.0'} + hasBin: true + + terser@5.36.0: + resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-encoding@0.7.0: + resolution: {integrity: sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==} + deprecated: no longer maintained + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + timers-browserify@2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} + engines: {node: '>=0.6.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-arraybuffer@1.0.1: + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} + + to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + + to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + + ts-loader@9.4.2: + resolution: {integrity: sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + + tslib@2.8.0: + resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + + tty-browserify@0.0.0: + resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + + typescript@4.9.3: + resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} + engines: {node: '>=4.2.0'} + hasBin: true + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + + unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + + unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + + upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + url@0.11.4: + resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} + engines: {node: '>= 0.4'} + + use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.10.4: + resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} + + util@0.11.1: + resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==} + + utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vm-browserify@1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + watchpack-chokidar2@2.0.1: + resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} + + watchpack@1.7.5: + resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + webpack-cli@5.0.1: + resolution: {integrity: sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + + webpack-dev-middleware@3.7.3: + resolution: {integrity: sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==} + engines: {node: '>= 6'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + webpack-dev-server@3.11.3: + resolution: {integrity: sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==} + engines: {node: '>= 6.11.5'} + hasBin: true + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpack-log@2.0.0: + resolution: {integrity: sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==} + engines: {node: '>= 6'} + + webpack-merge@5.8.0: + resolution: {integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==} + engines: {node: '>=10.0.0'} + + webpack-sources@1.4.3: + resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} + + webpack@4.46.0: + resolution: {integrity: sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==} + engines: {node: '>=6.11.5'} + hasBin: true + peerDependencies: + webpack-cli: '*' + webpack-command: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + webpack-command: + optional: true + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + worker-farm@1.7.0: + resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==} + + wrap-ansi@5.1.0: + resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} + engines: {node: '>=6'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ws@6.2.3: + resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@13.1.2: + resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@13.3.2: + resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/code-frame@7.26.0': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.0': {} + + '@babel/core@7.26.0': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + convert-source-map: 2.0.0 + debug: 4.3.7(supports-color@6.1.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.26.0': + dependencies: + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-compilation-targets@7.25.9': + dependencies: + '@babel/compat-data': 7.26.0 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.25.9': {} + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.0': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + + '@babel/parser@7.26.1': + dependencies: + '@babel/types': 7.26.0 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + + '@babel/traverse@7.25.9': + dependencies: + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7(supports-color@6.1.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@bcoe/v8-coverage@0.2.3': {} + + '@discoveryjs/json-ext@0.5.7': {} + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@28.1.3': + dependencies: + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + chalk: 4.1.2 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + + '@jest/core@28.1.3': + dependencies: + '@jest/console': 28.1.3 + '@jest/reporters': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 28.1.3 + jest-config: 28.1.3(@types/node@22.8.2) + jest-haste-map: 28.1.3 + jest-message-util: 28.1.3 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-resolve-dependencies: 28.1.3 + jest-runner: 28.1.3 + jest-runtime: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + jest-watcher: 28.1.3 + micromatch: 4.0.8 + pretty-format: 28.1.3 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - supports-color + - ts-node + + '@jest/environment@28.1.3': + dependencies: + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + jest-mock: 28.1.3 + + '@jest/expect-utils@28.1.3': + dependencies: + jest-get-type: 28.0.2 + + '@jest/expect@28.1.3': + dependencies: + expect: 28.1.3 + jest-snapshot: 28.1.3 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@28.1.3': + dependencies: + '@jest/types': 28.1.3 + '@sinonjs/fake-timers': 9.1.2 + '@types/node': 22.8.2 + jest-message-util: 28.1.3 + jest-mock: 28.1.3 + jest-util: 28.1.3 + + '@jest/globals@28.1.3': + dependencies: + '@jest/environment': 28.1.3 + '@jest/expect': 28.1.3 + '@jest/types': 28.1.3 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@28.1.3': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 22.8.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + jest-worker: 28.1.3 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + terminal-link: 2.1.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + + '@jest/schemas@28.1.3': + dependencies: + '@sinclair/typebox': 0.24.51 + + '@jest/source-map@28.1.2': + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@28.1.3': + dependencies: + '@jest/console': 28.1.3 + '@jest/types': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + + '@jest/test-sequencer@28.1.3': + dependencies: + '@jest/test-result': 28.1.3 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + slash: 3.0.0 + + '@jest/transform@28.1.3': + dependencies: + '@babel/core': 7.26.0 + '@jest/types': 28.1.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.9.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-regex-util: 28.0.2 + jest-util: 28.1.3 + micromatch: 4.0.8 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@28.1.3': + dependencies: + '@jest/schemas': 28.1.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.8.2 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@sinclair/typebox@0.24.51': {} + + '@sinonjs/commons@1.8.6': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@9.1.2': + dependencies: + '@sinonjs/commons': 1.8.6 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.26.0 + + '@types/file-saver@2.0.7': {} + + '@types/glob@7.2.0': + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 22.8.2 + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 22.8.2 + + '@types/html-minifier-terser@6.1.0': {} + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/minimatch@5.1.2': {} + + '@types/minimist@1.2.5': {} + + '@types/node@22.8.2': + dependencies: + undici-types: 6.19.8 + + '@types/normalize-package-data@2.4.4': {} + + '@types/prettier@2.7.3': {} + + '@types/stack-utils@2.0.3': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@wasm-tool/wasm-pack-plugin@1.6.0': + dependencies: + chalk: 2.4.2 + command-exists: 1.2.9 + watchpack: 2.4.2 + which: 2.0.2 + + '@webassemblyjs/ast@1.9.0': + dependencies: + '@webassemblyjs/helper-module-context': 1.9.0 + '@webassemblyjs/helper-wasm-bytecode': 1.9.0 + '@webassemblyjs/wast-parser': 1.9.0 + + '@webassemblyjs/floating-point-hex-parser@1.9.0': {} + + '@webassemblyjs/helper-api-error@1.9.0': {} + + '@webassemblyjs/helper-buffer@1.9.0': {} + + '@webassemblyjs/helper-code-frame@1.9.0': + dependencies: + '@webassemblyjs/wast-printer': 1.9.0 + + '@webassemblyjs/helper-fsm@1.9.0': {} + + '@webassemblyjs/helper-module-context@1.9.0': + dependencies: + '@webassemblyjs/ast': 1.9.0 + + '@webassemblyjs/helper-wasm-bytecode@1.9.0': {} + + '@webassemblyjs/helper-wasm-section@1.9.0': + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/helper-buffer': 1.9.0 + '@webassemblyjs/helper-wasm-bytecode': 1.9.0 + '@webassemblyjs/wasm-gen': 1.9.0 + + '@webassemblyjs/ieee754@1.9.0': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.9.0': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.9.0': {} + + '@webassemblyjs/wasm-edit@1.9.0': + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/helper-buffer': 1.9.0 + '@webassemblyjs/helper-wasm-bytecode': 1.9.0 + '@webassemblyjs/helper-wasm-section': 1.9.0 + '@webassemblyjs/wasm-gen': 1.9.0 + '@webassemblyjs/wasm-opt': 1.9.0 + '@webassemblyjs/wasm-parser': 1.9.0 + '@webassemblyjs/wast-printer': 1.9.0 + + '@webassemblyjs/wasm-gen@1.9.0': + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/helper-wasm-bytecode': 1.9.0 + '@webassemblyjs/ieee754': 1.9.0 + '@webassemblyjs/leb128': 1.9.0 + '@webassemblyjs/utf8': 1.9.0 + + '@webassemblyjs/wasm-opt@1.9.0': + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/helper-buffer': 1.9.0 + '@webassemblyjs/wasm-gen': 1.9.0 + '@webassemblyjs/wasm-parser': 1.9.0 + + '@webassemblyjs/wasm-parser@1.9.0': + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/helper-api-error': 1.9.0 + '@webassemblyjs/helper-wasm-bytecode': 1.9.0 + '@webassemblyjs/ieee754': 1.9.0 + '@webassemblyjs/leb128': 1.9.0 + '@webassemblyjs/utf8': 1.9.0 + + '@webassemblyjs/wast-parser@1.9.0': + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/floating-point-hex-parser': 1.9.0 + '@webassemblyjs/helper-api-error': 1.9.0 + '@webassemblyjs/helper-code-frame': 1.9.0 + '@webassemblyjs/helper-fsm': 1.9.0 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/wast-printer@1.9.0': + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/wast-parser': 1.9.0 + '@xtuc/long': 4.2.2 + + '@webpack-cli/configtest@2.1.1(webpack-cli@5.0.1)(webpack@4.46.0)': + dependencies: + webpack: 4.46.0(webpack-cli@5.0.1) + webpack-cli: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) + + '@webpack-cli/info@2.0.2(webpack-cli@5.0.1)(webpack@4.46.0)': + dependencies: + webpack: 4.46.0(webpack-cli@5.0.1) + webpack-cli: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) + + '@webpack-cli/serve@2.0.5(webpack-cli@5.0.1)(webpack-dev-server@3.11.3)(webpack@4.46.0)': + dependencies: + webpack: 4.46.0(webpack-cli@5.0.1) + webpack-cli: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) + optionalDependencies: + webpack-dev-server: 3.11.3(webpack-cli@5.0.1)(webpack@4.46.0) + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn@6.4.2: {} + + acorn@8.14.0: {} + + adm-zip@0.5.14: {} + + aggregate-error@4.0.1: + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + + ajv-errors@1.0.1(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-colors@3.2.4: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-html-community@0.0.8: {} + + ansi-regex@2.1.1: {} + + ansi-regex@4.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + anymatch@2.0.0(supports-color@6.1.0): + dependencies: + micromatch: 3.1.10(supports-color@6.1.0) + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + aproba@1.2.0: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + arr-diff@4.0.0: {} + + arr-flatten@1.1.0: {} + + arr-union@3.1.0: {} + + array-flatten@1.1.1: {} + + array-flatten@2.1.2: {} + + array-union@1.0.2: + dependencies: + array-uniq: 1.0.3 + + array-uniq@1.0.3: {} + + array-unique@0.3.2: {} + + arrify@1.0.1: {} + + arrify@3.0.0: {} + + asn1.js@4.10.1: + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + assert@1.5.1: + dependencies: + object.assign: 4.1.5 + util: 0.10.4 + + assign-symbols@1.0.0: {} + + async-each@1.0.6: {} + + async-limiter@1.0.1: {} + + async@2.6.4: + dependencies: + lodash: 4.17.21 + + atob@2.1.2: {} + + babel-jest@28.1.3(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + '@jest/transform': 28.1.3 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 28.1.3(@babel/core@7.26.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.25.9 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@28.1.3: + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.6 + + babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) + + babel-preset-jest@28.1.3(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + babel-plugin-jest-hoist: 28.1.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + base@0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + batch@0.6.1: {} + + big.js@5.2.2: {} + + binary-extensions@1.13.1: {} + + binary-extensions@2.3.0: + optional: true + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + optional: true + + bluebird@3.7.2: {} + + bn.js@4.12.0: {} + + bn.js@5.2.1: {} + + body-parser@1.20.3(supports-color@6.1.0): + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9(supports-color@6.1.0) + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + bonjour@3.5.0: + dependencies: + array-flatten: 2.1.2 + deep-equal: 1.1.2 + dns-equal: 1.0.0 + dns-txt: 2.0.2 + multicast-dns: 6.2.3 + multicast-dns-service-types: 1.1.0 + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@2.3.2(supports-color@6.1.0): + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2(supports-color@6.1.0) + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brorand@1.1.0: {} + + browserify-aes@1.2.0: + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-cipher@1.0.1: + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + + browserify-des@1.0.2: + dependencies: + cipher-base: 1.0.4 + des.js: 1.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-rsa@4.1.1: + dependencies: + bn.js: 5.2.1 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + browserify-sign@4.2.3: + dependencies: + bn.js: 5.2.1 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.6.0 + hash-base: 3.0.4 + inherits: 2.0.4 + parse-asn1: 5.1.7 + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + + browserify-zlib@0.2.0: + dependencies: + pako: 1.0.11 + + browserslist@4.24.2: + dependencies: + caniuse-lite: 1.0.30001674 + electron-to-chromium: 1.5.49 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-from@1.1.2: {} + + buffer-indexof@1.1.1: {} + + buffer-xor@1.0.3: {} + + buffer@4.9.2: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + isarray: 1.0.0 + + builtin-status-codes@3.0.0: {} + + bytes@3.0.0: {} + + bytes@3.1.2: {} + + cacache@12.0.4: + dependencies: + bluebird: 3.7.2 + chownr: 1.1.4 + figgy-pudding: 3.5.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + infer-owner: 1.0.4 + lru-cache: 5.1.1 + mississippi: 3.0.0 + mkdirp: 0.5.6 + move-concurrently: 1.0.1 + promise-inflight: 1.0.1(bluebird@3.7.2) + rimraf: 2.7.1 + ssri: 6.0.2 + unique-filename: 1.1.1 + y18n: 4.0.3 + + cache-base@1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.8.0 + + camelcase-keys@7.0.2: + dependencies: + camelcase: 6.3.0 + map-obj: 4.3.0 + quick-lru: 5.1.1 + type-fest: 1.4.0 + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001674: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + char-regex@1.0.2: {} + + chokidar@2.1.8(supports-color@6.1.0): + dependencies: + anymatch: 2.0.0(supports-color@6.1.0) + async-each: 1.0.6 + braces: 2.3.2(supports-color@6.1.0) + glob-parent: 3.1.0 + inherits: 2.0.4 + is-binary-path: 1.0.1 + is-glob: 4.0.3 + normalize-path: 3.0.0 + path-is-absolute: 1.0.1 + readdirp: 2.2.1(supports-color@6.1.0) + upath: 1.2.0 + optionalDependencies: + fsevents: 1.2.13 + transitivePeerDependencies: + - supports-color + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + optional: true + + chownr@1.1.4: {} + + chrome-trace-event@1.0.4: {} + + ci-info@3.9.0: {} + + cipher-base@1.0.4: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + cjs-module-lexer@1.4.1: {} + + class-utils@0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + clean-css@5.3.3: + dependencies: + source-map: 0.6.1 + + clean-stack@4.2.0: + dependencies: + escape-string-regexp: 5.0.0 + + cliui@5.0.0: + dependencies: + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi: 5.1.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + co@4.6.0: {} + + collect-v8-coverage@1.0.2: {} + + collection-visit@1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + command-exists@1.2.9: {} + + commander@2.20.3: {} + + commander@8.3.0: {} + + commander@9.5.0: {} + + commondir@1.0.1: {} + + component-emitter@1.3.1: {} + + compressible@2.0.18: + dependencies: + mime-db: 1.53.0 + + compression@1.7.4(supports-color@6.1.0): + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9(supports-color@6.1.0) + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + concat-map@0.0.1: {} + + concat-stream@1.6.2: + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + + connect-history-api-fallback@1.6.0: {} + + console-browserify@1.2.0: {} + + constants-browserify@1.0.0: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.6: {} + + cookie@0.7.1: {} + + copy-concurrently@1.0.5: + dependencies: + aproba: 1.2.0 + fs-write-stream-atomic: 1.0.10 + iferr: 0.1.5 + mkdirp: 0.5.6 + rimraf: 2.7.1 + run-queue: 1.0.3 + + copy-descriptor@0.1.1: {} + + core-util-is@1.0.3: {} + + cp-file@9.1.0: + dependencies: + graceful-fs: 4.2.11 + make-dir: 3.1.0 + nested-error-stacks: 2.1.1 + p-event: 4.2.0 + + cpy-cli@4.2.0: + dependencies: + cpy: 9.0.1 + meow: 10.1.5 + + cpy@9.0.1: + dependencies: + arrify: 3.0.0 + cp-file: 9.1.0 + globby: 13.2.2 + junk: 4.0.1 + micromatch: 4.0.8 + nested-error-stacks: 2.1.1 + p-filter: 3.0.0 + p-map: 5.5.0 + + create-ecdh@4.0.4: + dependencies: + bn.js: 4.12.0 + elliptic: 6.6.0 + + create-hash@1.2.0: + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + create-hmac@1.1.7: + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + cross-spawn@6.0.5: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-browserify@3.12.1: + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.3 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + hash-base: 3.0.4 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + + css-select@4.3.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + + css-what@6.1.0: {} + + cyclist@1.0.2: {} + + debug@2.6.9(supports-color@6.1.0): + dependencies: + ms: 2.0.0 + optionalDependencies: + supports-color: 6.1.0 + + debug@3.2.7(supports-color@6.1.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 6.1.0 + + debug@4.3.7(supports-color@6.1.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 6.1.0 + + decamelize-keys@1.1.1: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + decamelize@1.2.0: {} + + decamelize@5.0.1: {} + + decode-uri-component@0.2.2: {} + + dedent@0.7.0: {} + + deep-equal@1.1.2: + dependencies: + is-arguments: 1.1.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + object-is: 1.1.6 + object-keys: 1.1.1 + regexp.prototype.flags: 1.5.3 + + deepmerge@4.3.1: {} + + default-gateway@4.2.0: + dependencies: + execa: 1.0.0 + ip-regex: 2.1.0 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + define-property@0.2.5: + dependencies: + is-descriptor: 0.1.7 + + define-property@1.0.0: + dependencies: + is-descriptor: 1.0.3 + + define-property@2.0.2: + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + + del@4.1.1: + dependencies: + '@types/glob': 7.2.0 + globby: 6.1.0 + is-path-cwd: 2.2.0 + is-path-in-cwd: 2.1.0 + p-map: 2.1.0 + pify: 4.0.1 + rimraf: 2.7.1 + + depd@1.1.2: {} + + depd@2.0.0: {} + + des.js@1.1.0: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + destroy@1.2.0: {} + + detect-newline@3.1.0: {} + + detect-node@2.1.0: {} + + diff-sequences@28.1.1: {} + + diffie-hellman@5.0.3: + dependencies: + bn.js: 4.12.0 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dns-equal@1.0.0: {} + + dns-packet@1.3.4: + dependencies: + ip: 1.1.9 + safe-buffer: 5.2.1 + + dns-txt@2.0.2: + dependencies: + buffer-indexof: 1.1.1 + + dom-converter@0.2.0: + dependencies: + utila: 0.4.0 + + dom-serializer@1.4.1: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + domain-browser@1.2.0: {} + + domelementtype@2.3.0: {} + + domhandler@4.3.1: + dependencies: + domelementtype: 2.3.0 + + domutils@2.8.0: + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.0 + + duplexify@3.7.1: + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.3 + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.49: {} + + elliptic@6.6.0: + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + emittery@0.10.2: {} + + emoji-regex@7.0.3: {} + + emoji-regex@8.0.0: {} + + emojis-list@3.0.0: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enhanced-resolve@4.5.0: + dependencies: + graceful-fs: 4.2.11 + memory-fs: 0.5.0 + tapable: 1.1.3 + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + entities@2.2.0: {} + + envinfo@7.14.0: {} + + errno@0.1.8: + dependencies: + prr: 1.0.1 + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-scope@4.0.3: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esprima@4.0.1: {} + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + etag@1.8.1: {} + + eventemitter3@4.0.7: {} + + events@3.3.0: {} + + eventsource@2.0.2: {} + + evp_bytestokey@1.0.3: + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + + execa@1.0.0: + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exit@0.1.2: {} + + expand-brackets@2.1.4(supports-color@6.1.0): + dependencies: + debug: 2.6.9(supports-color@6.1.0) + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@6.1.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + expect@28.1.3: + dependencies: + '@jest/expect-utils': 28.1.3 + jest-get-type: 28.0.2 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + + express@4.21.1(supports-color@6.1.0): + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3(supports-color@6.1.0) + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9(supports-color@6.1.0) + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1(supports-color@6.1.0) + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.10 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0(supports-color@6.1.0) + serve-static: 1.16.2(supports-color@6.1.0) + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend-shallow@3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + extglob@2.0.4(supports-color@6.1.0): + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4(supports-color@6.1.0) + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@6.1.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fastest-levenshtein@1.0.16: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + faye-websocket@0.11.4: + dependencies: + websocket-driver: 0.7.4 + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + figgy-pudding@3.5.2: {} + + file-saver@2.0.5: {} + + file-uri-to-path@1.0.0: + optional: true + + fill-range@4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.3.1(supports-color@6.1.0): + dependencies: + debug: 2.6.9(supports-color@6.1.0) + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-cache-dir@2.1.0: + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + + find-up@3.0.0: + dependencies: + locate-path: 3.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flush-write-stream@1.1.1: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + follow-redirects@1.15.9(debug@4.3.7(supports-color@6.1.0)): + optionalDependencies: + debug: 4.3.7(supports-color@6.1.0) + + for-in@1.0.2: {} + + forwarded@0.2.0: {} + + fragment-cache@0.2.1: + dependencies: + map-cache: 0.2.2 + + fresh@0.5.2: {} + + from2@2.3.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + fs-write-stream-atomic@1.0.10: + dependencies: + graceful-fs: 4.2.11 + iferr: 0.1.5 + imurmurhash: 0.1.4 + readable-stream: 2.3.8 + + fs.realpath@1.0.0: {} + + fsevents@1.2.13: + dependencies: + bindings: 1.5.0 + nan: 2.22.0 + optional: true + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + functions-have-names@1.2.3: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-package-type@0.1.0: {} + + get-stream@4.1.0: + dependencies: + pump: 3.0.2 + + get-stream@6.0.1: {} + + get-value@2.0.6: {} + + glob-parent@3.1.0: + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@11.12.0: {} + + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 4.0.0 + + globby@6.1.0: + dependencies: + array-union: 1.0.2 + glob: 7.2.3 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + handle-thing@2.0.1: {} + + hard-rejection@2.1.0: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + has-value@0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + has-value@1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + has-values@0.1.4: {} + + has-values@1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + hash-base@3.0.4: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + hosted-git-info@2.8.9: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + hpack.js@2.1.6: + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + + html-entities@1.4.0: {} + + html-escaper@2.0.2: {} + + html-minifier-terser@6.1.0: + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 8.3.0 + he: 1.2.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.36.0 + + html-webpack-plugin@5.5.3(webpack@4.46.0): + dependencies: + '@types/html-minifier-terser': 6.1.0 + html-minifier-terser: 6.1.0 + lodash: 4.17.21 + pretty-error: 4.0.0 + tapable: 2.2.1 + webpack: 4.46.0(webpack-cli@5.0.1) + + htmlparser2@6.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 2.2.0 + + http-deceiver@1.2.7: {} + + http-errors@1.6.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-parser-js@0.5.8: {} + + http-proxy-middleware@0.19.1(debug@4.3.7(supports-color@6.1.0))(supports-color@6.1.0): + dependencies: + http-proxy: 1.18.1(debug@4.3.7(supports-color@6.1.0)) + is-glob: 4.0.3 + lodash: 4.17.21 + micromatch: 3.1.10(supports-color@6.1.0) + transitivePeerDependencies: + - debug + - supports-color + + http-proxy@1.18.1(debug@4.3.7(supports-color@6.1.0)): + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.9(debug@4.3.7(supports-color@6.1.0)) + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + https-browserify@1.0.0: {} + + human-signals@2.1.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + iferr@0.1.5: {} + + ignore@5.3.2: {} + + import-local@2.0.0: + dependencies: + pkg-dir: 3.0.0 + resolve-cwd: 2.0.0 + + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + indent-string@5.0.0: {} + + infer-owner@1.0.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + internal-ip@4.3.0: + dependencies: + default-gateway: 4.2.0 + ipaddr.js: 1.9.1 + + interpret@3.1.1: {} + + ip-regex@2.1.0: {} + + ip@1.1.9: {} + + ipaddr.js@1.9.1: {} + + is-absolute-url@3.0.3: {} + + is-accessor-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-arrayish@0.2.1: {} + + is-binary-path@1.0.1: + dependencies: + binary-extensions: 1.13.1 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + optional: true + + is-buffer@1.1.6: {} + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + + is-descriptor@0.1.7: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-descriptor@1.0.3: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-extendable@0.1.1: {} + + is-extendable@1.0.1: + dependencies: + is-plain-object: 2.0.4 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@2.0.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-fn@2.1.0: {} + + is-glob@3.1.0: + dependencies: + is-extglob: 2.1.1 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@3.0.0: + dependencies: + kind-of: 3.2.2 + + is-number@7.0.0: {} + + is-path-cwd@2.2.0: {} + + is-path-in-cwd@2.1.0: + dependencies: + is-path-inside: 2.1.0 + + is-path-inside@2.1.0: + dependencies: + path-is-inside: 1.0.2 + + is-plain-obj@1.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-stream@1.1.0: {} + + is-stream@2.0.1: {} + + is-windows@1.0.2: {} + + is-wsl@1.1.0: {} + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + isobject@2.1.0: + dependencies: + isarray: 1.0.0 + + isobject@3.0.1: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.26.0 + '@babel/parser': 7.26.1 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.3.7(supports-color@6.1.0) + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jest-changed-files@28.1.3: + dependencies: + execa: 5.1.1 + p-limit: 3.1.0 + + jest-circus@28.1.3: + dependencies: + '@jest/environment': 28.1.3 + '@jest/expect': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + is-generator-fn: 2.1.0 + jest-each: 28.1.3 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-runtime: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + p-limit: 3.1.0 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - supports-color + + jest-cli@28.1.3(@types/node@22.8.2): + dependencies: + '@jest/core': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + import-local: 3.2.0 + jest-config: 28.1.3(@types/node@22.8.2) + jest-util: 28.1.3 + jest-validate: 28.1.3 + prompts: 2.4.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + + jest-config@28.1.3(@types/node@22.8.2): + dependencies: + '@babel/core': 7.26.0 + '@jest/test-sequencer': 28.1.3 + '@jest/types': 28.1.3 + babel-jest: 28.1.3(@babel/core@7.26.0) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 28.1.3 + jest-environment-node: 28.1.3 + jest-get-type: 28.0.2 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-runner: 28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 28.1.3 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.8.2 + transitivePeerDependencies: + - supports-color + + jest-diff@28.1.3: + dependencies: + chalk: 4.1.2 + diff-sequences: 28.1.1 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + + jest-docblock@28.1.1: + dependencies: + detect-newline: 3.1.0 + + jest-each@28.1.3: + dependencies: + '@jest/types': 28.1.3 + chalk: 4.1.2 + jest-get-type: 28.0.2 + jest-util: 28.1.3 + pretty-format: 28.1.3 + + jest-environment-node@28.1.3: + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + jest-mock: 28.1.3 + jest-util: 28.1.3 + + jest-get-type@28.0.2: {} + + jest-haste-map@28.1.3: + dependencies: + '@jest/types': 28.1.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 22.8.2 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 28.0.2 + jest-util: 28.1.3 + jest-worker: 28.1.3 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@28.1.3: + dependencies: + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + + jest-matcher-utils@28.1.3: + dependencies: + chalk: 4.1.2 + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + pretty-format: 28.1.3 + + jest-message-util@28.1.3: + dependencies: + '@babel/code-frame': 7.26.0 + '@jest/types': 28.1.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 28.1.3 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@28.1.3: + dependencies: + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + + jest-pnp-resolver@1.2.3(jest-resolve@28.1.3): + optionalDependencies: + jest-resolve: 28.1.3 + + jest-regex-util@28.0.2: {} + + jest-resolve-dependencies@28.1.3: + dependencies: + jest-regex-util: 28.0.2 + jest-snapshot: 28.1.3 + transitivePeerDependencies: + - supports-color + + jest-resolve@28.1.3: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-pnp-resolver: 1.2.3(jest-resolve@28.1.3) + jest-util: 28.1.3 + jest-validate: 28.1.3 + resolve: 1.22.8 + resolve.exports: 1.1.1 + slash: 3.0.0 + + jest-runner@28.1.3: + dependencies: + '@jest/console': 28.1.3 + '@jest/environment': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + chalk: 4.1.2 + emittery: 0.10.2 + graceful-fs: 4.2.11 + jest-docblock: 28.1.1 + jest-environment-node: 28.1.3 + jest-haste-map: 28.1.3 + jest-leak-detector: 28.1.3 + jest-message-util: 28.1.3 + jest-resolve: 28.1.3 + jest-runtime: 28.1.3 + jest-util: 28.1.3 + jest-watcher: 28.1.3 + jest-worker: 28.1.3 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@28.1.3: + dependencies: + '@jest/environment': 28.1.3 + '@jest/fake-timers': 28.1.3 + '@jest/globals': 28.1.3 + '@jest/source-map': 28.1.2 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + chalk: 4.1.2 + cjs-module-lexer: 1.4.1 + collect-v8-coverage: 1.0.2 + execa: 5.1.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 28.1.3 + jest-message-util: 28.1.3 + jest-mock: 28.1.3 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-snapshot@28.1.3: + dependencies: + '@babel/core': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + '@jest/expect-utils': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/babel__traverse': 7.20.6 + '@types/prettier': 2.7.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + chalk: 4.1.2 + expect: 28.1.3 + graceful-fs: 4.2.11 + jest-diff: 28.1.3 + jest-get-type: 28.0.2 + jest-haste-map: 28.1.3 + jest-matcher-utils: 28.1.3 + jest-message-util: 28.1.3 + jest-util: 28.1.3 + natural-compare: 1.4.0 + pretty-format: 28.1.3 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + jest-util@28.1.3: + dependencies: + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@28.1.3: + dependencies: + '@jest/types': 28.1.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 28.0.2 + leven: 3.1.0 + pretty-format: 28.1.3 + + jest-watcher@28.1.3: + dependencies: + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 22.8.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.10.2 + jest-util: 28.1.3 + string-length: 4.0.2 + + jest-worker@28.1.3: + dependencies: + '@types/node': 22.8.2 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@28.1.3(@types/node@22.8.2): + dependencies: + '@jest/core': 28.1.3 + '@jest/types': 28.1.3 + import-local: 3.2.0 + jest-cli: 28.1.3(@types/node@22.8.2) + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + jsesc@3.0.2: {} + + json-parse-better-errors@1.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + junk@4.0.1: {} + + killable@1.0.1: {} + + kind-of@3.2.2: + dependencies: + is-buffer: 1.1.6 + + kind-of@4.0.0: + dependencies: + is-buffer: 1.1.6 + + kind-of@6.0.3: {} + + kleur@3.0.3: {} + + leven@3.1.0: {} + + lines-and-columns@1.2.4: {} + + loader-runner@2.4.0: {} + + loader-utils@1.4.2: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + + locate-path@3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash@4.17.21: {} + + loglevel@1.9.2: {} + + lower-case@2.0.2: + dependencies: + tslib: 2.8.0 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + make-dir@4.0.0: + dependencies: + semver: 7.6.3 + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + map-cache@0.2.2: {} + + map-obj@1.0.1: {} + + map-obj@4.3.0: {} + + map-visit@1.0.0: + dependencies: + object-visit: 1.0.1 + + md5.js@1.3.5: + dependencies: + hash-base: 3.0.4 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + media-typer@0.3.0: {} + + memory-fs@0.4.1: + dependencies: + errno: 0.1.8 + readable-stream: 2.3.8 + + memory-fs@0.5.0: + dependencies: + errno: 0.1.8 + readable-stream: 2.3.8 + + memorystream@0.3.1: {} + + meow@10.1.5: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 7.0.2 + decamelize: 5.0.1 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 8.0.0 + redent: 4.0.0 + trim-newlines: 4.1.1 + type-fest: 1.4.0 + yargs-parser: 20.2.9 + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromatch@3.1.10(supports-color@6.1.0): + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2(supports-color@6.1.0) + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4(supports-color@6.1.0) + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13(supports-color@6.1.0) + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@6.1.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + miller-rabin@4.0.1: + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + + mime-db@1.52.0: {} + + mime-db@1.53.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mime@2.6.0: {} + + mimic-fn@2.1.0: {} + + min-indent@1.0.1: {} + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimist-options@4.1.0: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + + minimist@1.2.8: {} + + mississippi@3.0.0: + dependencies: + concat-stream: 1.6.2 + duplexify: 3.7.1 + end-of-stream: 1.4.4 + flush-write-stream: 1.1.1 + from2: 2.3.0 + parallel-transform: 1.2.0 + pump: 3.0.2 + pumpify: 1.5.1 + stream-each: 1.2.3 + through2: 2.0.5 + + mixin-deep@1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + move-concurrently@1.0.1: + dependencies: + aproba: 1.2.0 + copy-concurrently: 1.0.5 + fs-write-stream-atomic: 1.0.10 + mkdirp: 0.5.6 + rimraf: 2.7.1 + run-queue: 1.0.3 + + ms@2.0.0: {} + + ms@2.1.3: {} + + multicast-dns-service-types@1.1.0: {} + + multicast-dns@6.2.3: + dependencies: + dns-packet: 1.3.4 + thunky: 1.1.0 + + nan@2.22.0: + optional: true + + nanomatch@1.2.13(supports-color@6.1.0): + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@6.1.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + natural-compare@1.4.0: {} + + negotiator@0.6.3: {} + + neo-async@2.6.2: {} + + nested-error-stacks@2.1.1: {} + + nice-try@1.0.5: {} + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.0 + + node-forge@0.10.0: {} + + node-int64@0.4.0: {} + + node-libs-browser@2.2.1: + dependencies: + assert: 1.5.1 + browserify-zlib: 0.2.0 + buffer: 4.9.2 + console-browserify: 1.2.0 + constants-browserify: 1.0.0 + crypto-browserify: 3.12.1 + domain-browser: 1.2.0 + events: 3.3.0 + https-browserify: 1.0.0 + os-browserify: 0.3.0 + path-browserify: 0.0.1 + process: 0.11.10 + punycode: 1.4.1 + querystring-es3: 0.2.1 + readable-stream: 2.3.8 + stream-browserify: 2.0.2 + stream-http: 2.8.3 + string_decoder: 1.3.0 + timers-browserify: 2.0.12 + tty-browserify: 0.0.0 + url: 0.11.4 + util: 0.11.1 + vm-browserify: 1.1.2 + + node-releases@2.0.18: {} + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.15.1 + semver: 7.6.3 + validate-npm-package-license: 3.0.4 + + normalize-path@2.1.1: + dependencies: + remove-trailing-separator: 1.1.0 + + normalize-path@3.0.0: {} + + npm-run-all2@5.0.2: + dependencies: + ansi-styles: 5.2.0 + cross-spawn: 7.0.3 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.5.0 + read-pkg: 5.2.0 + shell-quote: 1.8.1 + + npm-run-path@2.0.2: + dependencies: + path-key: 2.0.1 + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-assign@4.1.1: {} + + object-copy@0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + object-inspect@1.13.2: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object-visit@1.0.1: + dependencies: + isobject: 3.0.1 + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.pick@1.3.0: + dependencies: + isobject: 3.0.1 + + obuf@1.1.2: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.0.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + opn@5.5.0: + dependencies: + is-wsl: 1.1.0 + + os-browserify@0.3.0: {} + + p-event@4.2.0: + dependencies: + p-timeout: 3.2.0 + + p-filter@3.0.0: + dependencies: + p-map: 5.5.0 + + p-finally@1.0.0: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@3.0.0: + dependencies: + p-limit: 2.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@2.1.0: {} + + p-map@5.5.0: + dependencies: + aggregate-error: 4.0.1 + + p-retry@3.0.1: + dependencies: + retry: 0.12.0 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + p-try@2.2.0: {} + + pako@1.0.11: {} + + parallel-transform@1.2.0: + dependencies: + cyclist: 1.0.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.0 + + parse-asn1@5.1.7: + dependencies: + asn1.js: 4.10.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + hash-base: 3.0.4 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.26.0 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parseurl@1.3.3: {} + + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.0 + + pascalcase@0.1.1: {} + + path-browserify@0.0.1: {} + + path-dirname@1.0.2: {} + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-is-inside@1.0.2: {} + + path-key@2.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-to-regexp@0.1.10: {} + + path-type@4.0.0: {} + + pbkdf2@3.1.2: + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pidtree@0.5.0: {} + + pify@2.3.0: {} + + pify@4.0.1: {} + + pinkie-promise@2.0.1: + dependencies: + pinkie: 2.0.4 + + pinkie@2.0.4: {} + + pirates@4.0.6: {} + + pkg-dir@3.0.0: + dependencies: + find-up: 3.0.0 + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + portfinder@1.0.32(supports-color@6.1.0): + dependencies: + async: 2.6.4 + debug: 3.2.7(supports-color@6.1.0) + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + + posix-character-classes@0.1.1: {} + + pretty-error@4.0.0: + dependencies: + lodash: 4.17.21 + renderkid: 3.0.0 + + pretty-format@28.1.3: + dependencies: + '@jest/schemas': 28.1.3 + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + + promise-inflight@1.0.1(bluebird@3.7.2): + optionalDependencies: + bluebird: 3.7.2 + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + prr@1.0.1: {} + + public-encrypt@4.0.3: + dependencies: + bn.js: 4.12.0 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + parse-asn1: 5.1.7 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + pump@2.0.1: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + pumpify@1.5.1: + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + + punycode@1.4.1: {} + + punycode@2.3.1: {} + + qs@6.13.0: + dependencies: + side-channel: 1.0.6 + + querystring-es3@0.2.1: {} + + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + quick-lru@5.1.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + randomfill@1.0.4: + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + react-is@18.3.1: {} + + read-pkg-up@8.0.0: + dependencies: + find-up: 5.0.0 + read-pkg: 6.0.0 + type-fest: 1.4.0 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + read-pkg@6.0.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 1.4.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@2.2.1(supports-color@6.1.0): + dependencies: + graceful-fs: 4.2.11 + micromatch: 3.1.10(supports-color@6.1.0) + readable-stream: 2.3.8 + transitivePeerDependencies: + - supports-color + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + optional: true + + rechoir@0.8.0: + dependencies: + resolve: 1.22.8 + + redent@4.0.0: + dependencies: + indent-string: 5.0.0 + strip-indent: 4.0.0 + + regex-not@1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + regexp.prototype.flags@1.5.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + relateurl@0.2.7: {} + + remove-trailing-separator@1.1.0: {} + + renderkid@3.0.0: + dependencies: + css-select: 4.3.0 + dom-converter: 0.2.0 + htmlparser2: 6.1.0 + lodash: 4.17.21 + strip-ansi: 6.0.1 + + repeat-element@1.1.4: {} + + repeat-string@1.6.1: {} + + require-directory@2.1.1: {} + + require-main-filename@2.0.0: {} + + requires-port@1.0.0: {} + + resolve-cwd@2.0.0: + dependencies: + resolve-from: 3.0.0 + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@3.0.0: {} + + resolve-from@5.0.0: {} + + resolve-url@0.2.1: {} + + resolve.exports@1.1.1: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + ret@0.1.15: {} + + retry@0.12.0: {} + + reusify@1.0.4: {} + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + ripemd160@2.0.2: + dependencies: + hash-base: 3.0.4 + inherits: 2.0.4 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + run-queue@1.0.3: + dependencies: + aproba: 1.2.0 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-regex@1.1.0: + dependencies: + ret: 0.1.15 + + safer-buffer@2.1.2: {} + + schema-utils@1.0.0: + dependencies: + ajv: 6.12.6 + ajv-errors: 1.0.1(ajv@6.12.6) + ajv-keywords: 3.5.2(ajv@6.12.6) + + select-hose@2.0.0: {} + + selfsigned@1.10.14: + dependencies: + node-forge: 0.10.0 + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.6.3: {} + + send@0.19.0(supports-color@6.1.0): + dependencies: + debug: 2.6.9(supports-color@6.1.0) + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serialize-javascript@4.0.0: + dependencies: + randombytes: 2.1.0 + + serve-index@1.9.1(supports-color@6.1.0): + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9(supports-color@6.1.0) + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.2(supports-color@6.1.0): + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0(supports-color@6.1.0) + transitivePeerDependencies: + - supports-color + + set-blocking@2.0.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-value@2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + setimmediate@1.0.5: {} + + setprototypeof@1.1.0: {} + + setprototypeof@1.2.0: {} + + sha.js@2.4.11: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 + + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@1.0.0: {} + + shebang-regex@3.0.0: {} + + shell-quote@1.8.1: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + signal-exit@3.0.7: {} + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + slash@4.0.0: {} + + snapdragon-node@2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + snapdragon-util@3.0.1: + dependencies: + kind-of: 3.2.2 + + snapdragon@0.8.2(supports-color@6.1.0): + dependencies: + base: 0.11.2 + debug: 2.6.9(supports-color@6.1.0) + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + sockjs-client@1.6.1(supports-color@6.1.0): + dependencies: + debug: 3.2.7(supports-color@6.1.0) + eventsource: 2.0.2 + faye-websocket: 0.11.4 + inherits: 2.0.4 + url-parse: 1.5.10 + transitivePeerDependencies: + - supports-color + + sockjs@0.3.24: + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + + source-list-map@2.0.1: {} + + source-map-resolve@0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-url@0.4.1: {} + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.20 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-license-ids@3.0.20: {} + + spdy-transport@3.0.0(supports-color@6.1.0): + dependencies: + debug: 4.3.7(supports-color@6.1.0) + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + + spdy@4.0.2(supports-color@6.1.0): + dependencies: + debug: 4.3.7(supports-color@6.1.0) + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0(supports-color@6.1.0) + transitivePeerDependencies: + - supports-color + + split-string@3.1.0: + dependencies: + extend-shallow: 3.0.2 + + sprintf-js@1.0.3: {} + + ssri@6.0.2: + dependencies: + figgy-pudding: 3.5.2 + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + static-extend@0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + stream-browserify@2.0.2: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + stream-each@1.2.3: + dependencies: + end-of-stream: 1.4.4 + stream-shift: 1.0.3 + + stream-http@2.8.3: + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 2.3.8 + to-arraybuffer: 1.0.1 + xtend: 4.0.2 + + stream-shift@1.0.3: {} + + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-width@3.1.0: + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@3.0.1: + dependencies: + ansi-regex: 2.1.1 + + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@4.0.0: {} + + strip-eof@1.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-indent@4.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@6.1.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-hyperlinks@2.3.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tapable@1.1.3: {} + + tapable@2.2.1: {} + + terminal-link@2.1.1: + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + + terser-webpack-plugin@1.4.6(webpack@4.46.0): + dependencies: + cacache: 12.0.4 + find-cache-dir: 2.1.0 + is-wsl: 1.1.0 + schema-utils: 1.0.0 + serialize-javascript: 4.0.0 + source-map: 0.6.1 + terser: 4.8.1 + webpack: 4.46.0(webpack-cli@5.0.1) + webpack-sources: 1.4.3 + worker-farm: 1.7.0 + + terser@4.8.1: + dependencies: + acorn: 8.14.0 + commander: 2.20.3 + source-map: 0.6.1 + source-map-support: 0.5.21 + + terser@5.36.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.14.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + text-encoding@0.7.0: {} + + through2@2.0.5: + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + + thunky@1.1.0: {} + + timers-browserify@2.0.12: + dependencies: + setimmediate: 1.0.5 + + tmpl@1.0.5: {} + + to-arraybuffer@1.0.1: {} + + to-object-path@0.3.0: + dependencies: + kind-of: 3.2.2 + + to-regex-range@2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + to-regex@3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + toidentifier@1.0.1: {} + + trim-newlines@4.1.1: {} + + ts-loader@9.4.2(typescript@4.9.3)(webpack@4.46.0): + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.17.1 + micromatch: 4.0.8 + semver: 7.6.3 + typescript: 4.9.3 + webpack: 4.46.0(webpack-cli@5.0.1) + + tslib@2.8.0: {} + + tty-browserify@0.0.0: {} + + type-detect@4.0.8: {} + + type-fest@0.21.3: {} + + type-fest@0.6.0: {} + + type-fest@1.4.0: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typedarray@0.0.6: {} + + typescript@4.9.3: {} + + undici-types@6.19.8: {} + + union-value@1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + unique-filename@1.1.1: + dependencies: + unique-slug: 2.0.2 + + unique-slug@2.0.2: + dependencies: + imurmurhash: 0.1.4 + + unpipe@1.0.0: {} + + unset-value@1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + upath@1.2.0: {} + + update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urix@0.1.0: {} + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + url@0.11.4: + dependencies: + punycode: 1.4.1 + qs: 6.13.0 + + use@3.1.1: {} + + util-deprecate@1.0.2: {} + + util@0.10.4: + dependencies: + inherits: 2.0.3 + + util@0.11.1: + dependencies: + inherits: 2.0.3 + + utila@0.4.0: {} + + utils-merge@1.0.1: {} + + uuid@3.4.0: {} + + uuid@8.3.2: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + vary@1.1.2: {} + + vm-browserify@1.1.2: {} + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + watchpack-chokidar2@2.0.1: + dependencies: + chokidar: 2.1.8(supports-color@6.1.0) + transitivePeerDependencies: + - supports-color + optional: true + + watchpack@1.7.5: + dependencies: + graceful-fs: 4.2.11 + neo-async: 2.6.2 + optionalDependencies: + chokidar: 3.6.0 + watchpack-chokidar2: 2.0.1 + transitivePeerDependencies: + - supports-color + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + wbuf@1.7.3: + dependencies: + minimalistic-assert: 1.0.1 + + webpack-cli@5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0): + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.0.1)(webpack@4.46.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.0.1)(webpack@4.46.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.0.1)(webpack-dev-server@3.11.3)(webpack@4.46.0) + colorette: 2.0.20 + commander: 9.5.0 + cross-spawn: 7.0.3 + envinfo: 7.14.0 + fastest-levenshtein: 1.0.16 + import-local: 3.2.0 + interpret: 3.1.1 + rechoir: 0.8.0 + webpack: 4.46.0(webpack-cli@5.0.1) + webpack-merge: 5.8.0 + optionalDependencies: + webpack-dev-server: 3.11.3(webpack-cli@5.0.1)(webpack@4.46.0) + + webpack-dev-middleware@3.7.3(webpack@4.46.0): + dependencies: + memory-fs: 0.4.1 + mime: 2.6.0 + mkdirp: 0.5.6 + range-parser: 1.2.1 + webpack: 4.46.0(webpack-cli@5.0.1) + webpack-log: 2.0.0 + + webpack-dev-server@3.11.3(webpack-cli@5.0.1)(webpack@4.46.0): + dependencies: + ansi-html-community: 0.0.8 + bonjour: 3.5.0 + chokidar: 2.1.8(supports-color@6.1.0) + compression: 1.7.4(supports-color@6.1.0) + connect-history-api-fallback: 1.6.0 + debug: 4.3.7(supports-color@6.1.0) + del: 4.1.1 + express: 4.21.1(supports-color@6.1.0) + html-entities: 1.4.0 + http-proxy-middleware: 0.19.1(debug@4.3.7(supports-color@6.1.0))(supports-color@6.1.0) + import-local: 2.0.0 + internal-ip: 4.3.0 + ip: 1.1.9 + is-absolute-url: 3.0.3 + killable: 1.0.1 + loglevel: 1.9.2 + opn: 5.5.0 + p-retry: 3.0.1 + portfinder: 1.0.32(supports-color@6.1.0) + schema-utils: 1.0.0 + selfsigned: 1.10.14 + semver: 6.3.1 + serve-index: 1.9.1(supports-color@6.1.0) + sockjs: 0.3.24 + sockjs-client: 1.6.1(supports-color@6.1.0) + spdy: 4.0.2(supports-color@6.1.0) + strip-ansi: 3.0.1 + supports-color: 6.1.0 + url: 0.11.4 + webpack: 4.46.0(webpack-cli@5.0.1) + webpack-dev-middleware: 3.7.3(webpack@4.46.0) + webpack-log: 2.0.0 + ws: 6.2.3 + yargs: 13.3.2 + optionalDependencies: + webpack-cli: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + webpack-log@2.0.0: + dependencies: + ansi-colors: 3.2.4 + uuid: 3.4.0 + + webpack-merge@5.8.0: + dependencies: + clone-deep: 4.0.1 + wildcard: 2.0.1 + + webpack-sources@1.4.3: + dependencies: + source-list-map: 2.0.1 + source-map: 0.6.1 + + webpack@4.46.0(webpack-cli@5.0.1): + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/helper-module-context': 1.9.0 + '@webassemblyjs/wasm-edit': 1.9.0 + '@webassemblyjs/wasm-parser': 1.9.0 + acorn: 6.4.2 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + chrome-trace-event: 1.0.4 + enhanced-resolve: 4.5.0 + eslint-scope: 4.0.3 + json-parse-better-errors: 1.0.2 + loader-runner: 2.4.0 + loader-utils: 1.4.2 + memory-fs: 0.4.1 + micromatch: 3.1.10(supports-color@6.1.0) + mkdirp: 0.5.6 + neo-async: 2.6.2 + node-libs-browser: 2.2.1 + schema-utils: 1.0.0 + tapable: 1.1.3 + terser-webpack-plugin: 1.4.6(webpack@4.46.0) + watchpack: 1.7.5 + webpack-sources: 1.4.3 + optionalDependencies: + webpack-cli: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) + transitivePeerDependencies: + - supports-color + + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + + which-module@2.0.1: {} + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wildcard@2.0.1: {} + + worker-farm@1.7.0: + dependencies: + errno: 0.1.8 + + wrap-ansi@5.1.0: + dependencies: + ansi-styles: 3.2.1 + string-width: 3.1.0 + strip-ansi: 5.2.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + ws@6.2.3: + dependencies: + async-limiter: 1.0.1 + + xtend@4.0.2: {} + + y18n@4.0.3: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yargs-parser@13.1.2: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + + yargs-parser@20.2.9: {} + + yargs-parser@21.1.1: {} + + yargs@13.3.2: + dependencies: + cliui: 5.0.0 + find-up: 3.0.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 3.1.0 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 13.1.2 + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} diff --git a/docx-wasm/yarn.lock b/docx-wasm/yarn.lock deleted file mode 100644 index 214d76fa2..000000000 --- a/docx-wasm/yarn.lock +++ /dev/null @@ -1,6497 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2": - version "7.24.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" - integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== - dependencies: - "@babel/highlight" "^7.24.2" - picocolors "^1.0.0" - -"@babel/compat-data@^7.23.5": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" - integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.4.tgz#1f758428e88e0d8c563874741bc4ffc4f71a4717" - integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.2" - "@babel/generator" "^7.24.4" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.24.4" - "@babel/parser" "^7.24.4" - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.1" - "@babel/types" "^7.24.0" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.24.1", "@babel/generator@^7.24.4", "@babel/generator@^7.7.2": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.4.tgz#1fc55532b88adf952025d5d2d1e71f946cb1c498" - integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw== - dependencies: - "@babel/types" "^7.24.0" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== - dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.22.15": - version "7.24.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" - integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== - dependencies: - "@babel/types" "^7.24.0" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a" - integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" - integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helpers@^7.24.4": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.4.tgz#dc00907fd0d95da74563c142ef4cd21f2cb856b6" - integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw== - dependencies: - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.1" - "@babel/types" "^7.24.0" - -"@babel/highlight@^7.24.2": - version "7.24.2" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26" - integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88" - integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844" - integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== - dependencies: - "@babel/helper-plugin-utils" "^7.24.0" - -"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" - integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" - -"@babel/traverse@^7.24.1", "@babel/traverse@^7.7.2": - version "7.24.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c" - integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ== - dependencies: - "@babel/code-frame" "^7.24.1" - "@babel/generator" "^7.24.1" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.24.1" - "@babel/types" "^7.24.0" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.3.3": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" - integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" - integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" - -"@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== - dependencies: - "@jest/console" "^28.1.3" - "@jest/reporters" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" - micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" - integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== - dependencies: - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - jest-mock "^28.1.3" - -"@jest/expect-utils@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" - integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== - dependencies: - jest-get-type "^28.0.2" - -"@jest/expect@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" - integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== - dependencies: - expect "^28.1.3" - jest-snapshot "^28.1.3" - -"@jest/fake-timers@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" - integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== - dependencies: - "@jest/types" "^28.1.3" - "@sinonjs/fake-timers" "^9.1.2" - "@types/node" "*" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-util "^28.1.3" - -"@jest/globals@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" - integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/types" "^28.1.3" - -"@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - terminal-link "^2.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== - dependencies: - "@sinclair/typebox" "^0.24.1" - -"@jest/source-map@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" - integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== - dependencies: - "@jridgewell/trace-mapping" "^0.3.13" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" - integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== - dependencies: - "@jest/console" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" - integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== - dependencies: - "@jest/test-result" "^28.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - slash "^3.0.0" - -"@jest/transform@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" - integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== - dependencies: - "@jest/schemas" "^28.1.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/source-map@^0.3.3": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" - integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== - -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@types/babel__core@^7.1.14": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" - integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== - dependencies: - "@babel/types" "^7.20.7" - -"@types/file-saver@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@types/file-saver/-/file-saver-2.0.7.tgz#8dbb2f24bdc7486c54aa854eb414940bbd056f7d" - integrity sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A== - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - -"@types/html-minifier-terser@^6.0.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" - integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - -"@types/minimist@^1.2.2": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" - integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== - -"@types/node@*": - version "20.12.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384" - integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== - dependencies: - undici-types "~5.26.4" - -"@types/normalize-package-data@^2.4.0": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" - integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== - -"@types/prettier@^2.1.5": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== - dependencies: - "@types/yargs-parser" "*" - -"@wasm-tool/wasm-pack-plugin@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@wasm-tool/wasm-pack-plugin/-/wasm-pack-plugin-1.6.0.tgz#a2dbec777b317b04f72e13f0080a3f483cd89809" - integrity sha512-Iax4nEgIvVCZqrmuseJm7ln/muWpg7uT5fXMAT0crYo+k5JTuZE58DJvBQoeIAegA3IM9cZgfkcZjAOUCPsT1g== - dependencies: - chalk "^2.4.1" - command-exists "^1.2.7" - watchpack "^2.1.1" - which "^2.0.2" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^2.0.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.1.1.tgz#3b2f852e91dac6e3b85fb2a314fb8bef46d94646" - integrity sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== - -"@webpack-cli/info@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.2.tgz#cc3fbf22efeb88ff62310cf885c5b09f44ae0fdd" - integrity sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== - -"@webpack-cli/serve@^2.0.1": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" - integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^8.8.2: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -adm-zip@0.5.14: - version "0.5.14" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.5.14.tgz#2c557c0bf12af4311cf6d32970f4060cf8133b2a" - integrity sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg== - -aggregate-error@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-4.0.1.tgz#25091fe1573b9e0be892aeda15c7c66a545f758e" - integrity sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w== - dependencies: - clean-stack "^4.0.0" - indent-string "^5.0.0" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.2: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-html-community@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" - integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -arrify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-3.0.0.tgz#ccdefb8eaf2a1d2ab0da1ca2ce53118759fd46bc" - integrity sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw== - -asn1.js@^4.10.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.1.tgz#038ab248e4ff078e7bc2485ba6e6388466c78f76" - integrity sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A== - dependencies: - object.assign "^4.1.4" - util "^0.10.4" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -async-each@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" - integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -babel-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" - integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== - dependencies: - "@jest/transform" "^28.1.3" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" - integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" - integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== - dependencies: - babel-plugin-jest-hoist "^28.1.3" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browserify-aes@^1.0.4, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208" - integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== - dependencies: - bn.js "^5.2.1" - browserify-rsa "^4.1.0" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.5" - hash-base "~3.0" - inherits "^2.0.4" - parse-asn1 "^5.1.7" - readable-stream "^2.3.8" - safe-buffer "^5.2.1" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.22.2: - version "4.23.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== - dependencies: - caniuse-lite "^1.0.30001587" - electron-to-chromium "^1.4.668" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - -camelcase-keys@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" - integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== - dependencies: - camelcase "^6.3.0" - map-obj "^4.1.0" - quick-lru "^5.1.1" - type-fest "^1.2.1" - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001587: - version "1.0.30001612" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz#d34248b4ec1f117b70b24ad9ee04c90e0b8a14ae" - integrity sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g== - -chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cjs-module-lexer@^1.0.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-css@^5.2.2: - version "5.3.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" - integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== - dependencies: - source-map "~0.6.0" - -clean-stack@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-4.2.0.tgz#c464e4cde4ac789f4e0735c5d75beb49d7b30b31" - integrity sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg== - dependencies: - escape-string-regexp "5.0.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.14: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -command-exists@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== - -commander@^9.4.1: - version "9.5.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" - integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -component-emitter@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" - integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== - -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.4.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" - integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cp-file@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-9.1.0.tgz#e98e30db72d57d47b5b1d444deb70d05e5684921" - integrity sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA== - dependencies: - graceful-fs "^4.1.2" - make-dir "^3.0.0" - nested-error-stacks "^2.0.0" - p-event "^4.1.0" - -cpy-cli@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-4.2.0.tgz#d60bf9ac776486af20aac2fa4fb95f8f10b35ce8" - integrity sha512-b04b+cbdr29CdpREPKw/itrfjO43Ty0Aj7wRM6M6LoE4GJxZJCk9Xp+Eu1IqztkKh3LxIBt1tDplENsa6KYprg== - dependencies: - cpy "^9.0.0" - meow "^10.1.2" - -cpy@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/cpy/-/cpy-9.0.1.tgz#7f3ad0ad5bafe0bc70645c4bb567969927cadb9f" - integrity sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg== - dependencies: - arrify "^3.0.0" - cp-file "^9.1.0" - globby "^13.1.1" - junk "^4.0.0" - micromatch "^4.0.4" - nested-error-stacks "^2.1.0" - p-filter "^3.0.0" - p-map "^5.3.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-select@^4.1.3: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" - integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== - dependencies: - boolbase "^1.0.0" - css-what "^6.0.1" - domhandler "^4.3.1" - domutils "^2.8.0" - nth-check "^2.0.1" - -css-what@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -cyclist@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" - integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA== - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" - integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-equal@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" - integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== - dependencies: - is-arguments "^1.1.1" - is-date-object "^1.0.5" - is-regex "^1.1.4" - object-is "^1.1.5" - object-keys "^1.1.1" - regexp.prototype.flags "^1.5.1" - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -des.js@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" - integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== - dependencies: - buffer-indexof "^1.0.0" - -dom-converter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.5.2, domutils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.4.668: - version "1.4.749" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.749.tgz#9869e2e258141da26a2272b58264584c3461279d" - integrity sha512-LRMMrM9ITOvue0PoBrvNIraVmuDbJV5QC9ierz/z5VilMdPOVMjOtpICNld3PuXuTZ3CHH/UPxX9gHhAPwi+0Q== - -elliptic@^6.5.3, elliptic@^6.5.5: - version "6.5.7" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b" - integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encodeurl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" - integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enhanced-resolve@^5.0.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" - integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -envinfo@^7.7.3: - version "7.12.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.12.0.tgz#b56723b39c2053d67ea5714f026d05d4f5cc7acd" - integrity sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -escalade@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -eventsource@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" - integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" - integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== - dependencies: - "@jest/expect-utils" "^28.1.3" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - -express@^4.17.1: - version "4.21.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.21.0.tgz#d57cb706d49623d4ac27833f1cbc466b668eb915" - integrity sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.6.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.3" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.10" - proxy-addr "~2.0.7" - qs "6.13.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.3.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fastest-levenshtein@^1.0.12: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - dependencies: - reusify "^1.0.4" - -faye-websocket@^0.11.3, faye-websocket@^0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" - integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -file-saver@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" - integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== - dependencies: - debug "2.6.9" - encodeurl "~2.0.0" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^7.0.3, glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^13.1.1: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.3.0" - ignore "^5.2.4" - merge2 "^1.4.1" - slash "^4.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -handle-thing@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash-base@~3.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-minifier-terser@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" - integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== - dependencies: - camel-case "^4.1.2" - clean-css "^5.2.2" - commander "^8.3.0" - he "^1.2.0" - param-case "^3.0.4" - relateurl "^0.2.7" - terser "^5.10.0" - -html-webpack-plugin@5.5.3: - version "5.5.3" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" - integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== - dependencies: - "@types/html-minifier-terser" "^6.0.0" - html-minifier-terser "^6.0.2" - lodash "^4.17.21" - pretty-error "^4.0.0" - tapable "^2.0.0" - -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.5.1: - version "0.5.8" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" - integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== - -ignore@^5.2.4: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -interpret@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" - integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== - -ip@^1.1.0, ip@^1.1.5: - version "1.1.9" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" - integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" - integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== - dependencies: - hasown "^2.0.0" - -is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-core-module@^2.13.0, is-core-module@^2.5.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-data-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" - integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== - dependencies: - hasown "^2.0.0" - -is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-descriptor@^0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" - integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" - integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" - integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== - dependencies: - execa "^5.0.0" - p-limit "^3.1.0" - -jest-circus@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" - integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - p-limit "^3.1.0" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== - dependencies: - "@jest/core" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" - integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.3" - "@jest/types" "^28.1.3" - babel-jest "^28.1.3" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^28.1.3" - jest-environment-node "^28.1.3" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-runner "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^28.1.3" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== - dependencies: - chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== - dependencies: - detect-newline "^3.0.0" - -jest-each@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" - integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== - dependencies: - "@jest/types" "^28.1.3" - chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.3" - pretty-format "^28.1.3" - -jest-environment-node@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" - integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - jest-mock "^28.1.3" - jest-util "^28.1.3" - -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== - -jest-haste-map@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" - integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== - dependencies: - "@jest/types" "^28.1.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - jest-worker "^28.1.3" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" - integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== - dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-matcher-utils@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== - dependencies: - chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-message-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" - integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" - integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== - -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== - dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" - -jest-resolve@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" - integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-pnp-resolver "^1.2.2" - jest-util "^28.1.3" - jest-validate "^28.1.3" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" - integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== - dependencies: - "@jest/console" "^28.1.3" - "@jest/environment" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.10.2" - graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.3" - jest-haste-map "^28.1.3" - jest-leak-detector "^28.1.3" - jest-message-util "^28.1.3" - jest-resolve "^28.1.3" - jest-runtime "^28.1.3" - jest-util "^28.1.3" - jest-watcher "^28.1.3" - jest-worker "^28.1.3" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" - integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/globals" "^28.1.3" - "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" - integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^28.1.3" - graceful-fs "^4.2.9" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - natural-compare "^1.4.0" - pretty-format "^28.1.3" - semver "^7.3.5" - -jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== - dependencies: - "@jest/types" "^28.1.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" - integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== - dependencies: - "@jest/types" "^28.1.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^28.0.2" - leven "^3.1.0" - pretty-format "^28.1.3" - -jest-watcher@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" - integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== - dependencies: - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.3" - string-length "^4.0.1" - -jest-worker@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== - dependencies: - "@jest/core" "^28.1.3" - "@jest/types" "^28.1.3" - import-local "^3.0.2" - jest-cli "^28.1.3" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -junk@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/junk/-/junk-4.0.1.tgz#7ee31f876388c05177fe36529ee714b07b50fbed" - integrity sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ== - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^6.0.2, kind-of@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^1.2.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loglevel@^1.6.8: - version "1.9.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" - integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -meow@^10.1.2: - version "10.1.5" - resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" - integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== - dependencies: - "@types/minimist" "^1.2.2" - camelcase-keys "^7.0.0" - decamelize "^5.0.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.2" - read-pkg-up "^8.0.0" - redent "^4.0.0" - trim-newlines "^4.0.2" - type-fest "^1.2.2" - yargs-parser "^20.2.9" - -merge-descriptors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.0, micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -min-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -nan@^2.12.1: - version "2.19.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" - integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz#26c8a3cee6cc05fbcf1e333cd2fc3e003326c0b5" - integrity sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-all2@5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/npm-run-all2/-/npm-run-all2-5.0.2.tgz#7dae8e11ba90be9edd05379414a01407416b336c" - integrity sha512-S2G6FWZ3pNWAAKm2PFSOtEAG/N+XO/kz3+9l6V91IY+Y3XFSt7Lp7DV92KCgEboEW0hRTu0vFaMe4zXDZYaOyA== - dependencies: - ansi-styles "^5.0.0" - cross-spawn "^7.0.3" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.5.0" - read-pkg "^5.2.0" - shell-quote "^1.6.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -object-assign@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-is@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" - integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - -p-event@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" - integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== - dependencies: - p-timeout "^3.1.0" - -p-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-3.0.0.tgz#ce50e03b24b23930e11679ab8694bd09a2d7ed35" - integrity sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg== - dependencies: - p-map "^5.1.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^5.1.0, p-map@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-5.5.0.tgz#054ca8ca778dfa4cf3f8db6638ccb5b937266715" - integrity sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg== - dependencies: - aggregate-error "^4.0.0" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-timeout@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" - integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== - dependencies: - p-finally "^1.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - -parse-asn1@^5.0.0, parse-asn1@^5.1.7: - version "5.1.7" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06" - integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== - dependencies: - asn1.js "^4.10.1" - browserify-aes "^1.2.0" - evp_bytestokey "^1.0.3" - hash-base "~3.0" - pbkdf2 "^3.1.2" - safe-buffer "^5.2.1" - -parse-json@^5.0.0, parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b" - integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3, pbkdf2@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" - integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - -pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -portfinder@^1.0.26: - version "1.0.32" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" - integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== - dependencies: - async "^2.6.4" - debug "^3.2.7" - mkdirp "^0.5.6" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -pretty-error@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" - integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== - dependencies: - lodash "^4.17.20" - renderkid "^3.0.0" - -pretty-format@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== - dependencies: - "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== - dependencies: - side-channel "^1.0.6" - -qs@^6.11.2: - version "6.12.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" - integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== - dependencies: - side-channel "^1.0.6" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^18.0.0: - version "18.3.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.0.tgz#6c2d9b6cdd4c2cffb7c89b1bcb57bc44d12f1993" - integrity sha512-wRiUsea88TjKDc4FBEn+sLvIDesp6brMbGWnJGjew2waAc9evdhja/2LvePc898HJbHw0L+MTWy7NhpnELAvLQ== - -read-pkg-up@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" - integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== - dependencies: - find-up "^5.0.0" - read-pkg "^6.0.0" - type-fest "^1.0.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -read-pkg@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" - integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^1.0.1" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" - integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== - dependencies: - resolve "^1.20.0" - -redent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" - integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== - dependencies: - indent-string "^5.0.0" - strip-indent "^4.0.0" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" - integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== - dependencies: - call-bind "^1.0.6" - define-properties "^1.2.1" - es-errors "^1.3.0" - set-function-name "^2.0.1" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -renderkid@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" - integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^6.0.1" - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== - dependencies: - resolve-from "^3.0.0" - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve.exports@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" - integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== - -resolve@^1.10.0, resolve@^1.20.0: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== - dependencies: - aproba "^1.1.1" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== - -selfsigned@^1.10.8: - version "1.10.14" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" - integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== - dependencies: - node-forge "^0.10.0" - -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.4, semver@^7.3.5, semver@^7.5.3: - version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" - -send@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serialize-javascript@6.0.2, serialize-javascript@^4.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" - integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== - dependencies: - randombytes "^2.1.0" - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== - dependencies: - encodeurl "~2.0.0" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.19.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-function-name@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.6.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - -side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -signal-exit@^3.0.0, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" - integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== - dependencies: - debug "^3.2.7" - eventsource "^2.0.2" - faye-websocket "^0.11.4" - inherits "^2.0.4" - url-parse "^1.5.10" - -sockjs@^0.3.21: - version "0.3.24" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" - integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== - dependencies: - faye-websocket "^0.11.3" - uuid "^8.3.2" - websocket-driver "^0.7.4" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@~0.5.12, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.17" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" - integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" - integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" - integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== - dependencies: - min-indent "^1.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tapable@^2.0.0, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.10.0: - version "5.30.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.4.tgz#62b4d16a819424e6317fd5ceffb4ee8dc769803a" - integrity sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-encoding@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.7.0.tgz#f895e836e45990624086601798ea98e8f36ee643" - integrity sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA== - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -thunky@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -trim-newlines@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" - integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== - -ts-loader@9.4.2: - version "9.4.2" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78" - integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA== - dependencies: - chalk "^4.1.0" - enhanced-resolve "^5.0.0" - micromatch "^4.0.0" - semver "^7.3.4" - -tslib@^2.0.3: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typescript@4.9.3: - version "4.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" - integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -url-parse@^1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" - integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== - dependencies: - punycode "^1.4.1" - qs "^6.11.2" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.10.4: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@~0.4: - version "0.4.0" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-to-istanbul@^9.0.1: - version "9.2.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" - integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^2.0.0" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" - -watchpack@^2.1.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" - integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-cli@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.1.tgz#95fc0495ac4065e9423a722dec9175560b6f2d9a" - integrity sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.0.1" - "@webpack-cli/info" "^2.0.1" - "@webpack-cli/serve" "^2.0.1" - colorette "^2.0.14" - commander "^9.4.1" - cross-spawn "^7.0.3" - envinfo "^7.7.3" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^3.1.1" - rechoir "^0.8.0" - webpack-merge "^5.7.3" - -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@3.11.3: - version "3.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== - dependencies: - ansi-html-community "0.0.8" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" - spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" - integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-merge@^5.7.3: - version "5.10.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" - integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== - dependencies: - clone-deep "^4.0.1" - flat "^5.0.2" - wildcard "^2.0.0" - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@4.46.0: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wildcard@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -ws@^6.2.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee" - integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== - dependencies: - async-limiter "~1.0.0" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.9: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^17.3.1: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/vrt/pnpm-lock.yaml b/vrt/pnpm-lock.yaml new file mode 100644 index 000000000..1c456c4de --- /dev/null +++ b/vrt/pnpm-lock.yaml @@ -0,0 +1,112 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + glob: + specifier: ^8.0.0 + version: 8.1.0 + devDependencies: + libreoffice-convert: + specifier: 1.3.5 + version: 1.3.5 + +packages: + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + libreoffice-convert@1.3.5: + resolution: {integrity: sha512-nWwToElKATfDoHtbXJALdGoZfQdCNiITvSExVtRQBA32ZP9uwSaw7tDpBgeedJMWWnyoUZU1FWpPF6o4d13Pjw==} + engines: {node: '>=6'} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + +snapshots: + + async@2.6.4: + dependencies: + lodash: 4.17.21 + + balanced-match@1.0.2: {} + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + fs.realpath@1.0.0: {} + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + libreoffice-convert@1.3.5: + dependencies: + async: 2.6.4 + tmp: 0.2.3 + + lodash@4.17.21: {} + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + tmp@0.2.3: {} + + wrappy@1.0.2: {} diff --git a/vrt/yarn.lock b/vrt/yarn.lock deleted file mode 100644 index 14c1116ee..000000000 --- a/vrt/yarn.lock +++ /dev/null @@ -1,135 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -async@^2.6.2: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -glob@^7.1.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.1.tgz#00308f5c035aa0b2a447cd37ead267ddff1577d3" - integrity sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -libreoffice-convert@1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/libreoffice-convert/-/libreoffice-convert-1.3.5.tgz#86c8ddac3ae44eb92b80f6362db7339de7526647" - integrity sha512-nWwToElKATfDoHtbXJALdGoZfQdCNiITvSExVtRQBA32ZP9uwSaw7tDpBgeedJMWWnyoUZU1FWpPF6o4d13Pjw== - dependencies: - async "^2.6.2" - tmp "^0.2.1" - -lodash@^4.17.14: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -tmp@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" - integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== - dependencies: - rimraf "^3.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index fb57ccd13..000000000 --- a/yarn.lock +++ /dev/null @@ -1,4 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - From 69b4c1a4a3832ec324b1ace64e9c3a33e6b06f27 Mon Sep 17 00:00:00 2001 From: unvalley <38400669+unvalley@users.noreply.github.com> Date: Wed, 30 Oct 2024 14:53:26 +0900 Subject: [PATCH 14/25] build: use rust 1.82 and fix clipyy errors (#768) * build: use rust 1.82 and fix clipyy errors * refactor: fix clippy errors --- docx-core/src/documents/comments.rs | 8 +----- docx-core/src/documents/comments_extended.rs | 8 +----- docx-core/src/documents/doc_props/app.rs | 8 +----- docx-core/src/documents/doc_props/core.rs | 28 ++----------------- .../src/documents/elements/instr_text.rs | 2 ++ docx-core/src/documents/elements/instr_toc.rs | 2 +- docx-core/src/documents/elements/is_lgl.rs | 8 +----- .../src/documents/elements/line_spacing.rs | 2 +- .../src/documents/elements/mc_fallback.rs | 13 ++------- docx-core/src/documents/elements/mod.rs | 1 - .../documents/elements/numbering_property.rs | 11 +------- docx-core/src/documents/elements/q_format.rs | 6 +--- .../src/documents/elements/spec_vanish.rs | 8 +----- docx-core/src/documents/elements/start.rs | 8 +----- .../documents/elements/text_box_content.rs | 11 +------- docx-core/src/documents/elements/vanish.rs | 8 +----- docx-core/src/documents/elements/wp_anchor.rs | 8 +----- docx-core/src/documents/elements/wps_shape.rs | 8 +----- .../src/documents/elements/wps_text_box.rs | 11 +------- docx-core/src/documents/font_table.rs | 8 +----- docx-core/src/documents/mod.rs | 6 ++-- docx-core/src/documents/numberings.rs | 11 +------- docx-core/src/documents/rels.rs | 8 +----- docx-core/src/documents/taskpanes.rs | 8 +----- docx-core/src/documents/taskpanes_rels.rs | 8 +----- docx-core/src/documents/web_settings.rs | 8 +----- docx-core/src/lib.rs | 1 + docx-core/src/reader/attributes/bool_value.rs | 2 +- docx-core/src/reader/mod.rs | 13 ++++----- docx-core/src/reader/run.rs | 2 +- docx-core/src/reader/run_property.rs | 2 +- docx-core/src/reader/settings.rs | 2 +- docx-core/src/reader/style.rs | 2 +- docx-core/src/reader/table_cell_property.rs | 8 +++--- docx-core/src/xml_builder/macros.rs | 2 +- docx-core/src/xml_builder/mod.rs | 2 -- docx-core/src/xml_json/mod.rs | 11 +++----- rust-toolchain | 2 +- 38 files changed, 52 insertions(+), 213 deletions(-) diff --git a/docx-core/src/documents/comments.rs b/docx-core/src/documents/comments.rs index 282e2bf8e..b946957b1 100644 --- a/docx-core/src/documents/comments.rs +++ b/docx-core/src/documents/comments.rs @@ -4,7 +4,7 @@ use crate::xml_builder::*; use serde::Serialize; -#[derive(Debug, Clone, PartialEq, Serialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct Comments { pub(crate) comments: Vec, @@ -28,12 +28,6 @@ impl Comments { } } -impl Default for Comments { - fn default() -> Self { - Self { comments: vec![] } - } -} - impl BuildXML for Comments { fn build(&self) -> Vec { let mut b = XMLBuilder::new().declaration(Some(true)).open_comments(); diff --git a/docx-core/src/documents/comments_extended.rs b/docx-core/src/documents/comments_extended.rs index a03288524..369af00d2 100644 --- a/docx-core/src/documents/comments_extended.rs +++ b/docx-core/src/documents/comments_extended.rs @@ -5,7 +5,7 @@ use crate::documents::BuildXML; use crate::xml_builder::*; // i.e. -#[derive(Debug, Clone, PartialEq, Serialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct CommentsExtended { pub children: Vec, @@ -21,12 +21,6 @@ impl CommentsExtended { } } -impl Default for CommentsExtended { - fn default() -> Self { - Self { children: vec![] } - } -} - impl BuildXML for CommentsExtended { fn build(&self) -> Vec { let mut b = XMLBuilder::new(); diff --git a/docx-core/src/documents/doc_props/app.rs b/docx-core/src/documents/doc_props/app.rs index e3dfcbf6f..c46eae9dc 100644 --- a/docx-core/src/documents/doc_props/app.rs +++ b/docx-core/src/documents/doc_props/app.rs @@ -3,7 +3,7 @@ use serde::Serialize; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, PartialEq, Serialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct AppProps {} @@ -13,12 +13,6 @@ impl AppProps { } } -impl Default for AppProps { - fn default() -> Self { - Self {} - } -} - impl BuildXML for AppProps { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/doc_props/core.rs b/docx-core/src/documents/doc_props/core.rs index d2e662bd7..fbce26f9c 100644 --- a/docx-core/src/documents/doc_props/core.rs +++ b/docx-core/src/documents/doc_props/core.rs @@ -3,13 +3,13 @@ use serde::Serialize; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, PartialEq, Serialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct CoreProps { config: CorePropsConfig, } -#[derive(Debug, Clone, PartialEq, Serialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct CorePropsConfig { created: Option, @@ -23,30 +23,6 @@ pub struct CorePropsConfig { title: Option, } -impl Default for CorePropsConfig { - fn default() -> Self { - Self { - created: None, - creator: None, - description: None, - language: None, - last_modified_by: None, - modified: None, - revision: None, - subject: None, - title: None, - } - } -} - -impl Default for CoreProps { - fn default() -> Self { - Self { - config: CorePropsConfig::default(), - } - } -} - impl CoreProps { pub(crate) fn new(config: CorePropsConfig) -> CoreProps { CoreProps { config } diff --git a/docx-core/src/documents/elements/instr_text.rs b/docx-core/src/documents/elements/instr_text.rs index e3db9f2e6..f690ee984 100644 --- a/docx-core/src/documents/elements/instr_text.rs +++ b/docx-core/src/documents/elements/instr_text.rs @@ -96,6 +96,7 @@ mod tests { #[test] fn test_toc_instr() { + #[allow(unused_allocation)] let b = Box::new(InstrText::TOC(InstrToC::new().heading_styles_range(1, 3))).build(); assert_eq!( str::from_utf8(&b).unwrap(), @@ -105,6 +106,7 @@ mod tests { #[test] fn test_pageref_instr() { + #[allow(unused_allocation)] let b = Box::new(InstrText::PAGEREF( InstrPAGEREF::new("_Toc90425847").hyperlink(), )) diff --git a/docx-core/src/documents/elements/instr_toc.rs b/docx-core/src/documents/elements/instr_toc.rs index c0beb1173..6ae8c1f5e 100644 --- a/docx-core/src/documents/elements/instr_toc.rs +++ b/docx-core/src/documents/elements/instr_toc.rs @@ -255,7 +255,7 @@ impl BuildXML for InstrToC { fn parse_level_range(i: &str) -> Option<(usize, usize)> { let r = i.replace(""", "").replace('\"', ""); let r: Vec<&str> = r.split('-').collect(); - if let Some(s) = r.get(0) { + if let Some(s) = r.first() { if let Ok(s) = usize::from_str(s) { if let Some(e) = r.get(1) { if let Ok(e) = usize::from_str(e) { diff --git a/docx-core/src/documents/elements/is_lgl.rs b/docx-core/src/documents/elements/is_lgl.rs index 822a3d512..efdd9cc01 100644 --- a/docx-core/src/documents/elements/is_lgl.rs +++ b/docx-core/src/documents/elements/is_lgl.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize, Serializer}; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, Deserialize, PartialEq)] +#[derive(Debug, Clone, Deserialize, PartialEq, Default)] pub struct IsLgl {} impl IsLgl { @@ -12,12 +12,6 @@ impl IsLgl { } } -impl Default for IsLgl { - fn default() -> Self { - IsLgl {} - } -} - impl BuildXML for IsLgl { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/elements/line_spacing.rs b/docx-core/src/documents/elements/line_spacing.rs index 6007f3e0c..e95e2acb6 100644 --- a/docx-core/src/documents/elements/line_spacing.rs +++ b/docx-core/src/documents/elements/line_spacing.rs @@ -52,7 +52,7 @@ impl LineSpacing { } pub fn line(mut self, line: i32) -> Self { - self.line = Some(line as i32); + self.line = Some(line); self } } diff --git a/docx-core/src/documents/elements/mc_fallback.rs b/docx-core/src/documents/elements/mc_fallback.rs index 94c57c01d..76700b47a 100644 --- a/docx-core/src/documents/elements/mc_fallback.rs +++ b/docx-core/src/documents/elements/mc_fallback.rs @@ -1,10 +1,7 @@ -// use super::*; -use serde::Serialize; - use crate::documents::BuildXML; -// use crate::xml_builder::*; +use serde::Serialize; -#[derive(Debug, Clone, Serialize, PartialEq)] +#[derive(Debug, Clone, Serialize, PartialEq, Default)] pub struct McFallback {} impl McFallback { @@ -13,12 +10,6 @@ impl McFallback { } } -impl Default for McFallback { - fn default() -> Self { - McFallback {} - } -} - impl BuildXML for McFallback { fn build(&self) -> Vec { // Ignore for now diff --git a/docx-core/src/documents/elements/mod.rs b/docx-core/src/documents/elements/mod.rs index d2314fa1d..808ded439 100644 --- a/docx-core/src/documents/elements/mod.rs +++ b/docx-core/src/documents/elements/mod.rs @@ -207,7 +207,6 @@ pub use numbering::*; pub use numbering_id::*; pub use numbering_property::*; pub use outline_lvl::*; -pub use page_margin::*; pub use page_num::*; pub use page_num_type::*; pub use page_size::*; diff --git a/docx-core/src/documents/elements/numbering_property.rs b/docx-core/src/documents/elements/numbering_property.rs index f1d19cf6b..b765ddb7d 100644 --- a/docx-core/src/documents/elements/numbering_property.rs +++ b/docx-core/src/documents/elements/numbering_property.rs @@ -5,21 +5,12 @@ use super::{IndentLevel, NumberingId}; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Default)] pub struct NumberingProperty { pub id: Option, pub level: Option, } -impl Default for NumberingProperty { - fn default() -> Self { - NumberingProperty { - id: None, - level: None, - } - } -} - impl NumberingProperty { pub fn new() -> NumberingProperty { Default::default() diff --git a/docx-core/src/documents/elements/q_format.rs b/docx-core/src/documents/elements/q_format.rs index 7990dfcc1..de55368c6 100644 --- a/docx-core/src/documents/elements/q_format.rs +++ b/docx-core/src/documents/elements/q_format.rs @@ -7,6 +7,7 @@ use crate::xml_builder::*; // application. If this element is set, then this style has been designated as being particularly important for the // current document, and this information can be used by an application in any means desired. [Note: This setting // 637ECMA-376 Part 1 does not imply any behavior for the style, only that the style is of particular significance for this document. end note] +#[derive(Default)] pub struct QFormat {} impl QFormat { @@ -15,11 +16,6 @@ impl QFormat { } } -impl Default for QFormat { - fn default() -> Self { - Self {} - } -} impl BuildXML for QFormat { fn build(&self) -> Vec { diff --git a/docx-core/src/documents/elements/spec_vanish.rs b/docx-core/src/documents/elements/spec_vanish.rs index b262eb8d5..da4518775 100644 --- a/docx-core/src/documents/elements/spec_vanish.rs +++ b/docx-core/src/documents/elements/spec_vanish.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize, Serializer}; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, Deserialize, PartialEq)] +#[derive(Debug, Clone, Deserialize, PartialEq, Default)] pub struct SpecVanish {} impl SpecVanish { @@ -12,12 +12,6 @@ impl SpecVanish { } } -impl Default for SpecVanish { - fn default() -> Self { - SpecVanish {} - } -} - impl BuildXML for SpecVanish { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/elements/start.rs b/docx-core/src/documents/elements/start.rs index abd409969..434153bae 100644 --- a/docx-core/src/documents/elements/start.rs +++ b/docx-core/src/documents/elements/start.rs @@ -3,7 +3,7 @@ use serde::{Serialize, Serializer}; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Default)] pub struct Start { val: usize, } @@ -14,12 +14,6 @@ impl Start { } } -impl Default for Start { - fn default() -> Self { - Start { val: 0 } - } -} - impl BuildXML for Start { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/elements/text_box_content.rs b/docx-core/src/documents/elements/text_box_content.rs index 002123a64..56895075b 100644 --- a/docx-core/src/documents/elements/text_box_content.rs +++ b/docx-core/src/documents/elements/text_box_content.rs @@ -5,7 +5,7 @@ use serde::Serialize; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, Serialize, PartialEq)] +#[derive(Debug, Clone, Serialize, PartialEq, Default)] pub struct TextBoxContent { pub children: Vec, pub has_numbering: bool, @@ -62,15 +62,6 @@ impl TextBoxContent { } } -impl Default for TextBoxContent { - fn default() -> Self { - TextBoxContent { - children: vec![], - has_numbering: false, - } - } -} - impl BuildXML for TextBoxContent { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/elements/vanish.rs b/docx-core/src/documents/elements/vanish.rs index 51034250a..eee3eac54 100644 --- a/docx-core/src/documents/elements/vanish.rs +++ b/docx-core/src/documents/elements/vanish.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize, Serializer}; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, Deserialize, PartialEq)] +#[derive(Debug, Clone, Deserialize, PartialEq, Default)] pub struct Vanish {} impl Vanish { @@ -12,12 +12,6 @@ impl Vanish { } } -impl Default for Vanish { - fn default() -> Self { - Vanish {} - } -} - impl BuildXML for Vanish { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/elements/wp_anchor.rs b/docx-core/src/documents/elements/wp_anchor.rs index cd01587bb..650152a48 100644 --- a/docx-core/src/documents/elements/wp_anchor.rs +++ b/docx-core/src/documents/elements/wp_anchor.rs @@ -4,7 +4,7 @@ use serde::Serialize; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, Serialize, PartialEq)] +#[derive(Debug, Clone, Serialize, PartialEq, Default)] #[serde(rename_all = "camelCase")] pub struct WpAnchor { pub children: Vec, @@ -32,12 +32,6 @@ impl WpAnchor { } } -impl Default for WpAnchor { - fn default() -> Self { - WpAnchor { children: vec![] } - } -} - impl BuildXML for WpAnchor { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/elements/wps_shape.rs b/docx-core/src/documents/elements/wps_shape.rs index d5b55c743..ab2a0eadf 100644 --- a/docx-core/src/documents/elements/wps_shape.rs +++ b/docx-core/src/documents/elements/wps_shape.rs @@ -5,7 +5,7 @@ use serde::Serialize; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, Serialize, PartialEq)] +#[derive(Debug, Clone, Serialize, PartialEq, Default)] #[serde(rename_all = "camelCase")] pub struct WpsShape { children: Vec, @@ -43,12 +43,6 @@ impl WpsShape { } } -impl Default for WpsShape { - fn default() -> Self { - WpsShape { children: vec![] } - } -} - impl BuildXML for WpsShape { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/elements/wps_text_box.rs b/docx-core/src/documents/elements/wps_text_box.rs index 5431b4d23..0a5178b13 100644 --- a/docx-core/src/documents/elements/wps_text_box.rs +++ b/docx-core/src/documents/elements/wps_text_box.rs @@ -4,7 +4,7 @@ use serde::Serialize; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Debug, Clone, Serialize, PartialEq)] +#[derive(Debug, Clone, Serialize, PartialEq, Default)] #[serde(rename_all = "camelCase")] pub struct WpsTextBox { pub children: Vec, @@ -25,15 +25,6 @@ impl WpsTextBox { } } -impl Default for WpsTextBox { - fn default() -> Self { - WpsTextBox { - children: vec![], - has_numbering: false, - } - } -} - impl BuildXML for WpsTextBox { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/font_table.rs b/docx-core/src/documents/font_table.rs index e9d2a01b4..dd062377f 100644 --- a/docx-core/src/documents/font_table.rs +++ b/docx-core/src/documents/font_table.rs @@ -5,7 +5,7 @@ use crate::xml_builder::*; use serde::Serialize; -#[derive(Debug, Clone, PartialEq, Serialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct FontTable {} @@ -15,12 +15,6 @@ impl FontTable { } } -impl Default for FontTable { - fn default() -> Self { - Self {} - } -} - impl BuildXML for FontTable { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/mod.rs b/docx-core/src/documents/mod.rs index 5d86bbac8..b8d505a4c 100644 --- a/docx-core/src/documents/mod.rs +++ b/docx-core/src/documents/mod.rs @@ -96,7 +96,7 @@ impl ser::Serialize for Image { where S: ser::Serializer, { - let base64 = base64::display::Base64Display::with_config(&*self.0, base64::STANDARD); + let base64 = base64::display::Base64Display::with_config(&self.0, base64::STANDARD); serializer.collect_str(&base64) } } @@ -106,7 +106,7 @@ impl ser::Serialize for Png { where S: ser::Serializer, { - let base64 = base64::display::Base64Display::with_config(&*self.0, base64::STANDARD); + let base64 = base64::display::Base64Display::with_config(&self.0, base64::STANDARD); serializer.collect_str(&base64) } } @@ -259,7 +259,7 @@ impl Docx { // without 'image' crate we can only test for PNG file signature if buf.starts_with(&[137, 80, 78, 71, 13, 10, 26, 10]) { self.images - .push((id.into(), path.into(), Image(buf.clone()), Png(buf))); + .push((id.into(), path.into(), Image(buf.clone()), Png(buf))); } self } diff --git a/docx-core/src/documents/numberings.rs b/docx-core/src/documents/numberings.rs index 50f77af60..40e1fd7ff 100644 --- a/docx-core/src/documents/numberings.rs +++ b/docx-core/src/documents/numberings.rs @@ -5,7 +5,7 @@ use crate::xml_builder::*; use serde::Serialize; -#[derive(Debug, Clone, PartialEq, Serialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct Numberings { pub abstract_nums: Vec, @@ -28,15 +28,6 @@ impl Numberings { } } -impl Default for Numberings { - fn default() -> Self { - Self { - abstract_nums: vec![], - numberings: vec![], - } - } -} - impl BuildXML for Numberings { fn build(&self) -> Vec { let mut b = XMLBuilder::new().declaration(Some(true)).open_numbering(); diff --git a/docx-core/src/documents/rels.rs b/docx-core/src/documents/rels.rs index 32a0a214f..caa37f6ba 100644 --- a/docx-core/src/documents/rels.rs +++ b/docx-core/src/documents/rels.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Default)] pub struct Rels { pub rels: Vec<(String, String, String)>, } @@ -61,12 +61,6 @@ impl Rels { } } -impl Default for Rels { - fn default() -> Self { - Rels { rels: Vec::new() } - } -} - impl BuildXML for Rels { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/taskpanes.rs b/docx-core/src/documents/taskpanes.rs index 6d448e4b4..1975a4419 100644 --- a/docx-core/src/documents/taskpanes.rs +++ b/docx-core/src/documents/taskpanes.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Copy)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Copy, Default)] pub struct Taskpanes {} impl Taskpanes { @@ -12,12 +12,6 @@ impl Taskpanes { } } -impl Default for Taskpanes { - fn default() -> Self { - Self {} - } -} - impl BuildXML for Taskpanes { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/taskpanes_rels.rs b/docx-core/src/documents/taskpanes_rels.rs index cb7d02c3a..b87959e0b 100644 --- a/docx-core/src/documents/taskpanes_rels.rs +++ b/docx-core/src/documents/taskpanes_rels.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; use crate::documents::BuildXML; use crate::xml_builder::*; -#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Default)] pub struct TaskpanesRels { pub rels: Vec<(String, String, String)>, } @@ -28,12 +28,6 @@ impl TaskpanesRels { } } -impl Default for TaskpanesRels { - fn default() -> Self { - TaskpanesRels { rels: Vec::new() } - } -} - impl BuildXML for TaskpanesRels { fn build(&self) -> Vec { let b = XMLBuilder::new(); diff --git a/docx-core/src/documents/web_settings.rs b/docx-core/src/documents/web_settings.rs index 5cbf41b51..2d696476a 100644 --- a/docx-core/src/documents/web_settings.rs +++ b/docx-core/src/documents/web_settings.rs @@ -2,7 +2,7 @@ use serde::Serialize; use super::*; -#[derive(Debug, Clone, PartialEq, Serialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct WebSettings { pub divs: Vec
, @@ -13,9 +13,3 @@ impl WebSettings { Default::default() } } - -impl Default for WebSettings { - fn default() -> Self { - Self { divs: vec![] } - } -} diff --git a/docx-core/src/lib.rs b/docx-core/src/lib.rs index 25823f248..89664020a 100644 --- a/docx-core/src/lib.rs +++ b/docx-core/src/lib.rs @@ -1,4 +1,5 @@ mod documents; +#[allow(hidden_glob_reexports)] // should rename? mod errors; mod escape; mod reader; diff --git a/docx-core/src/reader/attributes/bool_value.rs b/docx-core/src/reader/attributes/bool_value.rs index 8b20f9926..56618db68 100644 --- a/docx-core/src/reader/attributes/bool_value.rs +++ b/docx-core/src/reader/attributes/bool_value.rs @@ -5,7 +5,7 @@ pub fn is_false(v: &str) -> bool { } pub fn read_bool(attrs: &[OwnedAttribute]) -> bool { - if let Some(v) = attrs.get(0) { + if let Some(v) = attrs.first() { if is_false(&v.value) { return false; } diff --git a/docx-core/src/reader/mod.rs b/docx-core/src/reader/mod.rs index 0d544ff7b..fa30d6b91 100644 --- a/docx-core/src/reader/mod.rs +++ b/docx-core/src/reader/mod.rs @@ -76,7 +76,6 @@ pub use attributes::*; pub use document_rels::*; pub use errors::ReaderError; pub use from_xml::*; -pub use mc_fallback::*; pub use read_zip::*; pub use xml_element::*; use zip::ZipArchive; @@ -222,7 +221,7 @@ pub fn read_docx(buf: &[u8]) -> Result { // Read commentsExtended let comments_extended_path = rels.find_target_path(COMMENTS_EXTENDED_TYPE); let comments_extended = if let Some(comments_extended_path) = comments_extended_path { - if let Some((_, comments_extended_path, ..)) = comments_extended_path.get(0) { + if let Some((_, comments_extended_path, ..)) = comments_extended_path.first() { let data = read_zip( &mut archive, comments_extended_path @@ -244,7 +243,7 @@ pub fn read_docx(buf: &[u8]) -> Result { // Read comments let comments_path = rels.find_target_path(COMMENTS_TYPE); let comments = if let Some(paths) = comments_path { - if let Some((_, comments_path, ..)) = paths.get(0) { + if let Some((_, comments_path, ..)) = paths.first() { let data = read_zip( &mut archive, comments_path.to_str().expect("should have comments."), @@ -399,7 +398,7 @@ pub fn read_docx(buf: &[u8]) -> Result { // Read styles let style_path = rels.find_target_path(STYLE_RELATIONSHIP_TYPE); if let Some(paths) = style_path { - if let Some((_, style_path, ..)) = paths.get(0) { + if let Some((_, style_path, ..)) = paths.first() { let data = read_zip( &mut archive, style_path.to_str().expect("should have styles"), @@ -412,7 +411,7 @@ pub fn read_docx(buf: &[u8]) -> Result { // Read numberings let num_path = rels.find_target_path(NUMBERING_RELATIONSHIP_TYPE); if let Some(paths) = num_path { - if let Some((_, num_path, ..)) = paths.get(0) { + if let Some((_, num_path, ..)) = paths.first() { let data = read_zip( &mut archive, num_path.to_str().expect("should have numberings"), @@ -425,7 +424,7 @@ pub fn read_docx(buf: &[u8]) -> Result { // Read settings let settings_path = rels.find_target_path(SETTINGS_TYPE); if let Some(paths) = settings_path { - if let Some((_, settings_path, ..)) = paths.get(0) { + if let Some((_, settings_path, ..)) = paths.first() { let data = read_zip( &mut archive, settings_path.to_str().expect("should have settings"), @@ -438,7 +437,7 @@ pub fn read_docx(buf: &[u8]) -> Result { // Read web settings let web_settings_path = rels.find_target_path(WEB_SETTINGS_TYPE); if let Some(paths) = web_settings_path { - if let Some((_, web_settings_path, ..)) = paths.get(0) { + if let Some((_, web_settings_path, ..)) = paths.first() { let data = read_zip( &mut archive, web_settings_path diff --git a/docx-core/src/reader/run.rs b/docx-core/src/reader/run.rs index 4970b59a0..1fa394644 100644 --- a/docx-core/src/reader/run.rs +++ b/docx-core/src/reader/run.rs @@ -91,7 +91,7 @@ impl ElementReader for Run { XMLElement::Text => text_state = TextState::Text, XMLElement::DeleteText => text_state = TextState::Delete, XMLElement::Break => { - if let Some(a) = &attributes.get(0) { + if let Some(a) = attributes.first() { run = run.add_break(BreakType::from_str(&a.value)?) } else { run = run.add_break(BreakType::TextWrapping) diff --git a/docx-core/src/reader/run_property.rs b/docx-core/src/reader/run_property.rs index 34ad0905b..9ae5a0ed9 100644 --- a/docx-core/src/reader/run_property.rs +++ b/docx-core/src/reader/run_property.rs @@ -113,7 +113,7 @@ impl ElementReader for RunProperty { rp = rp.fonts(f); } } - XMLElement::Underline => rp = rp.underline(&attributes[0].value.clone()), + XMLElement::Underline => rp = rp.underline(attributes[0].value.clone()), XMLElement::Italic => { if !read_bool(&attributes) { rp = rp.disable_italic(); diff --git a/docx-core/src/reader/settings.rs b/docx-core/src/reader/settings.rs index e30eb2e52..52f19f476 100644 --- a/docx-core/src/reader/settings.rs +++ b/docx-core/src/reader/settings.rs @@ -26,7 +26,7 @@ impl FromXML for Settings { // Ignore w14:val if local_name == "val" && prefix == "w15" { settings = settings.doc_id( - &a.value.to_owned().replace("{", "").replace("}", ""), + a.value.to_owned().replace("{", "").replace("}", ""), ); } } diff --git a/docx-core/src/reader/style.rs b/docx-core/src/reader/style.rs index b29c71631..f9b1b1b39 100644 --- a/docx-core/src/reader/style.rs +++ b/docx-core/src/reader/style.rs @@ -33,7 +33,7 @@ impl ElementReader for Style { let e = XMLElement::from_str(&name.local_name).unwrap(); match e { XMLElement::Name => { - style = style.name(&attributes[0].value.clone()); + style = style.name(attributes[0].value.clone()); continue; } XMLElement::BasedOn => { diff --git a/docx-core/src/reader/table_cell_property.rs b/docx-core/src/reader/table_cell_property.rs index 579922442..c193e4ba6 100644 --- a/docx-core/src/reader/table_cell_property.rs +++ b/docx-core/src/reader/table_cell_property.rs @@ -34,12 +34,12 @@ impl ElementReader for TableCellProperty { property = property.width(w, width_type); } XMLElement::TableGridSpan => { - if let Some(a) = &attributes.get(0) { + if let Some(a) = attributes.first() { property = property.grid_span(usize::from_str(&a.value)?) } } XMLElement::TableVMerge => { - if let Some(a) = &attributes.get(0) { + if let Some(a) = attributes.first() { property = property.vertical_merge(VMergeType::from_str(&a.value)?); } else { // Treat as a continue without attribute @@ -47,7 +47,7 @@ impl ElementReader for TableCellProperty { } } XMLElement::VAlign => { - if let Some(a) = &attributes.get(0) { + if let Some(a) = attributes.first() { property = property.vertical_align(VAlignType::from_str(&a.value)?); } } @@ -57,7 +57,7 @@ impl ElementReader for TableCellProperty { } } XMLElement::TextDirection => { - if let Some(a) = &attributes.get(0) { + if let Some(a) = attributes.first() { if let Ok(v) = TextDirectionType::from_str(&a.value) { property = property.text_direction(v); } diff --git a/docx-core/src/xml_builder/macros.rs b/docx-core/src/xml_builder/macros.rs index 7514c5cc3..fe97d264a 100644 --- a/docx-core/src/xml_builder/macros.rs +++ b/docx-core/src/xml_builder/macros.rs @@ -573,7 +573,7 @@ macro_rules! closed_border_el { macro_rules! closed_paragraph_border_el { ($name: ident, $ el_name: expr) => { - pub(crate) fn $name<'a>(mut self, val: &str, space: &str, size: &str, color: &str) -> Self { + pub(crate) fn $name(mut self, val: &str, space: &str, size: &str, color: &str) -> Self { self.writer .write( XmlEvent::start_element($el_name) diff --git a/docx-core/src/xml_builder/mod.rs b/docx-core/src/xml_builder/mod.rs index b5eff06a4..7a8405b37 100644 --- a/docx-core/src/xml_builder/mod.rs +++ b/docx-core/src/xml_builder/mod.rs @@ -27,8 +27,6 @@ use std::str; use xml::common::XmlVersion; use xml::writer::{EmitterConfig, EventWriter, XmlEvent}; -pub use elements::*; - pub struct XMLBuilder { writer: EventWriter>, } diff --git a/docx-core/src/xml_json/mod.rs b/docx-core/src/xml_json/mod.rs index 350de50b4..5e595e247 100644 --- a/docx-core/src/xml_json/mod.rs +++ b/docx-core/src/xml_json/mod.rs @@ -69,14 +69,13 @@ pub struct XmlData { // Get the attributes as a string fn attributes_to_string(attributes: &[(String, String)]) -> String { - attributes - .iter() - .fold(String::new(), |acc, &(ref k, ref v)| { - format!("{} {}=\"{}\"", acc, k, v) - }) + attributes.iter().fold(String::new(), |acc, (k, v)| { + format!("{} {}=\"{}\"", acc, k, v) + }) } // Format the XML data as a string +#[allow(clippy::only_used_in_recursion)] fn format(data: &XmlData, depth: usize) -> String { let sub = if data.children.is_empty() { String::new() @@ -88,8 +87,6 @@ fn format(data: &XmlData, depth: usize) -> String { sub }; - // let indt = indent(depth); - let fmt_data = if let Some(ref d) = data.data { format!("\n{}", d) } else { diff --git a/rust-toolchain b/rust-toolchain index 5d7eb0682..a98f408ee 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.73 \ No newline at end of file +1.82 \ No newline at end of file From 1f9046d2ee5263d566b8306e53fc2d0f2cdd77e1 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Thu, 31 Oct 2024 18:13:59 +0900 Subject: [PATCH 15/25] feat: add comments_json (#773) --- docx-core/src/documents/mod.rs | 7 +++++++ docx-wasm/js/index.ts | 9 ++++++++- docx-wasm/src/doc.rs | 4 ++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docx-core/src/documents/mod.rs b/docx-core/src/documents/mod.rs index b8d505a4c..c476bf450 100644 --- a/docx-core/src/documents/mod.rs +++ b/docx-core/src/documents/mod.rs @@ -652,6 +652,13 @@ impl Docx { serde_json::to_string_pretty(&self).unwrap() } + // Internal: for docx-wasm + pub fn comments_json(&mut self) -> String { + self.reset(); + self.update_dependencies(); + serde_json::to_string_pretty(&self.comments.comments).unwrap() + } + fn reset(&self) { crate::reset_para_id(); } diff --git a/docx-wasm/js/index.ts b/docx-wasm/js/index.ts index 7b0caec28..e9fe6a04c 100644 --- a/docx-wasm/js/index.ts +++ b/docx-wasm/js/index.ts @@ -21,7 +21,7 @@ import { PageMargin, PageOrientationType, } from "./section-property"; -import { DocGridType, DocxJSON } from "./json"; +import { CommentJSON, DocGridType, DocxJSON } from "./json"; import * as wasm from "./pkg"; import { Level } from "./level"; @@ -626,6 +626,13 @@ export class Docx { return JSON.parse(json) as DocxJSON; } + commentsJson() { + const docx = this.createDocx(); + const json = docx.comments_json(); + docx.free(); + return JSON.parse(json) as CommentJSON[]; + } + build() { const docx = this.createDocx(); const buf = docx.build(this.hasNumberings); diff --git a/docx-wasm/src/doc.rs b/docx-wasm/src/doc.rs index b1b88282a..7e2ec458b 100644 --- a/docx-wasm/src/doc.rs +++ b/docx-wasm/src/doc.rs @@ -216,4 +216,8 @@ impl Docx { pub fn json_with_update_comments(&mut self) -> String { self.0.json_with_update_comments() } + + pub fn comments_json(&mut self) -> String { + self.0.comments_json() + } } From 0e4f6cd60a8c5ad404d2403292d21ef6a036d86a Mon Sep 17 00:00:00 2001 From: bokuweb Date: Thu, 31 Oct 2024 18:39:40 +0900 Subject: [PATCH 16/25] chore: published (#775) --- docx-wasm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docx-wasm/package.json b/docx-wasm/package.json index 254e8e514..eebeb5bb4 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -1,6 +1,6 @@ { "name": "docx-wasm", - "version": "0.4.18-rc12", + "version": "0.4.18-rc13", "main": "dist/node/index.js", "browser": "dist/web/index.js", "author": "bokuweb ", From 4c7bd61ce960115c921875171a8632acc636bad3 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Thu, 31 Oct 2024 22:28:07 +0900 Subject: [PATCH 17/25] fix: rc16 (#777) --- docx-core/src/documents/mod.rs | 2 +- docx-wasm/js/index.ts | 2 +- docx-wasm/package.json | 8 ++++--- docx-wasm/pnpm-lock.yaml | 39 ++++++++++++++++++---------------- rust-toolchain | 2 +- 5 files changed, 29 insertions(+), 24 deletions(-) diff --git a/docx-core/src/documents/mod.rs b/docx-core/src/documents/mod.rs index c476bf450..74c30e6fb 100644 --- a/docx-core/src/documents/mod.rs +++ b/docx-core/src/documents/mod.rs @@ -656,7 +656,7 @@ impl Docx { pub fn comments_json(&mut self) -> String { self.reset(); self.update_dependencies(); - serde_json::to_string_pretty(&self.comments.comments).unwrap() + serde_json::to_string_pretty(&self.comments).unwrap() } fn reset(&self) { diff --git a/docx-wasm/js/index.ts b/docx-wasm/js/index.ts index e9fe6a04c..e021899d1 100644 --- a/docx-wasm/js/index.ts +++ b/docx-wasm/js/index.ts @@ -630,7 +630,7 @@ export class Docx { const docx = this.createDocx(); const json = docx.comments_json(); docx.free(); - return JSON.parse(json) as CommentJSON[]; + return JSON.parse(json) as { comments: CommentJSON[] }; } build() { diff --git a/docx-wasm/package.json b/docx-wasm/package.json index eebeb5bb4..9d2e17b50 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -1,6 +1,6 @@ { "name": "docx-wasm", - "version": "0.4.18-rc13", + "version": "0.4.18-rc16", "main": "dist/node/index.js", "browser": "dist/web/index.js", "author": "bokuweb ", @@ -22,8 +22,10 @@ "copy:bindings": "cpy '../docx-core/bindings' './js/json'", "prepublishOnly": "pnpm run build" }, - "overrides": { - "**/serialize-javascript": "6.0.2" + "pnpm": { + "overrides": { + "serialize-javascript": "6.0.2" + } }, "devDependencies": { "@types/file-saver": "2.0.7", diff --git a/docx-wasm/pnpm-lock.yaml b/docx-wasm/pnpm-lock.yaml index b73121554..5f7be7287 100644 --- a/docx-wasm/pnpm-lock.yaml +++ b/docx-wasm/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + serialize-javascript: 6.0.2 + importers: .: @@ -25,7 +28,7 @@ importers: version: 2.0.5 html-webpack-plugin: specifier: 5.5.3 - version: 5.5.3(webpack@4.46.0) + version: 5.5.3(webpack@4.46.0(webpack-cli@5.0.1)) jest: specifier: 28.1.3 version: 28.1.3(@types/node@22.8.2) @@ -37,7 +40,7 @@ importers: version: 0.7.0 ts-loader: specifier: 9.4.2 - version: 9.4.2(typescript@4.9.3)(webpack@4.46.0) + version: 9.4.2(typescript@4.9.3)(webpack@4.46.0(webpack-cli@5.0.1)) typescript: specifier: 4.9.3 version: 4.9.3 @@ -2768,8 +2771,8 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} serve-index@1.9.1: resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} @@ -3962,17 +3965,17 @@ snapshots: '@webassemblyjs/wast-parser': 1.9.0 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.0.1)(webpack@4.46.0)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0))(webpack@4.46.0(webpack-cli@5.0.1))': dependencies: webpack: 4.46.0(webpack-cli@5.0.1) webpack-cli: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.0.1)(webpack@4.46.0)': + '@webpack-cli/info@2.0.2(webpack-cli@5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0))(webpack@4.46.0(webpack-cli@5.0.1))': dependencies: webpack: 4.46.0(webpack-cli@5.0.1) webpack-cli: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.0.1)(webpack-dev-server@3.11.3)(webpack@4.46.0)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0))(webpack-dev-server@3.11.3(webpack-cli@5.0.1)(webpack@4.46.0))(webpack@4.46.0(webpack-cli@5.0.1))': dependencies: webpack: 4.46.0(webpack-cli@5.0.1) webpack-cli: 5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0) @@ -5276,7 +5279,7 @@ snapshots: relateurl: 0.2.7 terser: 5.36.0 - html-webpack-plugin@5.5.3(webpack@4.46.0): + html-webpack-plugin@5.5.3(webpack@4.46.0(webpack-cli@5.0.1)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -6671,7 +6674,7 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-javascript@4.0.0: + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -6989,13 +6992,13 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@1.4.6(webpack@4.46.0): + terser-webpack-plugin@1.4.6(webpack@4.46.0(webpack-cli@5.0.1)): dependencies: cacache: 12.0.4 find-cache-dir: 2.1.0 is-wsl: 1.1.0 schema-utils: 1.0.0 - serialize-javascript: 4.0.0 + serialize-javascript: 6.0.2 source-map: 0.6.1 terser: 4.8.1 webpack: 4.46.0(webpack-cli@5.0.1) @@ -7063,7 +7066,7 @@ snapshots: trim-newlines@4.1.1: {} - ts-loader@9.4.2(typescript@4.9.3)(webpack@4.46.0): + ts-loader@9.4.2(typescript@4.9.3)(webpack@4.46.0(webpack-cli@5.0.1)): dependencies: chalk: 4.1.2 enhanced-resolve: 5.17.1 @@ -7209,9 +7212,9 @@ snapshots: webpack-cli@5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.0.1)(webpack@4.46.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.0.1)(webpack@4.46.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.0.1)(webpack-dev-server@3.11.3)(webpack@4.46.0) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0))(webpack@4.46.0(webpack-cli@5.0.1)) + '@webpack-cli/info': 2.0.2(webpack-cli@5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0))(webpack@4.46.0(webpack-cli@5.0.1)) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.0.1(webpack-dev-server@3.11.3)(webpack@4.46.0))(webpack-dev-server@3.11.3(webpack-cli@5.0.1)(webpack@4.46.0))(webpack@4.46.0(webpack-cli@5.0.1)) colorette: 2.0.20 commander: 9.5.0 cross-spawn: 7.0.3 @@ -7225,7 +7228,7 @@ snapshots: optionalDependencies: webpack-dev-server: 3.11.3(webpack-cli@5.0.1)(webpack@4.46.0) - webpack-dev-middleware@3.7.3(webpack@4.46.0): + webpack-dev-middleware@3.7.3(webpack@4.46.0(webpack-cli@5.0.1)): dependencies: memory-fs: 0.4.1 mime: 2.6.0 @@ -7266,7 +7269,7 @@ snapshots: supports-color: 6.1.0 url: 0.11.4 webpack: 4.46.0(webpack-cli@5.0.1) - webpack-dev-middleware: 3.7.3(webpack@4.46.0) + webpack-dev-middleware: 3.7.3(webpack@4.46.0(webpack-cli@5.0.1)) webpack-log: 2.0.0 ws: 6.2.3 yargs: 13.3.2 @@ -7313,7 +7316,7 @@ snapshots: node-libs-browser: 2.2.1 schema-utils: 1.0.0 tapable: 1.1.3 - terser-webpack-plugin: 1.4.6(webpack@4.46.0) + terser-webpack-plugin: 1.4.6(webpack@4.46.0(webpack-cli@5.0.1)) watchpack: 1.7.5 webpack-sources: 1.4.3 optionalDependencies: diff --git a/rust-toolchain b/rust-toolchain index a98f408ee..5d7eb0682 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.82 \ No newline at end of file +1.73 \ No newline at end of file From 55961d6f9f47e5ec54c7edcd0205e2be2eda6ab2 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Fri, 1 Nov 2024 13:08:31 +0900 Subject: [PATCH 18/25] Escape style name (#779) * fix: escape some feild * rc18 --- docx-core/src/documents/elements/based_on.rs | 5 ++++- docx-core/src/documents/elements/link.rs | 5 ++++- docx-core/src/documents/elements/paragraph_style.rs | 5 ++++- docx-core/src/documents/elements/run_style.rs | 5 ++++- docx-core/src/documents/elements/style.rs | 3 ++- docx-wasm/package.json | 2 +- 6 files changed, 19 insertions(+), 6 deletions(-) diff --git a/docx-core/src/documents/elements/based_on.rs b/docx-core/src/documents/elements/based_on.rs index 60b6a90f3..dbba3e749 100644 --- a/docx-core/src/documents/elements/based_on.rs +++ b/docx-core/src/documents/elements/based_on.rs @@ -1,6 +1,7 @@ use serde::{Serialize, Serializer}; use crate::documents::BuildXML; +use crate::escape::escape; use crate::xml_builder::*; #[derive(Debug, Clone, PartialEq)] @@ -10,7 +11,9 @@ pub struct BasedOn { impl BasedOn { pub fn new(val: impl Into) -> BasedOn { - BasedOn { val: val.into() } + BasedOn { + val: escape(&val.into()), + } } } diff --git a/docx-core/src/documents/elements/link.rs b/docx-core/src/documents/elements/link.rs index 9889455de..73be4f5e9 100644 --- a/docx-core/src/documents/elements/link.rs +++ b/docx-core/src/documents/elements/link.rs @@ -1,6 +1,7 @@ use serde::{Serialize, Serializer}; use crate::documents::BuildXML; +use crate::escape::escape; use crate::xml_builder::*; #[derive(Debug, Clone, PartialEq)] @@ -10,7 +11,9 @@ pub struct Link { impl Link { pub fn new(val: impl Into) -> Link { - Link { val: val.into() } + Link { + val: escape(&val.into()), + } } } diff --git a/docx-core/src/documents/elements/paragraph_style.rs b/docx-core/src/documents/elements/paragraph_style.rs index 31ccebada..49c06aede 100644 --- a/docx-core/src/documents/elements/paragraph_style.rs +++ b/docx-core/src/documents/elements/paragraph_style.rs @@ -1,6 +1,7 @@ use serde::{Serialize, Serializer}; use crate::documents::BuildXML; +use crate::escape::escape; use crate::xml_builder::*; #[derive(Debug, Clone, PartialEq)] @@ -25,7 +26,9 @@ impl Default for ParagraphStyle { impl ParagraphStyle { pub fn new(val: Option>) -> ParagraphStyle { if let Some(v) = val { - ParagraphStyle { val: v.into() } + ParagraphStyle { + val: escape(&v.into()), + } } else { Default::default() } diff --git a/docx-core/src/documents/elements/run_style.rs b/docx-core/src/documents/elements/run_style.rs index 0f69c0594..67417775b 100644 --- a/docx-core/src/documents/elements/run_style.rs +++ b/docx-core/src/documents/elements/run_style.rs @@ -1,6 +1,7 @@ use serde::{Serialize, Serializer}; use crate::documents::BuildXML; +use crate::escape::escape; use crate::xml_builder::*; #[derive(Debug, Clone, PartialEq)] @@ -18,7 +19,9 @@ impl Default for RunStyle { impl RunStyle { pub fn new(val: impl Into) -> RunStyle { - RunStyle { val: val.into() } + RunStyle { + val: escape(&val.into()), + } } } diff --git a/docx-core/src/documents/elements/style.rs b/docx-core/src/documents/elements/style.rs index 8eb53a92b..d4bd3f1ac 100644 --- a/docx-core/src/documents/elements/style.rs +++ b/docx-core/src/documents/elements/style.rs @@ -1,6 +1,7 @@ use serde::Serialize; use crate::documents::BuildXML; +use crate::escape::escape; use crate::types::*; use crate::xml_builder::*; use crate::StyleType; @@ -47,7 +48,7 @@ impl Style { pub fn new(style_id: impl Into, style_type: StyleType) -> Self { let default = Default::default(); Style { - style_id: style_id.into(), + style_id: escape(&style_id.into()), style_type, ..default } diff --git a/docx-wasm/package.json b/docx-wasm/package.json index 9d2e17b50..1814bcdbf 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -1,6 +1,6 @@ { "name": "docx-wasm", - "version": "0.4.18-rc16", + "version": "0.4.18-rc18", "main": "dist/node/index.js", "browser": "dist/web/index.js", "author": "bokuweb ", From 74a30b4c2a8abf31699fb68f190e2c276337c81a Mon Sep 17 00:00:00 2001 From: bokuweb Date: Fri, 1 Nov 2024 13:14:58 +0900 Subject: [PATCH 19/25] fix: escape some feild (#778) * fix: escape some feild * rc18 From cd231780738067cf6c90b531aead27a087484ac6 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Fri, 1 Nov 2024 13:37:39 +0900 Subject: [PATCH 20/25] spec: add reg (#774) * spec: add reg * fix * fix * fix --- .github/workflows/ci.yml | 14 +++- docx-wasm/export-png/.gitignore | 1 + docx-wasm/export-png/.keep | 0 docx-wasm/export-png/index.mjs | 29 +++++++ docx-wasm/export-png/makefile | 30 +++++++ docx-wasm/export-png/png/.keep | 0 docx-wasm/export-png/tsconfig.json | 70 ++++++++++++++++ docx-wasm/package.json | 3 +- vrt/index.js | 13 --- vrt/package.json | 14 ---- vrt/pdf.js | 25 ------ vrt/pnpm-lock.yaml | 112 -------------------------- vrt/screenshot/expected/alignment.png | Bin 7555 -> 0 bytes vrt/screenshot/expected/indent.png | Bin 25021 -> 0 bytes vrt/screenshot/expected/size.png | Bin 9906 -> 0 bytes 15 files changed, 145 insertions(+), 166 deletions(-) create mode 100644 docx-wasm/export-png/.gitignore create mode 100644 docx-wasm/export-png/.keep create mode 100644 docx-wasm/export-png/index.mjs create mode 100644 docx-wasm/export-png/makefile create mode 100644 docx-wasm/export-png/png/.keep create mode 100644 docx-wasm/export-png/tsconfig.json delete mode 100644 vrt/index.js delete mode 100644 vrt/package.json delete mode 100644 vrt/pdf.js delete mode 100644 vrt/pnpm-lock.yaml delete mode 100644 vrt/screenshot/expected/alignment.png delete mode 100644 vrt/screenshot/expected/indent.png delete mode 100644 vrt/screenshot/expected/size.png diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 22ce2be97..d13652c0e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,6 +65,9 @@ jobs: build-wasm: runs-on: ubuntu-latest + defaults: + run: + working-directory: ./docx-wasm steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -77,7 +80,16 @@ jobs: - run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - run: rustup target add wasm32-unknown-unknown - run: npm install -g pnpm - - run: cd docx-wasm && pnpm install && pnpm wasm-pack:node && pnpm wasm-pack:dev && tsc -p tsconfig.node.json && pnpm test + - run: pnpm install && pnpm wasm-pack:node && pnpm wasm-pack:dev && tsc -p tsconfig.node.json && pnpm test + - name: screenshot + run: pnpm screenshot + - uses: reg-viz/reg-actions@v2 + with: + github-token: '${{ secrets.GITHUB_TOKEN }}' + image-directory-path: 'docx-wasm/export-png/png' + threshold-rate: 0.06 + enable-antialias: true + matching-threshold: 0.5 lint: name: Clippy diff --git a/docx-wasm/export-png/.gitignore b/docx-wasm/export-png/.gitignore new file mode 100644 index 000000000..7a399be39 --- /dev/null +++ b/docx-wasm/export-png/.gitignore @@ -0,0 +1 @@ +png/*.png \ No newline at end of file diff --git a/docx-wasm/export-png/.keep b/docx-wasm/export-png/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/docx-wasm/export-png/index.mjs b/docx-wasm/export-png/index.mjs new file mode 100644 index 000000000..9d54f3045 --- /dev/null +++ b/docx-wasm/export-png/index.mjs @@ -0,0 +1,29 @@ +import fs from "fs"; +import cp from "child_process"; +import path from "path"; +import { fileURLToPath } from "node:url"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const fileType = "png"; + +const inputDir = process.env.OUTPUT_DIR ?? process.exit(1); +const files = fs.readdirSync(inputDir); + +for (const file of files) { + if (/\.docx$/.test(file)) { + console.log(file); + const spawn = cp.spawnSync("make", [ + "run", + `INPUT=${path.join(inputDir, file)}`, + `OUTPUT=${path.join( + __dirname, + "png", + file.replace(/\.docx$/, `.${fileType}`) + )}`, + ]); + console.log(spawn.stdout.toString()); + //break; + } +} diff --git a/docx-wasm/export-png/makefile b/docx-wasm/export-png/makefile new file mode 100644 index 000000000..af9e09021 --- /dev/null +++ b/docx-wasm/export-png/makefile @@ -0,0 +1,30 @@ +# docx directory +OUTPUT_DIR=../../output/js + +# For more information for this image, see https://github.com/yuntara/docx-png-converter +REPOSITORY_BASE:=yuntara +IMAGE:=${REPOSITORY_BASE}/docx-png-converter + +# PNG dpi +DENSITY:=150 + +pull: + docker pull ${IMAGE} + +run: + cat ${INPUT} | docker exec -i docx-png-converter bash /root/run.sh ${DENSITY} > ${OUTPUT} + +start: + make stop + make pull + docker run --name docx-png-converter -itd ${IMAGE} /bin/bash + +convert-all: + make start + OUTPUT_DIR=${OUTPUT_DIR} node index.mjs + make stop + +stop: + - docker kill docx-png-converter + - docker rm docx-png-converter + diff --git a/docx-wasm/export-png/png/.keep b/docx-wasm/export-png/png/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/docx-wasm/export-png/tsconfig.json b/docx-wasm/export-png/tsconfig.json new file mode 100644 index 000000000..5dcbbbcf9 --- /dev/null +++ b/docx-wasm/export-png/tsconfig.json @@ -0,0 +1,70 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ + "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + // "lib": [], /* Specify library files to be included in the compilation. */ + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + // "outDir": "./", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true, /* Skip type checking of declaration files. */ + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + } +} diff --git a/docx-wasm/package.json b/docx-wasm/package.json index 1814bcdbf..213a8b417 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -10,6 +10,7 @@ "wasm-pack:web": "wasm-pack build --release --out-dir dist/web/pkg && rm dist/web/pkg/.gitignore", "wasm-pack:node": "wasm-pack build --release --out-dir dist/node/pkg --target nodejs && rm dist/node/pkg/.gitignore", "wasm-pack": "run-s wasm-pack:*", + "screenshot": "cd export-png && make convert-all", "tsc:web": "tsc -p tsconfig.web.json --sourcemap", "tsc:node": "tsc -p tsconfig.node.json --sourcemap", "tsc": "run-s tsc:*", @@ -53,4 +54,4 @@ "module": "dist/web/index.js", "types": "dist/web/index.d.ts", "dependencies": {} -} \ No newline at end of file +} diff --git a/vrt/index.js b/vrt/index.js deleted file mode 100644 index 1d4a5622d..000000000 --- a/vrt/index.js +++ /dev/null @@ -1,13 +0,0 @@ -const glob = require("glob"); -const path = require("path"); -const createPDF = require("./pdf"); - -glob( - path.join(__dirname, "..", "./docx-core/tests/output/**/*.docx"), - {}, - async (err, files) => { - for await (file of files) { - await createPDF(file, path.join(__dirname, "./screenshot/actual")); - } - } -); diff --git a/vrt/package.json b/vrt/package.json deleted file mode 100644 index ff0c83bc2..000000000 --- a/vrt/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "docx-rs", - "version": "1.0.0", - "main": "index.js", - "repository": "https://github.com/bokuweb/docx-rs.git", - "author": "bokuweb ", - "license": "MIT", - "devDependencies": { - "libreoffice-convert": "1.3.5" - }, - "dependencies": { - "glob": "^8.0.0" - } -} diff --git a/vrt/pdf.js b/vrt/pdf.js deleted file mode 100644 index ba5e5970c..000000000 --- a/vrt/pdf.js +++ /dev/null @@ -1,25 +0,0 @@ -const libre = require("libreoffice-convert"); -const path = require("path"); -const fs = require("fs"); - -const extend = "png"; - -module.exports = (docxPath, outputDir) => - new Promise((resolve, reject) => { - const filename = path.basename(docxPath, ".docx"); - const docxFile = fs.readFileSync(docxPath); - libre.convert(docxFile, extend, undefined, async (err, done) => { - if (err) { - reject(err); - } - try { - fs.mkdirSync(outputDir, { recursive: true }); - } catch (e) { - if (e.code !== "EEXIST") { - reject(e); - } - } - fs.writeFileSync(path.join(outputDir, `${filename}.${extend}`), done); - resolve(); - }); - }); diff --git a/vrt/pnpm-lock.yaml b/vrt/pnpm-lock.yaml deleted file mode 100644 index 1c456c4de..000000000 --- a/vrt/pnpm-lock.yaml +++ /dev/null @@ -1,112 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - glob: - specifier: ^8.0.0 - version: 8.1.0 - devDependencies: - libreoffice-convert: - specifier: 1.3.5 - version: 1.3.5 - -packages: - - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - libreoffice-convert@1.3.5: - resolution: {integrity: sha512-nWwToElKATfDoHtbXJALdGoZfQdCNiITvSExVtRQBA32ZP9uwSaw7tDpBgeedJMWWnyoUZU1FWpPF6o4d13Pjw==} - engines: {node: '>=6'} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - -snapshots: - - async@2.6.4: - dependencies: - lodash: 4.17.21 - - balanced-match@1.0.2: {} - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - fs.realpath@1.0.0: {} - - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - libreoffice-convert@1.3.5: - dependencies: - async: 2.6.4 - tmp: 0.2.3 - - lodash@4.17.21: {} - - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - tmp@0.2.3: {} - - wrappy@1.0.2: {} diff --git a/vrt/screenshot/expected/alignment.png b/vrt/screenshot/expected/alignment.png deleted file mode 100644 index 3022f9ba11e12e1b4fd502ed0d63726ddd90a013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7555 zcmeI1Yfw{X9>$Nx8Woi~y57P?$0@EiKu~T0&nj-w1)*vc6@;`A&;`P#SO^dj7Z<5Q zh?iQ3A<0&%(INyIE{0oxVxn9^Eh+?oXrhTBKsW>>mqW5IPIqSa!+zUOoqRcS=FB7fiSvz}^2W;Kx;zmf+i^_xImhv-Q-~6}RIk2kIB?K8)hG0+FxU8$N!wLXKk_5;Yp6%LVW3Ltf_KTDdWyWd=t!EF4u@x_kY9ow z8L$;$>YOo93;p7M%HxCpKmL$dLbsX>Jsq_}X)noxWGN%mqv?E-u-gYmW!&5rS;(`Y z8Wk8A*DzkM^P7HlR4USN@wEegEwd?ou@E8EjZo{^1KZGm)RbnE`Z|(aH{`P%MkmN! zJEdK%NS$~#88u2_7eTXm9FR1GGPoJGSr(Lfu7Y2GbSUsvHORVtp&? zHqf$9?ge>HBRbhh%yUjVp-<#l1~sc~*)o4kK?+rcQ{82gPL;d_l_b|fT>J$cqo6?> zB9!6vjpX(fAq9zorZks`y;B2;0!F8YnA&V@$aaJvipTtThskS9>Y2ezUAe9+V%sK< z#)&pmFSgC#=HjxvpD35 zISlq?2O7G(L)B{}4m{v+Txd&Wd-ZzZ%y3o@_6Rpa&0?QtFlkezMAPJ3)pt>(b(^^q zr4rp`oyda&-w&lL97lBXp~~D9o)3rv?xxD0m*W)X7j*%X?AO|*>FDgK%01hl9!>jb>IFfNy$N^l3TGos=lsQ+`Y5Ib|*8#v<0 z2E{CiBf>2ABMfF}IQq<{GN6ruZ;JK$|XOqar?!W~RLRK2I$id7){=x;n)g z+tx@nF$2B!7+5_?lbQ(|4>*NzamW70K{JEig}^9}Oy>ff#dJXN!09LMLR4JflBE28~* zhi3YT%x>&yUgpSs!`{BA8Q#N$ z;!+yP=qoI|c1~B)FY=syNDX7Prdvtt=5{As+>&B#0&#AF(s@`XPk|(?%&T{#t4NH# z%?SLct8Hs{Tei1`lRoUH{AQD+rY{E1bOfn_{M*vQ3kV<^iZu#~ib3u@z)c#7-O0Y8~ed|F(@`<|gIxZ$|BcTws8cj7@2zQ;OZoTN7 zfUA1L@r=lrjJTL<{+3Z;QMB&AjozJ_HCEHtAn62w5*V9s<@@wo<~_(B+t#fg;3S(*_Am1t^bF~6$r`O%yDHZFYmu65)B`CX?@F06co}

|_-cZy`H zTubcTV{EOPEs7+HE1@Va=j(Zr-qoGG$2)OKqN}AJT`2@@+N>64uw&5qL7*_h`>x-VkUTS#?#eSi<4bNt>=B*$DBg>~HxO2*xkdeL z>S+j5ClJ$yy)rVnvcI!xiQp<FXf- zzHBmV=20in6TG<`K}a;qOGQPxb)-xX<7IvANcV$>&kbBI=$^B={k&u+U?*TFU?*TF zU?*TFU?*TFU?*TFU?*TFU?*TFU?*TFU?=eZCm<0+316mUhhMAbf}fbs!9R!Zuh>V( F`4>QpWS#&3 diff --git a/vrt/screenshot/expected/indent.png b/vrt/screenshot/expected/indent.png deleted file mode 100644 index ca69f6b22737b302e141fdb368cb1f42021747b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25021 zcmeF3S6I_o+wOIAWE>G@bSy|4D=G-mr36M%8KkKQ5g{Pbq=Xhi52z@N(nOk+5S30K zASDn=P*GY)qCjW?B2oeg5ClU>fb13Kb>8p&u5Taglf6&&DOWD?U+cfhb3ecP&f}|Q zhP!`0^z)W2TXq}$dGY#|E!)m+*|PojpLT%1Xay6*wrp{DXms)Xji9XA;hiPNEZ=H; zzOHxv+SUEgvqyeEoq6Pt&(a33nI4?&q=Ml1BcW(SF{^=AV7AT> zY&3xfda*@NQws%;@j`wpc$$+@TefZ4@|(fEty{J{Is69v{lhP}w`{q0=O^&Me<*K1 z2tIi52hlBCu8RKukN^Lf5#1V<_wKETtSxF%6;m`>Z7io&Xzy4c8pUmuAi&(@GaXxdxcD- zP-sy5#`pdKlh->!C^c>!FRN5$LWiDnzq%Odho{t;Z`-x^_H8l2Dm8-DB;W|<7{lZ1 zoCv`>FW9)=jdcxncGq(2>s)UeG*Z&OYdQTmYW<$q_JgSs_PnmN;)IB`F`9axtp#LK zIiYA|rA5<X8t(rTxmg1I4boV-k*i2%oQ*N+u}r;X0u6j})qNP* z2P^NKNVB(VWWzYc;a_9yZ-5zY!piB6?xg83Rw*Hp_G@1b^wIerl)`=AvLm=ydrN9a zZ)GtSSLgng-x;D)LBy=Qmn#N?mgVvrxTW6cS~C||LUT(B-3K<#7?=xsvrXozV4b+! zSjL+&)URvfgW>9zis`S-v(lQ@oFOI3&01Z)gTYMnfd-e11(`k>Icq9md|iKSR2XMeAN7gf@|>PtgD#n|0w zoH*lMB=C|HqxI@Vafb^G(=YL7{j#!1VbYE-xBnnYdWfKC6@<)s*xNLY?)EMeUzt7_ z{&|~hp^m6lt!DUACB|}jB-9((BH?;NJYuC8YY1UoqXiNd(eBaG0flx;6=^h)4Sz+( zV)pWlKn5xhxzH}xM}ql&*vH+e%}F2K$q8SsXD5w0r@^cu=IA3!c-CJ>;|uLJ7Sj6A zSre%?xWzi=MShcDy=+5A4(;!0zwj)rM{a5I$()(a?2Xb&iZ%_*>ICooO0@pk%ewU? zx}0KxHN4fW0Bwb7V}PXxrF%D_U{R;|=V9zzs!9&aH`%CTw!B#k>($8Zty9gIjWN{y z^6OFiOv<}T%=%1S<@{$6{aW6qgzy__12sf$Xd(-t5Gi^d6BB$q?lIq+QLjL zZ|=ng_+;TWEA3}6_UC8DibXQtUWiySz#d>NxBY_dYnW6=TKk{*`wfkCI1ou^>+o+C z;d!JDwJT|kt>t)aHxJq7x~j;q-t!{TH=^%*E-r(WV@B_r=+~uGadqMRS(`Ft`_`K$ zA8lz?ISf?`9P({tz29qI56PLaGOC$ZWnif*ZdeF-&AEWhdq;cXjM{d?kC{8f&rEs=3RI4*k;&PhC zLD=Axv~@Qe@?hZ1!QMQx!H%$-HadSjTuE+DG?XE{5Uuc5W5jpn8AIY#+w~xx`)6ys z8(V}c`nMlMjT>zTC@FKc!!lK^GNC=tJe4&^I=rSdq6Qo=NA8O;>h~x@SfJMG|#)p6*u;G!x;tA^1kB=wEwT;kf`9-bQT&%sCH^3X|MOO^{ zo^|zEywhA{5U(3U{K!6Wh9g?<=8=HX8A>#BjOyz|azmbJ|0xOAE`7Z;=%LgfU&X{P zc+;0v)Le(^D0w73h^d4|UDeyW9`dlI0$=voxqju6QnSIq){|i0Gj@z;#*8}HNLAzC81A0wot4H+hB`gv<>3RiKIb6;ItD+g=pKgtsd@q;J?^H5 zr3R?6Q{>|!WtMAO&n#ppBD-AEM?<8XQztYO43H`pCy&am{#pHYhvW_U(yHqyrHgZc z2i4qy1K|m%yzYI?$iC;fVin}bjKjvJ^=|TD8<{eFz)+our1DRByD!_=OjqcW^Jf2J znD5{F1Xn+5;$vl)DsVm-V*aVXj>$f_>-ev?Z?e=yR)_x3E?f=nF(Q6iv&Y?>kmosQ zNjUxVG3*d+ppCP``zMMe4;(63Vn`j+)huC;=| zXs73cZ@>-lu2^GGO9NbTmqf(KbG6#|t~`j@Q3LloII+1B_HEnM8n}n{Q*f@hGHv?^ zCN@!(Lzud%6h(fwZJm@(R2()5zx2s)arZUiutYNdQcF4q^)kk7&^rp}yaL69pvxQ; zk}uwKD60ALM83EAAVqhvlQ;S4ayW%H>)TB5v-HV{(5 zJLJns%u}2Fk~~`+WPRRjrP+nfS_VGswMCG58;{Q~u0AD1>wSC4{g^WJS3OCwUSVbZ z(g9f2X9kMplo8^oT0GQsO`2PW|NYs(UtKRHr0lbu{i*}FG$^Mr{!=w1z?$mI!Gs=H z(HSgXEsnf4!Em-|E%jI=Hcy;|OHlkGSY1|iGvRlDVa5vVB+Ee{9UbF0fx@I;39>ks?6$(Z_CyiGMD zoKF*3i``01dEFV(9dOh!zoAn>Dg9@)v1rv}M>M^`Nk}NwOs8DHPD^Sq1;H{4N`-*Jtk}XFQcc_w^!3AmK4=)zLbc?G zGls9#b(rLz9m(ry2M1b7>Col&6t@4!_2ua{m$sJqrwN^xlQTmSv{{Aji)78RvI^JO zH3j1R$M~h^ODcUKE`xN)@=&Gr#>yD>K*Q%Bk23T%uQOX1YesVFXtXVi^6f3*aIh8f zW8NAaUk!&bPe;3T_@weJ`tV)O5r@Ef{!{=CwT6Vw&Xj@n>%{ch&wPd;9D=oq&77+- zhTx~`%Q{~PXYILgaa;h4BQYu5?6+nWX*aVkT1L*Swl%cFF4?uuBJ8~(nM3~RW>;LO zZrQzAnFfoo(MAPUvq#5@?778IT4jsV)Mag5xh$Ux5Op`F!iz02%oF`<5oRXS+tpNg z;~lrnatC@%Xc=ZLuUlnoF#VIpW@{4k>{EJ(J5(cxW3z~k+2)Fo>b3I9$!$)Z_U-m< zTi=3!s2=Gq&hLIox#M-4vhSlwg6=tlg*|L=%$A*g_=K=}YSp`{Ed9wld@+;jk0oSe z$rA{->ZyAC9)Uhqd+PcIoIZ%hAyS&voX@e>i;RU^J+3QYX39bi?mS|M*D}cTyX`w@&N*GdzC!>~Atg9GA?x96w?4#>HomJT9ch4)cPtUPaq%~cfbOVDJ z@FSgJuDM6__yxxsjOct24qmkI4(qVRXw~Y+4MOicLzQ?4_sH92c9+;85t*Rd z>jjBMyDRh}D+}YgtP+|hx{w$zI@E<0UN0qAV2v-`czNRo(KjkzK+WR-u@y-@)@K(A zhpe4)INV&eaJ$pw4BFdZ{{jBb3Ip2@-gCZ)u-~d+wC9#zC11H!%7QwT%EXRK$i=As z(GR`de&WrWJ)X~Ap4<}mEMA)67T$AK`yS!Du1%FlACRM7d`@+J(OL6dt+1F{;{!W$ z##eWypD#$~y11#^a|f1)Ijk3?I{%`2q6>@(W0aXoHwcS=%=L{~?}*Tj>IQ+S1qH>9 za69Lf;#Diwvr{1)6qvE z^&#)}W?yYwL~}}HZyzB0Jl7SSeQF?9glpR1@f=*z_k7FG^eP4_M3Y9{d(*p-%aT*l zACsWoyo+9})8&k2c;Jfqj&m}jW7W+udc3I|wn*K?dFNn;u%dJ%{Z4;QeXJX-vqKi& zZ*>_}Q(&!FM%HG8Es|*n41b8XbK+F15uOlSraN;+98XHZT6hQFS(?X-^}1Ht%D7~l zy196}fviC<(VostVnuHkt4Yz#(>ABug|ALvO*MzB!hf=jS`uyYPSZZ9o|_9ND9)CV z0;*}N<#?)T==1UQ9qa!gOOUP7fjtxHlo5&!r=iVbaZ9W24JEjO_-LlH%__-$Lj{kf zIuC6qyJ-au2h#DcsVZYjFY%6V%H869VS@%8C&kMeX7O~EE2&{qQ^-iU_c=4Nb7yz6 zDsAb?N9gm<(i)sz!l&w*mWRb|_6j$q%EW}2&dk-u8D}M|`MB0=m!B#19Adrp>UdIU z6X$z#Q+H4Jj_|XGb`{fBQH$%?C_2%1p#`+v@d*Fa`8cqC{P&$3YO4|4R zuUvzl5wC7}5hhp@6fI^JPq4UsDr>E4XItoaZVIJcC=H_Xblrmavo&Qk%4O2bf5brZ zvx%JGBgj4#Ry{;3ow*gcsv}+G@0pPlgqWy-XG#XEEHy5V*r0t|B)Hw}i|^TriiGiJ zyi;SrPl6v9Me)W@G4z3O*xxX@wn!~wtFr?-P8IZ&kq~lS%92FQm*&zYmA07KLr^Bl zWHEgDD$|WKebv={sKkD-eN$;T_Wfzo!7s>3#XpPxS~A!nJRf<}i%BxO2A2|yI`TZ$ z1BYAmNU?*_JQ+E@%-+F4gLtfnwEtC9;z|7oPADT2q3=eosmC`upwc|lkd4Ah6x6pc zNamm#pI61+M*0~vCoY&h5b6UYZ@NHfWmu>Y>T)u$aUMVnyyv9LhfkM`pCW6$d@q!m zZR`cOff-KXfON#hB8H8vAZXWei2U9r5>tOMom!#;UDffkgoE`{Vy64`J&)uGCSy8osvt$VSe;73mZ2G&U?uR5_Tp zIjM}<3@n9zurF$G2E3tN>sj*CeXu|n$~nAzF@;N9`4V$rdrJXi){Wcb`pK$mfQ?X? zs)+DElZN9mkdk}_Rd-odXx2=q$z2ceotJ{iLM8E8uxL%zghdW6-N(VbZ!#thor>N* z8P>h8h#h8-?98k@}#o}^96na0h z(~-u^lLq>AVe)}Ybl_5PB#{)?jfWXO(S3Lp-8D3mZRVx@i6HngZ63k9P)53%|JJ)c z`&+IYIk)s1WPj(v!LI5JxdE`yL^%fCo{kL1ceP7Ty<->RmgawH5KTF>@Af})@(N6b zs`|;pb>8>VT~N2JkG#3s5N5GQA~5TvXr$j~>P}pOD4g*5!7i5XoW!1|4*Lmypm6lN z;C*aL^p?Y;efw8Yi}kjr;%wvMM*rwp%SyU4&YF6mJ6{Txdm(ix_7-jxR#^(CXHC0p zYLa@--Xm7G-0~iUdqo{pXQ!Llil(tol6hvgL{Mpx1@QXR-y}4iA6AlGZ8I$1tXR@81z5Ja#qZ?_Z0H+U$ z>ZF^SYK?DXbr!2p3}ks9?T{al1fxOw%xg%!G)0U~J6~PJ*#5!BXOv`cLRbue$HFRo z8?1_}N^|MI=Cx)<*P4H`jg8^sQ;4$-Y(JRr-20DFkB7hN5dc9AWhnKueJrw$=q(YR zcIe0ZR19v7dD!y@kCe?;Fih+9$`yd_JMDDnW9L#*(w{AnOpoQEdlBG(>K!XG+%3_e zc?uj{wn$b{K`-n)3+K;5 z1N~Jt^r41}>00;I4f^o?cVa?Hg3a!v*HxL~?i563!>LB92GE59a|zQUqyiIF8;h16 z*VG&n-;4!z9eFu==xkQzi$%G^C#0Lg>Qmj!5Rr>7h{%u51pJcbV*)EI`JYKTQGbqA zm{UyFWHb;nvO-%gBUcdB`do~Iikp1;BZX!A&R3=1;7nL5`<5b%Zi<0txyWX49N)Z9 zoIR}i!dc^WvV+%EVUyFIn!JB3KXGo+y3*F`Dogu7_4NR0}=#$j*&pnE}!*ZVO4bdJtuA3yGA_>T>hRP}pFTN}viIvwxvZ<^s6k{VM||gL#@eJNThhDx zYn$b)En&nJgW4YqXJ}7V*xK+j-`gVfuB1`XprV;*nefN$u|+f^iO1Xg>myZ(mt3Tc zMYJ_@sCED2B$eZro?=voPA>;J?XNaTes(q$|5_*{zE!$3+U69oXDmP|#$>_UF7Axn zD|NANy%CPu09wpSs8S*Fk_sfDWVHd6M*k?JRW@SnNE7L4`I>}U(4Dp_^jIuU(D{dI zm|y$uf*iAR5=`B5y#x}^StG|+MeV4CenOYk<;6w_%&yyNGH#S7Rc(uVmT-&eKfX{v z;s+E(;@}=ZU_l&!;XQ2830+GB7{fcLe$mt!_lLM-m|pwmB{lRE;Tv2YJ{zV8Cz)QS zz?O&ca48x-e<1qAnM}9%ouD#{+O1(Aa+J|A@#WL!nGo30eMOA=m9&W{_KVqri4wz? zrz@IjO3mLbs!`ML=RE?LYlwquTpA3y3v&tVEFUtF#hiM$NZ$YE9Kc&XO~!ZI<7Qf= z5GIhL(CqpYCUbn`;62~%2XDK>qETDb{1!I~N3Z9R4CID$epodAzlh6j@ALsh0Tcr| znZ-JDwT`}J9X%sp-9Vf8!<=GS!AfgPsHF?5%UG#YW56kiwcI2?agz&l^SV`H>J_5& z1#Ejk2p9adF=Uu+S97zs0DHX`K{T}xGY*juzjh*u#%?i{Sojx>|X!7TMgvEL(A*dbCHxS=Ta5dkHj zb(_rmJsxMdk%OWcg6jLy$Z~=Hx*Kw3G#U!XfD+pwPJ)sc-z^k2pVhmQmur{KwTDoS za|EN}5w$!(RA6Vo6VkvSZ;5~MjLHLzXlTQieY94+rPnL~pggKU*V_`nhwEJMB(D*m zqsOjA3gr_7FU3oB0KMpE8vS{t7wH>nx@yJj*N#C198v|!KZsm&_Yg^h8>5Fokw%NL z`}T@;#yi+}J&^8Gh+k4J;pjm+6b8N1#>QK{1hR^X0C_7)MrtoF&ZeAi@pzFK5=9U#}L zco&7JuW=Auk!%%{0ddwXIZ$F*Cghl0_X0fVCX!uR(~JJ(X%Bcy!ok%+|NYsZFWQHG zB%;6amX;9yEvK#%sAF%Mbevm9eJRAOB0DE5Vq+Ca$c;n$b(}(qaKR_fOP6;g&fF47 zv-LCLz7T;F^1vRr)?^qp1$awY5$To3-)~47Dz*rV`c%C;z)jc?zb0(AR@01Z_y8J6 zk5`ImPrc9%5J1A+2M5>o&J9tV|Rz+_9xBhNcX^zqMDc%+@-_cDVDg_84}I z8nJ;u?NfpZdz%biAP`wr+)h`$N*>ue+(IyH*?UU*ku4;~c2&5u?J;jMK43ejV! z&V|=N;(t30fRICV=d5-Y_TMR!G0~>M%BLwT%(wdRFkZ(D%!>j8eld?=MusZO=XKYo&F!aO(lauNmDv$uxO65Hx;NmhjQT zFXfDij81d#j=ZGAB%g67jk}NbS=}68CUg9L^xV_T8D7H;;6!(CN~+g%iPKLjS zC{IuSZoX)Z!sl3**}6%6t8ImNCHDCjB>@fB_xGqJijxkj{3DBigi2wB9`RXN>pTcE&M6KNiO~F_JyNDj^MJj@g6sHJ3JGe>S6ydG$4sc{wuij-h z50TXqC!$E$Gi$?tGbQi2;3s;UNGbKq526aA8IfULzf1S5>9US7?rtbSOBVL6muHEp zY`?1)$MPHxjMUuDJiTu1ing?GG<7}MtQ!E+lfxXDHIM7yCmu{m1JdMDyZS&7G zThE#Q%?uS`@zTvL!ZTnhXEo|1V@|YV{m5A7GV$XFwOLJrK9x1Bc_XDyIn^0lx5l;m zpti4NT6`wcU3)bXG!_szuLMa-3ig2{yy_ZiuV>WH3Sts=i4KwjQEj_xp?1N}s0yjn zOea+_{&!VXceH9U!=rcETr`6k-3j^jQoJ-8H-32t7BJxamZMZR_3B5#oP}I>k7MSw ziPU&jVPEx+i2yH%kw332C?sL4LCZLVgN((^z9xmlhYE(|69+y;k)hJDrv-|1Z7*2n zvb18f8%c-{(uDXRgLDkMoH3S@ZMyks>DBG`7b!Yr#Dbi}!^p8tR{v0-y+n9|o{)(C zGt9rhHBrVJ>?7jaI5k2k(?JFIRq3F2(>iNgc*{Lz$4!?;xB5h73p|X#4W*Gcs)4Da4?3WFIeb6k%|)9~lhAYzi0bStKtR^g5o=#*yX@v4Byup4MTjx) zjohRRiWyGPmG^n*sqTLV3#9cTkN*Z1TqZkaoK7)JZ0ErZ*pzK4-(tE<&y%5l1BRPV z;rw2YPT}f^2CL(*tZ#@{2UDm2MC_p&owhKXh=4wgiB_u9PcN2TpDkZkQr|+fJqp z0(e=lA+V;MPXjQy7mq|^rSeZTTXX)kWs>oZh8S%(`9-}7vczC=XoQM^mDgY9hC1kt z6tLte6E41htM%Opx~+%1qs2NN z`>X`!j6Y$N`?9n5PS+wqm#7VMzL~AUo;}D-Pe1N@)dp>HYyT&!{c(yD8f&W(bI;r? z=;Kdj0zpN8DO|t*a=|H%@2u}o$fVXU(>;?eW4>KqJ1~TAMUepR55+4^$ijsiq?HC` zsKnyIo0g1KggfJ?QbU-_v+~OAdcDeZ>@VSyJ1^L z{if^8Yi8vu-J4+XN!I=5T`6oU8yb&`C{;M$f$ z$E9`ry4MOF{NJqo`Y%VJf~tzDS@x;380s(S-f4CrZq@B4GJB{7ZIvRI+ZRPtwwbDW zbauHDS(URWL-5*=)7Jx0&u`^6?kTj_B?Rf35Md*j8XT}%Xl-3#F%}ShlgSw0YOBK>Yq~H0DqZ<@zglZ8Xzw^DN9&IOVZp7m9$84O>4^{* zt7cbtn|Cek;9BE=x`(%QPl(jKWN(ZF>fE+I`lkFwTXN#RWkMqJea0yT(8`}`?qG{!({z|w2$q1lHyN>DEcZJnG093>t^gfyOFDHS_luC=jI=ZaWHpQF zl+*zs$rdwCO_+R4fsqP1OXE)2A`KH9|J<(E0A!O>7b40n?Qi=u`V4?7A!#lghi8oZ+2Qt2+gX@e@LF%MC=OV>Yf>VM(` zS~wa1kLS6UUahSG(dkWD&xJGQ2A86^Fx;me?gpP@4+p*|uBTJ?47(dAt{@Ng+|OD& zy{c(ewCMs2@pE7TYQ~Wr?~c>JRrlW7+vJK{$*X);AjN#R2LKoHkup-vZY_d~t^eO< zt&U07XYiJ61d14eP&mxlPH@^RtEB^nUTc4Szn6{aeqGDV4rO5z2eKOswGR>M4rpnO z0AJEBZS$NG{GdD6l9sg+RYUNQ;0|X4N2NXT_q*A;X!*EcnG3y|(5v;Hi>I+A6`va` zvSE?NN4K8tF3WG;4;r`8EbV##D-M+O3EiyvK8n&WFL&Hd{(DkuJaF0^M_WnvO7Mo1 zz9DeA_JE>tQ&!(npuPMrF-ms79KJ0zg?sSp5zY$ih)Sl;yrqEm*aLBx~mi^asJ_#h9 zskza#KI_d+ntma*qS^!QQJ(+IrXtw3Ayfp!Iy_ikP@$+i5Io!>>D}=8y^Lvr0yH@~ zBJJfFEdukj3(kG=%H#`h$>tD?GrYGi2$~&BRflrS<$|86uqq+1H-IJVr=6g85GCn# zQ@qKzpbDO;nsrCW)8_4xqSD%!>e5-8(xAk(_Y68mbbV@}bO;?dGJqB1DQcS01J0aU z_@&AJ3ZgPpn=pNmxe)_e6VtmI6%EpNG|h%|C1tB6;k%Y^o+UZ{*~h~;2|-kYxM^h^ zDq-i?paD_2Lvyg%U|!{h`;B{U-{&MIAGb*EdGTQzNG#-zXK)j{Ev@ zwR$R56AyMN7Pb;x|NJA$db|TQm(sSgG4X}!zqLf3nxDEx)V6Dj2(u@N*qq3PH&uEk zPUYy)Row}bfn+=$j>s>7>nEcxW?E@xUg&DBJ~unO1JL?oZkw_K^3rg`xC4aY;r|57a6b z)%>^~S8=Dak-gSj%kr!nDrK%Fml&Y0j8Ku? zfFTx9bd7|c|ENqIy+#hHcIyr7(w?dVC$y&QBpb1q4VuaUDAn+}n7gq*TN9S=^lBnIm?H`d)kkk#2=2O}p#&RTmNA_uXziJf}^fJ-B5?-jE@QKbN9bD#dD zO4Y3-{#u=gK^$KMe!y_Z_G6mWa}^}TT^oW|F^cXeP6>N{XPGwu3eD$Lbmi&$2#5JX zmzRNk6&#^Dim*L}( zg)@_&K?zWLw?>y;hJzvDs}7v`W}A2kaNt_;@QXMSa`W8#ucLm-e|%jayr)o2SC1ML zxU5@O+JVy!dBUnq)Ge+IHR}=6fG34(&hp+=2<>W5-TqLeo0}bx5YH|fMr_*vMA#;w zKt|o^BqLYq9}$q)Y5IY%Kx+fUNZJ*&N6K1lT%UAyRwbRXFW9LRXEIg~tjd;v)7uY! zYF`o9N|RkDxA%&|=yzhyuwGAUJ$7bwX%L>E#X|59IkG6M9i!*0_E-U&)siMT9P(OrET;?M78IZI_<9*icpThch#T+t#KX%f4C+J@0)?TOH9}rSyvU^ zc`tR~{q-oq`Snf5mc^~u%*%CDSF#`Bd=cBW=gNS3rrSmVj=_> z9IeNzQS28aKlrTo9t3UmBup>x*|KD^WLh`jiVt~r-)idb-LqnpmHp{R1?j1wSUvXt zI7y&yWDrjA!48cjTKA}2yYlYlU<+8qy4}DH^<6aQ*oC@!{@(cvY4_bsKrU{kUdU zy!NP5*5c=zOhtCuKx|9<$5@kf-77W{xwUrYgWi2I+eMxw!w2&*_fnI z$1N?t-o96alwSJrV;h;D6J?yDD310|__a(um*kSU@=kA%V8I zkr3SJSgc9>8b=Fd@JCqp#lvo|3xw8qtgsZJ8G}F!;4QoxTyV=5$+*w=6zEmgeYc`* zJlSv%5539lfD$Ws<8u1eknzLf*5yM0Jn>lHRSxTsQkcVfu;#G81vg)_v4{um0z1&x z4510LFDwaaP)k2oO6tqUhQJZdR89iU>$`g4f=?2KHnsx_h}DTSC?}+^zF3%Mp#ieQ zVeK>zy1=Cb5-Ueq4m7QN;4TT%FSheM`*jwufo5|{SRmtaYhJH%B))_rr}yxQYvC9a zBmq2aSTlgsV*zhDVCfx9vSBsRqYSF66C6;>)7L;72e>GiDniryeGsY`1;nMujz8FE zL<%CB#*cF!Hxgdecbn;0vP&w>xL{TZddeFBSQUCTtuH+$xmnSD z0gj=`EdbOvOIxCQ+ow5ngkSB`o(6?Au-HHI146I47=#e2=VD#>fVTv_Z|lpioS$*k zub)%UU3n{x1EsMn&3OqhHSFA76JadF_Ze4eLTFth9f!{(TbLE;6aq3M&bpTp@6@L) zR9?j*kg4-D;U3^YR4y{r%Ysc|`(gijL$!X-IV!O@c=^BVx)a}>`Q?hUzhjUe&x_C; zey0mXQ(5;CQcEL26%H|{|EsIE|H|PvC(A;E9e~<181m9trz@`P704U4Q%3Yyfd7cGX)67CuP!@B*&R*ed@3kH6+_?hKqxHN-I@wh z$1e71OQ@Mb#4@Xfz*krEesWJOTLGrTy}g?c+|% zj#0)sSa9hl-#DQ&_M)8DHGp|9r2m5UVPOhx_*8JK&d9adCcy@+*Tx$L0VlxR+D4?y zYw5s|U{}~kvm;s6|CJWO?7Cc>8wgujr_#%X2QRWfLGvfMLE-}C||MBX{*_~I(a9k-zw^3+^)0BPzc3&aET8LExCchX7~OpN8Xh8kSvQ1 z&Sh!nyZ%gW0qK*rM|MeA&&03&5){>w=-8}>N98Kd%a@eDJJRGGo+f`g>0meqsG$Jo zyKO%nu)UfvOu2er)Vyt9SFDk_NN@&~RVhsl0a>aSt&ln2n1*~~^fzmlS{cK1XTomM zRkUa#aG~j4hnK(ILAxSfdV{emkuSZ&^wtQB?r1;l|G{Ti{X|iu=i&>Ow(H$qgB{?Y z>(-J2Lrv$Xc>23Ve(K$fQMmobFg2BxZSCNroQ>jEf(bnwLACf+^iO~ygnV94^QoA7 zxD4`{x0)bL-fHzp_)W7N5AI-3S zdWgW%u?Lw%z4KxlLj`7lE)rtpYlzo-H|0^Ke+x$Q#BN-Uzgt3g+tZBa*ht_5I|v0{ z{S2{jSAG6~Rv%KaJ9SiHx!~`RTbkk~jL0noy*OZ*^bXuH5uWHf8EQXuCu1q|rH8}@ z?Z2dRHl@(ns7)ypTm_^MGIYoXXS;9cZcZF4^S0`Z+rDk{Pekc$8W+9ZGz#rzNfYHm z$1;8UMWlTGs0JQ*n)FK$MXe-8-1!)$=QQ_H9Ca7se_Zp+rjQDc_;l&OnU%oJ=ng&h zbdCQF!$#bhznnB)`QP2qn&z5rTPkdYhL$<{!xLb=h#@}H?r~?lh9{AA`^IYEK(8-* zuz};F^&cUg6IubHl2Ey^j^;npfmTk8S`}%>qkFnY#iv4qd86NN7rh;a^&_k+#1Ie zIiMoh`-I}krbVrI-&j6>_Id)GHz)rOMc$PMTF~y}xtP5l%1sP`7u)Q5y0%J$YyUf; zZGiW1Vxp^4 z=qIPkokNEFrTp~Y*ivKLs*0!8ax0%pK1ckh)_qi*GSmZ2TRI04K!3Fh9Y?RlZh4GSFzMa>vT1Ow&#pP9x-QZML})zpKFZ+$15RcK6GJb>z2 zO@p%4w%KD(rwv3VE}mPfzvlPByT2Amee6F}XBee1PJJr~@;W=8sTP)+oj4P7 zS3c%)nxEvxnrL8qRT13p(vq-vInpHSne(@C#tX72^_RapqVnsx>7WU!EwAT10Q+8s zX$uLPG2}58)?4B-9lU7a9j4OfDmG`Hvy}4ONtS&}xJTyKLD;qBzKG0Cft%Cy$P(&j z1^1jP+L#Z)f4G3Ylww`YP;6~?ONC=2PNr2jUOL8e4bVmiROT-D3RgVd~IKc&Bn}k80h->gnK?_AjEpEbY5lvGZ*C z_DrXfKmU=F>uBheA*&uMc3biL&o%sBu=jedfR$`o1$M)z&j&Rp`J#RtLz~Y@^3j?DCwj@47ZDOcqBQ0vo zYC4Mj2fADhcu0QvKcX!zzyow)Jl_i7mc1?Wi^u*4++uy`+@UvnzI>0)hZJ7UHhsFf zw)mz&w^S#pX^FaRVj=dS?u(MI;OYMDrlNtAjSURML%0@ci`yq7fc~NF&7ObA0=2B` z`WE8dsOE78uV^X1KauO)zCLkBQgZ%3IwV}?T?o4rs;|WpN{|cetiFlheSNkF(?-Q$ zhVHS_;1CdEl!fU(RTRHP;tM@I(l$E=TEfi6+eejG%G>b5L#9KjO5Ta^v8W_OUF;q zgKw=Ykd*ANdWr|##e0k5!G5D{~3iJ+pkT`!0e3WA#WqcXD?MFEFg^Jz&@RTRyO&6(%oMgI!J|p@CtHD`4*I)mqKl`*gX@NFJR8ghQ#A zaq#tTLSf+TXs1H~TE%J@yh3F3agyQU#aWzlPhhB@3U%AkLZJ5b>3%i2uah0#bPde~ zCk`+W)o72!sT#K&7-I1@x(Wn%36JbGt^I>A1T z>5}WH5$1gXqy5~4phs87QTWd%*SlU)x>?;XDLq8%rm7^Nm_)YX67k8)=7wkB$EC-t zt5byTUK-YpTl_fTM>xOr*aXNP)O$H%oG;HBpc0ZmCmcR|xRn+urd>$jOo;VV~dhEdi_sM7DC4UJ_f|LD~WMp06hNNd=E5?%L4D(89Xa3*oX;eTkR}(~2rn+C-0G}pXY(;0}YdnuN z_+1d#jUxeY`TAgQs2aM$_L|HFEDAq9o{fD@C{CA8k6h|^OyCu}6MtU?Mo&o(j-=`tC-!f<@6 zkZ>5rj(8>nQS*9gWQ`@riC7Qu)s~ZtyW-++Nmq-mZO#8aCyE(hGAttZyyEY8?$#@E z;_#a{cT&Bt92tuT1@u+1HLbVY#Fu9_Gw>9M!4E2(N1$_vvWsR@aof@VMNQ--VqYsu z{gr`1T#vPtmQEJwY&Z8|7arFcK#9 zn)x5q=>5yj&*C8CnMv2!T78dV@TeCabjjX8!d;eQ5ZVwn#c~HM$q4*@%yV_QPqz0v z`<9z0wbPwW{;8^CeiYiYW1{%Wrb+8ZlF{+zgiVuH)`D6F#Wd=WsCzi&v3!({a*nn- z?Aw_fBQ?3jQHHuEqXxcMxJAuFLWWiX&2&M@l|}-z;1;pyK-AOZ1TPJ^_GykWiGQ^e zK1~T#x(pI4!k#hJPcU^$u-R6h+BmmE)ZIgztQoy(<^Qn|uRQBY4k29L%;nhXe{ych z3_#u913H2(gaPWHhQ zDaff90H&kRodx+)ei3FamWP-^p#c_P-O#bwGIF6d#&|Q3a40=b>3qaIF|NUo_`wz^ zivuC>!OMfjsxv1w!wY7mfrueV6yJ&smhhRObzb0@w^6pyuwHU_{`cZXZ$}_&T6^2OkLUdb_z_;YO#Q$Z(~;yg416p7J*wT*ibb&0Y6^(bYdgMx=NS?BKg5cc^>uCm2urO28$># zNqG>b9aWttQdK&4vxGmE#7^(JGo;pq((_0q?Y;tIzOw4Tfs_otr(BT_OXIe$hZgZg zRRM6p3Z&tl;`;Fe6_?37T*KH%vq z*UaxNdpvRVt(`@Cf$JM}KHb9H62yC|_w>sc)g8~;Ue|a}cv;4tUekTXY8qcjp4Pv~UL)KE>-$xVJbHGJMnNKU$b zb2;#Qr1MvAPv{h4Q@7|?_q+P`uRp*w`fJ|-Q%6;p*$m*(XWkva!oTRvhk1|t?dvAq zPxXlS$0KE9m~!h}q1)g3v;~rOJD;>&4pg7hQ!FR*`cCR!quCcNBxg-rIo~}~d-2bE z^YqpO7myt*sO^i=3qR?;Hr=Y|=jErscAMk%ZKivGyLh_wKn(`>%-?s`y*J-;_vbRB z@CEI>cJosTs%QCqiTSl{>b5ew>D!*FX+B@~JMXqxUsg0Q2~3`L*5r5#a3#!Pw%H4t zC+0sb`j}BrwpZ`B!}Rk~OHUUaF1=9JbD}42ammg5x38%`teo}yj05Nlw;30}or$%l z-}FgNoBi^!acjZ8n@rE919!g|EChBUPCz;lMNfA|SJwHx>tzH<>3rVB_nRr>$+N$K zhnIRyZ};2f-l_^*>NR>U+~^T_qlsYj9K_L*0Cs4|=wX-+ot{ktxI?Q`wo^ZtBZujlLee7tya+1^%Z zi~1G_f|SmmJM9EPvPKXjw{NpN_{JPnzZHUXQRh#exDx$hl7%YsK#sPIrlW0tD>(kl zMbQFAIn#LVIPvm<3x}SUo>n=tb703$`}Y6p1F3vMoY)z(>%hsK2X?C8RN3sZrS{>E zC;NAuHhp?I5<^=&V4N8nOA02%apw-0b!285hb1oA+Mv>_S1A$#I9cv0=DaufY&`zM z9thf(h?Rk$8=KcJ*X!`#L@;a?Oj}#1;^fBG;ttwnU1`Q?)4Bv3p)b@^jrz#k*s1!e z4mh8PGaHT`o9*|-!Mgk>-^_I&SLV5sW1F<1{|u~WrzylffuJru8CeK=w++m}amD{~ z*|c4_!Y8C#2;Nj%ikHUN1O9oiHWqOqsO}!SRgW++yZSS} z%qemh#iZ5M<{F0a)`O02H!y+=Uo>z*`;sn2$X&$eKCkGg< zP59dcn5y3@nF(#tjGB+07YmgylF=e}$HIkQdL;!0G7eYOR!I6v!I0r@;IGzI%c zeYRKh=)=(YPqu~&0&~ubuvQ?c9?J?HRg()bPt(&@aBE~SJIy`#aHowVZf-~!Go5fk zIm7ia(Ial={hF6(nUm)o+^{@;G@!3+yw3gvW#Mx`+lft@#EgpVkPmmC&(#SYu@p~e zAfr7bDzr8OisJVn6Q)P?Uevc|^czd1&6ikJbrsoaii^XsA=SQ!i`1#L#Sz-bT$(p# zd6p%>koLw+zn$dhI^^p6K#=Ocu-9KxgnjOV`G&pwAMHKr%@I%+hbOV9Il5W)!&z;~ zQp;|x$wHz1E`E6b^+!reLq~j@pPTeu&Ce`!i?BZ>3;Dd=oKY~;tP$d&6+7{IBb+p~ z*Ogg2Ulc3H@T82}Qk(6Ch3N?eBEet~i6tKwOpT&%wV3EC6PDy+R=DGYsakoc@qvnw zek6;eHGBtOuF9L^k#pX5qw^o&;=bw3MPOJ-f9^6W@7w`K7!zmgHz?#o>H!E_kOf{1&v!-ew%!Co`spOvYw=LDA>RFvEL8b@ z^Bz?S7z@f;oj5^!f0Nc8qUSr+K14uyFFU&9g*n~IOTM&$=1fH${Lh)?lqs@jiZ*6x zw2Bou2z!aov|;%cc!^f!+HJ%$IBOea2)nEU`eVKF372-!kV-^b0zGG72W}VTv?9|z z`>ba-Sxn^&B;yE@Zi#=kzyj~qcS z8nghLIAcClHzprGC2fX*^9Ol#YY3W`)*%R}7zu1r&ur-KsW3~Rnb4W{yVD66A^zf0 z>k4Ts#lm#Zni*l?qIo~_DDuKGqsY3KgOb{Y`CPj(#nKG3y7WFW2ZAmt$Tajy7EH$XmSu^^}eOYl*jBJ~lv0ppW{OL(*Up~&7j9yJ8#1+(=`+HMLaza}V z(`#xOk2NOv@=&zRb|b~#$XmyWJ@x^(3k>1@O`74Cm%Gy&uGqu5ud0Cf7ovyfI&DUh zqCFydUD%%k2r%E46wUc<#cyZZyv0>R5lm0|J?aq-kdveCrHso9Bk>Xg=h0l$cxLGA z$Ajq~|2Rm>!xJ1{9DA)#8VXH_VF7crm3o=&b>5*1$@fcBni=ocgoG5oz-qcF-L%Oh zn5T4rztzjZa^~Ik2445CErj?rzAoY)0oEVPi>pdfGcF9Q8%;!h`|u1|)9V^gQDc7u z-_rs|b1X(~7k0@&mD6&H356-A85>u1&L-UwJ4(Ql*LdS4OWNnk^h-p=fwcpE><$Zo ze!eX(nDD6N&Ibl9moaTFnyAj^-u#cDoZ$7U_kOp_@ml!kfT>E- zFsqoT9SlwgPn|2}U*(b0;1LslD;VnItXFQ~1n##BQnN~s{y7n@)xc|@rzzNLt%{m( zBK3F7bryP&r4SeF*(g~P#M73utzsiH&BOdqQ}vvz5??*So6u_kZ!SI>yv zWpN+`tsL~Z`t{B$2JM%K@b{Y)pvEuT|F>NIKZEyw{6M=e(=!SNy5pVQQj`;kkm^)q z#hJ^K#ARBdLPbl3*}*@@3aC*uP7s+}$bQ|T6`%3}-XUt{)7hl#d9wNx3zB2z(%k6{!&Y9&{5Xr#M%vv%gKh`Vwl96(y}# z+dQ|Yt=KU?1|9GJSgIzwE~%K=bh8nCy|T)`u^od_P^bc~eG3D6C~)79h*DHL`YI3v z60)!C8vUM9@_o5W$+2QNRS+fa{M~tAgez{)&BRYjOxoQkP}J+QML)G?K=4 z62NOWNGS#7QFK2DL=KV_!GuY~i?r-Y^W|@U#ICNcAaee4EwBB22MIdC6Cw)ja}X7E zUw<2a;h&2td;?Mg*Z8%!Z6Q10s5`D^a~JZmD4%=0zSTb}AC^ z+umt`1sK0JZc(1sFhDqiP7+1|)ZK1FqEj=cv=!V6KcGIQ5nU3oQV;^;OYL2j@kDnAI`u zbY};v8q^yp198fT-52N~yFmE`K^qdida>UXGkjCb{c;zHCvO7t502c2N9^y3p~f~6 zRhLNfJB@6$(cu@`^=lpN{KhVPns^@sh> z(y6X?nFp-JUJwPmv0R()p-MK%Kt4})7|oX^zBk0oJRQI1U`C7sN%?tyw;If1qViOA zML~mCr)Y&q8)m=hQ*Coeel(@9CRrfSQb)uKq{%U0u4VzAWYN2W){cdjGP{#n8L_>L zXBp@J&`kw&TE!f>qQjQ*B-10z4ury`bSCc#X|(ClVvGS8y-sMRWC@kpl&4O57{9?uZ3e)QHwt0rK5r75ay+ zjk`U%_DcP|6I)_Em)Y6A!w`aQZUgVt+$ygT*fr7R(i`;5Lbgzg6rR#ZObKXYgi#(j za8Oou+7ys5pK-WjUms%#)$$khe5L@;9QE&bQ8k_wu&^SYa{dHCANKovch$ zD2YhEnDd~IiAM5@9pW1nY6vD8+ZZ{F7$;i3eJY+GKJLG03;-(y`_jQg4lY|*P;osI z0Ki;baP|-y|BY-CO66Q&71pKH#mzkR4$RH7M#oe?rj-(yVHUmbmvSub*OP-83(+%-o>P1$Pxa`l*-61HO-*BV_`I=F)=JRI>X-hV0F zTFX52<~84B6Y`5inq-ZzR#%bC709Q;z@((5dt>UEi@lxrK_gk{_w$WiMQ|&Ag7&J9 z@lmJV!!Db&jhp@W50l5{;B3UvqM5Fjr#3B&$rszdv;g$e3Vh!EEKbWa7}zQ% z3J#8$0eZkEo&}wXNmJilzO7{Nr$y7B@L@L#<=b7|gL<_-mOSh3`Cv!A%~o{}bQA;Q zF>8q$M)}iZoOgGV`e^!;i7GmSc!pb6-SKmtXo!>Lm~jWtR6ua_0763!WSa^&A?(%7 z@%Bu+H*co@R-oT=;CmzbyyMrZxP{qiU}TA!MzHdd+g2rJ#eo~!0p+?Lo5fdd@p{ z(Z#o{XL_`0H+K<&jEpuUVtUWaN4S5}2zm3`ykUyW&ytk))bQreB{IghyI<+XNw>v? zIrPR$IU6Fuu2*Y&3~brn2EedGmqs5&p+?F{!wA6Ym9tS9xwUg#O4z==g}7qO6mxH81U>a9AHE`$GnKupcb8)?b8%Id_&Au%~=@ z2Au4aP&n)`4l3|-Q=(EpZAb+rp_l6?OC4oDC{}Tyk%IF*qAc*Vq6&(dMdZW{kv#;( z==$vW9d3fRXCt-&d!(O4FE)s#23KK8eQ2coov-hnc&0dj{ePU`%zB~-Vc-4)HZbg- z4d8EckN2-%uGe8*1na}F?gZuj_RhU-+kPQ~j~yiUdIRJ=~b>s0*z dn~Eiy`fK+Pc7HAf|2~7D^JnZ&SDf^D@Nf7olt=&o From 89b08e235ada133e8c1631d676f93a231a7330b7 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Fri, 1 Nov 2024 14:02:41 +0900 Subject: [PATCH 21/25] fix: test (#782) --- .github/workflows/ci.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d13652c0e..836fe6a43 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,19 +29,8 @@ jobs: with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - - name: install deps - run: | - sudo add-apt-repository ppa:libreoffice/ppa - sudo apt-get update - sudo apt-get install libreoffice - npm i -g reg-cli pnpm - cd vrt && pnpm i --frozen-lockfile && cd ../ - name: test run: make test -B # && make vrt -B - - uses: actions/upload-artifact@master - with: - name: vrt - path: vrt/screenshot build: runs-on: ubuntu-latest @@ -90,6 +79,7 @@ jobs: threshold-rate: 0.06 enable-antialias: true matching-threshold: 0.5 + artifact-name: wasm lint: name: Clippy From 72637a4dc04f606dcc8aa54d09717e66a52e6b3a Mon Sep 17 00:00:00 2001 From: bokuweb Date: Tue, 5 Nov 2024 11:21:20 +0900 Subject: [PATCH 22/25] Update ci.yml --- .github/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 836fe6a43..f3c91e873 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,6 +4,7 @@ on: [push, pull_request] jobs: test: runs-on: ubuntu-latest + steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -54,6 +55,8 @@ jobs: build-wasm: runs-on: ubuntu-latest + permissions: + pull-requests: write defaults: run: working-directory: ./docx-wasm @@ -91,4 +94,4 @@ jobs: inherit-toolchain: true components: clippy # TODO(@unvalley): enable - # - run: cargo clippy -- -D warnings \ No newline at end of file + # - run: cargo clippy -- -D warnings From 238d2bc3fec368fee4c892da1894d56ece8b252b Mon Sep 17 00:00:00 2001 From: Igor Strebz Date: Tue, 5 Nov 2024 05:22:32 +0300 Subject: [PATCH 23/25] Implement streaming writers (#765) * Make XMLBuilder generic * Reduce allocations at XmlData display impl * Implement streaming writers - Extend BuildXML trait, add the streaming method - Remove impls for Box, as they can be implemented on the trait level - Rewrite build() methods in chaining style, backed by apply_* helpers - Remove quite a few allocations, though numbers still produce them - Add spaces between children nodes, fix tests * Add rustfmt.toml and format code * Fix clippy warnings * Expose the BuildXML trait without displaying its methods in hints --- docx-core/src/documents/build_xml.rs | 37 +- docx-core/src/documents/comments.rs | 20 +- docx-core/src/documents/comments_extended.rs | 18 +- docx-core/src/documents/content_types.rs | 41 +- docx-core/src/documents/custom_item.rs | 19 +- .../src/documents/custom_item_property.rs | 20 +- docx-core/src/documents/custom_item_rels.rs | 33 +- docx-core/src/documents/doc_props/app.rs | 23 +- docx-core/src/documents/doc_props/core.rs | 95 +- docx-core/src/documents/doc_props/custom.rs | 37 +- docx-core/src/documents/document.rs | 64 +- docx-core/src/documents/document_rels.rs | 147 +- docx-core/src/documents/elements/a_graphic.rs | 17 +- .../src/documents/elements/a_graphic_data.rs | 23 +- .../documents/elements/abstract_numbering.rs | 18 +- .../documents/elements/adjust_right_ind.rs | 11 +- docx-core/src/documents/elements/based_on.rs | 9 +- docx-core/src/documents/elements/bold.rs | 9 +- docx-core/src/documents/elements/bold_cs.rs | 9 +- .../src/documents/elements/bookmark_end.rs | 11 +- .../src/documents/elements/bookmark_start.rs | 12 +- docx-core/src/documents/elements/br.rs | 11 +- .../src/documents/elements/cant_split.rs | 9 +- docx-core/src/documents/elements/caps.rs | 11 +- .../src/documents/elements/cell_margins.rs | 44 +- .../documents/elements/character_spacing.rs | 9 +- docx-core/src/documents/elements/color.rs | 8 +- docx-core/src/documents/elements/comment.rs | 25 +- .../documents/elements/comment_extended.rs | 12 +- .../documents/elements/comment_range_end.rs | 34 +- .../documents/elements/comment_range_start.rs | 18 +- .../src/documents/elements/data_binding.rs | 12 +- .../documents/elements/default_tab_stop.rs | 11 +- docx-core/src/documents/elements/delete.rs | 25 +- .../documents/elements/delete_instr_text.rs | 35 +- .../src/documents/elements/delete_text.rs | 10 +- .../src/documents/elements/doc_defaults.rs | 18 +- docx-core/src/documents/elements/doc_grid.rs | 12 +- docx-core/src/documents/elements/doc_id.rs | 9 +- docx-core/src/documents/elements/doc_var.rs | 11 +- docx-core/src/documents/elements/drawing.rs | 229 +-- docx-core/src/documents/elements/fld_char.rs | 12 +- docx-core/src/documents/elements/font.rs | 26 +- .../documents/elements/footer_reference.rs | 12 +- docx-core/src/documents/elements/footnote.rs | 16 +- .../documents/elements/footnote_reference.rs | 10 +- .../src/documents/elements/frame_property.rs | 9 +- docx-core/src/documents/elements/grid_span.rs | 8 +- .../documents/elements/header_reference.rs | 12 +- docx-core/src/documents/elements/highlight.rs | 8 +- docx-core/src/documents/elements/hyperlink.rs | 28 +- docx-core/src/documents/elements/indent.rs | 12 +- .../src/documents/elements/indent_level.rs | 11 +- docx-core/src/documents/elements/insert.rs | 30 +- .../src/documents/elements/instr_num_pages.rs | 12 +- .../src/documents/elements/instr_page.rs | 10 +- .../src/documents/elements/instr_pageref.rs | 29 +- docx-core/src/documents/elements/instr_tc.rs | 20 +- .../src/documents/elements/instr_text.rs | 34 +- docx-core/src/documents/elements/instr_toc.rs | 46 +- docx-core/src/documents/elements/is_lgl.rs | 9 +- docx-core/src/documents/elements/italic.rs | 9 +- docx-core/src/documents/elements/italic_cs.rs | 9 +- .../src/documents/elements/justification.rs | 11 +- docx-core/src/documents/elements/level.rs | 42 +- docx-core/src/documents/elements/level_jc.rs | 11 +- .../src/documents/elements/level_override.rs | 28 +- .../src/documents/elements/level_restart.rs | 12 +- .../src/documents/elements/level_text.rs | 9 +- .../src/documents/elements/line_spacing.rs | 26 +- docx-core/src/documents/elements/link.rs | 9 +- .../src/documents/elements/mc_fallback.rs | 12 +- docx-core/src/documents/elements/name.rs | 9 +- docx-core/src/documents/elements/next.rs | 9 +- docx-core/src/documents/elements/num_pages.rs | 29 +- .../src/documents/elements/number_format.rs | 11 +- docx-core/src/documents/elements/numbering.rs | 29 +- .../src/documents/elements/numbering_id.rs | 9 +- .../documents/elements/numbering_property.rs | 18 +- .../src/documents/elements/outline_lvl.rs | 14 +- .../src/documents/elements/page_margin.rs | 12 +- docx-core/src/documents/elements/page_num.rs | 29 +- .../src/documents/elements/page_num_type.rs | 12 +- docx-core/src/documents/elements/page_size.rs | 28 +- docx-core/src/documents/elements/paragraph.rs | 59 +- .../documents/elements/paragraph_borders.rs | 70 +- .../documents/elements/paragraph_property.rs | 97 +- .../elements/paragraph_property_change.rs | 19 +- .../elements/paragraph_property_default.rs | 16 +- .../src/documents/elements/paragraph_style.rs | 10 +- docx-core/src/documents/elements/pic.rs | 87 +- .../src/documents/elements/positional_tab.rs | 12 +- docx-core/src/documents/elements/q_format.rs | 10 +- docx-core/src/documents/elements/run.rs | 63 +- docx-core/src/documents/elements/run_fonts.rs | 32 +- .../src/documents/elements/run_property.rs | 58 +- .../elements/run_property_default.rs | 16 +- docx-core/src/documents/elements/run_style.rs | 8 +- docx-core/src/documents/elements/section.rs | 26 +- .../documents/elements/section_property.rs | 64 +- docx-core/src/documents/elements/shading.rs | 12 +- .../src/documents/elements/spec_vanish.rs | 9 +- docx-core/src/documents/elements/start.rs | 9 +- docx-core/src/documents/elements/strike.rs | 9 +- .../documents/elements/structured_data_tag.rs | 56 +- .../elements/structured_data_tag_property.rs | 26 +- docx-core/src/documents/elements/style.rs | 46 +- docx-core/src/documents/elements/sym.rs | 11 +- docx-core/src/documents/elements/sz.rs | 9 +- docx-core/src/documents/elements/sz_cs.rs | 8 +- docx-core/src/documents/elements/tab.rs | 11 +- docx-core/src/documents/elements/table.rs | 37 +- .../src/documents/elements/table_borders.rs | 63 +- .../src/documents/elements/table_cell.rs | 42 +- .../documents/elements/table_cell_borders.rs | 74 +- .../documents/elements/table_cell_margins.rs | 36 +- .../documents/elements/table_cell_property.rs | 30 +- .../documents/elements/table_cell_width.rs | 12 +- .../src/documents/elements/table_grid.rs | 21 +- .../src/documents/elements/table_indent.rs | 12 +- .../src/documents/elements/table_layout.rs | 15 +- .../documents/elements/table_of_contents.rs | 105 +- .../elements/table_of_contents_item.rs | 61 +- .../elements/table_position_property.rs | 10 +- .../src/documents/elements/table_property.rs | 30 +- docx-core/src/documents/elements/table_row.rs | 24 +- .../documents/elements/table_row_property.rs | 31 +- .../src/documents/elements/table_style.rs | 11 +- .../src/documents/elements/table_width.rs | 12 +- docx-core/src/documents/elements/tabs.rs | 14 +- docx-core/src/documents/elements/text.rs | 10 +- .../src/documents/elements/text_alignment.rs | 12 +- .../src/documents/elements/text_border.rs | 12 +- docx-core/src/documents/elements/text_box.rs | 56 +- .../documents/elements/text_box_content.rs | 32 +- .../src/documents/elements/text_direction.rs | 12 +- docx-core/src/documents/elements/underline.rs | 8 +- docx-core/src/documents/elements/v_align.rs | 12 +- docx-core/src/documents/elements/vanish.rs | 9 +- .../src/documents/elements/vert_align.rs | 11 +- .../src/documents/elements/vertical_merge.rs | 12 +- docx-core/src/documents/elements/wp_anchor.rs | 17 +- docx-core/src/documents/elements/wps_shape.rs | 30 +- .../src/documents/elements/wps_text_box.rs | 17 +- docx-core/src/documents/elements/zoom.rs | 11 +- docx-core/src/documents/font_table.rs | 42 +- docx-core/src/documents/footer.rs | 30 +- docx-core/src/documents/footer_rels.rs | 32 +- docx-core/src/documents/footnotes.rs | 20 +- docx-core/src/documents/header.rs | 30 +- docx-core/src/documents/header_rels.rs | 32 +- docx-core/src/documents/mod.rs | 2 +- docx-core/src/documents/numberings.rs | 25 +- docx-core/src/documents/rels.rs | 28 +- docx-core/src/documents/settings.rs | 100 +- docx-core/src/documents/styles.rs | 27 +- docx-core/src/documents/taskpanes.rs | 30 +- docx-core/src/documents/taskpanes_rels.rs | 25 +- docx-core/src/documents/webextension.rs | 50 +- docx-core/src/reader/attributes/width.rs | 2 +- docx-core/src/reader/comment.rs | 2 +- docx-core/src/reader/settings.rs | 5 +- .../src/types/character_spacing_values.rs | 12 +- docx-core/src/xml_builder/comments.rs | 87 +- .../src/xml_builder/comments_extended.rs | 239 ++-- docx-core/src/xml_builder/core_properties.rs | 3 +- .../src/xml_builder/custom_properties.rs | 4 +- docx-core/src/xml_builder/declaration.rs | 33 +- docx-core/src/xml_builder/document.rs | 105 +- docx-core/src/xml_builder/drawing.rs | 4 +- docx-core/src/xml_builder/elements.rs | 257 ++-- docx-core/src/xml_builder/fonts.rs | 32 +- docx-core/src/xml_builder/footer.rs | 88 +- docx-core/src/xml_builder/footnotes.rs | 278 ++-- docx-core/src/xml_builder/header.rs | 88 +- docx-core/src/xml_builder/macros.rs | 656 ++++----- docx-core/src/xml_builder/mod.rs | 258 ++-- docx-core/src/xml_builder/numbering.rs | 36 +- docx-core/src/xml_builder/pic.rs | 4 +- docx-core/src/xml_builder/properties.rs | 36 +- docx-core/src/xml_builder/relationship.rs | 31 +- docx-core/src/xml_builder/settings.rs | 39 +- docx-core/src/xml_builder/styles.rs | 64 +- docx-core/src/xml_json/mod.rs | 82 +- .../test/__snapshots__/index.test.js.snap | 1269 ++--------------- rustfmt.toml | 1 + 186 files changed, 3502 insertions(+), 4407 deletions(-) create mode 100644 rustfmt.toml diff --git a/docx-core/src/documents/build_xml.rs b/docx-core/src/documents/build_xml.rs index 52eb2f97f..8f4cd6fc8 100644 --- a/docx-core/src/documents/build_xml.rs +++ b/docx-core/src/documents/build_xml.rs @@ -1,3 +1,38 @@ +use crate::xml_builder::XMLBuilder; +use std::io::Write; + pub trait BuildXML { - fn build(&self) -> Vec; + /// Write XML to the output stream. + #[doc(hidden)] + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result>; + + #[doc(hidden)] + fn build(&self) -> Vec { + self.build_to(XMLBuilder::new(Vec::new()).into_inner().unwrap()) + .expect("should write to buf") + .into_inner() + } +} + +impl<'a, T: BuildXML> BuildXML for &'a T { + /// Building XML from `&T` is the same as from `T`. + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + (*self).build_to(stream) + } +} + +impl BuildXML for Box { + /// Building XML from `Box` is the same as from `T`. + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + (**self).build_to(stream) + } } diff --git a/docx-core/src/documents/comments.rs b/docx-core/src/documents/comments.rs index b946957b1..3ab1cd574 100644 --- a/docx-core/src/documents/comments.rs +++ b/docx-core/src/documents/comments.rs @@ -1,6 +1,7 @@ use super::Comment; use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -29,12 +30,16 @@ impl Comments { } impl BuildXML for Comments { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new().declaration(Some(true)).open_comments(); - for c in &self.comments { - b = b.add_child(c) - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_comments()? + .add_children(&self.comments)? + .close()? + .into_inner() } } @@ -51,8 +56,7 @@ mod tests { let b = Comments::new().build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } } diff --git a/docx-core/src/documents/comments_extended.rs b/docx-core/src/documents/comments_extended.rs index 369af00d2..657fbe214 100644 --- a/docx-core/src/documents/comments_extended.rs +++ b/docx-core/src/documents/comments_extended.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -22,14 +23,15 @@ impl CommentsExtended { } impl BuildXML for CommentsExtended { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b.open_comments_extended(); - - for c in &self.children { - b = b.add_child(c) - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_comments_extended()? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/content_types.rs b/docx-core/src/documents/content_types.rs index 62f97deaa..aebb7ed64 100644 --- a/docx-core/src/documents/content_types.rs +++ b/docx-core/src/documents/content_types.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; -use std::io::Read; +use std::io::{Read, Write}; use xml::reader::{EventReader, XmlEvent}; use crate::documents::BuildXML; @@ -153,28 +153,26 @@ impl Default for ContentTypes { } impl BuildXML for ContentTypes { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b - .declaration(None) - .open_types("http://schemas.openxmlformats.org/package/2006/content-types"); - - b = b - .add_default("png", "image/png") - .add_default("jpeg", "image/jpeg") - .add_default("jpg", "image/jpg") - .add_default("bmp", "image/bmp") - .add_default("gif", "image/gif") + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(None)? + .open_types("http://schemas.openxmlformats.org/package/2006/content-types")? + .add_default("png", "image/png")? + .add_default("jpeg", "image/jpeg")? + .add_default("jpg", "image/jpg")? + .add_default("bmp", "image/bmp")? + .add_default("gif", "image/gif")? .add_default( "rels", "application/vnd.openxmlformats-package.relationships+xml", - ) - .add_default("xml", "application/xml"); - - for (k, v) in self.types.iter() { - b = b.add_override(k, v); - } - b.close().build() + )? + .add_default("xml", "application/xml")? + .apply_each(self.types.iter(), |(k, v), b| b.add_override(k, v))? + .close()? + .into_inner() } } @@ -213,8 +211,7 @@ mod tests { #[test] fn test_from_xml() { - let xml = r#" - "#; + let xml = r#""#; let c = ContentTypes::from_xml(xml.as_bytes()).unwrap(); let mut types = BTreeMap::new(); types.insert( diff --git a/docx-core/src/documents/custom_item.rs b/docx-core/src/documents/custom_item.rs index 91580a031..462535bfc 100644 --- a/docx-core/src/documents/custom_item.rs +++ b/docx-core/src/documents/custom_item.rs @@ -1,7 +1,9 @@ use crate::documents::BuildXML; +use crate::xml_builder::XMLBuilder; use crate::{ParseXmlError, XmlDocument}; use serde::ser::SerializeSeq; use serde::Serialize; +use std::io::Write; use std::str::FromStr; #[derive(Debug, Clone)] @@ -29,8 +31,13 @@ impl Serialize for CustomItem { } impl BuildXML for CustomItem { - fn build(&self) -> Vec { - self.0.to_string().as_bytes().to_vec() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let mut b = XMLBuilder::from(stream); + write!(b.inner_mut()?, "{}", self.0)?; + b.into_inner() } } @@ -44,17 +51,13 @@ mod tests { #[test] fn test_custom_xml() { let c = CustomItem::from_str( - r#" - -"#, + r#""#, ) .unwrap(); assert_eq!( c.0.to_string(), - r#" - -"# + r#""# ); assert_eq!( serde_json::to_string(&c).unwrap(), diff --git a/docx-core/src/documents/custom_item_property.rs b/docx-core/src/documents/custom_item_property.rs index 60f011b30..20b7887f4 100644 --- a/docx-core/src/documents/custom_item_property.rs +++ b/docx-core/src/documents/custom_item_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,16 +16,19 @@ impl CustomItemProperty { } impl BuildXML for CustomItemProperty { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b.declaration(Some(false)); - b = b + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(false))? .open_data_store_item( "http://schemas.openxmlformats.org/officeDocument/2006/customXml", &format!("{{{}}}", self.id), - ) - .open_data_store_schema_refs() - .close(); - b.close().build() + )? + .open_data_store_schema_refs()? + .close()? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/custom_item_rels.rs b/docx-core/src/documents/custom_item_rels.rs index b20d49aea..c8c0f7ae4 100644 --- a/docx-core/src/documents/custom_item_rels.rs +++ b/docx-core/src/documents/custom_item_rels.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -21,21 +22,21 @@ impl CustomItemRels { } impl BuildXML for CustomItemRels { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b - .declaration(Some(true)) - .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships"); - - for id in 0..self.custom_item_count { - let id = id + 1; - b = b.relationship( - &format!("rId{}", id), - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps", - &format!("itemProps{}.xml", id), - ) - } - - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships")? + .apply_each(0..self.custom_item_count, |id, b| { + b.relationship( + &format!("rId{}", id + 1), + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps", + &format!("itemProps{}.xml", id + 1), + ) + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/doc_props/app.rs b/docx-core/src/documents/doc_props/app.rs index c46eae9dc..84f8a0b3c 100644 --- a/docx-core/src/documents/doc_props/app.rs +++ b/docx-core/src/documents/doc_props/app.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -14,13 +15,18 @@ impl AppProps { } impl BuildXML for AppProps { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let base = b.declaration(Some(true)).open_properties( - "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties", - "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes", - ); - base.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_properties( + "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties", + "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes", + )? + .close()? + .into_inner() } } @@ -38,8 +44,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } } diff --git a/docx-core/src/documents/doc_props/core.rs b/docx-core/src/documents/doc_props/core.rs index fbce26f9c..4d96dc167 100644 --- a/docx-core/src/documents/doc_props/core.rs +++ b/docx-core/src/documents/doc_props/core.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -56,58 +57,42 @@ impl CorePropsConfig { } impl BuildXML for CoreProps { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let base = b.declaration(Some(true)).open_core_properties( - "http://schemas.openxmlformats.org/package/2006/metadata/core-properties", - "http://purl.org/dc/elements/1.1/", - "http://purl.org/dc/terms/", - "http://purl.org/dc/dcmitype/", - "http://www.w3.org/2001/XMLSchema-instance", - ); - - let convert = |v: usize| format!("{}", v); - let mut base = base + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_core_properties( + "http://schemas.openxmlformats.org/package/2006/metadata/core-properties", + "http://purl.org/dc/elements/1.1/", + "http://purl.org/dc/terms/", + "http://purl.org/dc/dcmitype/", + "http://www.w3.org/2001/XMLSchema-instance", + )? .dcterms_created( "dcterms:W3CDTF", self.config .created - .as_ref() - .map_or_else(|| "1970-01-01T00:00:00Z", |v| v), - ) - .dc_creator( - self.config - .creator - .as_ref() - .map_or_else(|| "unknown", |v| v), - ) - .cp_last_modified_by( - self.config - .last_modified_by - .as_ref() - .map_or_else(|| "unknown", |v| v), - ) + .as_deref() + .unwrap_or("1970-01-01T00:00:00Z"), + )? + .dc_creator(self.config.creator.as_deref().unwrap_or("unknown"))? + .cp_last_modified_by(self.config.last_modified_by.as_deref().unwrap_or("unknown"))? .dcterms_modified( "dcterms:W3CDTF", self.config .modified - .as_ref() - .map_or_else(|| "1970-01-01T00:00:00Z", |v| v), - ) - .cp_revision(&self.config.revision.map_or_else(|| "1".to_owned(), convert)); - if let Some(v) = self.config.description.as_ref() { - base = base.dc_description(v); - } - if let Some(v) = self.config.language.as_ref() { - base = base.dc_language(v); - } - if let Some(v) = self.config.subject.as_ref() { - base = base.dc_subject(v); - } - if let Some(v) = self.config.title.as_ref() { - base = base.dc_title(v); - } - base.close().build() + .as_deref() + .unwrap_or("1970-01-01T00:00:00Z"), + )? + .cp_revision(&self.config.revision.unwrap_or(1).to_string())? + .apply_opt(self.config.description.as_ref(), |v, b| b.dc_description(v))? + .apply_opt(self.config.language.as_ref(), |v, b| b.dc_language(v))? + .apply_opt(self.config.subject.as_ref(), |v, b| b.dc_subject(v))? + .apply_opt(self.config.title.as_ref(), |v, b| b.dc_title(v))? + .close()? + .into_inner() } } @@ -135,14 +120,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - 1970-01-01T00:00:00Z - unknown - unknown - 1970-01-01T00:00:00Z - 1 -"# + r#"1970-01-01T00:00:00Zunknownunknown1970-01-01T00:00:00Z1"# ); } @@ -162,18 +140,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - 2019-01-01 - foo - go - 2019-01-01 - 1 - bar - en - subject - title -"# + r#"2019-01-01foogo2019-01-011barensubjecttitle"# ); } } diff --git a/docx-core/src/documents/doc_props/custom.rs b/docx-core/src/documents/doc_props/custom.rs index 5815de6ab..a50678f1f 100644 --- a/docx-core/src/documents/doc_props/custom.rs +++ b/docx-core/src/documents/doc_props/custom.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -21,26 +22,28 @@ impl CustomProps { } impl BuildXML for CustomProps { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut base = b.declaration(Some(true)).open_custom_properties( - "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties", - "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes", - ); - - for (i, (key, item)) in self.properties.iter().enumerate() { - base = base - .open_property( + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_custom_properties( + "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties", + "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes", + )? + .apply_each(self.properties.iter().enumerate(), |(i, (key, item)), b| { + b.open_property( "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", - // I can not found spec about this id. - // It is invalid if pid started by 1.... + // I can not find spec about this id. + // It is invalid if pid starts from 1... &format!("{}", i + 2), key, - ) - .lpwstr(item) + )? + .lpwstr(item)? .close() - } - - base.close().build() + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/document.rs b/docx-core/src/documents/document.rs index 95660f0b0..7a1967ba0 100644 --- a/docx-core/src/documents/document.rs +++ b/docx-core/src/documents/document.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -236,31 +237,37 @@ impl Document { } impl BuildXML for DocumentChild { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { match self { - DocumentChild::Paragraph(v) => v.build(), - DocumentChild::Table(v) => v.build(), - DocumentChild::BookmarkStart(v) => v.build(), - DocumentChild::BookmarkEnd(v) => v.build(), - DocumentChild::CommentStart(v) => v.build(), - DocumentChild::CommentEnd(v) => v.build(), - DocumentChild::StructuredDataTag(v) => v.build(), - DocumentChild::TableOfContents(v) => v.build(), + DocumentChild::Paragraph(v) => v.build_to(stream), + DocumentChild::Table(v) => v.build_to(stream), + DocumentChild::BookmarkStart(v) => v.build_to(stream), + DocumentChild::BookmarkEnd(v) => v.build_to(stream), + DocumentChild::CommentStart(v) => v.build_to(stream), + DocumentChild::CommentEnd(v) => v.build_to(stream), + DocumentChild::StructuredDataTag(v) => v.build_to(stream), + DocumentChild::TableOfContents(v) => v.build_to(stream), } } } impl BuildXML for Document { - fn build(&self) -> Vec { - XMLBuilder::new() - .declaration(Some(true)) - .open_document() - .open_body() - .add_children(&self.children) - .add_child(&self.section_property) - .close() - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_document()? + .open_body()? + .add_children(&self.children)? + .add_child(&self.section_property)? + .close()? + .close()? + .into_inner() } } @@ -280,11 +287,7 @@ mod tests { .build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - Hello - -"# + r#"Hello"# ); } @@ -294,12 +297,7 @@ mod tests { let b = Document::new().add_table_of_contents(toc).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - TOC \o "1-3" - - -"# + r#"TOC \o "1-3""# ); } @@ -311,11 +309,7 @@ mod tests { .build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - Hello - -"# + r#"Hello"# ); } } diff --git a/docx-core/src/documents/document_rels.rs b/docx-core/src/documents/document_rels.rs index 2eda5408b..c6f643a80 100644 --- a/docx-core/src/documents/document_rels.rs +++ b/docx-core/src/documents/document_rels.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -45,97 +46,91 @@ impl DocumentRels { } impl BuildXML for DocumentRels { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b - .declaration(None) - .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships") + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(None)? + .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships")? .relationship( "rId1", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles", "styles.xml", - ) + )? .relationship( "rId2", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable", "fontTable.xml", - ) + )? .relationship( "rId3", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings", "settings.xml", - ) + )? .relationship( "rId5", "http://schemas.microsoft.com/office/2011/relationships/commentsExtended", "commentsExtended.xml", - ); - - if self.has_comments { - b = b.relationship( - "rId6", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments", - "comments.xml", - ) - } - - if self.has_numberings { - b = b.relationship( - "rId7", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering", - "numbering.xml", - ) - } - - if self.has_footnotes { - b = b.relationship( - "rId8", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes", - "footnotes.xml", - ) - } - - for i in 0..self.header_count { - b = b.relationship( - &create_header_rid(i + 1), - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", - &format!("header{}.xml", i + 1), - ) - } - - for i in 0..self.footer_count { - b = b.relationship( - &create_footer_rid(i + 1), - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", - &format!("footer{}.xml", i + 1), - ) - } - - for i in 0..self.custom_xml_count { - b = b.relationship( - &format!("rId{}", i + 8), - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml", - &format!("../customXml/item{}.xml", i + 1), - ) - } - - for (id, path) in self.images.iter() { - b = b.relationship( - id, - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", - path, - ) - } - - for (id, path, r#type) in self.hyperlinks.iter() { - b = b.relationship_with_mode( - id, - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", - path, - r#type, - ) - } - - b.close().build() + )? + .apply_if(self.has_comments, |b| { + b.relationship( + "rId6", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments", + "comments.xml", + ) + })? + .apply_if(self.has_numberings, |b| { + b.relationship( + "rId7", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering", + "numbering.xml", + ) + })? + .apply_if(self.has_footnotes, |b| { + b.relationship( + "rId8", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes", + "footnotes.xml", + ) + })? + .apply_each(0..self.header_count, |i, b| { + b.relationship( + &create_header_rid(i + 1), + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", + &format!("header{}.xml", i + 1), + ) + })? + .apply_each(0..self.footer_count, |i, b| { + b.relationship( + &create_footer_rid(i + 1), + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", + &format!("footer{}.xml", i + 1), + ) + })? + .apply_each(0..self.custom_xml_count, |i, b| { + b.relationship( + &format!("rId{}", i + 8), + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml", + &format!("../customXml/item{}.xml", i + 1), + ) + })? + .apply_each(self.images.iter(), |(id, path), b| { + b.relationship( + id, + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", + path, + ) + })? + .apply_each(self.hyperlinks.iter(), |(id, path, r#type), b| { + b.relationship_with_mode( + id, + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink", + path, + r#type, + ) + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/a_graphic.rs b/docx-core/src/documents/elements/a_graphic.rs index f50f2d312..251974f21 100644 --- a/docx-core/src/documents/elements/a_graphic.rs +++ b/docx-core/src/documents/elements/a_graphic.rs @@ -1,5 +1,6 @@ use super::*; use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -22,13 +23,15 @@ impl AGraphic { } impl BuildXML for AGraphic { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_graphic("http://schemas.openxmlformats.org/drawingml/2006/main"); - for child in &self.children { - b = b.add_child(child); - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_graphic("http://schemas.openxmlformats.org/drawingml/2006/main")? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/a_graphic_data.rs b/docx-core/src/documents/elements/a_graphic_data.rs index 0a15cd07f..d49a2974f 100644 --- a/docx-core/src/documents/elements/a_graphic_data.rs +++ b/docx-core/src/documents/elements/a_graphic_data.rs @@ -1,6 +1,7 @@ use super::*; use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use std::str::FromStr; use crate::documents::BuildXML; @@ -95,15 +96,17 @@ impl AGraphicData { } impl BuildXML for AGraphicData { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_graphic_data(self.data_type.to_uri()); - for c in &self.children { - match c { - GraphicDataChild::Shape(t) => b = b.add_child(t), - GraphicDataChild::Pic(t) => b = b.add_child(t), - } - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_graphic_data(self.data_type.to_uri())? + .apply_each(&self.children, |ch, b| match ch { + GraphicDataChild::Shape(t) => b.add_child(t), + GraphicDataChild::Pic(t) => b.add_child(t), + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/abstract_numbering.rs b/docx-core/src/documents/elements/abstract_numbering.rs index 6d9b6755b..8cef260f0 100644 --- a/docx-core/src/documents/elements/abstract_numbering.rs +++ b/docx-core/src/documents/elements/abstract_numbering.rs @@ -1,5 +1,6 @@ use crate::documents::{BuildXML, Level}; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -39,14 +40,15 @@ impl AbstractNumbering { } impl BuildXML for AbstractNumbering { - fn build(&self) -> Vec { - let id = format!("{}", self.id); - let mut b = XMLBuilder::new(); - b = b.open_abstract_num(&id); - for l in &self.levels { - b = b.add_child(l); - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_abstract_num(&self.id.to_string())? + .add_children(&self.levels)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/adjust_right_ind.rs b/docx-core/src/documents/elements/adjust_right_ind.rs index 0718c198e..014f6aeb1 100644 --- a/docx-core/src/documents/elements/adjust_right_ind.rs +++ b/docx-core/src/documents/elements/adjust_right_ind.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -13,9 +14,13 @@ impl AdjustRightInd { } impl BuildXML for AdjustRightInd { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.adjust_right_ind(self.0).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .adjust_right_ind(self.0)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/based_on.rs b/docx-core/src/documents/elements/based_on.rs index dbba3e749..8242b2bd1 100644 --- a/docx-core/src/documents/elements/based_on.rs +++ b/docx-core/src/documents/elements/based_on.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -27,9 +28,11 @@ impl Serialize for BasedOn { } impl BuildXML for BasedOn { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.based_on(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).based_on(&self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/bold.rs b/docx-core/src/documents/elements/bold.rs index 404945235..aa52934d5 100644 --- a/docx-core/src/documents/elements/bold.rs +++ b/docx-core/src/documents/elements/bold.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -35,8 +36,10 @@ impl Serialize for Bold { } impl BuildXML for Bold { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.b().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).b()?.into_inner() } } diff --git a/docx-core/src/documents/elements/bold_cs.rs b/docx-core/src/documents/elements/bold_cs.rs index 82a5c8227..ce32e3962 100644 --- a/docx-core/src/documents/elements/bold_cs.rs +++ b/docx-core/src/documents/elements/bold_cs.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -34,8 +35,10 @@ impl Serialize for BoldCs { } impl BuildXML for BoldCs { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.b_cs().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).b_cs()?.into_inner() } } diff --git a/docx-core/src/documents/elements/bookmark_end.rs b/docx-core/src/documents/elements/bookmark_end.rs index 44f6ee52a..9dd13df20 100644 --- a/docx-core/src/documents/elements/bookmark_end.rs +++ b/docx-core/src/documents/elements/bookmark_end.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,9 +16,13 @@ impl BookmarkEnd { } impl BuildXML for BookmarkEnd { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.bookmark_end(&format!("{}", self.id)).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .bookmark_end(&self.id.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/bookmark_start.rs b/docx-core/src/documents/elements/bookmark_start.rs index 41e1a359b..e82dba8ab 100644 --- a/docx-core/src/documents/elements/bookmark_start.rs +++ b/docx-core/src/documents/elements/bookmark_start.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -19,10 +20,13 @@ impl BookmarkStart { } impl BuildXML for BookmarkStart { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.bookmark_start(&format!("{}", self.id), &self.name) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .bookmark_start(&self.id.to_string(), &self.name)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/br.rs b/docx-core/src/documents/elements/br.rs index ee7a5adb2..dc4ab26a9 100644 --- a/docx-core/src/documents/elements/br.rs +++ b/docx-core/src/documents/elements/br.rs @@ -1,5 +1,6 @@ use serde::ser::{Serialize, SerializeStruct, Serializer}; use serde::Deserialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -17,9 +18,13 @@ impl Break { } impl BuildXML for Break { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.br(&self.break_type.to_string()).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .br(&self.break_type.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/cant_split.rs b/docx-core/src/documents/elements/cant_split.rs index 04133a478..52387a587 100644 --- a/docx-core/src/documents/elements/cant_split.rs +++ b/docx-core/src/documents/elements/cant_split.rs @@ -1,13 +1,16 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::{xml_builder::XMLBuilder, BuildXML}; #[derive(Debug, Clone, PartialEq, Eq, Default)] pub struct CantSplit {} impl BuildXML for CantSplit { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.cant_split().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).cant_split()?.into_inner() } } diff --git a/docx-core/src/documents/elements/caps.rs b/docx-core/src/documents/elements/caps.rs index cbdce3325..37be22cc4 100644 --- a/docx-core/src/documents/elements/caps.rs +++ b/docx-core/src/documents/elements/caps.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::{xml_builder::XMLBuilder, BuildXML}; @@ -37,8 +38,12 @@ impl Serialize for Caps { } impl BuildXML for Caps { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.caps(&self.val.to_string()).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .caps(&self.val.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/cell_margins.rs b/docx-core/src/documents/elements/cell_margins.rs index 0e9dbc410..7be9f52a9 100644 --- a/docx-core/src/documents/elements/cell_margins.rs +++ b/docx-core/src/documents/elements/cell_margins.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -66,25 +67,26 @@ impl CellMargins { } impl BuildXML for CellMargins { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new().open_cell_margins(); - - if let Some(ref top) = self.top { - b = b.margin_top(top.val as i32, top.width_type); - } - - if let Some(ref left) = self.left { - b = b.margin_left(left.val as i32, left.width_type); - } - - if let Some(ref bottom) = self.bottom { - b = b.margin_bottom(bottom.val as i32, bottom.width_type); - } - - if let Some(ref right) = self.right { - b = b.margin_right(right.val as i32, right.width_type); - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_cell_margins()? + .apply_opt(self.top.as_ref(), |top, b| { + b.margin_top(top.val as i32, top.width_type) + })? + .apply_opt(self.left.as_ref(), |left, b| { + b.margin_left(left.val as i32, left.width_type) + })? + .apply_opt(self.bottom.as_ref(), |bottom, b| { + b.margin_bottom(bottom.val as i32, bottom.width_type) + })? + .apply_opt(self.right.as_ref(), |right, b| { + b.margin_right(right.val as i32, right.width_type) + })? + .close()? + .into_inner() } } @@ -101,9 +103,7 @@ mod tests { let b = CellMargins::new().margin_top(10, WidthType::Dxa).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/character_spacing.rs b/docx-core/src/documents/elements/character_spacing.rs index 4e159cf49..acba6b456 100644 --- a/docx-core/src/documents/elements/character_spacing.rs +++ b/docx-core/src/documents/elements/character_spacing.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::*; @@ -16,9 +17,11 @@ impl CharacterSpacing { } impl BuildXML for CharacterSpacing { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.spacing(self.value).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).spacing(self.value)?.into_inner() } } diff --git a/docx-core/src/documents/elements/color.rs b/docx-core/src/documents/elements/color.rs index 9c4543a41..c00d73a7d 100644 --- a/docx-core/src/documents/elements/color.rs +++ b/docx-core/src/documents/elements/color.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,8 +16,11 @@ impl Color { } impl BuildXML for Color { - fn build(&self) -> Vec { - XMLBuilder::new().color(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).color(&self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/comment.rs b/docx-core/src/documents/elements/comment.rs index dcd11a423..ae96a77f0 100644 --- a/docx-core/src/documents/elements/comment.rs +++ b/docx-core/src/documents/elements/comment.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::xml_builder::*; @@ -93,21 +94,27 @@ impl Comment { } impl BuildXML for CommentChild { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { match self { - CommentChild::Paragraph(v) => v.build(), - CommentChild::Table(v) => v.build(), + CommentChild::Paragraph(v) => v.build_to(stream), + CommentChild::Table(v) => v.build_to(stream), } } } impl BuildXML for Comment { - fn build(&self) -> Vec { - XMLBuilder::new() - .open_comment(&format!("{}", self.id), &self.author, &self.date, "") - .add_children(&self.children) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_comment(&self.id.to_string(), &self.author, &self.date, "")? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/comment_extended.rs b/docx-core/src/documents/elements/comment_extended.rs index 113586a7c..ab7c0bcd2 100644 --- a/docx-core/src/documents/elements/comment_extended.rs +++ b/docx-core/src/documents/elements/comment_extended.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -32,10 +33,13 @@ impl CommentExtended { } impl BuildXML for CommentExtended { - fn build(&self) -> Vec { - XMLBuilder::new() - .comment_extended(&self.paragraph_id, self.done, &self.parent_paragraph_id) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .comment_extended(&self.paragraph_id, self.done, &self.parent_paragraph_id)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/comment_range_end.rs b/docx-core/src/documents/elements/comment_range_end.rs index 5313f78fb..f8883c85f 100644 --- a/docx-core/src/documents/elements/comment_range_end.rs +++ b/docx-core/src/documents/elements/comment_range_end.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,17 +16,20 @@ impl CommentRangeEnd { } impl BuildXML for CommentRangeEnd { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.open_run() - .open_run_property() - .close() - .close() - .comment_range_end(&format!("{}", self.id)) - .open_run() - .comment_reference(&format!("{}", self.id)) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_run()? + .open_run_property()? + .close()? + .close()? + .comment_range_end(&format!("{}", self.id))? + .open_run()? + .comment_reference(&format!("{}", self.id))? + .close()? + .into_inner() } } @@ -43,13 +47,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/comment_range_start.rs b/docx-core/src/documents/elements/comment_range_start.rs index 1faeb3e9e..4cd1b51db 100644 --- a/docx-core/src/documents/elements/comment_range_start.rs +++ b/docx-core/src/documents/elements/comment_range_start.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::Comment; use crate::documents::BuildXML; @@ -32,16 +33,13 @@ impl CommentRangeStart { } impl BuildXML for CommentRangeStart { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.comment_range_start(&format!("{}", self.id)).build() - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.comment_range_start(&format!("{}", self.id)).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .comment_range_start(&self.id.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/data_binding.rs b/docx-core/src/documents/elements/data_binding.rs index 82ab1733c..b64df63f0 100644 --- a/docx-core/src/documents/elements/data_binding.rs +++ b/docx-core/src/documents/elements/data_binding.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::xml_builder::*; @@ -32,14 +33,17 @@ impl DataBinding { } impl BuildXML for DataBinding { - fn build(&self) -> Vec { - XMLBuilder::new() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) .data_binding( self.xpath.as_ref(), self.prefix_mappings.as_ref(), self.store_item_id.as_ref(), - ) - .build() + )? + .into_inner() } } diff --git a/docx-core/src/documents/elements/default_tab_stop.rs b/docx-core/src/documents/elements/default_tab_stop.rs index a588573ec..f32780226 100644 --- a/docx-core/src/documents/elements/default_tab_stop.rs +++ b/docx-core/src/documents/elements/default_tab_stop.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::{Serialize, Serializer}; @@ -15,9 +16,13 @@ impl DefaultTabStop { } impl BuildXML for DefaultTabStop { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.default_tab_stop(self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .default_tab_stop(self.val)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/delete.rs b/docx-core/src/documents/elements/delete.rs index a8632198a..48f2c14c2 100644 --- a/docx-core/src/documents/elements/delete.rs +++ b/docx-core/src/documents/elements/delete.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::xml_builder::*; use crate::{documents::*, escape}; @@ -97,18 +98,20 @@ impl Delete { impl HistoryId for Delete {} impl BuildXML for Delete { - #[allow(clippy::needless_borrow)] - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { let id = self.generate(); - let mut b = XMLBuilder::new().open_delete(&id, &self.author, &self.date); - for c in &self.children { - match c { - DeleteChild::Run(t) => b = b.add_child(t), - DeleteChild::CommentStart(c) => b = b.add_child(c), - DeleteChild::CommentEnd(c) => b = b.add_child(c), - } - } - b.close().build() + XMLBuilder::from(stream) + .open_delete(&id, &self.author, &self.date)? + .apply_each(&self.children, |ch, b| match ch { + DeleteChild::Run(t) => b.add_child(t), + DeleteChild::CommentStart(c) => b.add_child(&c), + DeleteChild::CommentEnd(c) => b.add_child(c), + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/delete_instr_text.rs b/docx-core/src/documents/elements/delete_instr_text.rs index 408e8a64d..5de4a63f2 100644 --- a/docx-core/src/documents/elements/delete_instr_text.rs +++ b/docx-core/src/documents/elements/delete_instr_text.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::xml_builder::*; @@ -14,25 +15,21 @@ pub enum DeleteInstrText { } impl BuildXML for DeleteInstrText { - fn build(&self) -> Vec { - let instr = match self { - DeleteInstrText::TOC(toc) => toc.build(), - DeleteInstrText::TC(tc) => tc.build(), - DeleteInstrText::PAGEREF(page_ref) => page_ref.build(), - DeleteInstrText::HYPERLINK(_link) => todo!(), - DeleteInstrText::Unsupported(s) => s.as_bytes().to_vec(), - }; - XMLBuilder::new() - .open_delete_instr_text() - .add_bytes(&instr) - .close() - .build() - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - self.as_ref().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_delete_instr_text()? + .apply(|b| match self { + DeleteInstrText::TOC(toc) => b.add_child(toc), + DeleteInstrText::TC(tc) => b.add_child(tc), + DeleteInstrText::PAGEREF(page_ref) => b.add_child(page_ref), + DeleteInstrText::HYPERLINK(_link) => todo!(), + DeleteInstrText::Unsupported(s) => b.plain_text(s), + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/delete_text.rs b/docx-core/src/documents/elements/delete_text.rs index 949c42fec..baa9fbb7f 100644 --- a/docx-core/src/documents/elements/delete_text.rs +++ b/docx-core/src/documents/elements/delete_text.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -28,8 +29,13 @@ impl DeleteText { } impl BuildXML for DeleteText { - fn build(&self) -> Vec { - XMLBuilder::new().delete_text(&self.text, true).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .delete_text(&self.text, true)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/doc_defaults.rs b/docx-core/src/documents/elements/doc_defaults.rs index 34e02eb70..8a1251a5d 100644 --- a/docx-core/src/documents/elements/doc_defaults.rs +++ b/docx-core/src/documents/elements/doc_defaults.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::{documents::BuildXML, RunProperty}; use crate::{xml_builder::*, LineSpacing, ParagraphProperty, ParagraphPropertyDefault}; @@ -61,13 +62,16 @@ impl Default for DocDefaults { } impl BuildXML for DocDefaults { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.open_doc_defaults() - .add_child(&self.run_property_default) - .add_child(&self.paragraph_property_default) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_doc_defaults()? + .add_child(&self.run_property_default)? + .add_child(&self.paragraph_property_default)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/doc_grid.rs b/docx-core/src/documents/elements/doc_grid.rs index dd4c3e5be..c0e97a44e 100644 --- a/docx-core/src/documents/elements/doc_grid.rs +++ b/docx-core/src/documents/elements/doc_grid.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -52,9 +53,12 @@ impl Default for DocGrid { } impl BuildXML for DocGrid { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.doc_grid(&self.grid_type, self.line_pitch, self.char_space) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .doc_grid(&self.grid_type, self.line_pitch, self.char_space)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/doc_id.rs b/docx-core/src/documents/elements/doc_id.rs index 7022dfbab..7d54b0348 100644 --- a/docx-core/src/documents/elements/doc_id.rs +++ b/docx-core/src/documents/elements/doc_id.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -24,9 +25,11 @@ impl Serialize for DocId { } impl BuildXML for DocId { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { let id = format!("{{{}}}", self.id); - b.doc_id(&id).build() + XMLBuilder::from(stream).doc_id(&id)?.into_inner() } } diff --git a/docx-core/src/documents/elements/doc_var.rs b/docx-core/src/documents/elements/doc_var.rs index 190df30a9..4fd821172 100644 --- a/docx-core/src/documents/elements/doc_var.rs +++ b/docx-core/src/documents/elements/doc_var.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -19,8 +20,12 @@ impl DocVar { } impl BuildXML for DocVar { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.doc_var(&self.name, &self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .doc_var(&self.name, &self.val)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/drawing.rs b/docx-core/src/documents/elements/drawing.rs index 2af72c2ae..c88347337 100644 --- a/docx-core/src/documents/elements/drawing.rs +++ b/docx-core/src/documents/elements/drawing.rs @@ -1,5 +1,6 @@ use super::*; use serde::{ser::*, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -55,16 +56,13 @@ impl Drawing { } } -impl BuildXML for Box { - fn build(&self) -> Vec { - self.as_ref().build() - } -} - impl BuildXML for Drawing { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_drawing(); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let b = XMLBuilder::from(stream); + let mut b = b.open_drawing()?; match &self.data { Some(DrawingData::Pic(p)) => { @@ -74,7 +72,7 @@ impl BuildXML for Drawing { &format!("{}", p.dist_b), &format!("{}", p.dist_l), &format!("{}", p.dist_r), - ) + )? } else { b = b .open_wp_anchor( @@ -88,32 +86,32 @@ impl BuildXML for Drawing { "0", if p.layout_in_cell { "1" } else { "0" }, &format!("{}", p.relative_height), - ) + )? .simple_pos( &format!("{}", p.simple_pos_x), &format!("{}", p.simple_pos_y), - ) - .open_position_h(&format!("{}", p.relative_from_h)); + )? + .open_position_h(&format!("{}", p.relative_from_h))?; match p.position_h { DrawingPosition::Offset(x) => { let x = format!("{}", x as u32); - b = b.pos_offset(&x).close(); + b = b.pos_offset(&x)?.close()?; } DrawingPosition::Align(x) => { - b = b.align(&x.to_string()).close(); + b = b.align(&x.to_string())?.close()?; } } - b = b.open_position_v(&format!("{}", p.relative_from_v)); + b = b.open_position_v(&format!("{}", p.relative_from_v))?; match p.position_v { DrawingPosition::Offset(y) => { let y = format!("{}", y as u32); - b = b.pos_offset(&y).close(); + b = b.pos_offset(&y)?.close()?; } DrawingPosition::Align(a) => { - b = b.align(&a.to_string()).close(); + b = b.align(&a.to_string())?.close()?; } } } @@ -123,33 +121,35 @@ impl BuildXML for Drawing { b = b // Please see 20.4.2.7 extent (Drawing Object Size) // One inch equates to 914400 EMUs and a centimeter is 360000 - .wp_extent(&w, &h) - .wp_effect_extent("0", "0", "0", "0"); + .wp_extent(&w, &h)? + .wp_effect_extent("0", "0", "0", "0")?; if p.allow_overlap { - b = b.wrap_none(); + b = b.wrap_none()?; } else if p.position_type == DrawingPositionType::Anchor { - b = b.wrap_square("bothSides"); + b = b.wrap_square("bothSides")?; } b = b - .wp_doc_pr("1", "Figure") - .open_wp_c_nv_graphic_frame_pr() + .wp_doc_pr("1", "Figure")? + .open_wp_c_nv_graphic_frame_pr()? .a_graphic_frame_locks( "http://schemas.openxmlformats.org/drawingml/2006/main", "1", - ) - .close() - .open_a_graphic("http://schemas.openxmlformats.org/drawingml/2006/main") - .open_a_graphic_data("http://schemas.openxmlformats.org/drawingml/2006/picture") - .add_child(&p.clone()) - .close() - .close(); + )? + .close()? + .open_a_graphic("http://schemas.openxmlformats.org/drawingml/2006/main")? + .open_a_graphic_data( + "http://schemas.openxmlformats.org/drawingml/2006/picture", + )? + .add_child(&p.clone())? + .close()? + .close()?; } Some(DrawingData::TextBox(_t)) => unimplemented!("TODO: Support textBox writer"), None => { unimplemented!() } } - b.close().close().build() + b.close()?.close()?.into_inner() } } @@ -167,42 +167,7 @@ mod tests { let d = Drawing::new().pic(pic).build(); assert_eq!( str::from_utf8(&d).unwrap(), - r#" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"# + r#""# ); } @@ -212,43 +177,7 @@ mod tests { let d = Drawing::new().pic(pic).build(); assert_eq!( str::from_utf8(&d).unwrap(), - r#" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"# + r#""# ); } @@ -261,50 +190,7 @@ mod tests { let d = Drawing::new().pic(pic).build(); assert_eq!( str::from_utf8(&d).unwrap(), - r#" - - - - right - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"# + r#"right0"# ); } @@ -319,50 +205,7 @@ mod tests { let d = Drawing::new().pic(pic).build(); assert_eq!( str::from_utf8(&d).unwrap(), - r#" - - - - 2857500 - - - 3810000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"# + r#"28575003810000"# ); } } diff --git a/docx-core/src/documents/elements/fld_char.rs b/docx-core/src/documents/elements/fld_char.rs index b7b100e7f..ac6421ea4 100644 --- a/docx-core/src/documents/elements/fld_char.rs +++ b/docx-core/src/documents/elements/fld_char.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::types::*; @@ -28,13 +29,16 @@ impl FieldChar { } impl BuildXML for FieldChar { - fn build(&self) -> Vec { - XMLBuilder::new() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) .field_character( &format!("{}", self.field_char_type), &format!("{}", &self.dirty), - ) - .build() + )? + .into_inner() } } diff --git a/docx-core/src/documents/elements/font.rs b/docx-core/src/documents/elements/font.rs index 8a0e607f1..623e7c0c2 100644 --- a/docx-core/src/documents/elements/font.rs +++ b/docx-core/src/documents/elements/font.rs @@ -1,6 +1,7 @@ use crate::documents::BuildXML; use crate::types::*; use crate::xml_builder::*; +use std::io::Write; #[derive(Debug)] pub struct Font<'a> { @@ -22,14 +23,17 @@ impl<'a> Font<'a> { } impl<'a> BuildXML for Font<'a> { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.open_font(self.name) - .charset(self.charset) - .family(self.family) - .pitch(&self.pitch.to_string()) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_font(self.name)? + .charset(self.charset)? + .family(self.family)? + .pitch(&self.pitch.to_string())? + .close()? + .into_inner() } } @@ -47,11 +51,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/footer_reference.rs b/docx-core/src/documents/elements/footer_reference.rs index 5dbc15509..0ad25513d 100644 --- a/docx-core/src/documents/elements/footer_reference.rs +++ b/docx-core/src/documents/elements/footer_reference.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -20,9 +21,12 @@ impl FooterReference { } impl BuildXML for FooterReference { - fn build(&self) -> Vec { - XMLBuilder::new() - .footer_reference(&self.footer_type, &self.id) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .footer_reference(&self.footer_type, &self.id)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/footnote.rs b/docx-core/src/documents/elements/footnote.rs index 5d17b64bc..96b7a3049 100644 --- a/docx-core/src/documents/elements/footnote.rs +++ b/docx-core/src/documents/elements/footnote.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::xml_builder::*; @@ -47,7 +48,10 @@ impl From<&FootnoteReference> for Footnote { } impl BuildXML for Footnote { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { // To ensure docx compatible XML serialization for footnotes, we default to an empty paragraph. let mut footnote = self.clone(); if self.content == vec![] { @@ -55,11 +59,11 @@ impl BuildXML for Footnote { footnote.add_content(Paragraph::new()); } - XMLBuilder::new() - .open_footnote(&format!("{}", self.id)) - .add_children(&footnote.content) - .close() - .build() + XMLBuilder::from(stream) + .open_footnote(&format!("{}", self.id))? + .add_children(&footnote.content)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/footnote_reference.rs b/docx-core/src/documents/elements/footnote_reference.rs index 0d0189e3c..ad66d9f72 100644 --- a/docx-core/src/documents/elements/footnote_reference.rs +++ b/docx-core/src/documents/elements/footnote_reference.rs @@ -1,4 +1,5 @@ use serde::ser::{Serialize, SerializeStruct, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::{xml_builder::*, Footnote, Paragraph}; @@ -35,8 +36,13 @@ impl From for FootnoteReference { } impl BuildXML for FootnoteReference { - fn build(&self) -> Vec { - XMLBuilder::new().footnote_reference(self.id).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .footnote_reference(self.id)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/frame_property.rs b/docx-core/src/documents/elements/frame_property.rs index 514316f65..5df528314 100644 --- a/docx-core/src/documents/elements/frame_property.rs +++ b/docx-core/src/documents/elements/frame_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -120,9 +121,11 @@ impl FrameProperty { } impl BuildXML for FrameProperty { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.frame_property(self).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).frame_property(self)?.into_inner() } } diff --git a/docx-core/src/documents/elements/grid_span.rs b/docx-core/src/documents/elements/grid_span.rs index 325a78bae..5fcea92db 100644 --- a/docx-core/src/documents/elements/grid_span.rs +++ b/docx-core/src/documents/elements/grid_span.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,8 +16,11 @@ impl GridSpan { } impl BuildXML for GridSpan { - fn build(&self) -> Vec { - XMLBuilder::new().grid_span(self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).grid_span(self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/header_reference.rs b/docx-core/src/documents/elements/header_reference.rs index 9599e6677..6e0e6cc99 100644 --- a/docx-core/src/documents/elements/header_reference.rs +++ b/docx-core/src/documents/elements/header_reference.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -29,9 +30,12 @@ impl HeaderReference { } impl BuildXML for HeaderReference { - fn build(&self) -> Vec { - XMLBuilder::new() - .header_reference(&self.header_type, &self.id) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .header_reference(&self.header_type, &self.id)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/highlight.rs b/docx-core/src/documents/elements/highlight.rs index fcbc23370..25799c440 100644 --- a/docx-core/src/documents/elements/highlight.rs +++ b/docx-core/src/documents/elements/highlight.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,8 +16,11 @@ impl Highlight { } impl BuildXML for Highlight { - fn build(&self) -> Vec { - XMLBuilder::new().highlight(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).highlight(&self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/hyperlink.rs b/docx-core/src/documents/elements/hyperlink.rs index 499d5b260..456a6fea3 100644 --- a/docx-core/src/documents/elements/hyperlink.rs +++ b/docx-core/src/documents/elements/hyperlink.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -98,25 +99,26 @@ impl Hyperlink { } impl BuildXML for Hyperlink { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - match self.link { - HyperlinkData::Anchor { ref anchor } => { - b = b.open_hyperlink( + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .apply(|b| match self.link { + HyperlinkData::Anchor { ref anchor } => b.open_hyperlink( None, Some(anchor.clone()).as_ref(), Some(self.history.unwrap_or(1)), - ) - } - HyperlinkData::External { ref rid, .. } => { - b = b.open_hyperlink( + ), + HyperlinkData::External { ref rid, .. } => b.open_hyperlink( Some(rid.clone()).as_ref(), None, Some(self.history.unwrap_or(1)), - ) - } - }; - b.add_children(&self.children).close().build() + ), + })? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/indent.rs b/docx-core/src/documents/elements/indent.rs index 6f12fde30..cba91d27d 100644 --- a/docx-core/src/documents/elements/indent.rs +++ b/docx-core/src/documents/elements/indent.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -51,15 +52,18 @@ impl Indent { } impl BuildXML for Indent { - fn build(&self) -> Vec { - XMLBuilder::new() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) .indent( self.start, self.special_indent, self.end.unwrap_or_default(), self.start_chars, - ) - .build() + )? + .into_inner() } } diff --git a/docx-core/src/documents/elements/indent_level.rs b/docx-core/src/documents/elements/indent_level.rs index 704bc50cf..9c8da2824 100644 --- a/docx-core/src/documents/elements/indent_level.rs +++ b/docx-core/src/documents/elements/indent_level.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; #[derive(Debug, Clone, PartialEq)] pub struct IndentLevel { @@ -13,9 +14,13 @@ impl IndentLevel { } impl BuildXML for IndentLevel { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.indent_level(self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .indent_level(self.val)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/insert.rs b/docx-core/src/documents/elements/insert.rs index 1d851130a..f23fc38d7 100644 --- a/docx-core/src/documents/elements/insert.rs +++ b/docx-core/src/documents/elements/insert.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::*; @@ -15,12 +16,15 @@ pub enum InsertChild { } impl BuildXML for InsertChild { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { match self { - InsertChild::Run(v) => v.build(), - InsertChild::Delete(v) => v.build(), - InsertChild::CommentStart(v) => v.build(), - InsertChild::CommentEnd(v) => v.build(), + InsertChild::Run(v) => v.build_to(stream), + InsertChild::Delete(v) => v.build_to(stream), + InsertChild::CommentStart(v) => v.build_to(stream), + InsertChild::CommentEnd(v) => v.build_to(stream), } } } @@ -140,13 +144,15 @@ impl Insert { impl HistoryId for Insert {} impl BuildXML for Insert { - #[allow(clippy::needless_borrow)] - fn build(&self) -> Vec { - XMLBuilder::new() - .open_insert(&self.generate(), &self.author, &self.date) - .add_children(&self.children) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_insert(&self.generate(), &self.author, &self.date)? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/instr_num_pages.rs b/docx-core/src/documents/elements/instr_num_pages.rs index bca1c967b..00049ccb7 100644 --- a/docx-core/src/documents/elements/instr_num_pages.rs +++ b/docx-core/src/documents/elements/instr_num_pages.rs @@ -1,6 +1,8 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; +use crate::xml_builder::XMLBuilder; #[derive(Serialize, Debug, Clone, PartialEq, Default)] #[serde(rename_all = "camelCase")] @@ -13,8 +15,12 @@ impl InstrNUMPAGES { } impl BuildXML for InstrNUMPAGES { - fn build(&self) -> Vec { - let instr = "NUMPAGES".to_owned(); - instr.into() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .plain_text("NUMPAGES")? + .into_inner() } } diff --git a/docx-core/src/documents/elements/instr_page.rs b/docx-core/src/documents/elements/instr_page.rs index 1e45f6f3e..541f5a17e 100644 --- a/docx-core/src/documents/elements/instr_page.rs +++ b/docx-core/src/documents/elements/instr_page.rs @@ -1,6 +1,8 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; +use crate::xml_builder::XMLBuilder; #[derive(Serialize, Debug, Clone, PartialEq, Default)] #[serde(rename_all = "camelCase")] @@ -13,8 +15,10 @@ impl InstrPAGE { } impl BuildXML for InstrPAGE { - fn build(&self) -> Vec { - let instr = "PAGE".to_owned(); - instr.into() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).plain_text("PAGE")?.into_inner() } } diff --git a/docx-core/src/documents/elements/instr_pageref.rs b/docx-core/src/documents/elements/instr_pageref.rs index 4f8a9bb17..4aa881f03 100644 --- a/docx-core/src/documents/elements/instr_pageref.rs +++ b/docx-core/src/documents/elements/instr_pageref.rs @@ -1,6 +1,8 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; +use crate::xml_builder::XMLBuilder; // https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_PAGEREFPAGEREF_topic_ID0EHXK1.html #[derive(Serialize, Debug, Clone, PartialEq, Default)] @@ -31,18 +33,16 @@ impl InstrPAGEREF { } impl BuildXML for InstrPAGEREF { - fn build(&self) -> Vec { - let mut instr = format!("PAGEREF {}", self.page_ref); - - if self.relative_position { - instr = format!("{} \\p", instr); - } - - if self.hyperlink { - instr = format!("{} \\h", instr); - } - - instr.into() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .plain_text("PAGEREF ")? + .plain_text(&self.page_ref)? + .apply_if(self.relative_position, |b| b.plain_text(" \\p"))? + .apply_if(self.hyperlink, |b| b.plain_text(" \\h"))? + .into_inner() } } @@ -78,9 +78,6 @@ mod tests { #[test] fn test_page_ref() { let b = InstrPAGEREF::new("_Toc00000000").hyperlink().build(); - assert_eq!( - str::from_utf8(&b).unwrap(), - r#"PAGEREF _Toc00000000 \h"# - ); + assert_eq!(str::from_utf8(&b).unwrap(), r#"PAGEREF _Toc00000000 \h"#); } } diff --git a/docx-core/src/documents/elements/instr_tc.rs b/docx-core/src/documents/elements/instr_tc.rs index d1bfcdd40..a124ee2ce 100644 --- a/docx-core/src/documents/elements/instr_tc.rs +++ b/docx-core/src/documents/elements/instr_tc.rs @@ -1,6 +1,8 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; +use crate::xml_builder::XMLBuilder; // https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_TCTC_topic_ID0EU2N1.html #[derive(Serialize, Debug, Clone, PartialEq, Default)] @@ -39,22 +41,28 @@ impl InstrTC { } impl BuildXML for InstrTC { - fn build(&self) -> Vec { - let mut instr = format!("TC {}", self.text); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let mut b = XMLBuilder::from(stream); + let raw = b.inner_mut()?; + + write!(raw, "TC {}", self.text)?; if let Some(ref t) = self.item_type_identifier { - instr = format!("{} \\f {}", instr, t); + write!(raw, " \\f {}", t)?; } if let Some(level) = self.level { - instr = format!("{} \\l {}", instr, level); + write!(raw, " \\l {}", level)?; } if self.omits_page_number { - instr = format!("{} \\n", instr); + write!(raw, " \\n")?; } - instr.into() + b.into_inner() } } diff --git a/docx-core/src/documents/elements/instr_text.rs b/docx-core/src/documents/elements/instr_text.rs index f690ee984..62e39ad9d 100644 --- a/docx-core/src/documents/elements/instr_text.rs +++ b/docx-core/src/documents/elements/instr_text.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::xml_builder::*; @@ -16,21 +17,23 @@ pub enum InstrText { } impl BuildXML for Box { - fn build(&self) -> Vec { - let instr = match self.as_ref() { - InstrText::TOC(toc) => toc.build(), - InstrText::TC(tc) => tc.build(), - InstrText::PAGEREF(page_ref) => page_ref.build(), - InstrText::PAGE(page) => page.build(), - InstrText::NUMPAGES(page) => page.build(), - InstrText::HYPERLINK(_link) => todo!(), - InstrText::Unsupported(s) => s.as_bytes().to_vec(), - }; - XMLBuilder::new() - .open_instr_text() - .add_bytes(&instr) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_instr_text()? + .apply(|b| match self.as_ref() { + InstrText::TOC(toc) => b.add_child(toc), + InstrText::TC(tc) => b.add_child(tc), + InstrText::PAGEREF(page_ref) => b.add_child(page_ref), + InstrText::PAGE(page) => b.add_child(page), + InstrText::NUMPAGES(page) => b.add_child(page), + InstrText::HYPERLINK(_link) => todo!(), + InstrText::Unsupported(s) => b.plain_text(s), + })? + .close()? + .into_inner() } } @@ -86,6 +89,7 @@ impl Serialize for InstrText { } } +#[allow(unused_allocation)] #[cfg(test)] mod tests { diff --git a/docx-core/src/documents/elements/instr_toc.rs b/docx-core/src/documents/elements/instr_toc.rs index 6ae8c1f5e..2bcaa48c9 100644 --- a/docx-core/src/documents/elements/instr_toc.rs +++ b/docx-core/src/documents/elements/instr_toc.rs @@ -1,6 +1,8 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; +use crate::xml_builder::XMLBuilder; #[derive(Serialize, Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "wasm", derive(ts_rs::TS))] @@ -159,57 +161,63 @@ impl InstrToC { } impl BuildXML for InstrToC { - fn build(&self) -> Vec { - let mut instr = "TOC".to_string(); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let mut b = XMLBuilder::from(stream); + let raw = b.inner_mut()?; + + write!(raw, "TOC")?; // \a if let Some(ref t) = self.caption_label { - instr = format!("{} \\a "{}"", instr, t); + write!(raw, " \\a "{}"", t)?; } // \b if let Some(ref t) = self.entry_bookmark_name { - instr = format!("{} \\b "{}"", instr, t); + write!(raw, " \\b "{}"", t)?; } // \c if let Some(ref t) = self.caption_label_including_numbers { - instr = format!("{} \\c "{}"", instr, t); + write!(raw, " \\c "{}"", t)?; } // \d if let Some(ref t) = self.sequence_and_page_numbers_separator { - instr = format!("{} \\d "{}"", instr, t); + write!(raw, " \\d "{}"", t)?; } // \f if let Some(ref t) = self.tc_field_identifier { - instr = format!("{} \\f "{}"", instr, t); + write!(raw, " \\f "{}"", t)?; } // \l if let Some(range) = self.tc_field_level_range { - instr = format!("{} \\l "{}-{}"", instr, range.0, range.1); + write!(raw, " \\l "{}-{}"", range.0, range.1)?; } // \n if let Some(range) = self.omit_page_numbers_level_range { - instr = format!("{} \\n "{}-{}"", instr, range.0, range.1); + write!(raw, " \\n "{}-{}"", range.0, range.1)?; } // \o if let Some(range) = self.heading_styles_range { - instr = format!("{} \\o "{}-{}"", instr, range.0, range.1); + write!(raw, " \\o "{}-{}"", range.0, range.1)?; } // \p if let Some(ref t) = self.entry_and_page_number_separator { - instr = format!("{} \\p "{}"", instr, t); + write!(raw, " \\p "{}"", t)?; } // \s if let Some(ref t) = self.seq_field_identifier_for_prefix { - instr = format!("{} \\s "{}"", instr, t); + write!(raw, " \\s "{}"", t)?; } // \t @@ -220,35 +228,35 @@ impl BuildXML for InstrToC { .map(|s| format!("{},{}", (s.0).0, (s.0).1)) .collect::>() .join(","); - instr = format!("{} \\t "{}"", instr, s); + write!(raw, " \\t "{}"", s)?; } // \h if self.hyperlink { - instr = format!("{} \\h", instr); + write!(raw, " \\h")?; } // \u if self.use_applied_paragraph_line_level { - instr = format!("{} \\u", instr); + write!(raw, " \\u")?; } // \w if self.preserve_tab { - instr = format!("{} \\w", instr); + write!(raw, " \\w")?; } // \x if self.preserve_new_line { - instr = format!("{} \\x", instr); + write!(raw, " \\x")?; } // \z if self.hide_tab_and_page_numbers_in_webview { - instr = format!("{} \\z", instr); + write!(raw, " \\z")?; } - instr.into() + b.into_inner() } } diff --git a/docx-core/src/documents/elements/is_lgl.rs b/docx-core/src/documents/elements/is_lgl.rs index efdd9cc01..ef640ac84 100644 --- a/docx-core/src/documents/elements/is_lgl.rs +++ b/docx-core/src/documents/elements/is_lgl.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -13,9 +14,11 @@ impl IsLgl { } impl BuildXML for IsLgl { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.is_lgl().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).is_lgl()?.into_inner() } } diff --git a/docx-core/src/documents/elements/italic.rs b/docx-core/src/documents/elements/italic.rs index 597ce27d1..3d4de4a6c 100644 --- a/docx-core/src/documents/elements/italic.rs +++ b/docx-core/src/documents/elements/italic.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -35,8 +36,10 @@ impl Serialize for Italic { } impl BuildXML for Italic { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.i().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).i()?.into_inner() } } diff --git a/docx-core/src/documents/elements/italic_cs.rs b/docx-core/src/documents/elements/italic_cs.rs index edc78ee76..eaabfbc33 100644 --- a/docx-core/src/documents/elements/italic_cs.rs +++ b/docx-core/src/documents/elements/italic_cs.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -35,8 +36,10 @@ impl Serialize for ItalicCs { } impl BuildXML for ItalicCs { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.i_cs().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).i_cs()?.into_inner() } } diff --git a/docx-core/src/documents/elements/justification.rs b/docx-core/src/documents/elements/justification.rs index 61e4cd494..955f85c2f 100644 --- a/docx-core/src/documents/elements/justification.rs +++ b/docx-core/src/documents/elements/justification.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -23,9 +24,13 @@ impl Justification { } impl BuildXML for Justification { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.justification(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .justification(&self.val)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/level.rs b/docx-core/src/documents/elements/level.rs index 2b4f43767..677441176 100644 --- a/docx-core/src/documents/elements/level.rs +++ b/docx-core/src/documents/elements/level.rs @@ -1,6 +1,7 @@ use crate::documents::*; use crate::types::*; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -125,24 +126,26 @@ impl Level { } impl BuildXML for Level { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new() - .open_level(&format!("{}", self.level)) - .add_child(&self.start) - .add_child(&self.format) - .add_child(&self.text) - .add_child(&self.jc) - .add_child(&self.paragraph_property) - .add_child(&self.run_property) - .add_optional_child(&self.pstyle) - .add_optional_child(&self.level_restart) - .add_optional_child(&self.is_lgl); - - if self.suffix != LevelSuffixType::Tab { - b = b.suffix(&self.suffix.to_string()); - } - - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_level(&format!("{}", self.level))? + .add_child(&self.start)? + .add_child(&self.format)? + .add_child(&self.text)? + .add_child(&self.jc)? + .add_child(&self.paragraph_property)? + .add_child(&self.run_property)? + .add_optional_child(&self.pstyle)? + .add_optional_child(&self.level_restart)? + .add_optional_child(&self.is_lgl)? + .apply_if(self.suffix != LevelSuffixType::Tab, |b| { + b.suffix(&self.suffix.to_string()) + })? + .close()? + .into_inner() } } @@ -199,8 +202,7 @@ mod tests { .build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } #[test] diff --git a/docx-core/src/documents/elements/level_jc.rs b/docx-core/src/documents/elements/level_jc.rs index 104e02114..bdec82ef1 100644 --- a/docx-core/src/documents/elements/level_jc.rs +++ b/docx-core/src/documents/elements/level_jc.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,9 +16,13 @@ impl LevelJc { } impl BuildXML for LevelJc { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.level_justification(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .level_justification(&self.val)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/level_override.rs b/docx-core/src/documents/elements/level_override.rs index fc451f0ad..d57c61ed2 100644 --- a/docx-core/src/documents/elements/level_override.rs +++ b/docx-core/src/documents/elements/level_override.rs @@ -1,4 +1,5 @@ use super::*; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -38,17 +39,18 @@ impl LevelOverride { } impl BuildXML for LevelOverride { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b.open_level_override(&format!("{}", self.level)); - - b = b.add_optional_child(&self.override_level); - - if let Some(start) = self.override_start { - b = b.start_override(&format!("{}", start)); - } - - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_level_override(&format!("{}", self.level))? + .add_optional_child(&self.override_level)? + .apply_opt(self.override_start, |start, b| { + b.start_override(&format!("{}", start)) + })? + .close()? + .into_inner() } } @@ -66,9 +68,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - -"# + r#""# ); } diff --git a/docx-core/src/documents/elements/level_restart.rs b/docx-core/src/documents/elements/level_restart.rs index e45b57f9a..7d0eec681 100644 --- a/docx-core/src/documents/elements/level_restart.rs +++ b/docx-core/src/documents/elements/level_restart.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,10 +16,13 @@ impl LevelRestart { } impl BuildXML for LevelRestart { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let v = format!("{}", &self.val); - b.level_restart(&v).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .level_restart(&format!("{}", &self.val))? + .into_inner() } } diff --git a/docx-core/src/documents/elements/level_text.rs b/docx-core/src/documents/elements/level_text.rs index dc8416d89..1b5871a0d 100644 --- a/docx-core/src/documents/elements/level_text.rs +++ b/docx-core/src/documents/elements/level_text.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,9 +16,11 @@ impl LevelText { } impl BuildXML for LevelText { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.level_text(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).level_text(&self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/line_spacing.rs b/docx-core/src/documents/elements/line_spacing.rs index e95e2acb6..6775e6cbc 100644 --- a/docx-core/src/documents/elements/line_spacing.rs +++ b/docx-core/src/documents/elements/line_spacing.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use crate::line_spacing_type::LineSpacingType; use serde::*; @@ -58,17 +59,20 @@ impl LineSpacing { } impl BuildXML for LineSpacing { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.line_spacing( - self.before, - self.after, - self.line, - self.before_lines, - self.after_lines, - self.line_rule, - ) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .line_spacing( + self.before, + self.after, + self.line, + self.before_lines, + self.after_lines, + self.line_rule, + )? + .into_inner() } } diff --git a/docx-core/src/documents/elements/link.rs b/docx-core/src/documents/elements/link.rs index 73be4f5e9..69b70cc51 100644 --- a/docx-core/src/documents/elements/link.rs +++ b/docx-core/src/documents/elements/link.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -27,8 +28,10 @@ impl Serialize for Link { } impl BuildXML for Link { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.link(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).link(&self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/mc_fallback.rs b/docx-core/src/documents/elements/mc_fallback.rs index 76700b47a..1fd805a4e 100644 --- a/docx-core/src/documents/elements/mc_fallback.rs +++ b/docx-core/src/documents/elements/mc_fallback.rs @@ -1,7 +1,8 @@ use crate::documents::BuildXML; use serde::Serialize; +use std::io::Write; -#[derive(Debug, Clone, Serialize, PartialEq, Default)] +#[derive(Debug, Default, Clone, PartialEq, Serialize)] pub struct McFallback {} impl McFallback { @@ -11,8 +12,11 @@ impl McFallback { } impl BuildXML for McFallback { - fn build(&self) -> Vec { - // Ignore for now - vec![] + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + // Ignore for now + Ok(stream) } } diff --git a/docx-core/src/documents/elements/name.rs b/docx-core/src/documents/elements/name.rs index 6517837e1..547414857 100644 --- a/docx-core/src/documents/elements/name.rs +++ b/docx-core/src/documents/elements/name.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use std::str::FromStr; @@ -36,9 +37,11 @@ impl Name { } impl BuildXML for Name { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.name(&self.name).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).name(&self.name)?.into_inner() } } diff --git a/docx-core/src/documents/elements/next.rs b/docx-core/src/documents/elements/next.rs index 5fb4bc2b3..333d91ca4 100644 --- a/docx-core/src/documents/elements/next.rs +++ b/docx-core/src/documents/elements/next.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -24,9 +25,11 @@ impl Serialize for Next { } impl BuildXML for Next { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.next(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).next(&self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/num_pages.rs b/docx-core/src/documents/elements/num_pages.rs index e3832ff67..33343f4f4 100644 --- a/docx-core/src/documents/elements/num_pages.rs +++ b/docx-core/src/documents/elements/num_pages.rs @@ -1,8 +1,8 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::types::*; -use crate::xml_builder::*; #[derive(Serialize, Debug, Clone, PartialEq)] pub struct NumPages { @@ -21,29 +21,20 @@ impl NumPages { pub fn new() -> Self { Self::default() } +} - fn inner_build(&self) -> Vec { - let b = XMLBuilder::new(); - let r = Run::new() +impl BuildXML for NumPages { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + Run::new() .add_field_char(FieldCharType::Begin, false) .add_instr_text(InstrText::NUMPAGES(self.instr.clone())) .add_field_char(FieldCharType::Separate, false) .add_text("1") - .add_field_char(FieldCharType::End, false); - - b.add_child(&r).build() - } -} - -impl BuildXML for NumPages { - fn build(&self) -> Vec { - self.inner_build() - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - self.inner_build() + .add_field_char(FieldCharType::End, false) + .build_to(stream) } } diff --git a/docx-core/src/documents/elements/number_format.rs b/docx-core/src/documents/elements/number_format.rs index 096c933af..c6c77d27d 100644 --- a/docx-core/src/documents/elements/number_format.rs +++ b/docx-core/src/documents/elements/number_format.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,9 +16,13 @@ impl NumberFormat { } impl BuildXML for NumberFormat { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.number_format(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .number_format(&self.val)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/numbering.rs b/docx-core/src/documents/elements/numbering.rs index 105b59c59..b5a269a28 100644 --- a/docx-core/src/documents/elements/numbering.rs +++ b/docx-core/src/documents/elements/numbering.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use super::*; use serde::Serialize; @@ -33,15 +34,18 @@ impl Numbering { } impl BuildXML for Numbering { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { let id = format!("{}", self.id); let abs_id = format!("{}", self.abstract_num_id); - b.open_num(&id) - .abstract_num_id(&abs_id) - .add_children(&self.level_overrides) - .close() - .build() + XMLBuilder::from(stream) + .open_num(&id)? + .abstract_num_id(&abs_id)? + .add_children(&self.level_overrides)? + .close()? + .into_inner() } } @@ -59,9 +63,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - -"# + r#""# ); } #[test] @@ -74,12 +76,7 @@ mod tests { let b = c.overrides(overrides).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - -"# + r#""# ); } diff --git a/docx-core/src/documents/elements/numbering_id.rs b/docx-core/src/documents/elements/numbering_id.rs index ec39959ce..8cf8f41ea 100644 --- a/docx-core/src/documents/elements/numbering_id.rs +++ b/docx-core/src/documents/elements/numbering_id.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -15,9 +16,11 @@ impl NumberingId { } impl BuildXML for NumberingId { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.num_id(self.id).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).num_id(self.id)?.into_inner() } } diff --git a/docx-core/src/documents/elements/numbering_property.rs b/docx-core/src/documents/elements/numbering_property.rs index b765ddb7d..db10b9fd2 100644 --- a/docx-core/src/documents/elements/numbering_property.rs +++ b/docx-core/src/documents/elements/numbering_property.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::{IndentLevel, NumberingId}; use crate::documents::BuildXML; @@ -29,13 +30,16 @@ impl NumberingProperty { } impl BuildXML for NumberingProperty { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.open_numbering_property() - .add_optional_child(&self.id) - .add_optional_child(&self.level) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_numbering_property()? + .add_optional_child(&self.id)? + .add_optional_child(&self.level)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/outline_lvl.rs b/docx-core/src/documents/elements/outline_lvl.rs index 9d3590c53..722f6f5a9 100644 --- a/docx-core/src/documents/elements/outline_lvl.rs +++ b/docx-core/src/documents/elements/outline_lvl.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::*; @@ -16,11 +17,14 @@ impl OutlineLvl { } impl BuildXML for OutlineLvl { - fn build(&self) -> Vec { - XMLBuilder::new() - .outline_lvl(self.v) - // .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .outline_lvl(self.v)? + // .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/page_margin.rs b/docx-core/src/documents/elements/page_margin.rs index 0f76f2f04..ce595d688 100644 --- a/docx-core/src/documents/elements/page_margin.rs +++ b/docx-core/src/documents/elements/page_margin.rs @@ -1,6 +1,7 @@ use crate::documents::BuildXML; use crate::types::PageMargin; use crate::xml_builder::*; +use std::io::Write; // These values were based on microsoft office word2019 windows edition. // @@ -53,8 +54,11 @@ impl PageMargin { } impl BuildXML for PageMargin { - fn build(&self) -> Vec { - XMLBuilder::new() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) .page_margin( &format!("{}", self.top), &format!("{}", self.right), @@ -63,8 +67,8 @@ impl BuildXML for PageMargin { &format!("{}", self.header), &format!("{}", self.footer), &format!("{}", self.gutter), - ) - .build() + )? + .into_inner() } } diff --git a/docx-core/src/documents/elements/page_num.rs b/docx-core/src/documents/elements/page_num.rs index 89f69eb5f..508e6210c 100644 --- a/docx-core/src/documents/elements/page_num.rs +++ b/docx-core/src/documents/elements/page_num.rs @@ -1,8 +1,8 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::types::*; -use crate::xml_builder::*; #[derive(Serialize, Debug, Clone, PartialEq)] pub struct PageNum { @@ -21,29 +21,20 @@ impl PageNum { pub fn new() -> Self { Self::default() } +} - fn inner_build(&self) -> Vec { - let b = XMLBuilder::new(); - let r = Run::new() +impl BuildXML for PageNum { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + Run::new() .add_field_char(FieldCharType::Begin, false) .add_instr_text(InstrText::PAGE(self.instr.clone())) .add_field_char(FieldCharType::Separate, false) .add_text("1") - .add_field_char(FieldCharType::End, false); - - b.add_child(&r).build() - } -} - -impl BuildXML for PageNum { - fn build(&self) -> Vec { - self.inner_build() - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - self.inner_build() + .add_field_char(FieldCharType::End, false) + .build_to(stream) } } diff --git a/docx-core/src/documents/elements/page_num_type.rs b/docx-core/src/documents/elements/page_num_type.rs index 23d52a2bd..5eb3a9e37 100644 --- a/docx-core/src/documents/elements/page_num_type.rs +++ b/docx-core/src/documents/elements/page_num_type.rs @@ -1,6 +1,7 @@ use crate::documents::BuildXML; use crate::xml_builder::*; use serde::Serialize; +use std::io::Write; #[derive(Debug, Clone, PartialEq, Serialize, Default)] #[cfg_attr(feature = "wasm", derive(ts_rs::TS))] @@ -34,9 +35,12 @@ impl PageNumType { } impl BuildXML for PageNumType { - fn build(&self) -> Vec { - XMLBuilder::new() - .page_num_type(self.start, self.chap_style.clone()) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .page_num_type(self.start, self.chap_style.clone())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/page_size.rs b/docx-core/src/documents/elements/page_size.rs index c0bafe0b5..94d1668ba 100644 --- a/docx-core/src/documents/elements/page_size.rs +++ b/docx-core/src/documents/elements/page_size.rs @@ -1,6 +1,7 @@ use crate::documents::BuildXML; use crate::types::*; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -54,20 +55,19 @@ impl PageSize { } impl BuildXML for PageSize { - fn build(&self) -> Vec { - if let Some(orient) = self.orient { - XMLBuilder::new() - .page_size_with_orient( - &format!("{}", self.w), - &format!("{}", self.h), - &orient.to_string(), - ) - .build() - } else { - XMLBuilder::new() - .page_size(&format!("{}", self.w), &format!("{}", self.h)) - .build() - } + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let w = format!("{}", self.w); + let h = format!("{}", self.h); + + XMLBuilder::from(stream) + .apply(|b| match self.orient { + None => b.page_size(&w, &h), + Some(orient) => b.page_size_with_orient(&w, &h, &orient.to_string()), + })? + .into_inner() } } diff --git a/docx-core/src/documents/elements/paragraph.rs b/docx-core/src/documents/elements/paragraph.rs index 84cdf9070..f22bc8fff 100644 --- a/docx-core/src/documents/elements/paragraph.rs +++ b/docx-core/src/documents/elements/paragraph.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -42,19 +43,22 @@ pub enum ParagraphChild { } impl BuildXML for ParagraphChild { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { match self { - ParagraphChild::Run(v) => v.build(), - ParagraphChild::Insert(v) => v.build(), - ParagraphChild::Delete(v) => v.build(), - ParagraphChild::Hyperlink(v) => v.build(), - ParagraphChild::BookmarkStart(v) => v.build(), - ParagraphChild::BookmarkEnd(v) => v.build(), - ParagraphChild::CommentStart(v) => v.build(), - ParagraphChild::CommentEnd(v) => v.build(), - ParagraphChild::StructuredDataTag(v) => v.build(), - ParagraphChild::PageNum(v) => v.build(), - ParagraphChild::NumPages(v) => v.build(), + ParagraphChild::Run(v) => v.build_to(stream), + ParagraphChild::Insert(v) => v.build_to(stream), + ParagraphChild::Delete(v) => v.build_to(stream), + ParagraphChild::Hyperlink(v) => v.build_to(stream), + ParagraphChild::BookmarkStart(v) => v.build_to(stream), + ParagraphChild::BookmarkEnd(v) => v.build_to(stream), + ParagraphChild::CommentStart(v) => v.build_to(stream), + ParagraphChild::CommentEnd(v) => v.build_to(stream), + ParagraphChild::StructuredDataTag(v) => v.build_to(stream), + ParagraphChild::PageNum(v) => v.build_to(stream), + ParagraphChild::NumPages(v) => v.build_to(stream), } } } @@ -493,19 +497,16 @@ impl Paragraph { } impl BuildXML for Paragraph { - fn build(&self) -> Vec { - XMLBuilder::new() - .open_paragraph(&self.id) - .add_child(&self.property) - .add_children(&self.children) - .close() - .build() - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - Paragraph::build(self) + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_paragraph(&self.id)? + .add_child(&self.property)? + .add_children(&self.children)? + .close()? + .into_inner() } } @@ -550,13 +551,7 @@ mod tests { .build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#"Hello - - - - - -"# + r#"Hello"# ); } diff --git a/docx-core/src/documents/elements/paragraph_borders.rs b/docx-core/src/documents/elements/paragraph_borders.rs index 493cbb36a..f41ddba65 100644 --- a/docx-core/src/documents/elements/paragraph_borders.rs +++ b/docx-core/src/documents/elements/paragraph_borders.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -81,22 +82,24 @@ impl ParagraphBorder { } impl BuildXML for ParagraphBorder { - fn build(&self) -> Vec { - let base = XMLBuilder::new(); - let base = { - let val = self.val.to_string(); - let space = self.space.to_string(); - let size = self.size.to_string(); - match self.position { - ParagraphBorderPosition::Top => base.paragraph_border_top(&val, &space, &size, &self.color), - ParagraphBorderPosition::Left => base.paragraph_border_left(&val, &space, &size, &self.color), - ParagraphBorderPosition::Bottom => base.paragraph_border_bottom(&val, &space, &size, &self.color), - ParagraphBorderPosition::Right => base.paragraph_border_right(&val, &space, &size, &self.color), - ParagraphBorderPosition::Between => base.paragraph_border_between(&val, &space, &size, &self.color), - ParagraphBorderPosition::Bar => base.paragraph_border_bar(&val, &space, &size, &self.color), - } + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let val = self.val.to_string(); + let space = self.space.to_string(); + let size = self.size.to_string(); + let func = match self.position { + ParagraphBorderPosition::Top => XMLBuilder::paragraph_border_top, + ParagraphBorderPosition::Left => XMLBuilder::paragraph_border_left, + ParagraphBorderPosition::Bottom => XMLBuilder::paragraph_border_bottom, + ParagraphBorderPosition::Right => XMLBuilder::paragraph_border_right, + ParagraphBorderPosition::Between => XMLBuilder::paragraph_border_between, + ParagraphBorderPosition::Bar => XMLBuilder::paragraph_border_bar, }; - base.build() + XMLBuilder::from(stream) + .apply(|b| func(b, &val, &space, &size, &self.color))? + .into_inner() } } @@ -111,7 +114,6 @@ pub struct ParagraphBorders { bar: Option, } - impl Default for ParagraphBorders { fn default() -> Self { ParagraphBorders { @@ -168,26 +170,32 @@ impl ParagraphBorders { pub fn clear_all(mut self) -> Self { self.left = Some(ParagraphBorder::new(ParagraphBorderPosition::Left).val(BorderType::Nil)); - self.right = Some(ParagraphBorder::new(ParagraphBorderPosition::Right).val(BorderType::Nil)); + self.right = + Some(ParagraphBorder::new(ParagraphBorderPosition::Right).val(BorderType::Nil)); self.top = Some(ParagraphBorder::new(ParagraphBorderPosition::Top).val(BorderType::Nil)); - self.bottom = Some(ParagraphBorder::new(ParagraphBorderPosition::Bottom).val(BorderType::Nil)); - self.between = Some(ParagraphBorder::new(ParagraphBorderPosition::Between).val(BorderType::Nil)); + self.bottom = + Some(ParagraphBorder::new(ParagraphBorderPosition::Bottom).val(BorderType::Nil)); + self.between = + Some(ParagraphBorder::new(ParagraphBorderPosition::Between).val(BorderType::Nil)); self.bar = Some(ParagraphBorder::new(ParagraphBorderPosition::Bar).val(BorderType::Nil)); self } } impl BuildXML for ParagraphBorders { - fn build(&self) -> Vec { - XMLBuilder::new() - .open_paragraph_borders() - .add_optional_child(&self.left) - .add_optional_child(&self.right) - .add_optional_child(&self.top) - .add_optional_child(&self.bottom) - .add_optional_child(&self.between) - .add_optional_child(&self.bar) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_paragraph_borders()? + .add_optional_child(&self.left)? + .add_optional_child(&self.right)? + .add_optional_child(&self.top)? + .add_optional_child(&self.bottom)? + .add_optional_child(&self.between)? + .add_optional_child(&self.bar)? + .close()? + .into_inner() } -} \ No newline at end of file +} diff --git a/docx-core/src/documents/elements/paragraph_property.rs b/docx-core/src/documents/elements/paragraph_property.rs index 846bdad74..ed1792e4a 100644 --- a/docx-core/src/documents/elements/paragraph_property.rs +++ b/docx-core/src/documents/elements/paragraph_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -201,68 +202,39 @@ impl ParagraphProperty { } } -fn inner_build(p: &ParagraphProperty) -> Vec { - let mut b = XMLBuilder::new() - .open_paragraph_property() - .add_child(&p.run_property) - .add_optional_child(&p.style) - .add_optional_child(&p.numbering_property) - .add_optional_child(&p.frame_property) - .add_optional_child(&p.alignment) - .add_optional_child(&p.indent) - .add_optional_child(&p.line_spacing) - .add_optional_child(&p.outline_lvl) - .add_optional_child(&p.paragraph_property_change) - .add_optional_child(&p.borders) - .add_optional_child(&p.text_alignment) - .add_optional_child(&p.adjust_right_ind); - - if let Some(v) = p.snap_to_grid { - b = b.snap_to_grid(v) - } - - if let Some(v) = p.keep_next { - if v { - b = b.keep_next() - } - } - - if let Some(v) = p.keep_lines { - if v { - b = b.keep_lines() - } - } - - if let Some(v) = p.page_break_before { - if v { - b = b.page_break_before() - } - } - - if let Some(v) = p.widow_control { - b = b.widow_control(if v { "1" } else { "0" }) - } - - if !p.tabs.is_empty() { - b = b.open_tabs(); - for t in p.tabs.iter() { - b = b.tab(t.val, t.leader, t.pos); - } - b = b.close(); - } - - b.close().build() -} - impl BuildXML for ParagraphProperty { - fn build(&self) -> Vec { - inner_build(self) - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - inner_build(self) + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_paragraph_property()? + .add_child(&self.run_property)? + .add_optional_child(&self.style)? + .add_optional_child(&self.numbering_property)? + .add_optional_child(&self.frame_property)? + .add_optional_child(&self.alignment)? + .add_optional_child(&self.indent)? + .add_optional_child(&self.line_spacing)? + .add_optional_child(&self.outline_lvl)? + .add_optional_child(&self.paragraph_property_change)? + .add_optional_child(&self.borders)? + .add_optional_child(&self.text_alignment)? + .add_optional_child(&self.adjust_right_ind)? + .apply_opt(self.snap_to_grid, |v, b| b.snap_to_grid(v))? + .apply_if(self.keep_next, |b| b.keep_next())? + .apply_if(self.keep_lines, |b| b.keep_lines())? + .apply_if(self.page_break_before, |b| b.page_break_before())? + .apply_opt(self.widow_control, |flag, b| { + b.widow_control(if flag { "1" } else { "0" }) + })? + .apply_if(!self.tabs.is_empty(), |b| { + b.open_tabs()? + .apply_each(&self.tabs, |tab, b| b.tab(tab.val, tab.leader, tab.pos))? + .close() + })? + .close()? + .into_inner() } } @@ -307,8 +279,7 @@ mod tests { let b = c.keep_next(true).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } diff --git a/docx-core/src/documents/elements/paragraph_property_change.rs b/docx-core/src/documents/elements/paragraph_property_change.rs index a3221b398..d6c3d3ad8 100644 --- a/docx-core/src/documents/elements/paragraph_property_change.rs +++ b/docx-core/src/documents/elements/paragraph_property_change.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::escape; @@ -17,7 +18,7 @@ impl Default for ParagraphPropertyChange { Self { author: "unnamed".to_owned(), date: "1970-01-01T00:00:00Z".to_owned(), - property: Box::new(ParagraphProperty::default()), + property: Default::default(), } } } @@ -48,14 +49,16 @@ impl ParagraphPropertyChange { impl ParagraphPropertyChangeId for ParagraphPropertyChange {} impl BuildXML for ParagraphPropertyChange { - #[allow(clippy::needless_borrow)] - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { let id = self.generate(); - XMLBuilder::new() - .open_paragraph_property_change(&id, &self.author, &self.date) - .add_child(&self.property) - .close() - .build() + XMLBuilder::from(stream) + .open_paragraph_property_change(&id, &self.author, &self.date)? + .add_child(&self.property)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/paragraph_property_default.rs b/docx-core/src/documents/elements/paragraph_property_default.rs index 4d027fe59..5f7dce48d 100644 --- a/docx-core/src/documents/elements/paragraph_property_default.rs +++ b/docx-core/src/documents/elements/paragraph_property_default.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -34,12 +35,15 @@ impl Default for ParagraphPropertyDefault { } impl BuildXML for ParagraphPropertyDefault { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.open_paragraph_property_default() - .add_child(&self.paragraph_property) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_paragraph_property_default()? + .add_child(&self.paragraph_property)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/paragraph_style.rs b/docx-core/src/documents/elements/paragraph_style.rs index 49c06aede..5604fc7ba 100644 --- a/docx-core/src/documents/elements/paragraph_style.rs +++ b/docx-core/src/documents/elements/paragraph_style.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -36,8 +37,13 @@ impl ParagraphStyle { } impl BuildXML for ParagraphStyle { - fn build(&self) -> Vec { - XMLBuilder::new().paragraph_style(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .paragraph_style(&self.val)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/pic.rs b/docx-core/src/documents/elements/pic.rs index 5a331e561..7490729a3 100644 --- a/docx-core/src/documents/elements/pic.rs +++ b/docx-core/src/documents/elements/pic.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::types::*; @@ -13,7 +14,7 @@ pub struct Pic { // For writer only #[serde(skip_serializing_if = "Vec::is_empty")] pub image: Vec, - // unit is emu + // (width, height). unit is emu pub size: (u32, u32), pub position_type: DrawingPositionType, /// Specifies that this object shall be positioned using the positioning information in the @@ -203,35 +204,36 @@ impl Pic { } impl BuildXML for Pic { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let w = format!("{}", self.size.0); - let h = format!("{}", self.size.1); - b.open_pic("http://schemas.openxmlformats.org/drawingml/2006/picture") - .open_pic_nv_pic_pr() - .pic_c_nv_pr("0", "") - .open_pic_c_nv_pic_pr() - .a_pic_locks("1", "1") - .close() - .close() - .open_blip_fill() - .a_blip(&self.id) - .a_src_rect() - .open_a_stretch() - .a_fill_rect() - .close() - .close() - .open_pic_sp_pr("auto") - .open_a_xfrm_with_rot(&format!("{}", (self.rot as u32) * 60 * 1000)) - .a_off("0", "0") - .a_ext(&w, &h) - .close() - .open_a_prst_geom("rect") - .a_av_lst() - .close() - .close() - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_pic("http://schemas.openxmlformats.org/drawingml/2006/picture")? + .open_pic_nv_pic_pr()? + .pic_c_nv_pr("0", "")? + .open_pic_c_nv_pic_pr()? + .a_pic_locks("1", "1")? + .close()? + .close()? + .open_blip_fill()? + .a_blip(&self.id)? + .a_src_rect()? + .open_a_stretch()? + .a_fill_rect()? + .close()? + .close()? + .open_pic_sp_pr("auto")? + .open_a_xfrm_with_rot(&format!("{}", (self.rot as u32) * 60 * 1000))? + .a_off("0", "0")? + .a_ext(&format!("{}", self.size.0), &format!("{}", self.size.1))? + .close()? + .open_a_prst_geom("rect")? + .a_av_lst()? + .close()? + .close()? + .close()? + .into_inner() } } @@ -248,30 +250,7 @@ mod tests { let b = Pic::new_with_dimensions(Vec::new(), 320, 240).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - - - - - - - - - - - - - - - - - - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/positional_tab.rs b/docx-core/src/documents/elements/positional_tab.rs index 91fb18120..5ec9ac921 100644 --- a/docx-core/src/documents/elements/positional_tab.rs +++ b/docx-core/src/documents/elements/positional_tab.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -54,9 +55,12 @@ impl PositionalTab { } impl BuildXML for PositionalTab { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.ptab(self.alignment, self.relative_to, self.leader) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .ptab(self.alignment, self.relative_to, self.leader)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/q_format.rs b/docx-core/src/documents/elements/q_format.rs index de55368c6..059782381 100644 --- a/docx-core/src/documents/elements/q_format.rs +++ b/docx-core/src/documents/elements/q_format.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; //17.7.4.14 // qFormat (Primary Style) @@ -16,11 +17,12 @@ impl QFormat { } } - impl BuildXML for QFormat { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.q_format().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).q_format()?.into_inner() } } diff --git a/docx-core/src/documents/elements/run.rs b/docx-core/src/documents/elements/run.rs index 22911352a..7d198b502 100644 --- a/docx-core/src/documents/elements/run.rs +++ b/docx-core/src/documents/elements/run.rs @@ -1,6 +1,7 @@ use super::*; use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -328,33 +329,45 @@ impl Run { } } -impl BuildXML for Run { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_run().add_child(&self.run_property); - for c in &self.children { - match c { - RunChild::Text(t) => b = b.add_child(t), - RunChild::Sym(t) => b = b.add_child(t), - RunChild::DeleteText(t) => b = b.add_child(t), - RunChild::Tab(t) => b = b.add_child(t), - RunChild::PTab(t) => b = b.add_child(t), - RunChild::Break(t) => b = b.add_child(t), - RunChild::Drawing(t) => b = b.add_child(t), - RunChild::Shape(_t) => { - todo!("Support shape writer.") - } - RunChild::CommentStart(c) => b = b.add_child(c), - RunChild::CommentEnd(c) => b = b.add_child(c), - RunChild::FieldChar(c) => b = b.add_child(c), - RunChild::InstrText(c) => b = b.add_child(c), - RunChild::DeleteInstrText(c) => b = b.add_child(c), - RunChild::InstrTextString(_) => unreachable!(), - RunChild::FootnoteReference(c) => b = b.add_child(c), - RunChild::Shading(s) => b = b.add_child(s), +impl BuildXML for RunChild { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + match self { + RunChild::Text(t) => t.build_to(stream), + RunChild::Sym(t) => t.build_to(stream), + RunChild::DeleteText(t) => t.build_to(stream), + RunChild::Tab(t) => t.build_to(stream), + RunChild::PTab(t) => t.build_to(stream), + RunChild::Break(t) => t.build_to(stream), + RunChild::Drawing(t) => t.build_to(stream), + RunChild::Shape(_t) => { + todo!("Support shape writer.") } + RunChild::CommentStart(c) => c.build_to(stream), + RunChild::CommentEnd(c) => c.build_to(stream), + RunChild::FieldChar(c) => c.build_to(stream), + RunChild::InstrText(c) => c.build_to(stream), + RunChild::DeleteInstrText(c) => c.build_to(stream), + RunChild::InstrTextString(_) => unreachable!(), + RunChild::FootnoteReference(c) => c.build_to(stream), + RunChild::Shading(s) => s.build_to(stream), } - b.close().build() + } +} + +impl BuildXML for Run { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_run()? + .add_child(&self.run_property)? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/run_fonts.rs b/docx-core/src/documents/elements/run_fonts.rs index 21a244e47..e334ca6f2 100644 --- a/docx-core/src/documents/elements/run_fonts.rs +++ b/docx-core/src/documents/elements/run_fonts.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -96,20 +97,23 @@ impl RunFonts { } impl BuildXML for RunFonts { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.run_fonts( - self.ascii.as_ref(), - self.hi_ansi.as_ref(), - self.cs.as_ref(), - self.east_asia.as_ref(), - self.ascii_theme.as_ref(), - self.hi_ansi_theme.as_ref(), - self.cs_theme.as_ref(), - self.east_asia_theme.as_ref(), - self.hint.as_ref(), - ) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .run_fonts( + self.ascii.as_ref(), + self.hi_ansi.as_ref(), + self.cs.as_ref(), + self.east_asia.as_ref(), + self.ascii_theme.as_ref(), + self.hi_ansi_theme.as_ref(), + self.cs_theme.as_ref(), + self.east_asia_theme.as_ref(), + self.hint.as_ref(), + )? + .into_inner() } } diff --git a/docx-core/src/documents/elements/run_property.rs b/docx-core/src/documents/elements/run_property.rs index ac6dc15e9..a8ccc95b7 100644 --- a/docx-core/src/documents/elements/run_property.rs +++ b/docx-core/src/documents/elements/run_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -171,33 +172,36 @@ impl RunProperty { } impl BuildXML for RunProperty { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.open_run_property() - .add_optional_child(&self.sz) - .add_optional_child(&self.sz_cs) - .add_optional_child(&self.color) - .add_optional_child(&self.bold) - .add_optional_child(&self.bold_cs) - .add_optional_child(&self.caps) - .add_optional_child(&self.italic) - .add_optional_child(&self.italic_cs) - .add_optional_child(&self.strike) - .add_optional_child(&self.highlight) - .add_optional_child(&self.underline) - .add_optional_child(&self.vanish) - .add_optional_child(&self.spec_vanish) - .add_optional_child(&self.fonts) - .add_optional_child(&self.text_border) - .add_optional_child(&self.ins) - .add_optional_child(&self.del) - .add_optional_child(&self.vert_align) - .add_optional_child(&self.character_spacing) - .add_optional_child(&self.style) - .add_optional_child(&self.positional_tab) - .add_optional_child(&self.shading) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_run_property()? + .add_optional_child(&self.sz)? + .add_optional_child(&self.sz_cs)? + .add_optional_child(&self.color)? + .add_optional_child(&self.bold)? + .add_optional_child(&self.bold_cs)? + .add_optional_child(&self.caps)? + .add_optional_child(&self.italic)? + .add_optional_child(&self.italic_cs)? + .add_optional_child(&self.strike)? + .add_optional_child(&self.highlight)? + .add_optional_child(&self.underline)? + .add_optional_child(&self.vanish)? + .add_optional_child(&self.spec_vanish)? + .add_optional_child(&self.fonts)? + .add_optional_child(&self.text_border)? + .add_optional_child(&self.ins)? + .add_optional_child(&self.del)? + .add_optional_child(&self.vert_align)? + .add_optional_child(&self.character_spacing)? + .add_optional_child(&self.style)? + .add_optional_child(&self.positional_tab)? + .add_optional_child(&self.shading)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/run_property_default.rs b/docx-core/src/documents/elements/run_property_default.rs index 9f5e0f6b2..eaf9c633e 100644 --- a/docx-core/src/documents/elements/run_property_default.rs +++ b/docx-core/src/documents/elements/run_property_default.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -44,12 +45,15 @@ impl Default for RunPropertyDefault { } impl BuildXML for RunPropertyDefault { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.open_run_property_default() - .add_child(&self.run_property) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_run_property_default()? + .add_child(&self.run_property)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/run_style.rs b/docx-core/src/documents/elements/run_style.rs index 67417775b..6a50d0877 100644 --- a/docx-core/src/documents/elements/run_style.rs +++ b/docx-core/src/documents/elements/run_style.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -26,8 +27,11 @@ impl RunStyle { } impl BuildXML for RunStyle { - fn build(&self) -> Vec { - XMLBuilder::new().run_style(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).run_style(&self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/section.rs b/docx-core/src/documents/elements/section.rs index 1f0b4cf47..e1083a8c3 100644 --- a/docx-core/src/documents/elements/section.rs +++ b/docx-core/src/documents/elements/section.rs @@ -1,6 +1,7 @@ use super::*; use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -25,16 +26,18 @@ impl Default for Section { } impl BuildXML for Section { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { let id = crate::generate_para_id(); - - XMLBuilder::new() - .open_paragraph(&id) - .open_paragraph_property() - .add_child(&self.property) - .close() - .close() - .build() + XMLBuilder::from(stream) + .open_paragraph(&id)? + .open_paragraph_property()? + .add_child(&self.property)? + .close()? + .close()? + .into_inner() } } @@ -52,10 +55,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/section_property.rs b/docx-core/src/documents/elements/section_property.rs index f51b325d6..e02cc59d4 100644 --- a/docx-core/src/documents/elements/section_property.rs +++ b/docx-core/src/documents/elements/section_property.rs @@ -3,6 +3,7 @@ use crate::documents::BuildXML; use crate::types::*; use crate::xml_builder::*; use crate::{Footer, Header}; +use std::io::Write; use serde::Serialize; @@ -197,34 +198,30 @@ impl Default for SectionProperty { } impl BuildXML for SectionProperty { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b - .open_section_property() - .add_child(&self.page_size) - .add_child(&self.page_margin) - .columns(&format!("{}", &self.space), &format!("{}", &self.columns)) - .add_optional_child(&self.doc_grid) - .add_optional_child(&self.header_reference) - .add_optional_child(&self.first_header_reference) - .add_optional_child(&self.even_header_reference) - .add_optional_child(&self.footer_reference) - .add_optional_child(&self.first_footer_reference) - .add_optional_child(&self.even_footer_reference) - .add_optional_child(&self.page_num_type); - - if !self.text_direction.eq("lrTb") { - b = b.text_direction(&self.text_direction); - } - if let Some(t) = self.section_type { - b = b.type_tag(&t.to_string()); - } - - if self.title_pg { - b = b.title_pg(); - } - - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_section_property()? + .add_child(&self.page_size)? + .add_child(&self.page_margin)? + .columns(&format!("{}", &self.space), &format!("{}", &self.columns))? + .add_optional_child(&self.doc_grid)? + .add_optional_child(&self.header_reference)? + .add_optional_child(&self.first_header_reference)? + .add_optional_child(&self.even_header_reference)? + .add_optional_child(&self.footer_reference)? + .add_optional_child(&self.first_footer_reference)? + .add_optional_child(&self.even_footer_reference)? + .add_optional_child(&self.page_num_type)? + .apply_if(self.text_direction != "lrTb", |b| { + b.text_direction(&self.text_direction) + })? + .apply_opt(self.section_type, |t, b| b.type_tag(&t.to_string()))? + .apply_if(self.title_pg, |b| b.title_pg())? + .close()? + .into_inner() } } @@ -243,9 +240,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - -"# + r#""# ) } @@ -255,8 +250,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } @@ -276,9 +270,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/shading.rs b/docx-core/src/documents/elements/shading.rs index 2c0d60b55..5099a0a04 100644 --- a/docx-core/src/documents/elements/shading.rs +++ b/docx-core/src/documents/elements/shading.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -45,9 +46,12 @@ impl Shading { } impl BuildXML for Shading { - fn build(&self) -> Vec { - XMLBuilder::new() - .shd(&self.shd_type.to_string(), &self.color, &self.fill) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .shd(&self.shd_type.to_string(), &self.color, &self.fill)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/spec_vanish.rs b/docx-core/src/documents/elements/spec_vanish.rs index da4518775..1774d009b 100644 --- a/docx-core/src/documents/elements/spec_vanish.rs +++ b/docx-core/src/documents/elements/spec_vanish.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -13,9 +14,11 @@ impl SpecVanish { } impl BuildXML for SpecVanish { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.spec_vanish().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).spec_vanish()?.into_inner() } } diff --git a/docx-core/src/documents/elements/start.rs b/docx-core/src/documents/elements/start.rs index 434153bae..f7feb8898 100644 --- a/docx-core/src/documents/elements/start.rs +++ b/docx-core/src/documents/elements/start.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,9 +16,11 @@ impl Start { } impl BuildXML for Start { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.start(self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).start(self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/strike.rs b/docx-core/src/documents/elements/strike.rs index 8c2e8d352..781469566 100644 --- a/docx-core/src/documents/elements/strike.rs +++ b/docx-core/src/documents/elements/strike.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -35,8 +36,10 @@ impl Serialize for Strike { } impl BuildXML for Strike { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.strike().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).strike()?.into_inner() } } diff --git a/docx-core/src/documents/elements/structured_data_tag.rs b/docx-core/src/documents/elements/structured_data_tag.rs index 11dc0891b..61ca22fc4 100644 --- a/docx-core/src/documents/elements/structured_data_tag.rs +++ b/docx-core/src/documents/elements/structured_data_tag.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -37,16 +38,19 @@ pub enum StructuredDataTagChild { } impl BuildXML for StructuredDataTagChild { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { match self { - StructuredDataTagChild::Run(v) => v.build(), - StructuredDataTagChild::Paragraph(v) => v.build(), - StructuredDataTagChild::Table(v) => v.build(), - StructuredDataTagChild::BookmarkStart(v) => v.build(), - StructuredDataTagChild::BookmarkEnd(v) => v.build(), - StructuredDataTagChild::CommentStart(v) => v.build(), - StructuredDataTagChild::CommentEnd(v) => v.build(), - StructuredDataTagChild::StructuredDataTag(v) => v.build(), + StructuredDataTagChild::Run(v) => v.build_to(stream), + StructuredDataTagChild::Paragraph(v) => v.build_to(stream), + StructuredDataTagChild::Table(v) => v.build_to(stream), + StructuredDataTagChild::BookmarkStart(v) => v.build_to(stream), + StructuredDataTagChild::BookmarkEnd(v) => v.build_to(stream), + StructuredDataTagChild::CommentStart(v) => v.build_to(stream), + StructuredDataTagChild::CommentEnd(v) => v.build_to(stream), + StructuredDataTagChild::StructuredDataTag(v) => v.build_to(stream), } } } @@ -147,28 +151,21 @@ impl StructuredDataTag { self.property = self.property.alias(v); self } - - fn inner_build(&self) -> Vec { - XMLBuilder::new() - .open_structured_tag() - .add_child(&self.property) - .open_structured_tag_content() - .add_children(&self.children) - .close() - .close() - .build() - } } impl BuildXML for StructuredDataTag { - fn build(&self) -> Vec { - self.inner_build() - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - self.inner_build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_structured_tag()? + .add_child(&self.property)? + .open_structured_tag_content()? + .add_children(&self.children)? + .close()? + .close()? + .into_inner() } } @@ -188,8 +185,7 @@ mod tests { .build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#"Hello -"# + r#"Hello"# ); } } diff --git a/docx-core/src/documents/elements/structured_data_tag_property.rs b/docx-core/src/documents/elements/structured_data_tag_property.rs index b3f86cb67..4709ee8b8 100644 --- a/docx-core/src/documents/elements/structured_data_tag_property.rs +++ b/docx-core/src/documents/elements/structured_data_tag_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -40,17 +41,17 @@ impl StructuredDataTagProperty { } impl BuildXML for StructuredDataTagProperty { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new() - .open_structured_tag_property() - .add_child(&self.run_property) - .add_optional_child(&self.data_binding); - - if let Some(ref alias) = self.alias { - b = b.alias(alias); - } - - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_structured_tag_property()? + .add_child(&self.run_property)? + .add_optional_child(&self.data_binding)? + .apply_opt(self.alias.as_ref(), |alias, b| b.alias(alias))? + .close()? + .into_inner() } } @@ -78,8 +79,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/style.rs b/docx-core/src/documents/elements/style.rs index d4bd3f1ac..6b645f470 100644 --- a/docx-core/src/documents/elements/style.rs +++ b/docx-core/src/documents/elements/style.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -316,33 +317,26 @@ impl Style { } impl BuildXML for Style { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { // Set "Normal" as default if you need change these values please fix it - let mut b = b - .open_style(self.style_type, &self.style_id) - .add_child(&self.name) - .add_child(&self.run_property) - .add_child(&self.paragraph_property); - - if self.style_type == StyleType::Table { - b = b - .add_child(&self.table_cell_property) - .add_child(&self.table_property); - } - - if let Some(ref next) = self.next { - b = b.add_child(next) - } - - if let Some(ref link) = self.link { - b = b.add_child(link) - } - - b.add_child(&QFormat::new()) - .add_optional_child(&self.based_on) - .close() - .build() + XMLBuilder::from(stream) + .open_style(self.style_type, &self.style_id)? + .add_child(&self.name)? + .add_child(&self.run_property)? + .add_child(&self.paragraph_property)? + .apply_if(self.style_type == StyleType::Table, |b| { + b.add_child(&self.table_cell_property)? + .add_child(&self.table_property) + })? + .add_optional_child(&self.next)? + .add_optional_child(&self.link)? + .add_child(&QFormat::new())? + .add_optional_child(&self.based_on)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/sym.rs b/docx-core/src/documents/elements/sym.rs index b6de20880..d959aa751 100644 --- a/docx-core/src/documents/elements/sym.rs +++ b/docx-core/src/documents/elements/sym.rs @@ -1,5 +1,6 @@ use serde::ser::{Serialize, SerializeStruct, Serializer}; use serde::Deserialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -20,9 +21,13 @@ impl Sym { } } impl BuildXML for Sym { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.sym(&self.font, &self.char).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .sym(&self.font, &self.char)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/sz.rs b/docx-core/src/documents/elements/sz.rs index d93d1b502..a87173f63 100644 --- a/docx-core/src/documents/elements/sz.rs +++ b/docx-core/src/documents/elements/sz.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,9 +16,11 @@ impl Sz { } impl BuildXML for Sz { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.sz(self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).sz(self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/sz_cs.rs b/docx-core/src/documents/elements/sz_cs.rs index fef38b20d..274e6e8df 100644 --- a/docx-core/src/documents/elements/sz_cs.rs +++ b/docx-core/src/documents/elements/sz_cs.rs @@ -1,6 +1,7 @@ use crate::documents::BuildXML; use crate::xml_builder::*; use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; #[derive(Deserialize, Debug, Clone, PartialEq)] pub struct SzCs { @@ -14,8 +15,11 @@ impl SzCs { } impl BuildXML for SzCs { - fn build(&self) -> Vec { - XMLBuilder::new().sz_cs(self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).sz_cs(self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/tab.rs b/docx-core/src/documents/elements/tab.rs index 46c6ca296..39ccf0194 100644 --- a/docx-core/src/documents/elements/tab.rs +++ b/docx-core/src/documents/elements/tab.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -35,8 +36,12 @@ impl Tab { } impl BuildXML for Tab { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.tab(self.val, self.leader, self.pos).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .tab(self.val, self.leader, self.pos)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table.rs b/docx-core/src/documents/elements/table.rs index b31778a36..d3b2f48bb 100644 --- a/docx-core/src/documents/elements/table.rs +++ b/docx-core/src/documents/elements/table.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -21,9 +22,12 @@ pub enum TableChild { } impl BuildXML for TableChild { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { match self { - TableChild::TableRow(v) => v.build(), + TableChild::TableRow(v) => v.build_to(stream), } } } @@ -122,20 +126,18 @@ impl Table { } impl BuildXML for Table { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { let grid = TableGrid::new(self.grid.clone()); - let b = XMLBuilder::new() - .open_table() - .add_child(&self.property) - .add_child(&grid) - .add_children(&self.rows); - b.close().build() - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - Table::build(self) + XMLBuilder::from(stream) + .open_table()? + .add_child(&self.property)? + .add_child(&grid)? + .add_children(&self.rows)? + .close()? + .into_inner() } } @@ -179,10 +181,7 @@ mod tests { .build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - -"# + r#""# ); } diff --git a/docx-core/src/documents/elements/table_borders.rs b/docx-core/src/documents/elements/table_borders.rs index 314a86768..3c78fc5a7 100644 --- a/docx-core/src/documents/elements/table_borders.rs +++ b/docx-core/src/documents/elements/table_borders.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -54,29 +55,22 @@ impl TableBorder { } impl BuildXML for TableBorder { - fn build(&self) -> Vec { - let base = XMLBuilder::new(); - let base = match self.position { - TableBorderPosition::Top => { - base.border_top(self.border_type, self.size, self.space, &self.color) - } - TableBorderPosition::Left => { - base.border_left(self.border_type, self.size, self.space, &self.color) - } - TableBorderPosition::Bottom => { - base.border_bottom(self.border_type, self.size, self.space, &self.color) - } - TableBorderPosition::Right => { - base.border_right(self.border_type, self.size, self.space, &self.color) - } - TableBorderPosition::InsideH => { - base.border_inside_h(self.border_type, self.size, self.space, &self.color) - } - TableBorderPosition::InsideV => { - base.border_inside_v(self.border_type, self.size, self.space, &self.color) - } + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let func = match self.position { + TableBorderPosition::Top => XMLBuilder::border_top, + TableBorderPosition::Left => XMLBuilder::border_left, + TableBorderPosition::Bottom => XMLBuilder::border_bottom, + TableBorderPosition::Right => XMLBuilder::border_right, + TableBorderPosition::InsideH => XMLBuilder::border_inside_h, + TableBorderPosition::InsideV => XMLBuilder::border_inside_v, }; - base.build() + + XMLBuilder::from(stream) + .apply(|b| func(b, self.border_type, self.size, self.space, &self.color))? + .into_inner() } } @@ -161,17 +155,20 @@ impl TableBorders { } impl BuildXML for TableBorders { - fn build(&self) -> Vec { - XMLBuilder::new() - .open_table_borders() - .add_optional_child(&self.top) - .add_optional_child(&self.left) - .add_optional_child(&self.bottom) - .add_optional_child(&self.right) - .add_optional_child(&self.inside_h) - .add_optional_child(&self.inside_v) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_borders()? + .add_optional_child(&self.top)? + .add_optional_child(&self.left)? + .add_optional_child(&self.bottom)? + .add_optional_child(&self.right)? + .add_optional_child(&self.inside_h)? + .add_optional_child(&self.inside_v)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_cell.rs b/docx-core/src/documents/elements/table_cell.rs index c757112ca..daaf79d00 100644 --- a/docx-core/src/documents/elements/table_cell.rs +++ b/docx-core/src/documents/elements/table_cell.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -153,28 +154,29 @@ impl Default for TableCell { } impl BuildXML for TableCell { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_table_cell().add_child(&self.property); - for c in &self.children { - match c { - TableCellContent::Paragraph(p) => b = b.add_child(p), - TableCellContent::Table(t) => { - b = b.add_child(t); - // INFO: We need to add empty paragraph when parent cell includes only cell. - if self.children.len() == 1 { - b = b.add_child(&Paragraph::new()) + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_cell()? + .add_child(&self.property)? + .apply_each(&self.children, |ch, b| { + match ch { + TableCellContent::Paragraph(p) => b.add_child(p), + TableCellContent::Table(t) => { + b.add_child(t)? + // INFO: We need to add empty paragraph when parent cell includes only cell. + .apply_if(self.children.len() == 1, |b| b.add_child(&Paragraph::new())) } + TableCellContent::StructuredDataTag(t) => b.add_child(&t), + TableCellContent::TableOfContents(t) => b.add_child(&t), } - TableCellContent::StructuredDataTag(t) => b = b.add_child(t), - TableCellContent::TableOfContents(t) => b = b.add_child(t), - } - } - // INFO: We need to add empty paragraph when parent cell includes only cell. - if self.children.is_empty() { - b = b.add_child(&Paragraph::new()) - } - b.close().build() + })? + // INFO: We need to add empty paragraph when parent cell includes only cell. + .apply_if(self.children.is_empty(), |b| b.add_child(&Paragraph::new()))? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_cell_borders.rs b/docx-core/src/documents/elements/table_cell_borders.rs index e8aa9ec85..3a55f07df 100644 --- a/docx-core/src/documents/elements/table_cell_borders.rs +++ b/docx-core/src/documents/elements/table_cell_borders.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -68,35 +69,23 @@ impl TableCellBorder { } impl BuildXML for TableCellBorder { - fn build(&self) -> Vec { - let base = XMLBuilder::new(); - let base = match self.position { - TableCellBorderPosition::Top => { - base.border_top(self.border_type, self.size, self.space, &self.color) - } - TableCellBorderPosition::Left => { - base.border_left(self.border_type, self.size, self.space, &self.color) - } - TableCellBorderPosition::Bottom => { - base.border_bottom(self.border_type, self.size, self.space, &self.color) - } - TableCellBorderPosition::Right => { - base.border_right(self.border_type, self.size, self.space, &self.color) - } - TableCellBorderPosition::InsideH => { - base.border_inside_h(self.border_type, self.size, self.space, &self.color) - } - TableCellBorderPosition::InsideV => { - base.border_inside_v(self.border_type, self.size, self.space, &self.color) - } - TableCellBorderPosition::Tr2bl => { - base.border_tr2bl(self.border_type, self.size, self.space, &self.color) - } - TableCellBorderPosition::Tl2br => { - base.border_tl2br(self.border_type, self.size, self.space, &self.color) - } + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let func = match self.position { + TableCellBorderPosition::Top => XMLBuilder::border_top, + TableCellBorderPosition::Left => XMLBuilder::border_left, + TableCellBorderPosition::Bottom => XMLBuilder::border_bottom, + TableCellBorderPosition::Right => XMLBuilder::border_right, + TableCellBorderPosition::InsideH => XMLBuilder::border_inside_h, + TableCellBorderPosition::InsideV => XMLBuilder::border_inside_v, + TableCellBorderPosition::Tr2bl => XMLBuilder::border_tr2bl, + TableCellBorderPosition::Tl2br => XMLBuilder::border_tl2br, }; - base.build() + XMLBuilder::from(stream) + .apply(|b| func(b, self.border_type, self.size, self.space, &self.color))? + .into_inner() } } @@ -202,18 +191,21 @@ impl TableCellBorders { } impl BuildXML for TableCellBorders { - fn build(&self) -> Vec { - XMLBuilder::new() - .open_table_cell_borders() - .add_optional_child(&self.top) - .add_optional_child(&self.left) - .add_optional_child(&self.bottom) - .add_optional_child(&self.right) - .add_optional_child(&self.inside_h) - .add_optional_child(&self.inside_v) - .add_optional_child(&self.tl2br) - .add_optional_child(&self.tr2bl) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_cell_borders()? + .add_optional_child(&self.top)? + .add_optional_child(&self.left)? + .add_optional_child(&self.bottom)? + .add_optional_child(&self.right)? + .add_optional_child(&self.inside_h)? + .add_optional_child(&self.inside_v)? + .add_optional_child(&self.tl2br)? + .add_optional_child(&self.tr2bl)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_cell_margins.rs b/docx-core/src/documents/elements/table_cell_margins.rs index 14a08a898..0403b2429 100644 --- a/docx-core/src/documents/elements/table_cell_margins.rs +++ b/docx-core/src/documents/elements/table_cell_margins.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -67,15 +68,18 @@ impl TableCellMargins { } impl BuildXML for TableCellMargins { - fn build(&self) -> Vec { - XMLBuilder::new() - .open_table_cell_margins() - .margin_top(self.top.val as i32, self.top.width_type) - .margin_left(self.left.val as i32, self.left.width_type) - .margin_bottom(self.bottom.val as i32, self.bottom.width_type) - .margin_right(self.right.val as i32, self.right.width_type) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_cell_margins()? + .margin_top(self.top.val as i32, self.top.width_type)? + .margin_left(self.left.val as i32, self.left.width_type)? + .margin_bottom(self.bottom.val as i32, self.bottom.width_type)? + .margin_right(self.right.val as i32, self.right.width_type)? + .close()? + .into_inner() } } @@ -92,12 +96,7 @@ mod tests { let b = TableCellMargins::new().build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - -"# + r#""# ); } @@ -106,12 +105,7 @@ mod tests { let b = TableCellMargins::new().margin(10, 20, 30, 40).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/table_cell_property.rs b/docx-core/src/documents/elements/table_cell_property.rs index 9a7f47691..bde82f72c 100644 --- a/docx-core/src/documents/elements/table_cell_property.rs +++ b/docx-core/src/documents/elements/table_cell_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; #[cfg(feature = "wasm")] use wasm_bindgen::prelude::*; @@ -124,19 +125,22 @@ impl TableCellProperty { } impl BuildXML for TableCellProperty { - fn build(&self) -> Vec { - XMLBuilder::new() - .open_table_cell_property() - .add_optional_child(&self.width) - .add_optional_child(&self.borders) - .add_optional_child(&self.grid_span) - .add_optional_child(&self.vertical_merge) - .add_optional_child(&self.vertical_align) - .add_optional_child(&self.text_direction) - .add_optional_child(&self.shading) - .add_optional_child(&self.margins) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_cell_property()? + .add_optional_child(&self.width)? + .add_optional_child(&self.borders)? + .add_optional_child(&self.grid_span)? + .add_optional_child(&self.vertical_merge)? + .add_optional_child(&self.vertical_align)? + .add_optional_child(&self.text_direction)? + .add_optional_child(&self.shading)? + .add_optional_child(&self.margins)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_cell_width.rs b/docx-core/src/documents/elements/table_cell_width.rs index 195c85b80..cacd0fac6 100644 --- a/docx-core/src/documents/elements/table_cell_width.rs +++ b/docx-core/src/documents/elements/table_cell_width.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -18,10 +19,13 @@ impl TableCellWidth { } impl BuildXML for TableCellWidth { - fn build(&self) -> Vec { - XMLBuilder::new() - .table_cell_width(self.width as i32, WidthType::Dxa) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .table_cell_width(self.width as i32, WidthType::Dxa)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_grid.rs b/docx-core/src/documents/elements/table_grid.rs index 5b654afae..a535e2bec 100644 --- a/docx-core/src/documents/elements/table_grid.rs +++ b/docx-core/src/documents/elements/table_grid.rs @@ -1,6 +1,7 @@ use crate::documents::BuildXML; use crate::types::*; use crate::xml_builder::*; +use std::io::Write; #[derive(Debug, Clone)] pub struct TableGrid { @@ -14,12 +15,15 @@ impl TableGrid { } impl BuildXML for TableGrid { - fn build(&self) -> Vec { - let mut base = XMLBuilder::new().open_table_grid(); - for g in &self.grid { - base = base.grid_column(*g as i32, WidthType::Dxa); - } - base.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_grid()? + .apply_each(&self.grid, |g, b| b.grid_column(*g as i32, WidthType::Dxa))? + .close()? + .into_inner() } } @@ -36,10 +40,7 @@ mod tests { let b = TableGrid::new(vec![100, 200]).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/elements/table_indent.rs b/docx-core/src/documents/elements/table_indent.rs index b94e21cf4..74fa04c94 100644 --- a/docx-core/src/documents/elements/table_indent.rs +++ b/docx-core/src/documents/elements/table_indent.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -18,10 +19,13 @@ impl TableIndent { } impl BuildXML for TableIndent { - fn build(&self) -> Vec { - XMLBuilder::new() - .table_indent(self.width, WidthType::Dxa) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .table_indent(self.width, WidthType::Dxa)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_layout.rs b/docx-core/src/documents/elements/table_layout.rs index 1894bc0ea..fd2a5cc7a 100644 --- a/docx-core/src/documents/elements/table_layout.rs +++ b/docx-core/src/documents/elements/table_layout.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -11,16 +12,18 @@ pub struct TableLayout { impl TableLayout { pub fn new(t: TableLayoutType) -> TableLayout { - TableLayout { - layout_type: t, - } + TableLayout { layout_type: t } } } impl BuildXML for TableLayout { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.table_layout(&self.layout_type.to_string()).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .table_layout(&self.layout_type.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_of_contents.rs b/docx-core/src/documents/elements/table_of_contents.rs index fcbb18497..2e5e341ec 100644 --- a/docx-core/src/documents/elements/table_of_contents.rs +++ b/docx-core/src/documents/elements/table_of_contents.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::types::*; use crate::xml_builder::*; @@ -148,29 +149,35 @@ impl TableOfContents { self.without_sdt = true; self } +} - fn inner_build(&self) -> Vec { +impl BuildXML for TableOfContents { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { let mut p = StructuredDataTagProperty::new(); if let Some(ref alias) = self.alias { p = p.alias(alias); } + if self.items.is_empty() { - let mut b = XMLBuilder::new(); + let mut b = XMLBuilder::from(stream); if !self.without_sdt { b = b - .open_structured_tag() - .add_child(&p) - .open_structured_tag_content(); + .open_structured_tag()? + .add_child(&p)? + .open_structured_tag_content()?; } for c in self.before_contents.iter() { match c { TocContent::Paragraph(p) => { - b = b.add_child(p); + b = b.add_child(&p)?; } TocContent::Table(t) => { - b = b.add_child(t); + b = b.add_child(&t)?; } } } @@ -192,11 +199,11 @@ impl TableOfContents { .add_field_char(FieldCharType::Separate, false), ) }; - b = b.add_child(&p1); + b = b.add_child(&p1)?; let p2 = Paragraph::new().add_run(Run::new().add_field_char(FieldCharType::End, false)); if self.after_contents.is_empty() { - b = b.add_child(&p2); + b = b.add_child(&p2)?; } else { for (i, c) in self.after_contents.iter().enumerate() { match c { @@ -210,28 +217,30 @@ impl TableOfContents { Run::new().add_field_char(FieldCharType::End, false), )), ); - b = b.add_child(&new_p) + b = b.add_child(&new_p)? } else { - b = b.add_child(p); + b = b.add_child(&p)?; } } TocContent::Table(t) => { // insert empty line for table // because it causes docx error if table is added after TOC if i == 0 { - b = b.add_child(&Paragraph::new().add_run(Run::new().add_text(""))); + b = b.add_child( + &Paragraph::new().add_run(Run::new().add_text("")), + )?; } - b = b.add_child(t); + b = b.add_child(&t)?; } } } } if !self.without_sdt { - b = b.close().close(); + b = b.close()?.close()?; } - b.build() + b.into_inner() } else { let items: Vec = self .items @@ -247,64 +256,52 @@ impl TableOfContents { }) .collect(); - let mut b = XMLBuilder::new(); + let mut b = XMLBuilder::from(stream); if !self.without_sdt { b = b - .open_structured_tag() - .add_child(&p) - .open_structured_tag_content(); + .open_structured_tag()? + .add_child(&p)? + .open_structured_tag_content()?; } for c in self.before_contents.iter() { match c { TocContent::Paragraph(p) => { - b = b.add_child(p); + b = b.add_child(&p)?; } TocContent::Table(t) => { - b = b.add_child(t); + b = b.add_child(&t)?; } } } - b = b.add_child(&items); + b = b.add_child(&items)?; for (i, c) in self.after_contents.iter().enumerate() { match c { TocContent::Paragraph(p) => { - b = b.add_child(p); + b = b.add_child(&p)?; } TocContent::Table(t) => { // insert empty line for table // because it causes docx error if table is added after TOC if i == 0 { - b = b.add_child(&Paragraph::new().add_run(Run::new().add_text(""))); + b = b.add_child(&Paragraph::new().add_run(Run::new().add_text("")))?; } - b = b.add_child(t); + b = b.add_child(&t)?; } } } if !self.without_sdt { - b = b.close().close(); + b = b.close()?.close()?; } - b.build() + b.into_inner() } } } -impl BuildXML for TableOfContents { - fn build(&self) -> Vec { - self.inner_build() - } -} - -impl BuildXML for Box { - fn build(&self) -> Vec { - self.inner_build() - } -} - #[cfg(test)] mod tests { @@ -318,8 +315,7 @@ mod tests { let b = TableOfContents::new().heading_styles_range(1, 3).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#"TOC \o "1-3" -"# + r#"TOC \o "1-3""# ); } @@ -336,19 +332,16 @@ mod tests { } /* - #[test] - fn test_toc_with_items() { - let b = TableOfContents::new() - .heading_styles_range(1, 3) - .add_items(Paragraph::new().add_run(Run::new().add_text("Hello"))) - .build(); - assert_eq!( - str::from_utf8(&b).unwrap(), - r#" - - TOC \o "1-3"Hello - "# - ); - } - */ + #[test] + fn test_toc_with_items() { + let b = TableOfContents::new() + .heading_styles_range(1, 3) + .add_items(Paragraph::new().add_run(Run::new().add_text("Hello"))) + .build(); + assert_eq!( + str::from_utf8(&b).unwrap(), + r#"TOC \o "1-3"Hello"# + ); + } + */ } diff --git a/docx-core/src/documents/elements/table_of_contents_item.rs b/docx-core/src/documents/elements/table_of_contents_item.rs index 85f126e00..48d5f7fbe 100644 --- a/docx-core/src/documents/elements/table_of_contents_item.rs +++ b/docx-core/src/documents/elements/table_of_contents_item.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::*; use crate::types::*; @@ -49,15 +50,19 @@ impl TableOfContentsItem { } impl BuildXML for Vec { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new() - .open_structured_tag() - .open_structured_tag_property() - .close() - .open_structured_tag_content(); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let mut b = XMLBuilder::from(stream) + .open_structured_tag()? + .open_structured_tag_property()? + .close()? + .open_structured_tag_content()?; for (i, t) in self.iter().enumerate() { let mut p = Paragraph::new().style(&format!("ToC{}", t.level)); + if i == 0 { p = p.unshift_run( Run::new() @@ -65,40 +70,9 @@ impl BuildXML for Vec { .add_instr_text(InstrText::TOC(t.instr.clone())) .add_field_char(FieldCharType::Separate, false), ); - p = p.add_tab( - Tab::new() - .val(TabValueType::Right) - .leader(TabLeaderType::Dot) - // TODO: for now set 80000 - .pos(80000), - ); - - let run = Run::new().add_text(&t.text); - let page_ref = Run::new() - .add_field_char(FieldCharType::Begin, false) - .add_instr_text(InstrText::PAGEREF( - InstrPAGEREF::new(&t.toc_key).hyperlink(), - )) - .add_field_char(FieldCharType::Separate, false) - .add_text(t.page_ref.to_owned().unwrap_or_else(|| "1".to_string())) - .add_field_char(FieldCharType::End, false); + } - if t.instr.hyperlink { - p = p.add_hyperlink( - Hyperlink::new(&t.toc_key, crate::types::HyperlinkType::Anchor) - .add_run(run) - .add_run(Run::new().add_tab()) - .add_run(page_ref), - ); - } else { - p = p - .add_run(run) - .add_run(Run::new().add_tab()) - .add_run(page_ref); - } - b = b.add_child(&p); - } else { - let mut p = Paragraph::new().style(&format!("ToC{}", t.level)); + { p = p.add_tab( Tab::new() .val(TabValueType::Right) @@ -123,22 +97,23 @@ impl BuildXML for Vec { .add_run(run) .add_run(Run::new().add_tab()) .add_run(page_ref), - ) + ); } else { p = p .add_run(run) .add_run(Run::new().add_tab()) .add_run(page_ref); } - b = b.add_child(&p); + b = b.add_child(&p)?; } if i == self.len() - 1 { let mut p = Paragraph::new().style(&format!("ToC{}", t.level)); p = p.add_run(Run::new().add_field_char(FieldCharType::End, false)); - b = b.add_child(&p); + b = b.add_child(&p)?; } } - b.close().close().build() + + b.close()?.close()?.into_inner() } } diff --git a/docx-core/src/documents/elements/table_position_property.rs b/docx-core/src/documents/elements/table_position_property.rs index 357db820a..ea233e799 100644 --- a/docx-core/src/documents/elements/table_position_property.rs +++ b/docx-core/src/documents/elements/table_position_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -73,8 +74,13 @@ impl TablePositionProperty { } impl BuildXML for TablePositionProperty { - fn build(&self) -> Vec { - XMLBuilder::new().table_position_property(self).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .table_position_property(self)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_property.rs b/docx-core/src/documents/elements/table_property.rs index 24edd87e1..35141f79c 100644 --- a/docx-core/src/documents/elements/table_property.rs +++ b/docx-core/src/documents/elements/table_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; #[cfg(feature = "wasm")] use wasm_bindgen::prelude::*; @@ -150,19 +151,22 @@ impl TableProperty { } impl BuildXML for TableProperty { - fn build(&self) -> Vec { - XMLBuilder::new() - .open_table_property() - .add_child(&self.width) - .add_child(&self.justification) - .add_child(&self.borders) - .add_optional_child(&self.margins) - .add_optional_child(&self.indent) - .add_optional_child(&self.style) - .add_optional_child(&self.layout) - .add_optional_child(&self.position) - .close() - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_property()? + .add_child(&self.width)? + .add_child(&self.justification)? + .add_child(&self.borders)? + .add_optional_child(&self.margins)? + .add_optional_child(&self.indent)? + .add_optional_child(&self.style)? + .add_optional_child(&self.layout)? + .add_optional_child(&self.position)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_row.rs b/docx-core/src/documents/elements/table_row.rs index 12c34dbbf..61cecaeae 100644 --- a/docx-core/src/documents/elements/table_row.rs +++ b/docx-core/src/documents/elements/table_row.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::{Delete, Insert, TableCell, TableRowProperty}; use crate::xml_builder::*; @@ -19,9 +20,12 @@ pub enum TableRowChild { } impl BuildXML for TableRowChild { - fn build(&self) -> Vec { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { match self { - TableRowChild::TableCell(v) => v.build(), + TableRowChild::TableCell(v) => v.build_to(stream), } } } @@ -85,12 +89,16 @@ impl TableRow { } impl BuildXML for TableRow { - fn build(&self) -> Vec { - let b = XMLBuilder::new() - .open_table_row() - .add_child(&self.property) - .add_children(&self.cells); - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_row()? + .add_child(&self.property)? + .add_children(&self.cells)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_row_property.rs b/docx-core/src/documents/elements/table_row_property.rs index f4e6dcc2d..1931ac7f5 100644 --- a/docx-core/src/documents/elements/table_row_property.rs +++ b/docx-core/src/documents/elements/table_row_property.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::xml_builder::*; @@ -75,19 +76,23 @@ impl TableRowProperty { } impl BuildXML for TableRowProperty { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new() - .open_table_row_property() - .add_optional_child(&self.del) - .add_optional_child(&self.ins) - .add_optional_child(&self.cant_split); - if let Some(h) = self.row_height { - b = b.table_row_height( - &format!("{}", h), - &self.height_rule.unwrap_or_default().to_string(), - ) - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_table_row_property()? + .add_optional_child(&self.del)? + .add_optional_child(&self.ins)? + .add_optional_child(&self.cant_split)? + .apply_opt(self.row_height, |h, b| { + b.table_row_height( + &format!("{}", h), + &self.height_rule.unwrap_or_default().to_string(), + ) + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_style.rs b/docx-core/src/documents/elements/table_style.rs index 3c6207764..605d6e23e 100644 --- a/docx-core/src/documents/elements/table_style.rs +++ b/docx-core/src/documents/elements/table_style.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,9 +16,13 @@ impl TableStyle { } impl BuildXML for TableStyle { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.table_style(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .table_style(&self.val)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/table_width.rs b/docx-core/src/documents/elements/table_width.rs index 5ea09e11c..f56b3e274 100644 --- a/docx-core/src/documents/elements/table_width.rs +++ b/docx-core/src/documents/elements/table_width.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -18,10 +19,13 @@ impl TableWidth { } impl BuildXML for TableWidth { - fn build(&self) -> Vec { - XMLBuilder::new() - .table_width(self.width as i32, self.width_type) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .table_width(self.width as i32, self.width_type)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/tabs.rs b/docx-core/src/documents/elements/tabs.rs index fe76e32d7..714780724 100644 --- a/docx-core/src/documents/elements/tabs.rs +++ b/docx-core/src/documents/elements/tabs.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -21,11 +22,12 @@ impl Tabs { } impl BuildXML for Tabs { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - for t in self.tabs.iter() { - b = b.tab(t.val, t.leader, t.pos); - } - b.build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .apply_each(&self.tabs, |t, b| b.tab(t.val, t.leader, t.pos))? + .into_inner() } } diff --git a/docx-core/src/documents/elements/text.rs b/docx-core/src/documents/elements/text.rs index aab291c27..6bd902d76 100644 --- a/docx-core/src/documents/elements/text.rs +++ b/docx-core/src/documents/elements/text.rs @@ -1,5 +1,6 @@ use serde::ser::{Serialize, SerializeStruct, Serializer}; use serde::Deserialize; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -29,8 +30,13 @@ impl Text { } impl BuildXML for Text { - fn build(&self) -> Vec { - XMLBuilder::new().text(&self.text, true).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .text(&self.text, true)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/text_alignment.rs b/docx-core/src/documents/elements/text_alignment.rs index afe9f3e44..53f41955e 100644 --- a/docx-core/src/documents/elements/text_alignment.rs +++ b/docx-core/src/documents/elements/text_alignment.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::{xml_builder::*, TextAlignmentType}; @@ -13,10 +14,13 @@ impl TextAlignment { } impl BuildXML for TextAlignment { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let v = format!("{}", self.0); - b.text_alignment(&v).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .text_alignment(&format!("{}", self.0))? + .into_inner() } } diff --git a/docx-core/src/documents/elements/text_border.rs b/docx-core/src/documents/elements/text_border.rs index eb14d8c07..3748081cb 100644 --- a/docx-core/src/documents/elements/text_border.rs +++ b/docx-core/src/documents/elements/text_border.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -51,9 +52,12 @@ impl Default for TextBorder { } impl BuildXML for TextBorder { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.text_border(self.border_type, self.size, self.space, &self.color) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .text_border(self.border_type, self.size, self.space, &self.color)? + .into_inner() } } diff --git a/docx-core/src/documents/elements/text_box.rs b/docx-core/src/documents/elements/text_box.rs index f6ea0bc79..846900eef 100644 --- a/docx-core/src/documents/elements/text_box.rs +++ b/docx-core/src/documents/elements/text_box.rs @@ -143,36 +143,36 @@ impl TextBox { } /* -impl BuildXML for Textbox { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); +impl BuildXML for TextBox { + fn build_to(&self, stream: xml::writer::EventWriter) -> xml::writer::Result> { let w = format!("{}", self.size.0); let h = format!("{}", self.size.1); - b.open_pic("http://schemas.openxmlformats.org/drawingml/2006/picture") - .open_pic_nv_pic_pr() - .pic_c_nv_pr("0", "") - .open_pic_c_nv_pic_pr() - .a_pic_locks("1", "1") - .close() - .close() - .open_blip_fill() - .a_blip(&self.id) - .a_src_rect() - .open_a_stretch() - .a_fill_rect() - .close() - .close() - .open_pic_sp_pr("auto") - .open_a_xfrm() - .a_off("0", "0") - .a_ext(&w, &h) - .close() - .open_a_prst_geom("rect") - .a_av_lst() - .close() - .close() - .close() - .build() + XMLBuilder::from(stream) + .open_pic("http://schemas.openxmlformats.org/drawingml/2006/picture")? + .open_pic_nv_pic_pr()? + .pic_c_nv_pr("0", "")? + .open_pic_c_nv_pic_pr()? + .a_pic_locks("1", "1")? + .close()? + .close()? + .open_blip_fill()? + .a_blip(&self.id)? + .a_src_rect()? + .open_a_stretch()? + .a_fill_rect()? + .close()? + .close()? + .open_pic_sp_pr("auto")? + .open_a_xfrm()? + .a_off("0", "0")? + .a_ext(&w, &h)? + .close()? + .open_a_prst_geom("rect")? + .a_av_lst()? + .close()? + .close()? + .close()? + .into_inner() } } */ diff --git a/docx-core/src/documents/elements/text_box_content.rs b/docx-core/src/documents/elements/text_box_content.rs index 56895075b..ced501e17 100644 --- a/docx-core/src/documents/elements/text_box_content.rs +++ b/docx-core/src/documents/elements/text_box_content.rs @@ -1,6 +1,7 @@ use super::*; use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -62,17 +63,28 @@ impl TextBoxContent { } } -impl BuildXML for TextBoxContent { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_text_box_content(); - for c in &self.children { - match c { - TextBoxContentChild::Paragraph(p) => b = b.add_child(p), - TextBoxContentChild::Table(t) => b = b.add_child(t), - } +impl BuildXML for TextBoxContentChild { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + match self { + TextBoxContentChild::Paragraph(p) => p.build_to(stream), + TextBoxContentChild::Table(t) => t.build_to(stream), } - b.close().build() + } +} + +impl BuildXML for TextBoxContent { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_text_box_content()? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/text_direction.rs b/docx-core/src/documents/elements/text_direction.rs index 7445aafca..f939b4efc 100644 --- a/docx-core/src/documents/elements/text_direction.rs +++ b/docx-core/src/documents/elements/text_direction.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -16,10 +17,13 @@ impl TextDirection { } impl BuildXML for TextDirection { - fn build(&self) -> Vec { - XMLBuilder::new() - .text_direction(&self.val.to_string()) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .text_direction(&self.val.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/underline.rs b/docx-core/src/documents/elements/underline.rs index 1a8a88f84..b64e55e7c 100644 --- a/docx-core/src/documents/elements/underline.rs +++ b/docx-core/src/documents/elements/underline.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -15,8 +16,11 @@ impl Underline { } impl BuildXML for Underline { - fn build(&self) -> Vec { - XMLBuilder::new().underline(&self.val).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).underline(&self.val)?.into_inner() } } diff --git a/docx-core/src/documents/elements/v_align.rs b/docx-core/src/documents/elements/v_align.rs index ea2db7582..7f214ce2c 100644 --- a/docx-core/src/documents/elements/v_align.rs +++ b/docx-core/src/documents/elements/v_align.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -16,10 +17,13 @@ impl VAlign { } impl BuildXML for VAlign { - fn build(&self) -> Vec { - XMLBuilder::new() - .vertical_align(&self.val.to_string()) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .vertical_align(&self.val.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/vanish.rs b/docx-core/src/documents/elements/vanish.rs index eee3eac54..60e4ac5b6 100644 --- a/docx-core/src/documents/elements/vanish.rs +++ b/docx-core/src/documents/elements/vanish.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -13,9 +14,11 @@ impl Vanish { } impl BuildXML for Vanish { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.vanish().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream).vanish()?.into_inner() } } diff --git a/docx-core/src/documents/elements/vert_align.rs b/docx-core/src/documents/elements/vert_align.rs index becc9971a..1eab4ada7 100644 --- a/docx-core/src/documents/elements/vert_align.rs +++ b/docx-core/src/documents/elements/vert_align.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -25,8 +26,12 @@ impl Serialize for VertAlign { } impl BuildXML for VertAlign { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.vert_align(&self.val.to_string() ).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .vert_align(&self.val.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/vertical_merge.rs b/docx-core/src/documents/elements/vertical_merge.rs index f7e08b8c9..9bf7d9e79 100644 --- a/docx-core/src/documents/elements/vertical_merge.rs +++ b/docx-core/src/documents/elements/vertical_merge.rs @@ -1,4 +1,5 @@ use serde::{Serialize, Serializer}; +use std::io::Write; use crate::documents::BuildXML; use crate::types::*; @@ -16,10 +17,13 @@ impl VMerge { } impl BuildXML for VMerge { - fn build(&self) -> Vec { - XMLBuilder::new() - .vertical_merge(&self.val.to_string()) - .build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .vertical_merge(&self.val.to_string())? + .into_inner() } } diff --git a/docx-core/src/documents/elements/wp_anchor.rs b/docx-core/src/documents/elements/wp_anchor.rs index 650152a48..51068f807 100644 --- a/docx-core/src/documents/elements/wp_anchor.rs +++ b/docx-core/src/documents/elements/wp_anchor.rs @@ -1,5 +1,6 @@ use super::*; use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -33,13 +34,15 @@ impl WpAnchor { } impl BuildXML for WpAnchor { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_anchor(); - for c in &self.children { - b = b.add_child(c) - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_anchor()? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/wps_shape.rs b/docx-core/src/documents/elements/wps_shape.rs index ab2a0eadf..9c89c8681 100644 --- a/docx-core/src/documents/elements/wps_shape.rs +++ b/docx-core/src/documents/elements/wps_shape.rs @@ -1,6 +1,7 @@ use super::*; use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -43,15 +44,26 @@ impl WpsShape { } } -impl BuildXML for WpsShape { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_wp_text_box(); - for c in &self.children { - match c { - WpsShapeChild::WpsTextBox(t) => b = b.add_child(t), - } +impl BuildXML for WpsShapeChild { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + match self { + WpsShapeChild::WpsTextBox(t) => t.build_to(stream), } - b.close().build() + } +} + +impl BuildXML for WpsShape { + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_wp_text_box()? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/wps_text_box.rs b/docx-core/src/documents/elements/wps_text_box.rs index 0a5178b13..aeb22efae 100644 --- a/docx-core/src/documents/elements/wps_text_box.rs +++ b/docx-core/src/documents/elements/wps_text_box.rs @@ -1,5 +1,6 @@ use super::*; use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -26,13 +27,15 @@ impl WpsTextBox { } impl BuildXML for WpsTextBox { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b.open_wp_text_box(); - for c in &self.children { - b = b.add_child(c); - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .open_wp_text_box()? + .add_children(&self.children)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/elements/zoom.rs b/docx-core/src/documents/elements/zoom.rs index a032b8738..9fe81df08 100644 --- a/docx-core/src/documents/elements/zoom.rs +++ b/docx-core/src/documents/elements/zoom.rs @@ -1,5 +1,6 @@ use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::{Serialize, Serializer}; @@ -15,9 +16,13 @@ impl Zoom { } impl BuildXML for Zoom { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - b.zoom(&format!("{}", self.val)).build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .zoom(&format!("{}", self.val))? + .into_inner() } } diff --git a/docx-core/src/documents/font_table.rs b/docx-core/src/documents/font_table.rs index dd062377f..c30be05ff 100644 --- a/docx-core/src/documents/font_table.rs +++ b/docx-core/src/documents/font_table.rs @@ -2,6 +2,7 @@ use super::Font; use crate::documents::BuildXML; use crate::types::FontPitchType; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -16,18 +17,21 @@ impl FontTable { } impl BuildXML for FontTable { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + let b = XMLBuilder::from(stream); let times = Font::new("Times New Roman", "00", "roman", FontPitchType::Variable); let symbol = Font::new("Symbol", "02", "roman", FontPitchType::Variable); let arial = Font::new("Arial", "00", "swiss", FontPitchType::Variable); - b.declaration(Some(true)) - .open_fonts() - .add_child(×) - .add_child(&symbol) - .add_child(&arial) - .close() - .build() + b.declaration(Some(true))? + .open_fonts()? + .add_child(×)? + .add_child(&symbol)? + .add_child(&arial)? + .close()? + .into_inner() } } @@ -35,30 +39,16 @@ impl BuildXML for FontTable { mod tests { use super::*; - #[cfg(test)] - use pretty_assertions::assert_eq; + use pretty_assertions::assert_str_eq; use std::str; #[test] fn test_settings() { let c = FontTable::new(); let b = c.build(); - assert_eq!( + assert_str_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - - - - - - - - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/footer.rs b/docx-core/src/documents/footer.rs index 6c87565ef..6dba96c5a 100644 --- a/docx-core/src/documents/footer.rs +++ b/docx-core/src/documents/footer.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -80,18 +81,20 @@ impl Serialize for FooterChild { } impl BuildXML for Footer { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b.declaration(Some(true)).open_footer(); - - for c in &self.children { - match c { - FooterChild::Paragraph(p) => b = b.add_child(p), - FooterChild::Table(t) => b = b.add_child(t), - FooterChild::StructuredDataTag(t) => b = b.add_child(t), - } - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_footer()? + .apply_each(&self.children, |c, b| match c { + FooterChild::Paragraph(p) => b.add_child(&p), + FooterChild::Table(t) => b.add_child(&t), + FooterChild::StructuredDataTag(t) => b.add_child(&t), + })? + .close()? + .into_inner() } } @@ -109,8 +112,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } } diff --git a/docx-core/src/documents/footer_rels.rs b/docx-core/src/documents/footer_rels.rs index 9518facfa..4ffb04037 100644 --- a/docx-core/src/documents/footer_rels.rs +++ b/docx-core/src/documents/footer_rels.rs @@ -1,6 +1,7 @@ use crate::documents::BuildXML; use crate::{xml_builder::*, ImageIdAndPath}; use serde::Serialize; +use std::io::Write; #[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] @@ -24,20 +25,21 @@ impl FooterRels { } impl BuildXML for FooterRels { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b - .declaration(None) - .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships"); - - for (id, path) in self.images.iter() { - b = b.relationship( - id, - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", - path, - ) - } - - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(None)? + .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships")? + .apply_each(&self.images, |(id, path), b| { + b.relationship( + id, + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", + path, + ) + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/footnotes.rs b/docx-core/src/documents/footnotes.rs index e0dd1134e..91f7232ec 100644 --- a/docx-core/src/documents/footnotes.rs +++ b/docx-core/src/documents/footnotes.rs @@ -1,6 +1,7 @@ use super::Footnote; use crate::documents::BuildXML; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -21,12 +22,16 @@ impl Footnotes { } impl BuildXML for Footnotes { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new().declaration(Some(true)).open_footnotes(); - for c in &self.footnotes { - b = b.add_child(c) - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_footnotes()? + .add_children(&self.footnotes)? + .close()? + .into_inner() } } @@ -43,8 +48,7 @@ mod tests { let b = Footnotes::new().build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } } diff --git a/docx-core/src/documents/header.rs b/docx-core/src/documents/header.rs index 8df882b51..d19e0b7ad 100644 --- a/docx-core/src/documents/header.rs +++ b/docx-core/src/documents/header.rs @@ -1,5 +1,6 @@ use serde::ser::{SerializeStruct, Serializer}; use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -80,18 +81,20 @@ impl Serialize for HeaderChild { } impl BuildXML for Header { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b.declaration(Some(true)).open_header(); - - for c in &self.children { - match c { - HeaderChild::Paragraph(p) => b = b.add_child(p), - HeaderChild::Table(t) => b = b.add_child(t), - HeaderChild::StructuredDataTag(t) => b = b.add_child(t), - } - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_header()? + .apply_each(&self.children, |c, b| match c { + HeaderChild::Paragraph(p) => b.add_child(&p), + HeaderChild::Table(t) => b.add_child(&t), + HeaderChild::StructuredDataTag(t) => b.add_child(&t), + })? + .close()? + .into_inner() } } @@ -109,8 +112,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" -"# + r#""# ); } } diff --git a/docx-core/src/documents/header_rels.rs b/docx-core/src/documents/header_rels.rs index 87b9e2782..a6a3ec7cd 100644 --- a/docx-core/src/documents/header_rels.rs +++ b/docx-core/src/documents/header_rels.rs @@ -1,6 +1,7 @@ use crate::documents::BuildXML; use crate::{xml_builder::*, ImageIdAndPath}; use serde::Serialize; +use std::io::Write; #[derive(Debug, Clone, PartialEq, Serialize, Default)] #[serde(rename_all = "camelCase")] @@ -24,20 +25,21 @@ impl HeaderRels { } impl BuildXML for HeaderRels { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new(); - b = b - .declaration(None) - .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships"); - - for (id, path) in self.images.iter() { - b = b.relationship( - id, - "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", - path, - ) - } - - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(None)? + .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships")? + .apply_each(&self.images, |(id, path), b| { + b.relationship( + id, + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image", + path, + ) + })? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/mod.rs b/docx-core/src/documents/mod.rs index 74c30e6fb..7be938e69 100644 --- a/docx-core/src/documents/mod.rs +++ b/docx-core/src/documents/mod.rs @@ -40,7 +40,7 @@ mod web_settings; mod webextension; mod xml_docx; -pub(crate) use build_xml::BuildXML; +pub use build_xml::BuildXML; pub(crate) use history_id::HistoryId; pub(crate) use hyperlink_id::*; pub(crate) use paragraph_id::*; diff --git a/docx-core/src/documents/numberings.rs b/docx-core/src/documents/numberings.rs index 40e1fd7ff..64f8dcf2f 100644 --- a/docx-core/src/documents/numberings.rs +++ b/docx-core/src/documents/numberings.rs @@ -2,6 +2,7 @@ use super::*; use crate::documents::BuildXML; use crate::types::*; use crate::xml_builder::*; +use std::io::Write; use serde::Serialize; @@ -29,17 +30,19 @@ impl Numberings { } impl BuildXML for Numberings { - fn build(&self) -> Vec { - let mut b = XMLBuilder::new().declaration(Some(true)).open_numbering(); - b = b.add_child(&create_default_numbering()); - for n in &self.abstract_nums { - b = b.add_child(n); - } - b = b.add_child(&Numbering::new(1, 1)); - for n in &self.numberings { - b = b.add_child(n); - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_numbering()? + .add_child(&create_default_numbering())? + .add_children(&self.abstract_nums)? + .add_child(&Numbering::new(1, 1))? + .add_children(&self.numberings)? + .close()? + .into_inner() } } diff --git a/docx-core/src/documents/rels.rs b/docx-core/src/documents/rels.rs index caa37f6ba..2ba1ac210 100644 --- a/docx-core/src/documents/rels.rs +++ b/docx-core/src/documents/rels.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -62,15 +63,16 @@ impl Rels { } impl BuildXML for Rels { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b - .declaration(None) - .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships"); - for (k, id, v) in self.rels.iter() { - b = b.relationship(id, k, v); - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(None)? + .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships")? + .apply_each(&self.rels, |(k, id, v), b| b.relationship(id, k, v))? + .close()? + .into_inner() } } @@ -88,13 +90,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/settings.rs b/docx-core/src/documents/settings.rs index 611ec6943..17bd6ea8b 100644 --- a/docx-core/src/documents/settings.rs +++ b/docx-core/src/documents/settings.rs @@ -1,4 +1,5 @@ use super::*; +use std::io::Write; use crate::documents::BuildXML; use crate::types::CharacterSpacingValues; @@ -70,82 +71,72 @@ impl Default for Settings { } impl BuildXML for Settings { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b - .declaration(Some(true)) - .open_settings() - .add_child(&self.default_tab_stop) - .add_child(&self.zoom) - .open_compat() - .space_for_ul() - .balance_single_byte_double_byte_width() - .do_not_leave_backslash_alone() - .ul_trail_space() - .do_not_expand_shift_return(); - - if let Some(v) = self.character_spacing_control { - b = b.character_spacing_control(&v.to_string()); - } - - if self.adjust_line_height_in_table { - b = b.adjust_line_height_table(); - } - - b = b - .use_fe_layout() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_settings()? + .add_child(&self.default_tab_stop)? + .add_child(&self.zoom)? + .open_compat()? + .space_for_ul()? + .balance_single_byte_double_byte_width()? + .do_not_leave_backslash_alone()? + .ul_trail_space()? + .do_not_expand_shift_return()? + .apply_opt(self.character_spacing_control, |v, b| { + b.character_spacing_control(&v.to_string()) + })? + .apply_if(self.adjust_line_height_in_table, |b| { + b.adjust_line_height_table() + })? + .use_fe_layout()? .compat_setting( "compatibilityMode", "http://schemas.microsoft.com/office/word", "15", - ) + )? .compat_setting( "overrideTableStyleFontSizeAndJustification", "http://schemas.microsoft.com/office/word", "1", - ) + )? .compat_setting( "enableOpenTypeFeatures", "http://schemas.microsoft.com/office/word", "1", - ) + )? .compat_setting( "doNotFlipMirrorIndents", "http://schemas.microsoft.com/office/word", "1", - ) + )? .compat_setting( "differentiateMultirowTableHeaders", "http://schemas.microsoft.com/office/word", "1", - ) + )? .compat_setting( "useWord2013TrackBottomHyphenation", "http://schemas.microsoft.com/office/word", "0", - ) - .close() - .add_optional_child(&self.doc_id); - - if !self.doc_vars.is_empty() { - b = b.open_doc_vars(); - for v in self.doc_vars.iter() { - b = b.add_child(v); - } - b = b.close(); - } - - if self.even_and_odd_headers { - b = b.even_and_odd_headers(); - } - b.close().build() + )? + .close()? + .add_optional_child(&self.doc_id)? + .apply_if(!self.doc_vars.is_empty(), |b| { + b.open_doc_vars()?.add_children(&self.doc_vars)?.close() + })? + .apply_if(self.even_and_odd_headers, |b| b.even_and_odd_headers())? + .close()? + .into_inner() } } #[cfg(test)] mod tests { use super::*; - #[cfg(test)] use pretty_assertions::assert_eq; use std::str; @@ -155,22 +146,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - - - - - - - - - - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/styles.rs b/docx-core/src/documents/styles.rs index 0bc3f2cc6..ee496b0f2 100644 --- a/docx-core/src/documents/styles.rs +++ b/docx-core/src/documents/styles.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use super::*; use crate::documents::BuildXML; @@ -76,15 +77,18 @@ impl Default for Styles { } impl BuildXML for Styles { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { let normal = Style::new("Normal", StyleType::Paragraph).name("Normal"); - b.open_styles() - .add_child(&self.doc_defaults) - .add_child(&normal) - .add_children(&self.styles) - .close() - .build() + XMLBuilder::from(stream) + .open_styles()? + .add_child(&self.doc_defaults)? + .add_child(&normal)? + .add_children(&self.styles)? + .close()? + .into_inner() } } @@ -124,12 +128,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - -"# + r#""# ); } diff --git a/docx-core/src/documents/taskpanes.rs b/docx-core/src/documents/taskpanes.rs index 1975a4419..3dcfb1711 100644 --- a/docx-core/src/documents/taskpanes.rs +++ b/docx-core/src/documents/taskpanes.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -13,19 +14,21 @@ impl Taskpanes { } impl BuildXML for Taskpanes { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let b = b - .declaration(Some(true)) - .open_taskpanes("http://schemas.microsoft.com/office/webextensions/taskpanes/2010/11") - .open_taskpane("", "1", "350", "1") + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_taskpanes("http://schemas.microsoft.com/office/webextensions/taskpanes/2010/11")? + .open_taskpane("", "1", "350", "1")? .webextensionref( "http://schemas.openxmlformats.org/officeDocument/2006/relationships", "rId1", - ) - .close() - .close(); - b.build() + )? + .close()? + .close()? + .into_inner() } } @@ -43,12 +46,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/taskpanes_rels.rs b/docx-core/src/documents/taskpanes_rels.rs index b87959e0b..457e28a3a 100644 --- a/docx-core/src/documents/taskpanes_rels.rs +++ b/docx-core/src/documents/taskpanes_rels.rs @@ -1,4 +1,5 @@ use serde::{Deserialize, Serialize}; +use std::io::Write; use crate::documents::BuildXML; use crate::xml_builder::*; @@ -29,15 +30,16 @@ impl TaskpanesRels { } impl BuildXML for TaskpanesRels { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b - .declaration(Some(true)) - .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships"); - for (k, id, v) in self.rels.iter() { - b = b.relationship(id, k, v); - } - b.close().build() + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? + .open_relationships("http://schemas.openxmlformats.org/package/2006/relationships")? + .apply_each(&self.rels, |(k, id, v), b| b.relationship(id, k, v))? + .close()? + .into_inner() } } @@ -55,10 +57,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - -"# + r#""# ); } } diff --git a/docx-core/src/documents/webextension.rs b/docx-core/src/documents/webextension.rs index 8341ca04e..34c56f9bd 100644 --- a/docx-core/src/documents/webextension.rs +++ b/docx-core/src/documents/webextension.rs @@ -1,4 +1,5 @@ use serde::Serialize; +use std::io::Write; use crate::documents::BuildXML; use crate::escape::escape; @@ -50,40 +51,40 @@ impl WebExtension { pub fn property(mut self, name: impl Into, value: impl Into) -> Self { let v = value.into(); let v = format!(""{}"", escape(&v).replace(""", "\\"")); - self.properties.push(WebExtensionProperty::new(name, &v)); + self.properties.push(WebExtensionProperty::new(name, v)); self } } impl BuildXML for WebExtension { - fn build(&self) -> Vec { - let b = XMLBuilder::new(); - let mut b = b - .declaration(Some(true)) + fn build_to( + &self, + stream: xml::writer::EventWriter, + ) -> xml::writer::Result> { + XMLBuilder::from(stream) + .declaration(Some(true))? .open_webextension( "http://schemas.microsoft.com/office/webextensions/webextension/2010/11", &format!("{{{}}}", &self.id), - ) + )? .webextension_reference( &self.reference_id, &self.version, &self.store, &self.store_type, - ) - .webextension_alternate_references() - .open_webextension_properties(); - - for p in self.properties.iter() { - b = b.webextension_property(&p.name, &p.value); - } - - b.close() - .webextension_bindings() + )? + .webextension_alternate_references()? + .open_webextension_properties()? + .apply_each(&self.properties, |p, b| { + b.webextension_property(&p.name, &p.value) + })? + .close()? + .webextension_bindings()? .webextension_snapshot( "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .close() - .build() + )? + .close()? + .into_inner() } } @@ -108,16 +109,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" - - - - - - - - -"# + r#""# ); } } diff --git a/docx-core/src/reader/attributes/width.rs b/docx-core/src/reader/attributes/width.rs index 8ec3d6d90..617e52cba 100644 --- a/docx-core/src/reader/attributes/width.rs +++ b/docx-core/src/reader/attributes/width.rs @@ -14,7 +14,7 @@ pub fn read_width(attrs: &[OwnedAttribute]) -> Result<(isize, WidthType), Reader if local_name == "type" { width_type = WidthType::from_str(&a.value)?; } else if local_name == "w" { - let v = a.value.replace("%", ""); + let v = a.value.replace('%', ""); w = f64::from_str(&v).expect("should read width.") as isize; } } diff --git a/docx-core/src/reader/comment.rs b/docx-core/src/reader/comment.rs index 46fe71b01..b8c530451 100644 --- a/docx-core/src/reader/comment.rs +++ b/docx-core/src/reader/comment.rs @@ -4,8 +4,8 @@ use std::str::FromStr; use xml::attribute::OwnedAttribute; use xml::reader::{EventReader, XmlEvent}; -use crate::escape; use super::*; +use crate::escape; impl ElementReader for Comment { fn read( diff --git a/docx-core/src/reader/settings.rs b/docx-core/src/reader/settings.rs index 52f19f476..dbb8ba4a2 100644 --- a/docx-core/src/reader/settings.rs +++ b/docx-core/src/reader/settings.rs @@ -25,9 +25,8 @@ impl FromXML for Settings { let local_name = &a.name.local_name; // Ignore w14:val if local_name == "val" && prefix == "w15" { - settings = settings.doc_id( - a.value.to_owned().replace("{", "").replace("}", ""), - ); + settings = settings + .doc_id(a.value.to_owned().replace(['{', '}'], "")); } } } diff --git a/docx-core/src/types/character_spacing_values.rs b/docx-core/src/types/character_spacing_values.rs index af277e741..b9a51d289 100644 --- a/docx-core/src/types/character_spacing_values.rs +++ b/docx-core/src/types/character_spacing_values.rs @@ -3,8 +3,8 @@ use std::str::FromStr; #[cfg(feature = "wasm")] use wasm_bindgen::prelude::*; -use serde::{Serialize, Deserialize}; use super::errors; +use serde::{Deserialize, Serialize}; #[cfg_attr(feature = "wasm", wasm_bindgen)] #[derive(Copy, Clone, PartialEq, Debug, Serialize, Deserialize)] @@ -21,7 +21,9 @@ impl fmt::Display for CharacterSpacingValues { match *self { CharacterSpacingValues::DoNotCompress => write!(f, "doNotCompress"), CharacterSpacingValues::CompressPunctuation => write!(f, "compressPunctuation"), - CharacterSpacingValues::CompressPunctuationAndJapaneseKana => write!(f, "compressPunctuationAndJapaneseKana"), + CharacterSpacingValues::CompressPunctuationAndJapaneseKana => { + write!(f, "compressPunctuationAndJapaneseKana") + } _ => write!(f, "unsupported"), } } @@ -33,8 +35,10 @@ impl FromStr for CharacterSpacingValues { match s { "doNotCompress" => Ok(CharacterSpacingValues::DoNotCompress), "compressPunctuation" => Ok(CharacterSpacingValues::CompressPunctuation), - "compressPunctuationAndJapaneseKana" => Ok(CharacterSpacingValues::CompressPunctuationAndJapaneseKana), - _ => Err(errors::TypeError::Unsupported(s.to_string())) + "compressPunctuationAndJapaneseKana" => { + Ok(CharacterSpacingValues::CompressPunctuationAndJapaneseKana) + } + _ => Err(errors::TypeError::Unsupported(s.to_string())), } } } diff --git a/docx-core/src/xml_builder/comments.rs b/docx-core/src/xml_builder/comments.rs index 31a2a3de1..355ba81cf 100644 --- a/docx-core/src/xml_builder/comments.rs +++ b/docx-core/src/xml_builder/comments.rs @@ -1,49 +1,48 @@ use super::XMLBuilder; use super::XmlEvent; +use std::io::Write; +use xml::writer::Result; -impl XMLBuilder { - pub(crate) fn open_comments(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:comments") - .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .attr("xmlns:v", "urn:schemas-microsoft-com:vml") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") - .attr( - "xmlns:wp", - "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", - ) - .attr( - "xmlns:wps", - "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", - ) - .attr( - "xmlns:wpg", - "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", - ) - .attr( - "xmlns:mc", - "http://schemas.openxmlformats.org/markup-compatibility/2006", - ) - .attr( - "xmlns:wp14", - "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", - ) - .attr( - "xmlns:w14", - "http://schemas.microsoft.com/office/word/2010/wordml", - ) - .attr("mc:Ignorable", "w14 wp14"), - ) - .expect("should write to buf"); - self +impl XMLBuilder { + pub(crate) fn open_comments(self) -> Result { + self.write( + XmlEvent::start_element("w:comments") + .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ) + .attr("xmlns:v", "urn:schemas-microsoft-com:vml") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") + .attr( + "xmlns:wp", + "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", + ) + .attr( + "xmlns:wps", + "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", + ) + .attr( + "xmlns:wpg", + "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", + ) + .attr( + "xmlns:mc", + "http://schemas.openxmlformats.org/markup-compatibility/2006", + ) + .attr( + "xmlns:wp14", + "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", + ) + .attr( + "xmlns:w14", + "http://schemas.microsoft.com/office/word/2010/wordml", + ) + .attr("mc:Ignorable", "w14 wp14"), + ) } } diff --git a/docx-core/src/xml_builder/comments_extended.rs b/docx-core/src/xml_builder/comments_extended.rs index 2df4c4a3e..64fa47ef5 100644 --- a/docx-core/src/xml_builder/comments_extended.rs +++ b/docx-core/src/xml_builder/comments_extended.rs @@ -1,125 +1,124 @@ use super::XMLBuilder; use super::XmlEvent; +use std::io::Write; +use xml::writer::Result; -impl XMLBuilder { - pub(crate) fn open_comments_extended(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w15:commentsEx") - .attr( - "xmlns:wpc", - "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas", - ) - .attr( - "xmlns:cx", - "http://schemas.microsoft.com/office/drawing/2014/chartex", - ) - .attr( - "xmlns:cx1", - "http://schemas.microsoft.com/office/drawing/2015/9/8/chartex", - ) - .attr( - "xmlns:cx2", - "http://schemas.microsoft.com/office/drawing/2015/10/21/chartex", - ) - .attr( - "xmlns:cx3", - "http://schemas.microsoft.com/office/drawing/2016/5/9/chartex", - ) - .attr( - "xmlns:cx4", - "http://schemas.microsoft.com/office/drawing/2016/5/10/chartex", - ) - .attr( - "xmlns:cx5", - "http://schemas.microsoft.com/office/drawing/2016/5/11/chartex", - ) - .attr( - "xmlns:cx6", - "http://schemas.microsoft.com/office/drawing/2016/5/12/chartex", - ) - .attr( - "xmlns:cx7", - "http://schemas.microsoft.com/office/drawing/2016/5/13/chartex", - ) - .attr( - "xmlns:cx8", - "http://schemas.microsoft.com/office/drawing/2016/5/14/chartex", - ) - .attr( - "xmlns:mc", - "http://schemas.openxmlformats.org/markup-compatibility/2006", - ) - .attr( - "xmlns:aink", - "http://schemas.microsoft.com/office/drawing/2016/ink", - ) - .attr( - "xmlns:am3d", - "http://schemas.microsoft.com/office/drawing/2017/model3d", - ) - .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .attr( - "xmlns:m", - "http://schemas.openxmlformats.org/officeDocument/2006/math", - ) - .attr("xmlns:v", "urn:schemas-microsoft-com:vml") - .attr( - "xmlns:wp14", - "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", - ) - .attr( - "xmlns:wp", - "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", - ) - .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr( - "xmlns:w14", - "http://schemas.microsoft.com/office/word/2010/wordml", - ) - .attr( - "xmlns:w15", - "http://schemas.microsoft.com/office/word/2012/wordml", - ) - .attr( - "xmlns:w16cex", - "http://schemas.microsoft.com/office/word/2018/wordml/cex", - ) - .attr( - "xmlns:w16cid", - "http://schemas.microsoft.com/office/word/2016/wordml/cid", - ) - .attr( - "xmlns:w16", - "http://schemas.microsoft.com/office/word/2018/wordml", - ) - .attr( - "xmlns:w16se", - "http://schemas.microsoft.com/office/word/2015/wordml/symex", - ) - .attr( - "xmlns:wpg", - "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", - ) - .attr( - "xmlns:wpi", - "http://schemas.microsoft.com/office/word/2010/wordprocessingInk", - ) - .attr( - "xmlns:wne", - "http://schemas.microsoft.com/office/word/2006/wordml", - ) - .attr("xmlns:wps", "http://schemas.microsoft.com/office/word/2010"), - ) - .expect("should write to buf"); - self +impl XMLBuilder { + pub(crate) fn open_comments_extended(self) -> Result { + self.write( + XmlEvent::start_element("w15:commentsEx") + .attr( + "xmlns:wpc", + "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas", + ) + .attr( + "xmlns:cx", + "http://schemas.microsoft.com/office/drawing/2014/chartex", + ) + .attr( + "xmlns:cx1", + "http://schemas.microsoft.com/office/drawing/2015/9/8/chartex", + ) + .attr( + "xmlns:cx2", + "http://schemas.microsoft.com/office/drawing/2015/10/21/chartex", + ) + .attr( + "xmlns:cx3", + "http://schemas.microsoft.com/office/drawing/2016/5/9/chartex", + ) + .attr( + "xmlns:cx4", + "http://schemas.microsoft.com/office/drawing/2016/5/10/chartex", + ) + .attr( + "xmlns:cx5", + "http://schemas.microsoft.com/office/drawing/2016/5/11/chartex", + ) + .attr( + "xmlns:cx6", + "http://schemas.microsoft.com/office/drawing/2016/5/12/chartex", + ) + .attr( + "xmlns:cx7", + "http://schemas.microsoft.com/office/drawing/2016/5/13/chartex", + ) + .attr( + "xmlns:cx8", + "http://schemas.microsoft.com/office/drawing/2016/5/14/chartex", + ) + .attr( + "xmlns:mc", + "http://schemas.openxmlformats.org/markup-compatibility/2006", + ) + .attr( + "xmlns:aink", + "http://schemas.microsoft.com/office/drawing/2016/ink", + ) + .attr( + "xmlns:am3d", + "http://schemas.microsoft.com/office/drawing/2017/model3d", + ) + .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ) + .attr( + "xmlns:m", + "http://schemas.openxmlformats.org/officeDocument/2006/math", + ) + .attr("xmlns:v", "urn:schemas-microsoft-com:vml") + .attr( + "xmlns:wp14", + "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", + ) + .attr( + "xmlns:wp", + "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", + ) + .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr( + "xmlns:w14", + "http://schemas.microsoft.com/office/word/2010/wordml", + ) + .attr( + "xmlns:w15", + "http://schemas.microsoft.com/office/word/2012/wordml", + ) + .attr( + "xmlns:w16cex", + "http://schemas.microsoft.com/office/word/2018/wordml/cex", + ) + .attr( + "xmlns:w16cid", + "http://schemas.microsoft.com/office/word/2016/wordml/cid", + ) + .attr( + "xmlns:w16", + "http://schemas.microsoft.com/office/word/2018/wordml", + ) + .attr( + "xmlns:w16se", + "http://schemas.microsoft.com/office/word/2015/wordml/symex", + ) + .attr( + "xmlns:wpg", + "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", + ) + .attr( + "xmlns:wpi", + "http://schemas.microsoft.com/office/word/2010/wordprocessingInk", + ) + .attr( + "xmlns:wne", + "http://schemas.microsoft.com/office/word/2006/wordml", + ) + .attr("xmlns:wps", "http://schemas.microsoft.com/office/word/2010"), + ) } } diff --git a/docx-core/src/xml_builder/core_properties.rs b/docx-core/src/xml_builder/core_properties.rs index 906d2ff2c..6f45ac859 100644 --- a/docx-core/src/xml_builder/core_properties.rs +++ b/docx-core/src/xml_builder/core_properties.rs @@ -1,7 +1,8 @@ use super::XMLBuilder; use super::XmlEvent; +use std::io::Write; -impl XMLBuilder { +impl XMLBuilder { // i.e. open!( open_core_properties, diff --git a/docx-core/src/xml_builder/custom_properties.rs b/docx-core/src/xml_builder/custom_properties.rs index 7b8a76d7b..e4ab51c11 100644 --- a/docx-core/src/xml_builder/custom_properties.rs +++ b/docx-core/src/xml_builder/custom_properties.rs @@ -1,7 +1,9 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { +use std::io::Write; + +impl XMLBuilder { open!(open_custom_properties, "Properties", "xmlns", "xmlns:vt"); open!(open_property, "property", "fmtid", "pid", "name"); closed_with_child!(lpwstr, "vt:lpwstr"); diff --git a/docx-core/src/xml_builder/declaration.rs b/docx-core/src/xml_builder/declaration.rs index 573005bd0..c797ccc54 100644 --- a/docx-core/src/xml_builder/declaration.rs +++ b/docx-core/src/xml_builder/declaration.rs @@ -1,33 +1,32 @@ -use super::XMLBuilder; +use super::{XMLBuilder, XmlEvent}; +use std::io::Write; +use xml::writer::Result; -impl XMLBuilder { - // Build XML declaration - // i.e. - pub(crate) fn declaration(mut self, standalone: Option) -> Self { - self.writer - .write(super::XmlEvent::StartDocument { - version: super::XmlVersion::Version10, - encoding: Some("UTF-8"), - standalone, - }) - .expect("should write to buf"); - self +impl XMLBuilder { + /// Build XML declaration + /// i.e. `` + pub(crate) fn declaration(self, standalone: Option) -> Result { + self.write(XmlEvent::StartDocument { + version: super::XmlVersion::Version10, + encoding: Some("UTF-8"), + standalone, + }) } } #[cfg(test)] mod tests { - use super::*; use std::str; #[test] - fn test_declaration() { - let b = XMLBuilder::new(); - let r = b.declaration(None).build(); + fn test_declaration() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.declaration(None)?.into_inner()?.into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#""# ); + Ok(()) } } diff --git a/docx-core/src/xml_builder/document.rs b/docx-core/src/xml_builder/document.rs index 117338762..ab95026ca 100644 --- a/docx-core/src/xml_builder/document.rs +++ b/docx-core/src/xml_builder/document.rs @@ -1,55 +1,55 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { - // i.e. - pub(crate) fn open_document(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:document") - .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .attr("xmlns:v", "urn:schemas-microsoft-com:vml") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") - .attr( - "xmlns:wp", - "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", - ) - .attr( - "xmlns:wps", - "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", - ) - .attr( - "xmlns:wpg", - "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", - ) - .attr( - "xmlns:mc", - "http://schemas.openxmlformats.org/markup-compatibility/2006", - ) - .attr( - "xmlns:wp14", - "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", - ) - .attr( - "xmlns:w14", - "http://schemas.microsoft.com/office/word/2010/wordml", - ) - .attr( - "xmlns:w15", - "http://schemas.microsoft.com/office/word/2012/wordml", - ) - .attr("mc:Ignorable", "w14 wp14"), - ) - .expect("should write to buf"); - self +use std::io::Write; +use xml::writer::Result; + +impl XMLBuilder { + /// i.e. `` + pub(crate) fn open_document(self) -> Result { + self.write( + XmlEvent::start_element("w:document") + .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ) + .attr("xmlns:v", "urn:schemas-microsoft-com:vml") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") + .attr( + "xmlns:wp", + "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", + ) + .attr( + "xmlns:wps", + "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", + ) + .attr( + "xmlns:wpg", + "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", + ) + .attr( + "xmlns:mc", + "http://schemas.openxmlformats.org/markup-compatibility/2006", + ) + .attr( + "xmlns:wp14", + "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", + ) + .attr( + "xmlns:w14", + "http://schemas.microsoft.com/office/word/2010/wordml", + ) + .attr( + "xmlns:w15", + "http://schemas.microsoft.com/office/word/2012/wordml", + ) + .attr("mc:Ignorable", "w14 wp14"), + ) } } @@ -62,12 +62,13 @@ mod tests { use std::str; #[test] - fn test_document() { - let b = XMLBuilder::new(); - let r = b.open_document().close().build(); + fn test_document() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.open_document()?.close()?.into_inner()?.into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#""# ); + Ok(()) } } diff --git a/docx-core/src/xml_builder/drawing.rs b/docx-core/src/xml_builder/drawing.rs index e6476c0d7..18b239026 100644 --- a/docx-core/src/xml_builder/drawing.rs +++ b/docx-core/src/xml_builder/drawing.rs @@ -1,7 +1,9 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { +use std::io::Write; + +impl XMLBuilder { open!( open_wp_inline, "wp:inline", diff --git a/docx-core/src/xml_builder/elements.rs b/docx-core/src/xml_builder/elements.rs index f48e19920..24b34f0e5 100644 --- a/docx-core/src/xml_builder/elements.rs +++ b/docx-core/src/xml_builder/elements.rs @@ -4,42 +4,39 @@ use crate::types::*; use crate::FrameProperty; use crate::TablePositionProperty; -const EXPECT_MESSAGE: &str = "should write buf"; +use std::io::Write; +use xml::writer::Result; -impl XMLBuilder { +impl XMLBuilder { // i.e. open!(open_body, "w:body"); // i.e. closed_with_str!(based_on, "w:basedOn"); // i.e. - pub(crate) fn text(mut self, text: &str, preserve_space: bool) -> Self { + pub(crate) fn text(self, text: &str, preserve_space: bool) -> Result { let space = if preserve_space { "preserve" } else { "default" }; - self.writer - .write(XmlEvent::start_element("w:t").attr("xml:space", space)) - .expect(EXPECT_MESSAGE); - self.writer.write(text).expect(EXPECT_MESSAGE); - self.close() + self.write(XmlEvent::start_element("w:t").attr("xml:space", space))? + .write(text)? + .close() } - pub(crate) fn snap_to_grid(mut self, v: bool) -> Self { + pub(crate) fn snap_to_grid(self, v: bool) -> Result { let v = if v { "true".to_string() } else { "false".to_string() }; - self.writer - .write(XmlEvent::start_element("w:snapToGrid").attr("w:val", &v)) - .expect(EXPECT_MESSAGE); - self.close() + self.write(XmlEvent::start_element("w:snapToGrid").attr("w:val", &v))? + .close() } #[allow(clippy::too_many_arguments)] pub(crate) fn run_fonts( - mut self, + self, ascii: Option<&String>, hi_ansi: Option<&String>, cs: Option<&String>, @@ -49,7 +46,7 @@ impl XMLBuilder { cs_theme: Option<&String>, east_asia_theme: Option<&String>, hint: Option<&String>, - ) -> Self { + ) -> Result { let mut w = XmlEvent::start_element("w:rFonts"); if let Some(ascii) = ascii { w = w.attr("w:ascii", ascii); @@ -78,30 +75,27 @@ impl XMLBuilder { if let Some(hint) = hint { w = w.attr("w:hint", hint); } - self.writer.write(w).expect(EXPECT_MESSAGE); - self.close() + self.write(w)?.close() } // i.e. - pub(crate) fn delete_text(mut self, text: &str, preserve_space: bool) -> Self { + pub(crate) fn delete_text(self, text: &str, preserve_space: bool) -> Result { let space = if preserve_space { "preserve" } else { "default" }; - self.writer - .write(XmlEvent::start_element("w:delText").attr("xml:space", space)) - .expect(EXPECT_MESSAGE); - self.writer.write(text).expect(EXPECT_MESSAGE); - self.close() + self.write(XmlEvent::start_element("w:delText").attr("xml:space", space))? + .write(text)? + .close() } pub(crate) fn data_binding( - mut self, + self, xpath: Option<&String>, prefix_mappings: Option<&String>, store_item_id: Option<&String>, - ) -> Self { + ) -> Result { let mut e = XmlEvent::start_element("w:dataBinding"); if let Some(xpath) = xpath { e = e.attr("w:xpath", xpath); @@ -112,16 +106,15 @@ impl XMLBuilder { if let Some(store_item_id) = store_item_id { e = e.attr("w:storeItemID", store_item_id); } - self.writer.write(e).expect(EXPECT_MESSAGE); - self.close() + self.write(e)?.close() } pub(crate) fn open_hyperlink( - mut self, + self, rid: Option<&String>, anchor: Option<&String>, history: Option, - ) -> Self { + ) -> Result { let mut e = XmlEvent::start_element("w:hyperlink"); let history = history.unwrap_or(1); if let Some(rid) = rid { @@ -132,8 +125,7 @@ impl XMLBuilder { } let s = format!("{}", history); e = e.attr("w:history", s.as_str()); - self.writer.write(e).expect(EXPECT_MESSAGE); - self + self.write(e) } // i.e. @@ -200,15 +192,12 @@ impl XMLBuilder { // Build w:style element // i.e. - pub(crate) fn open_style(mut self, style_type: StyleType, id: &str) -> Self { - self.writer - .write( - XmlEvent::start_element("w:style") - .attr("w:type", &style_type.to_string()) - .attr("w:styleId", id), - ) - .expect(EXPECT_MESSAGE); - self + pub(crate) fn open_style(self, style_type: StyleType, id: &str) -> Result { + self.write( + XmlEvent::start_element("w:style") + .attr("w:type", &style_type.to_string()) + .attr("w:styleId", id), + ) } // i.e. closed_with_str!(next, "w:next"); @@ -228,12 +217,12 @@ impl XMLBuilder { // i.e. pub(crate) fn indent( - mut self, + self, start: Option, special_indent: Option, end: i32, start_chars: Option, - ) -> Self { + ) -> Result { let start = &format!("{}", start.unwrap_or(0)); let end = &format!("{}", end); let start_chars_value = format!("{}", start_chars.unwrap_or(0)); @@ -246,37 +235,33 @@ impl XMLBuilder { } match special_indent { - Some(SpecialIndentType::FirstLine(v)) => self - .writer - .write(base.attr("w:firstLine", &format!("{}", v))) - .expect(EXPECT_MESSAGE), - Some(SpecialIndentType::Hanging(v)) => self - .writer - .write(base.attr("w:hanging", &format!("{}", v))) - .expect(EXPECT_MESSAGE), - _ => self.writer.write(base).expect(EXPECT_MESSAGE), - }; - self.close() + Some(SpecialIndentType::FirstLine(v)) => { + self.write(base.attr("w:firstLine", &format!("{}", v))) + } + Some(SpecialIndentType::Hanging(v)) => { + self.write(base.attr("w:hanging", &format!("{}", v))) + } + None => self.write(base), + }? + .close() } // i.e. - pub(crate) fn spacing(mut self, s: i32) -> Self { - self.writer - .write(XmlEvent::start_element("w:spacing").attr("w:val", &format!("{}", s))) - .expect(EXPECT_MESSAGE); - self.close() + pub(crate) fn spacing(self, s: i32) -> Result { + self.write(XmlEvent::start_element("w:spacing").attr("w:val", &format!("{}", s)))? + .close() } // i.e. pub(crate) fn line_spacing( - mut self, + self, before: Option, after: Option, line: Option, before_lines: Option, after_lines: Option, spacing: Option, - ) -> Self { + ) -> Result { let mut xml_event = XmlEvent::start_element("w:spacing"); let before_val: String; let after_val: String; @@ -317,8 +302,7 @@ impl XMLBuilder { } } } - self.writer.write(xml_event).expect(EXPECT_MESSAGE); - self.close() + self.write(xml_event)?.close() } // @@ -540,39 +524,31 @@ impl XMLBuilder { // CommentExtended // w15:commentEx w15:paraId="00000001" w15:paraIdParent="57D1BD7C" w15:done="0" pub(crate) fn comment_extended( - mut self, + self, paragraph_id: &str, done: bool, parent_paragraph_id: &Option, - ) -> Self { - if let Some(parent_paragraph_id) = parent_paragraph_id { - self.writer - .write( - XmlEvent::start_element("w15:commentEx") - .attr("w15:paraId", paragraph_id) - .attr("w15:paraIdParent", parent_paragraph_id) - .attr("w15:done", &format!("{}", done as usize)), - ) - .expect(EXPECT_MESSAGE); - return self.close(); - } - self.writer - .write( - XmlEvent::start_element("w15:commentEx") - .attr("w15:paraId", paragraph_id) - .attr("w15:done", &format!("{}", done as usize)), - ) - .expect(EXPECT_MESSAGE); - self.close() + ) -> Result { + let done = format!("{}", done as usize); + let el = match parent_paragraph_id { + Some(parent_paragraph_id) => XmlEvent::start_element("w15:commentEx") + .attr("w15:paraId", paragraph_id) + .attr("w15:paraIdParent", parent_paragraph_id) + .attr("w15:done", &done), + None => XmlEvent::start_element("w15:commentEx") + .attr("w15:paraId", paragraph_id) + .attr("w15:done", &done), + }; + self.write(el)?.close() } // docGrid pub(crate) fn doc_grid( - mut self, + self, t: &DocGridType, line_pitch: Option, char_space: Option, - ) -> Self { + ) -> Result { let t = t.to_string(); let line_pitch_string = format!("{}", line_pitch.unwrap_or_default()); let char_space_string = format!("{}", char_space.unwrap_or_default()); @@ -583,9 +559,7 @@ impl XMLBuilder { if char_space.is_some() { w = w.attr("w:charSpace", &char_space_string); } - self.writer.write(w).expect(EXPECT_MESSAGE); - - self.close() + self.write(w)?.close() } /** @@ -593,7 +567,7 @@ impl XMLBuilder { pub v_space: Option, */ - pub(crate) fn frame_property(mut self, prop: &FrameProperty) -> Self { + pub(crate) fn frame_property(self, prop: &FrameProperty) -> Result { let mut w = XmlEvent::start_element("w:framePr"); let wrap: String = prop.wrap.iter().cloned().collect(); if prop.wrap.is_some() { @@ -643,11 +617,10 @@ impl XMLBuilder { if prop.h.is_some() { w = w.attr("w:h", &h); } - self.writer.write(w).expect(EXPECT_MESSAGE); - self.close() + self.write(w)?.close() } - pub(crate) fn table_position_property(mut self, prop: &TablePositionProperty) -> Self { + pub(crate) fn table_position_property(self, prop: &TablePositionProperty) -> Result { let mut w = XmlEvent::start_element("w:tblpPr"); let v: String = format!("{}", prop.left_from_text.unwrap_or_default()); @@ -690,11 +663,14 @@ impl XMLBuilder { w = w.attr("w:tblpY", &v); } - self.writer.write(w).expect(EXPECT_MESSAGE); - self.close() + self.write(w)?.close() } - pub(crate) fn page_num_type(mut self, start: Option, chap_style: Option) -> Self { + pub(crate) fn page_num_type( + self, + start: Option, + chap_style: Option, + ) -> Result { let mut w = XmlEvent::start_element("w:pgNumType"); let start_string = format!("{}", start.unwrap_or_default()); let chap_style_string = chap_style.clone().unwrap_or_default(); @@ -704,16 +680,15 @@ impl XMLBuilder { if chap_style.is_some() { w = w.attr("w:chapStyle", &chap_style_string); } - self.writer.write(w).expect(EXPECT_MESSAGE); - self.close() + self.write(w)?.close() } pub(crate) fn tab( - mut self, + self, v: Option, leader: Option, pos: Option, - ) -> Self { + ) -> Result { let v_string = if let Some(v) = v { v.to_string() } else { @@ -740,17 +715,15 @@ impl XMLBuilder { if pos.is_some() { t = t.attr("w:pos", &pos_string); } - self.writer.write(t).expect(EXPECT_MESSAGE); - - self.close() + self.write(t)?.close() } pub(crate) fn ptab( - mut self, + self, alignment: PositionalTabAlignmentType, relative_to: PositionalTabRelativeTo, leader: TabLeaderType, - ) -> Self { + ) -> Result { let alignment_string = alignment.to_string(); let relative_to_string = relative_to.to_string(); let leader_string = leader.to_string(); @@ -761,18 +734,14 @@ impl XMLBuilder { t = t.attr("w:relativeTo", &relative_to_string); t = t.attr("w:leader", &leader_string); - self.writer.write(t).expect(EXPECT_MESSAGE); - - self.close() + self.write(t)?.close() } // FootnoteReference // w:footnoteReference w:id="1" - pub(crate) fn footnote_reference(mut self, id: usize) -> Self { - self.writer - .write(XmlEvent::start_element("w:footnoteReference").attr("w:id", &id.to_string())) - .expect(EXPECT_MESSAGE); - self.close() + pub(crate) fn footnote_reference(self, id: usize) -> Result { + self.write(XmlEvent::start_element("w:footnoteReference").attr("w:id", &id.to_string()))? + .close() } // Footnotes @@ -787,79 +756,89 @@ mod tests { use std::str; #[test] - fn test_sz() { - let b = XMLBuilder::new(); - let r = b.sz(20).build(); + fn test_sz() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.sz(20)?.into_inner()?.into_inner(); assert_eq!(str::from_utf8(&r).unwrap(), r#""#); + Ok(()) } #[test] - fn test_declaration() { - let b = XMLBuilder::new(); + fn test_declaration() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); let r = b - .open_style(StyleType::Paragraph, "Heading") - .close() - .build(); + .open_style(StyleType::Paragraph, "Heading")? + .close()? + .into_inner()? + .into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#""# ); + Ok(()) } #[test] - fn test_next() { - let b = XMLBuilder::new(); - let r = b.next("Normal").build(); + fn test_next() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.next("Normal")?.into_inner()?.into_inner(); assert_eq!(str::from_utf8(&r).unwrap(), r#""#); + Ok(()) } #[test] - fn test_name() { - let b = XMLBuilder::new(); - let r = b.name("Heading").build(); + fn test_name() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.name("Heading")?.into_inner()?.into_inner(); assert_eq!(str::from_utf8(&r).unwrap(), r#""#); + Ok(()) } #[test] - fn test_color() { - let b = XMLBuilder::new(); - let r = b.color("2E74B5").build(); + fn test_color() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.color("2E74B5")?.into_inner()?.into_inner(); assert_eq!(str::from_utf8(&r).unwrap(), r#""#); + Ok(()) } #[test] - fn test_based_on() { - let b = XMLBuilder::new(); - let r = b.based_on("Normal").build(); + fn test_based_on() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.based_on("Normal")?.into_inner()?.into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#""# ); + Ok(()) } #[test] - fn test_ptab() { - let b = XMLBuilder::new(); + fn test_ptab() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); let r = b .ptab( PositionalTabAlignmentType::Left, PositionalTabRelativeTo::Indent, TabLeaderType::None, - ) - .build(); + )? + .into_inner()? + .into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#""# ); + Ok(()) } #[test] - fn test_footnote_reference() { - let b = XMLBuilder::new(); - let r = b.footnote_reference(1).build(); + fn test_footnote_reference() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.footnote_reference(1)?.into_inner()?.into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#""# ); + Ok(()) } } diff --git a/docx-core/src/xml_builder/fonts.rs b/docx-core/src/xml_builder/fonts.rs index df508de24..c9e67e6f3 100644 --- a/docx-core/src/xml_builder/fonts.rs +++ b/docx-core/src/xml_builder/fonts.rs @@ -1,21 +1,21 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { - pub(crate) fn open_fonts(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:fonts") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ), - ) - .expect("should write to buf"); - self +use std::io::Write; +use xml::writer::Result; + +impl XMLBuilder { + pub(crate) fn open_fonts(self) -> Result { + self.write( + XmlEvent::start_element("w:fonts") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ), + ) } } diff --git a/docx-core/src/xml_builder/footer.rs b/docx-core/src/xml_builder/footer.rs index dfc77aca6..04aa17080 100644 --- a/docx-core/src/xml_builder/footer.rs +++ b/docx-core/src/xml_builder/footer.rs @@ -1,49 +1,49 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { - pub(crate) fn open_footer(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:ftr") - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") - .attr("xmlns:v", "urn:schemas-microsoft-com:vml") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") - .attr( - "xmlns:wp", - "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", - ) - .attr( - "xmlns:wps", - "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", - ) - .attr( - "xmlns:wpg", - "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", - ) - .attr( - "xmlns:mc", - "http://schemas.openxmlformats.org/markup-compatibility/2006", - ) - .attr( - "xmlns:wp14", - "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", - ) - .attr( - "xmlns:w14", - "http://schemas.microsoft.com/office/word/2010/wordml", - ) - .attr("mc:Ignorable", "w14 wp14"), - ) - .expect("should write to buf"); - self +use std::io::Write; +use xml::writer::Result; + +impl XMLBuilder { + pub(crate) fn open_footer(self) -> Result { + self.write( + XmlEvent::start_element("w:ftr") + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ) + .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") + .attr("xmlns:v", "urn:schemas-microsoft-com:vml") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") + .attr( + "xmlns:wp", + "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", + ) + .attr( + "xmlns:wps", + "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", + ) + .attr( + "xmlns:wpg", + "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", + ) + .attr( + "xmlns:mc", + "http://schemas.openxmlformats.org/markup-compatibility/2006", + ) + .attr( + "xmlns:wp14", + "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", + ) + .attr( + "xmlns:w14", + "http://schemas.microsoft.com/office/word/2010/wordml", + ) + .attr("mc:Ignorable", "w14 wp14"), + ) } } diff --git a/docx-core/src/xml_builder/footnotes.rs b/docx-core/src/xml_builder/footnotes.rs index 03f744b07..59f56fff1 100644 --- a/docx-core/src/xml_builder/footnotes.rs +++ b/docx-core/src/xml_builder/footnotes.rs @@ -1,144 +1,144 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { - pub(crate) fn open_footnotes(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:footnotes") - .attr( - "xmlns:wpc", - "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas", - ) - .attr( - "xmlns:cx", - "http://schemas.microsoft.com/office/drawing/2014/chartex", - ) - .attr( - "xmlns:cx1", - "http://schemas.microsoft.com/office/drawing/2015/9/8/chartex", - ) - .attr( - "xmlns:cx2", - "http://schemas.microsoft.com/office/drawing/2015/10/21/chartex", - ) - .attr( - "xmlns:cx3", - "http://schemas.microsoft.com/office/drawing/2016/5/9/chartex", - ) - .attr( - "xmlns:cx4", - "http://schemas.microsoft.com/office/drawing/2016/5/10/chartex", - ) - .attr( - "xmlns:cx5", - "http://schemas.microsoft.com/office/drawing/2016/5/11/chartex", - ) - .attr( - "xmlns:cx6", - "http://schemas.microsoft.com/office/drawing/2016/5/12/chartex", - ) - .attr( - "xmlns:cx7", - "http://schemas.microsoft.com/office/drawing/2016/5/13/chartex", - ) - .attr( - "xmlns:cx8", - "http://schemas.microsoft.com/office/drawing/2016/5/14/chartex", - ) - .attr( - "xmlns:mc", - "http://schemas.openxmlformats.org/markup-compatibility/2006", - ) - .attr( - "xmlns:aink", - "http://schemas.microsoft.com/office/drawing/2016/ink", - ) - .attr( - "xmlns:am3d", - "http://schemas.microsoft.com/office/drawing/2017/model3d", - ) - .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") - .attr( - "xmlns:oel", - "http://schemas.microsoft.com/office/2019/extlst", - ) - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .attr( - "xmlns:m", - "http://schemas.openxmlformats.org/officeDocument/2006/math", - ) - .attr("xmlns:v", "urn:schemas-microsoft-com:vml") - .attr( - "xmlns:wp14", - "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", - ) - .attr( - "xmlns:wp", - "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", - ) - .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr( - "xmlns:w14", - "http://schemas.microsoft.com/office/word/2010/wordml", - ) - .attr( - "xmlns:w15", - "http://schemas.microsoft.com/office/word/2012/wordml", - ) - .attr( - "xmlns:w16cex", - "http://schemas.microsoft.com/office/word/2018/wordml/cex", - ) - .attr( - "xmlns:w16cid", - "http://schemas.microsoft.com/office/word/2016/wordml/cid", - ) - .attr( - "xmlns:w16", - "http://schemas.microsoft.com/office/word/2018/wordml", - ) - .attr( - "xmlns:w16du", - "http://schemas.microsoft.com/office/word/2023/wordml/word16du", - ) - .attr( - "xmlns:w16sdtdh", - "http://schemas.microsoft.com/office/word/2020/wordml/sdtdatahash", - ) - .attr( - "xmlns:w16se", - "http://schemas.microsoft.com/office/word/2015/wordml/symex", - ) - .attr( - "xmlns:wpg", - "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", - ) - .attr( - "xmlns:wpi", - "http://schemas.microsoft.com/office/word/2010/wordprocessingInk", - ) - .attr( - "xmlns:wne", - "http://schemas.microsoft.com/office/word/2006/wordml", - ) - .attr( - "xmlns:wps", - "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", - ) - .attr( - "mc:Ignorable", - "w14 w15 w16se w16cid w16 w16cex w16sdtdh w16du wp14", - ), - ) - .expect("should write to buf"); - self +use std::io::Write; +use xml::writer::Result; + +impl XMLBuilder { + pub(crate) fn open_footnotes(self) -> Result { + self.write( + XmlEvent::start_element("w:footnotes") + .attr( + "xmlns:wpc", + "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas", + ) + .attr( + "xmlns:cx", + "http://schemas.microsoft.com/office/drawing/2014/chartex", + ) + .attr( + "xmlns:cx1", + "http://schemas.microsoft.com/office/drawing/2015/9/8/chartex", + ) + .attr( + "xmlns:cx2", + "http://schemas.microsoft.com/office/drawing/2015/10/21/chartex", + ) + .attr( + "xmlns:cx3", + "http://schemas.microsoft.com/office/drawing/2016/5/9/chartex", + ) + .attr( + "xmlns:cx4", + "http://schemas.microsoft.com/office/drawing/2016/5/10/chartex", + ) + .attr( + "xmlns:cx5", + "http://schemas.microsoft.com/office/drawing/2016/5/11/chartex", + ) + .attr( + "xmlns:cx6", + "http://schemas.microsoft.com/office/drawing/2016/5/12/chartex", + ) + .attr( + "xmlns:cx7", + "http://schemas.microsoft.com/office/drawing/2016/5/13/chartex", + ) + .attr( + "xmlns:cx8", + "http://schemas.microsoft.com/office/drawing/2016/5/14/chartex", + ) + .attr( + "xmlns:mc", + "http://schemas.openxmlformats.org/markup-compatibility/2006", + ) + .attr( + "xmlns:aink", + "http://schemas.microsoft.com/office/drawing/2016/ink", + ) + .attr( + "xmlns:am3d", + "http://schemas.microsoft.com/office/drawing/2017/model3d", + ) + .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") + .attr( + "xmlns:oel", + "http://schemas.microsoft.com/office/2019/extlst", + ) + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ) + .attr( + "xmlns:m", + "http://schemas.openxmlformats.org/officeDocument/2006/math", + ) + .attr("xmlns:v", "urn:schemas-microsoft-com:vml") + .attr( + "xmlns:wp14", + "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", + ) + .attr( + "xmlns:wp", + "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", + ) + .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr( + "xmlns:w14", + "http://schemas.microsoft.com/office/word/2010/wordml", + ) + .attr( + "xmlns:w15", + "http://schemas.microsoft.com/office/word/2012/wordml", + ) + .attr( + "xmlns:w16cex", + "http://schemas.microsoft.com/office/word/2018/wordml/cex", + ) + .attr( + "xmlns:w16cid", + "http://schemas.microsoft.com/office/word/2016/wordml/cid", + ) + .attr( + "xmlns:w16", + "http://schemas.microsoft.com/office/word/2018/wordml", + ) + .attr( + "xmlns:w16du", + "http://schemas.microsoft.com/office/word/2023/wordml/word16du", + ) + .attr( + "xmlns:w16sdtdh", + "http://schemas.microsoft.com/office/word/2020/wordml/sdtdatahash", + ) + .attr( + "xmlns:w16se", + "http://schemas.microsoft.com/office/word/2015/wordml/symex", + ) + .attr( + "xmlns:wpg", + "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", + ) + .attr( + "xmlns:wpi", + "http://schemas.microsoft.com/office/word/2010/wordprocessingInk", + ) + .attr( + "xmlns:wne", + "http://schemas.microsoft.com/office/word/2006/wordml", + ) + .attr( + "xmlns:wps", + "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", + ) + .attr( + "mc:Ignorable", + "w14 w15 w16se w16cid w16 w16cex w16sdtdh w16du wp14", + ), + ) } } diff --git a/docx-core/src/xml_builder/header.rs b/docx-core/src/xml_builder/header.rs index b27a91851..2f44be924 100644 --- a/docx-core/src/xml_builder/header.rs +++ b/docx-core/src/xml_builder/header.rs @@ -1,49 +1,49 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { - pub(crate) fn open_header(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:hdr") - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") - .attr("xmlns:v", "urn:schemas-microsoft-com:vml") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") - .attr( - "xmlns:wp", - "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", - ) - .attr( - "xmlns:wps", - "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", - ) - .attr( - "xmlns:wpg", - "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", - ) - .attr( - "xmlns:mc", - "http://schemas.openxmlformats.org/markup-compatibility/2006", - ) - .attr( - "xmlns:wp14", - "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", - ) - .attr( - "xmlns:w14", - "http://schemas.microsoft.com/office/word/2010/wordml", - ) - .attr("mc:Ignorable", "w14 wp14"), - ) - .expect("should write to buf"); - self +use std::io::Write; +use xml::writer::Result; + +impl XMLBuilder { + pub(crate) fn open_header(self) -> Result { + self.write( + XmlEvent::start_element("w:hdr") + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ) + .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") + .attr("xmlns:v", "urn:schemas-microsoft-com:vml") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr("xmlns:w10", "urn:schemas-microsoft-com:office:word") + .attr( + "xmlns:wp", + "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", + ) + .attr( + "xmlns:wps", + "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", + ) + .attr( + "xmlns:wpg", + "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup", + ) + .attr( + "xmlns:mc", + "http://schemas.openxmlformats.org/markup-compatibility/2006", + ) + .attr( + "xmlns:wp14", + "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing", + ) + .attr( + "xmlns:w14", + "http://schemas.microsoft.com/office/word/2010/wordml", + ) + .attr("mc:Ignorable", "w14 wp14"), + ) } } diff --git a/docx-core/src/xml_builder/macros.rs b/docx-core/src/xml_builder/macros.rs index fe97d264a..bacf1ba98 100644 --- a/docx-core/src/xml_builder/macros.rs +++ b/docx-core/src/xml_builder/macros.rs @@ -1,109 +1,99 @@ macro_rules! open { ($name: ident, $el_name: expr) => { #[allow(dead_code)] - pub(crate) fn $name(mut self) -> Self { - self.writer - .write(XmlEvent::start_element($el_name)) - .expect("should write to buf"); - self + pub(crate) fn $name(self) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name)) } }; ($name: ident, $el_name: expr, $attr0: expr) => { - pub(crate) fn $name(mut self, arg0: &str) -> Self { - self.writer - .write(XmlEvent::start_element($el_name).attr($attr0, arg0)) - .expect("should write to buf"); - self + pub(crate) fn $name(self, arg0: &str) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name).attr($attr0, arg0)) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr) => { - pub(crate) fn $name(mut self, arg0: &str, arg1: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1), - ) - .expect("should write to buf"); - self + pub(crate) fn $name(self, arg0: &str, arg1: &str) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr) => { - pub(crate) fn $name(mut self, arg0: &str, arg1: &str, arg2: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2), - ) - .expect("should write to buf"); - self + pub(crate) fn $name( + self, + arg0: &str, + arg1: &str, + arg2: &str, + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr) => { - pub(crate) fn $name(mut self, arg0: &str, arg1: &str, arg2: &str, arg3: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3), - ) - .expect("should write to buf"); - self + pub(crate) fn $name( + self, + arg0: &str, + arg1: &str, + arg2: &str, + arg3: &str, + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr) => { pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, arg3: &str, arg4: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4), - ) - .expect("should write to buf"); - self + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr) => { pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, arg3: &str, arg4: &str, arg5: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5), - ) - .expect("should write to buf"); - self + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr, $attr6: expr) => { pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, @@ -111,25 +101,22 @@ macro_rules! open { arg4: &str, arg5: &str, arg6: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5) - .attr($attr6, arg6), - ) - .expect("should write to buf"); - self + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5) + .attr($attr6, arg6), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr, $attr6: expr, $attr7: expr) => { pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, @@ -138,26 +125,23 @@ macro_rules! open { arg5: &str, arg6: &str, arg7: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5) - .attr($attr6, arg6) - .attr($attr7, arg7), - ) - .expect("should write to buf"); - self + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5) + .attr($attr6, arg6) + .attr($attr7, arg7), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr, $attr6: expr, $attr7: expr, $attr8: expr) => { pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, @@ -167,28 +151,25 @@ macro_rules! open { arg6: &str, arg7: &str, arg8: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5) - .attr($attr6, arg6) - .attr($attr7, arg7) - .attr($attr8, arg8), - ) - .expect("should write to buf"); - self + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5) + .attr($attr6, arg6) + .attr($attr7, arg7) + .attr($attr8, arg8), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr, $attr6: expr, $attr7: expr, $attr8: expr, $attr9: expr) => { #[allow(clippy::too_many_arguments)] pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, @@ -199,28 +180,25 @@ macro_rules! open { arg7: &str, arg8: &str, arg9: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5) - .attr($attr6, arg6) - .attr($attr7, arg7) - .attr($attr8, arg8) - .attr($attr9, arg9), - ) - .expect("should write to buf"); - self + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5) + .attr($attr6, arg6) + .attr($attr7, arg7) + .attr($attr8, arg8) + .attr($attr9, arg9), + ) } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr, $attr6: expr, $attr7: expr, $attr8: expr, $attr9: expr, $attr10: expr) => { pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, @@ -232,24 +210,21 @@ macro_rules! open { arg8: &str, arg9: &str, arg10: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5) - .attr($attr6, arg6) - .attr($attr7, arg7) - .attr($attr8, arg8) - .attr($attr9, arg9) - .attr($attr10, arg10), - ) - .expect("should write to buf"); - self + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5) + .attr($attr6, arg6) + .attr($attr7, arg7) + .attr($attr8, arg8) + .attr($attr9, arg9) + .attr($attr10, arg10), + ) } }; } @@ -257,48 +232,51 @@ macro_rules! open { macro_rules! closed_with_child { ($name: ident, $el_name: expr) => { #[allow(dead_code)] - pub(crate) fn $name(mut self, child: &str) -> Self { - self.writer - .write(XmlEvent::start_element($el_name)) - .expect("should write to buf"); - self.writer.write(child).expect("should write to buf"); - self.close() + pub(crate) fn $name(self, child: &str) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name))? + .write(child)? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr) => { - pub(crate) fn $name(mut self, arg0: &str, child: &str) -> Self { - self.writer - .write(XmlEvent::start_element($el_name).attr($attr0, arg0)) - .expect("should write to buf"); - self.writer.write(child).expect("should write to buf"); - self.close() + pub(crate) fn $name(self, arg0: &str, child: &str) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name).attr($attr0, arg0))? + .write(child)? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr) => { - pub(crate) fn $name(mut self, arg0: &str, arg1: &str, child: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1), - ) - .expect("should write to buf"); - self.writer.write(child).expect("should write to buf"); - self.close() + pub(crate) fn $name( + self, + arg0: &str, + arg1: &str, + child: &str, + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1), + )? + .write(child)? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr) => { - pub(crate) fn $name(mut self, arg0: &str, arg1: &str, arg2: &str, child: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2), - ) - .expect("should write to buf"); - self.writer.write(child).expect("should write to buf"); - self.close() + pub(crate) fn $name( + self, + arg0: &str, + arg1: &str, + arg2: &str, + child: &str, + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2), + )? + .write(child)? + .close() } }; } @@ -306,114 +284,110 @@ macro_rules! closed_with_child { macro_rules! closed { ($name: ident, $el_name: expr) => { #[allow(clippy::wrong_self_convention)] - pub(crate) fn $name(mut self) -> Self { - self.writer - .write(XmlEvent::start_element($el_name)) - .expect("should write to buf"); - self.close() + pub(crate) fn $name(self) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name))?.close() } }; ($name: ident, $el_name: expr, $attr0: expr) => { #[allow(clippy::wrong_self_convention)] - pub(crate) fn $name(mut self, arg0: &str) -> Self { - self.writer - .write(XmlEvent::start_element($el_name).attr($attr0, arg0)) - .expect("should write to buf"); - self.close() + pub(crate) fn $name(self, arg0: &str) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name).attr($attr0, arg0))? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr) => { #[allow(dead_code)] #[allow(clippy::wrong_self_convention)] - pub(crate) fn $name(mut self, arg0: &str, arg1: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1), - ) - .expect("should write to buf"); - self.close() + pub(crate) fn $name(self, arg0: &str, arg1: &str) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1), + )? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr) => { - pub(crate) fn $name(mut self, arg0: &str, arg1: &str, arg2: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2), - ) - .expect("should write to buf"); - self.close() + pub(crate) fn $name( + self, + arg0: &str, + arg1: &str, + arg2: &str, + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2), + )? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr) => { - pub(crate) fn $name(mut self, arg0: &str, arg1: &str, arg2: &str, arg3: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3), - ) - .expect("should write to buf"); - self.close() + pub(crate) fn $name( + self, + arg0: &str, + arg1: &str, + arg2: &str, + arg3: &str, + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3), + )? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr) => { pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, arg3: &str, arg4: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4), - ) - .expect("should write to buf"); - self.close() + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4), + )? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr) => { pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, arg3: &str, arg4: &str, arg5: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5), - ) - .expect("should write to buf"); - self.close() + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5), + )? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr, $attr6: expr) => { #[allow(clippy::too_many_arguments)] pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, @@ -421,26 +395,24 @@ macro_rules! closed { arg4: &str, arg5: &str, arg6: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5) - .attr($attr6, arg6), - ) - .expect("should write to buf"); - self.close() + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5) + .attr($attr6, arg6), + )? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr, $attr6: expr, $attr7: expr) => { #[allow(clippy::too_many_arguments)] pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, @@ -449,27 +421,25 @@ macro_rules! closed { arg5: &str, arg6: &str, arg7: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5) - .attr($attr6, arg6) - .attr($attr7, arg7), - ) - .expect("should write to buf"); - self.close() + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5) + .attr($attr6, arg6) + .attr($attr7, arg7), + )? + .close() } }; ($name: ident, $el_name: expr, $attr0: expr, $attr1: expr, $attr2: expr, $attr3: expr, $attr4: expr, $attr5: expr, $attr6: expr, $attr7: expr, $attr8: expr) => { #[allow(clippy::too_many_arguments)] pub(crate) fn $name( - mut self, + self, arg0: &str, arg1: &str, arg2: &str, @@ -479,22 +449,20 @@ macro_rules! closed { arg6: &str, arg7: &str, arg8: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr($attr0, arg0) - .attr($attr1, arg1) - .attr($attr2, arg2) - .attr($attr3, arg3) - .attr($attr4, arg4) - .attr($attr5, arg5) - .attr($attr6, arg6) - .attr($attr7, arg7) - .attr($attr8, arg8), - ) - .expect("should write to buf"); - self.close() + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr($attr0, arg0) + .attr($attr1, arg1) + .attr($attr2, arg2) + .attr($attr3, arg3) + .attr($attr4, arg4) + .attr($attr5, arg5) + .attr($attr6, arg6) + .attr($attr7, arg7) + .attr($attr8, arg8), + )? + .close() } }; } @@ -502,48 +470,40 @@ macro_rules! closed { macro_rules! closed_with_str { ($name: ident, $el_name: expr) => { #[allow(dead_code)] - pub(crate) fn $name(mut self, val: &str) -> Self { - self.writer - .write(XmlEvent::start_element($el_name).attr("w:val", val)) - .expect("should write to buf"); - self.close() + pub(crate) fn $name(self, val: &str) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name).attr("w:val", val))? + .close() } }; } macro_rules! closed_with_usize { ($name: ident, $el_name: expr) => { - pub(crate) fn $name(mut self, val: usize) -> Self { - self.writer - .write(XmlEvent::start_element($el_name).attr("w:val", &format!("{}", val))) - .expect("should write to buf"); - self.close() + pub(crate) fn $name(self, val: usize) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name).attr("w:val", &format!("{}", val)))? + .close() } }; } macro_rules! closed_with_isize { ($name: ident, $el_name: expr) => { - pub(crate) fn $name(mut self, val: isize) -> Self { - self.writer - .write(XmlEvent::start_element($el_name).attr("w:val", &format!("{}", val))) - .expect("should write to buf"); - self.close() + pub(crate) fn $name(self, val: isize) -> ::xml::writer::Result { + self.write(XmlEvent::start_element($el_name).attr("w:val", &format!("{}", val)))? + .close() } }; } macro_rules! closed_w_with_type_el { ($name: ident, $el_name: expr) => { - pub(crate) fn $name(mut self, w: i32, t: WidthType) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr("w:w", &format!("{}", w)) - .attr("w:type", &t.to_string()), - ) - .expect(EXPECT_MESSAGE); - self.close() + pub(crate) fn $name(self, w: i32, t: WidthType) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr("w:w", &format!("{}", w)) + .attr("w:type", &t.to_string()), + )? + .close() } }; } @@ -551,39 +511,41 @@ macro_rules! closed_w_with_type_el { macro_rules! closed_border_el { ($name: ident, $el_name: expr) => { pub(crate) fn $name( - mut self, + self, val: BorderType, size: usize, space: usize, color: &str, - ) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr("w:val", &val.to_string()) - .attr("w:sz", &format!("{}", size)) - .attr("w:space", &format!("{}", space)) - .attr("w:color", color), - ) - .expect(EXPECT_MESSAGE); - self.close() + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr("w:val", &val.to_string()) + .attr("w:sz", &format!("{}", size)) + .attr("w:space", &format!("{}", space)) + .attr("w:color", color), + )? + .close() } }; } macro_rules! closed_paragraph_border_el { ($name: ident, $ el_name: expr) => { - pub(crate) fn $name(mut self, val: &str, space: &str, size: &str, color: &str) -> Self { - self.writer - .write( - XmlEvent::start_element($el_name) - .attr("w:val", val) - .attr("w:space", space) - .attr("w:sz", size) - .attr("w:color", color), - ) - .expect(EXPECT_MESSAGE); - self.close() + pub(crate) fn $name( + self, + val: &str, + space: &str, + size: &str, + color: &str, + ) -> ::xml::writer::Result { + self.write( + XmlEvent::start_element($el_name) + .attr("w:val", val) + .attr("w:space", space) + .attr("w:sz", size) + .attr("w:color", color), + )? + .close() } }; } diff --git a/docx-core/src/xml_builder/mod.rs b/docx-core/src/xml_builder/mod.rs index 7a8405b37..357cfb0fa 100644 --- a/docx-core/src/xml_builder/mod.rs +++ b/docx-core/src/xml_builder/mod.rs @@ -23,111 +23,180 @@ mod styles; use crate::BuildXML; +use std::io::Write; use std::str; use xml::common::XmlVersion; -use xml::writer::{EmitterConfig, EventWriter, XmlEvent}; +use xml::writer::{EmitterConfig, EventWriter, Result, XmlEvent}; -pub struct XMLBuilder { - writer: EventWriter>, +pub use elements::*; + +pub struct XMLBuilder { + writer: EventWriter, +} + +impl From> for XMLBuilder { + fn from(writer: EventWriter) -> Self { + Self { writer } + } } -impl XMLBuilder { - pub(crate) fn new() -> XMLBuilder { - let buf = Vec::new(); - let mut config = EmitterConfig::new() - .write_document_declaration(false) - .perform_indent(true); - config.perform_escaping = false; - let writer = config.create_writer(buf); +impl XMLBuilder { + pub(crate) fn new(writer: W) -> Self { + let config = EmitterConfig { + write_document_declaration: false, + perform_escaping: false, + perform_indent: false, + line_separator: "".into(), + ..Default::default() + }; + let writer = config.create_writer(writer); XMLBuilder { writer } } - // Build types element - // i.e. - pub(crate) fn open_types(mut self, uri: &str) -> Self { - self.writer - .write(XmlEvent::start_element("Types").attr("xmlns", uri)) - .expect("should write to buf"); - self - } - - // Build Override element - // i.e. - pub(crate) fn add_override(mut self, name: &str, content_type: &str) -> Self { - self.writer - .write( - XmlEvent::start_element("Override") - .attr("PartName", name) - .attr("ContentType", content_type), - ) - .expect("should write to buf"); - self.close() - } - - pub(crate) fn add_default(mut self, name: &str, extension: &str) -> Self { - self.writer - .write( - XmlEvent::start_element("Default") - .attr("ContentType", extension) - .attr("Extension", name), - ) - .expect("should write to buf"); - self.close() - } - - pub(crate) fn add_child(mut self, child: &T) -> Self - where - T: BuildXML, - { - let buf = child.build(); - let text = str::from_utf8(&buf).unwrap(); - self.writer.write(text).expect("should write to buf"); - self - } - - pub(crate) fn add_bytes(mut self, child: &[u8]) -> Self { - let text = str::from_utf8(child).unwrap(); - self.writer.write(text).expect("should write to buf"); - self - } - - pub(crate) fn add_optional_child(mut self, child: &Option) -> Self - where - T: BuildXML, - { - if let Some(c) = child { - self = self.add_child(c) + #[inline] + pub(crate) fn write<'e>(mut self, event: impl Into>) -> Result { + self.writer.write(event)?; + Ok(self) + } + + #[inline(always)] + pub(crate) fn apply Result>(self, f: F) -> Result { + f(self) + } + + /// If `clause` argument is `true` or `Some(true)`, continue building XML. + /// + /// ```ignore + /// XMLBuilder::from(stream) + /// .apply_if(self.keep_lines, |b| b.keep_lines())? + /// ``` + #[inline(always)] + pub(crate) fn apply_if Result>( + self, + clause: impl Into>, + f: F, + ) -> Result { + if clause.into() == Some(true) { + f(self) + } else { + Ok(self) + } + } + + /// If `opt` argument is `Some`, continue building XML. + /// + /// ```ignore + /// XMLBuilder::from(stream) + /// .apply_opt(self.config.language.as_ref(), |v, b| b.dc_language(v))? + /// ``` + #[inline(always)] + pub(crate) fn apply_opt Result>( + self, + opt: Option, + f: F, + ) -> Result { + if let Some(it) = opt { + f(it, self) + } else { + Ok(self) + } + } + + #[inline(always)] + pub(crate) fn apply_each, F: Fn(T, Self) -> Result>( + mut self, + items: I, + f: F, + ) -> Result { + for item in items.into_iter() { + self = f(item, self)?; } - self + Ok(self) } - pub(crate) fn add_children(mut self, children: &[T]) -> Self - where - T: BuildXML, - { - for c in children { - self = self.add_child(c); + /// Pass the XML writer to the child, then get it back. + /// + /// Affects indentation as well as the stack of currently opened tags. + pub(crate) fn add_child(self, child: &impl BuildXML) -> Result { + Ok(child.build_to(self.writer)?.into()) + } + + pub(crate) fn add_optional_child(self, child: &Option) -> Result { + match child { + Some(ch) => self.add_child(ch), + None => Ok(self), } - self } - // Close tag - pub(crate) fn close(mut self) -> Self { - self.writer - .write(XmlEvent::end_element()) - .expect("should end"); - self + pub(crate) fn add_children(mut self, children: &[impl BuildXML]) -> Result { + for ch in children { + self = self.add_child(ch)?; + } + Ok(self) + } + + /// Close the previously opened tag + pub(crate) fn close(self) -> Result { + self.write(XmlEvent::end_element()) + } + + /// Write a plain text. + /// + /// Finishes opened tags if there are any. + pub(crate) fn plain_text(self, t: &str) -> Result { + self.write(t) + } + + /// Prepare the internal raw stream for direct access. + /// + /// Finishes opened tags if there are any. + /// + /// ```ignore + /// let mut b = XMLBuilder::from(stream); + /// write!(b.inner_mut()?, "{}", self.0)?; + /// b.into_inner() + /// ``` + pub(crate) fn inner_mut(&mut self) -> Result<&mut W> { + self.writer.write("")?; // closes non-finished tags + Ok(self.writer.inner_mut()) + } + + /// Unwraps this `XmlBuilder`, returning the underlying writer. + /// + /// The return type is intentionally `Result`, to simplify chaining. + pub(crate) fn into_inner(self) -> Result> { + Ok(self.writer) + } +} + +// specific helpers, which probably should be somewhere else +impl XMLBuilder { + /// Build types element + /// + /// i.e. `` + pub(crate) fn open_types(self, uri: &str) -> Result { + self.write(XmlEvent::start_element("Types").attr("xmlns", uri)) } - // Write plain text - #[allow(dead_code)] - pub(crate) fn plain_text(mut self, t: &str) -> Self { - self.writer.write(t).unwrap(); - self + /// Build Override element + /// + /// i.e. `` + pub(crate) fn add_override(self, name: &str, content_type: &str) -> Result { + self.write( + XmlEvent::start_element("Override") + .attr("PartName", name) + .attr("ContentType", content_type), + )? + .close() } - pub(crate) fn build(self) -> Vec { - self.writer.into_inner() + pub(crate) fn add_default(self, name: &str, extension: &str) -> Result { + self.write( + XmlEvent::start_element("Default") + .attr("ContentType", extension) + .attr("Extension", name), + )? + .close() } } @@ -136,16 +205,17 @@ mod tests { use super::*; #[test] - fn test_open_types() { - let b = XMLBuilder::new(); - let r = b - .open_types("http://example") - .plain_text("child") - .close() - .build(); + fn test_open_types() -> Result<()> { + let r = XMLBuilder::new(Vec::new()) + .open_types("http://example")? + .plain_text("child")? + .close()? + .into_inner()? + .into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#"child"# ); + Ok(()) } } diff --git a/docx-core/src/xml_builder/numbering.rs b/docx-core/src/xml_builder/numbering.rs index 1e0fef6c8..f1cb9e3a9 100644 --- a/docx-core/src/xml_builder/numbering.rs +++ b/docx-core/src/xml_builder/numbering.rs @@ -1,23 +1,23 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { - pub(crate) fn open_numbering(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:numbering") - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") - .attr("xmlns:v", "urn:schemas-microsoft-com:vml") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ), - ) - .expect("should write to buf"); - self +use std::io::Write; +use xml::writer::Result; + +impl XMLBuilder { + pub(crate) fn open_numbering(self) -> Result { + self.write( + XmlEvent::start_element("w:numbering") + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ) + .attr("xmlns:o", "urn:schemas-microsoft-com:office:office") + .attr("xmlns:v", "urn:schemas-microsoft-com:vml") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ), + ) } } diff --git a/docx-core/src/xml_builder/pic.rs b/docx-core/src/xml_builder/pic.rs index 3e3fbb511..f6fd5ed7d 100644 --- a/docx-core/src/xml_builder/pic.rs +++ b/docx-core/src/xml_builder/pic.rs @@ -1,7 +1,9 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { +use std::io::Write; + +impl XMLBuilder { open!(open_pic, "pic:pic", "xmlns:pic"); open!(open_blip_fill, "pic:blipFill"); closed!(a_blip, "a:blip", "r:embed"); diff --git a/docx-core/src/xml_builder/properties.rs b/docx-core/src/xml_builder/properties.rs index 0e6a7262b..283743f2f 100644 --- a/docx-core/src/xml_builder/properties.rs +++ b/docx-core/src/xml_builder/properties.rs @@ -1,7 +1,9 @@ use super::XMLBuilder; use super::XmlEvent; -impl XMLBuilder { +use std::io::Write; + +impl XMLBuilder { // Build Properties element // i.e. open!(open_properties, "Properties", "xmlns", "xmlns:vt"); @@ -18,38 +20,42 @@ impl XMLBuilder { #[cfg(test)] mod tests { - - use super::XMLBuilder; + use super::*; use std::str; + use xml::writer::Result; #[test] - fn test_properties() { - let b = XMLBuilder::new(); + fn test_properties() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); let r = b - .open_properties("http://example", "http://example2") - .plain_text("child") - .close() - .build(); + .open_properties("http://example", "http://example2")? + .plain_text("child")? + .close()? + .into_inner()? + .into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#"child"# ); + Ok(()) } #[test] - fn test_template() { - let b = XMLBuilder::new(); - let r = b.template("0").build(); + fn test_template() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.template("0")?.into_inner()?.into_inner(); assert_eq!(str::from_utf8(&r).unwrap(), r#""#); + Ok(()) } #[test] - fn test_application() { - let b = XMLBuilder::new(); - let r = b.application("Lawgue").build(); + fn test_application() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.application("Lawgue")?.into_inner()?.into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#"Lawgue"# ); + Ok(()) } } diff --git a/docx-core/src/xml_builder/relationship.rs b/docx-core/src/xml_builder/relationship.rs index 10b0fdb63..fc7319c9e 100644 --- a/docx-core/src/xml_builder/relationship.rs +++ b/docx-core/src/xml_builder/relationship.rs @@ -1,7 +1,8 @@ use super::XMLBuilder; use super::XmlEvent; +use std::io::Write; -impl XMLBuilder { +impl XMLBuilder { // Build RelationShips element // i.e. open!(open_relationships, "Relationships", "xmlns"); @@ -20,31 +21,37 @@ impl XMLBuilder { #[cfg(test)] mod tests { - - use super::XMLBuilder; + use super::*; use std::str; + use xml::writer::Result; #[test] - fn test_open_relationships() { - let b = XMLBuilder::new(); + fn test_open_relationships() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); let r = b - .open_relationships("http://example") - .plain_text("child") - .close() - .build(); + .open_relationships("http://example")? + .plain_text("child")? + .close()? + .into_inner()? + .into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#"child"# ); + Ok(()) } #[test] - fn test_relationship() { - let b = XMLBuilder::new(); - let r = b.relationship("rId1", "http://example", "core.xml").build(); + fn test_relationship() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b + .relationship("rId1", "http://example", "core.xml")? + .into_inner()? + .into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#""# ); + Ok(()) } } diff --git a/docx-core/src/xml_builder/settings.rs b/docx-core/src/xml_builder/settings.rs index 6009bb79f..62ecfeaed 100644 --- a/docx-core/src/xml_builder/settings.rs +++ b/docx-core/src/xml_builder/settings.rs @@ -1,25 +1,24 @@ use super::XMLBuilder; use super::XmlEvent; +use std::io::Write; +use xml::writer::Result; -impl XMLBuilder { - pub(crate) fn open_settings(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:settings") - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr( - "xmlns:w14", - "http://schemas.microsoft.com/office/word/2010/wordml", - ) - .attr( - "xmlns:w15", - "http://schemas.microsoft.com/office/word/2012/wordml", - ), - ) - .expect("should write to buf"); - self +impl XMLBuilder { + pub(crate) fn open_settings(self) -> Result { + self.write( + XmlEvent::start_element("w:settings") + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr( + "xmlns:w14", + "http://schemas.microsoft.com/office/word/2010/wordml", + ) + .attr( + "xmlns:w15", + "http://schemas.microsoft.com/office/word/2012/wordml", + ), + ) } } diff --git a/docx-core/src/xml_builder/styles.rs b/docx-core/src/xml_builder/styles.rs index 99d219a96..b94a44527 100644 --- a/docx-core/src/xml_builder/styles.rs +++ b/docx-core/src/xml_builder/styles.rs @@ -1,37 +1,36 @@ use super::XMLBuilder; use super::XmlEvent; +use std::io::Write; +use xml::writer::Result; -impl XMLBuilder { +impl XMLBuilder { // Build w:style element // i.e. - pub(crate) fn open_styles(mut self) -> Self { - self.writer - .write( - XmlEvent::start_element("w:styles") - .attr( - "xmlns:mc", - "http://schemas.openxmlformats.org/markup-compatibility/2006", - ) - .attr( - "xmlns:r", - "http://schemas.openxmlformats.org/officeDocument/2006/relationships", - ) - .attr( - "xmlns:w", - "http://schemas.openxmlformats.org/wordprocessingml/2006/main", - ) - .attr( - "xmlns:w14", - "http://schemas.microsoft.com/office/word/2010/wordml", - ) - .attr( - "xmlns:w15", - "http://schemas.microsoft.com/office/word/2012/wordml", - ) - .attr("mc:Ignorable", "w14 w15"), - ) - .expect("should write to buf"); - self + pub(crate) fn open_styles(self) -> Result { + self.write( + XmlEvent::start_element("w:styles") + .attr( + "xmlns:mc", + "http://schemas.openxmlformats.org/markup-compatibility/2006", + ) + .attr( + "xmlns:r", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + ) + .attr( + "xmlns:w", + "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + ) + .attr( + "xmlns:w14", + "http://schemas.microsoft.com/office/word/2010/wordml", + ) + .attr( + "xmlns:w15", + "http://schemas.microsoft.com/office/word/2012/wordml", + ) + .attr("mc:Ignorable", "w14 w15"), + ) } } @@ -44,12 +43,13 @@ mod tests { use std::str; #[test] - fn test_declaration() { - let b = XMLBuilder::new(); - let r = b.open_styles().close().build(); + fn test_declaration() -> Result<()> { + let b = XMLBuilder::new(Vec::new()); + let r = b.open_styles()?.close()?.into_inner()?.into_inner(); assert_eq!( str::from_utf8(&r).unwrap(), r#""# ); + Ok(()) } } diff --git a/docx-core/src/xml_json/mod.rs b/docx-core/src/xml_json/mod.rs index 5e595e247..5a40f6b73 100644 --- a/docx-core/src/xml_json/mod.rs +++ b/docx-core/src/xml_json/mod.rs @@ -8,7 +8,7 @@ // Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. // use serde::Serialize; use serde::Serialize; -use std::fmt; +use std::fmt::{Display, Formatter, Write}; use std::io::prelude::*; use std::io::Cursor; use std::str::FromStr; @@ -24,16 +24,12 @@ pub struct XmlDocument { pub data: Vec, } -// Print as JSON -impl fmt::Display for XmlDocument { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let mut s = String::new(); - - for d in self.data.iter() { - s = format!("{}{}", s, d); +impl Display for XmlDocument { + fn fmt(&self, f: &mut Formatter) -> std::fmt::Result { + for item in self.data.iter() { + item.fmt(f)?; } - - s.fmt(f) + Ok(()) } } @@ -59,57 +55,36 @@ pub struct XmlData { pub children: Vec, } -// Generate indentation -// fn indent(size: usize) -> String { -// const INDENT: &str = " "; -// (0..size) -// .map(|_| INDENT) -// .fold(String::with_capacity(size * INDENT.len()), |r, s| r + s) -// } +impl XmlData { + /// Format the XML data as a string + fn format(self: &XmlData, f: &mut Formatter, _depth: usize) -> std::fmt::Result { + write!(f, "<{}", self.name)?; -// Get the attributes as a string -fn attributes_to_string(attributes: &[(String, String)]) -> String { - attributes.iter().fold(String::new(), |acc, (k, v)| { - format!("{} {}=\"{}\"", acc, k, v) - }) -} + for (key, val) in self.attributes.iter() { + write!(f, r#" {}="{}""#, key, val)?; + } -// Format the XML data as a string -#[allow(clippy::only_used_in_recursion)] -fn format(data: &XmlData, depth: usize) -> String { - let sub = if data.children.is_empty() { - String::new() - } else { - let mut sub = "\n".to_string(); - for elmt in data.children.iter() { - sub = format!("{}{}", sub, format(elmt, depth + 1)); + f.write_char('>')?; + + if let Some(ref data) = self.data { + write!(f, "{}", data)? } - sub - }; - let fmt_data = if let Some(ref d) = data.data { - format!("\n{}", d) - } else { - "".to_string() - }; + for child in self.children.iter() { + child.format(f, _depth + 1)?; + } - format!( - "<{}{}>{}{}", - data.name, - attributes_to_string(&data.attributes), - fmt_data, - sub, - data.name - ) + write!(f, "", self.name) + } } -impl fmt::Display for XmlData { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "{}", format(self, 0)) +impl Display for XmlData { + fn fmt(&self, f: &mut Formatter) -> std::fmt::Result { + self.format(f, 0) } } -// Get the XML atributes as a string +/// Get the XML attributes as a string fn map_owned_attributes(attrs: Vec) -> Vec<(String, String)> { attrs .into_iter() @@ -128,7 +103,6 @@ fn map_owned_attributes(attrs: Vec) -> Vec<(Stri .collect() } -// Parse the data fn parse( mut data: Vec, current: Option, @@ -259,8 +233,8 @@ impl XmlDocument { #[derive(Debug, Clone, PartialEq)] pub struct ParseXmlError(String); -impl fmt::Display for ParseXmlError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { +impl Display for ParseXmlError { + fn fmt(&self, f: &mut Formatter) -> std::fmt::Result { write!(f, "Coult not parse string to XML: {}", self.0) } } diff --git a/docx-wasm/test/__snapshots__/index.test.js.snap b/docx-wasm/test/__snapshots__/index.test.js.snap index 86edb8a29..e02e17e17 100644 --- a/docx-wasm/test/__snapshots__/index.test.js.snap +++ b/docx-wasm/test/__snapshots__/index.test.js.snap @@ -171033,1283 +171033,252 @@ Object { } `; -exports[`writer should write ToC with instrText 1`] = ` -" - - - - - -" -`; +exports[`writer should write ToC with instrText 1`] = `""`; -exports[`writer should write ToC with instrText 2`] = ` -" - - -Before contentsTOC \\\\uAfter contents - -Hello!! -World - -" -`; +exports[`writer should write ToC with instrText 2`] = `"Before contentsTOC \\\\uAfter contentsHello!!World"`; -exports[`writer should write ToC with items 1`] = ` -" - - - - - -" -`; +exports[`writer should write ToC with items 1`] = `""`; -exports[`writer should write ToC with items 2`] = ` -" - - - - - - - -TOCHello!!PAGEREF _Toc00000000 \\\\h2 - - -WorldPAGEREF _Toc00000001 \\\\h3 - - -Hello!! -World - -" -`; +exports[`writer should write ToC with items 2`] = `"TOCHello!!PAGEREF _Toc00000000 \\\\h2WorldPAGEREF _Toc00000001 \\\\h3Hello!!World"`; -exports[`writer should write align 1`] = ` -" - - - - - -" -`; +exports[`writer should write align 1`] = `""`; -exports[`writer should write align 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write align 2`] = `"Hello world!!"`; -exports[`writer should write anchor hyperlink 1`] = ` -" - - - - - -" -`; +exports[`writer should write anchor hyperlink 1`] = `""`; -exports[`writer should write anchor hyperlink 2`] = ` -" - - Hello!! -World!! - -" -`; +exports[`writer should write anchor hyperlink 2`] = `"Hello!!World!!"`; -exports[`writer should write auto items ToC 1`] = ` -" - - - - - -" -`; +exports[`writer should write auto items ToC 1`] = `""`; -exports[`writer should write auto items ToC 2`] = ` -" - - - - - - - -TOCHello!!PAGEREF _Toc00000000 \\\\h1 - - -WorldPAGEREF _Toc00000001 \\\\h1 - - -Hello!! -World - -" -`; +exports[`writer should write auto items ToC 2`] = `"TOCHello!!PAGEREF _Toc00000000 \\\\h1WorldPAGEREF _Toc00000001 \\\\h1Hello!!World"`; -exports[`writer should write cell shading 1`] = ` -" - - - - - -" -`; +exports[`writer should write cell shading 1`] = `""`; -exports[`writer should write cell shading 2`] = ` -" - - - - - - -Hello!! - -" -`; +exports[`writer should write cell shading 2`] = `"Hello!!"`; -exports[`writer should write cell shading 3`] = ` -" - - -" -`; +exports[`writer should write cell shading 3`] = `""`; -exports[`writer should write custom props 1`] = ` -" - - - {\\"world\\": 0} - -" -`; +exports[`writer should write custom props 1`] = `"{\\"world\\": 0}"`; -exports[`writer should write custom props 2`] = ` -" - - - - - -" -`; +exports[`writer should write custom props 2`] = `""`; -exports[`writer should write custom props 3`] = ` -" - - Hello!! - -" -`; +exports[`writer should write custom props 3`] = `"Hello!!"`; -exports[`writer should write custom props 4`] = ` -" - - -" -`; +exports[`writer should write custom props 4`] = `""`; exports[`writer should write customItem 1`] = `""`; exports[`writer should write customItem 2`] = `""`; -exports[`writer should write customItem 3`] = ` -" - - - - - -" -`; +exports[`writer should write customItem 3`] = `""`; -exports[`writer should write customItem 4`] = ` -" - - - - - - -" -`; +exports[`writer should write customItem 4`] = `""`; exports[`writer should write customItem 5`] = `""`; -exports[`writer should write customItem 6`] = ` -" - - -" -`; +exports[`writer should write customItem 6`] = `""`; -exports[`writer should write customItem 7`] = ` -" -" -`; +exports[`writer should write customItem 7`] = `""`; -exports[`writer should write default font 1`] = ` -" - - - - - -" -`; +exports[`writer should write default font 1`] = `""`; -exports[`writer should write default font 2`] = ` -" - - Hello world!!!! - -" -`; +exports[`writer should write default font 2`] = `"Hello world!!!!"`; -exports[`writer should write default font 3`] = ` -" - - -" -`; +exports[`writer should write default font 3`] = `""`; -exports[`writer should write default line spacing 1`] = ` -" - - - - - -" -`; +exports[`writer should write default line spacing 1`] = `""`; -exports[`writer should write default line spacing 2`] = ` -" - - Hello - -" -`; +exports[`writer should write default line spacing 2`] = `"Hello "`; -exports[`writer should write default line spacing 3`] = ` -" - - -" -`; +exports[`writer should write default line spacing 3`] = `""`; -exports[`writer should write deleted ToC 1`] = ` -" - - - - - -" -`; +exports[`writer should write deleted ToC 1`] = `""`; -exports[`writer should write deleted ToC 2`] = ` -" - - -TOC \\\\uAfter contents - -Hello!! -World - -" -`; +exports[`writer should write deleted ToC 2`] = `"TOC \\\\uAfter contentsHello!!World"`; -exports[`writer should write dirty and disable auto items ToC 1`] = ` -" - - - - - -" -`; +exports[`writer should write dirty and disable auto items ToC 1`] = `""`; -exports[`writer should write dirty and disable auto items ToC 2`] = ` -" - - -TOC - -Hello!! -World - -" -`; +exports[`writer should write dirty and disable auto items ToC 2`] = `"TOCHello!!World"`; -exports[`writer should write doc grid 1`] = ` -" - - - - - -" -`; +exports[`writer should write doc grid 1`] = `""`; -exports[`writer should write doc grid 2`] = ` -" - - Hello world!!!! -" -`; +exports[`writer should write doc grid 2`] = `"Hello world!!!!"`; -exports[`writer should write doc grid 3`] = ` -" - - -" -`; +exports[`writer should write doc grid 3`] = `""`; -exports[`writer should write doc vars 1`] = ` -" - - - - - -" -`; +exports[`writer should write doc vars 1`] = `""`; -exports[`writer should write doc vars 2`] = ` -" - - Hello world!!!! - -" -`; +exports[`writer should write doc vars 2`] = `"Hello world!!!!"`; -exports[`writer should write doc vars 3`] = ` -" - - -" -`; +exports[`writer should write doc vars 3`] = `""`; -exports[`writer should write evenFooter with table for default section 1`] = ` -" - - - - - - -" -`; +exports[`writer should write evenFooter with table for default section 1`] = `""`; -exports[`writer should write evenFooter with table for default section 2`] = ` -" - - -" -`; +exports[`writer should write evenFooter with table for default section 2`] = `""`; -exports[`writer should write evenFooter with table for default section 3`] = ` -" - - - - - -Hello Footer!!" -`; +exports[`writer should write evenFooter with table for default section 3`] = `"Hello Footer!!"`; -exports[`writer should write evenFooter with table for default section 4`] = ` -" -" -`; +exports[`writer should write evenFooter with table for default section 4`] = `""`; -exports[`writer should write external hyperlink 1`] = ` -" - - - - - - -" -`; +exports[`writer should write external hyperlink 1`] = `""`; -exports[`writer should write external hyperlink 2`] = ` -" - - Hello!! - -" -`; +exports[`writer should write external hyperlink 2`] = `"Hello!!"`; -exports[`writer should write firstHeader with table for default section 1`] = ` -" - - - - - - -" -`; +exports[`writer should write firstHeader with table for default section 1`] = `""`; -exports[`writer should write firstHeader with table for default section 2`] = ` -" - - - -" -`; +exports[`writer should write firstHeader with table for default section 2`] = `""`; -exports[`writer should write firstHeader with table for default section 3`] = ` -" - - - - - -Hello Header!!" -`; +exports[`writer should write firstHeader with table for default section 3`] = `"Hello Header!!"`; -exports[`writer should write firstHeader with table for default section 4`] = ` -" -" -`; +exports[`writer should write firstHeader with table for default section 4`] = `""`; -exports[`writer should write footer for default section 1`] = ` -" - - - - - - -" -`; +exports[`writer should write footer for default section 1`] = `""`; -exports[`writer should write footer for default section 2`] = ` -" - - World -" -`; +exports[`writer should write footer for default section 2`] = `"World "`; -exports[`writer should write footer for default section 3`] = ` -" -Hello Footer" -`; +exports[`writer should write footer for default section 3`] = `"Hello Footer"`; -exports[`writer should write footer for default section 4`] = ` -" -" -`; +exports[`writer should write footer for default section 4`] = `""`; -exports[`writer should write header for default section 1`] = ` -" - - - - - - -" -`; +exports[`writer should write header for default section 1`] = `""`; -exports[`writer should write header for default section 2`] = ` -" - - World -" -`; +exports[`writer should write header for default section 2`] = `"World "`; -exports[`writer should write hello 1`] = ` -" - - - - - -" -`; +exports[`writer should write hello 1`] = `""`; -exports[`writer should write hello 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write hello 2`] = `"Hello world!!"`; -exports[`writer should write hello 3`] = ` -" - - -" -`; +exports[`writer should write hello 3`] = `""`; -exports[`writer should write image in header 1`] = ` -" - - - - - - - -" -`; +exports[`writer should write image in header 1`] = `""`; -exports[`writer should write image in header 2`] = ` -" - - Hello world!! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; +exports[`writer should write image in header 2`] = `"Hello world!!"`; -exports[`writer should write inline image 1`] = ` -" - - - - - - -" -`; +exports[`writer should write inline image 1`] = `""`; -exports[`writer should write inline image 2`] = ` -" - - Hello world!! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; +exports[`writer should write inline image 2`] = `"Hello world!!"`; -exports[`writer should write inline jpeg image 1`] = ` -" - - - - - - -" -`; +exports[`writer should write inline jpeg image 1`] = `""`; -exports[`writer should write inline jpeg image 2`] = ` -" - - Hello world!! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; +exports[`writer should write inline jpeg image 2`] = `"Hello world!!"`; -exports[`writer should write jpeg image with del 1`] = ` -" - - - - - - -" -`; +exports[`writer should write jpeg image with del 1`] = `""`; -exports[`writer should write jpeg image with del 2`] = ` -" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; +exports[`writer should write jpeg image with del 2`] = `""`; -exports[`writer should write jpeg image with ins 1`] = ` -" - - - - - - -" -`; +exports[`writer should write jpeg image with ins 1`] = `""`; -exports[`writer should write jpeg image with ins 2`] = ` -" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; +exports[`writer should write jpeg image with ins 2`] = `""`; -exports[`writer should write line spacing 1`] = ` -" - - - - - -" -`; +exports[`writer should write line spacing 1`] = `""`; -exports[`writer should write line spacing 2`] = ` -" - - Hello - -" -`; +exports[`writer should write line spacing 2`] = `"Hello "`; -exports[`writer should write line spacing 3`] = ` -" - - -" -`; +exports[`writer should write line spacing 3`] = `""`; -exports[`writer should write lvlOverride with level 1`] = ` -" - - - - - - -" -`; +exports[`writer should write lvlOverride with level 1`] = `""`; -exports[`writer should write lvlOverride with level 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write lvlOverride with level 2`] = `"Hello world!!"`; -exports[`writer should write lvlOverride with level 3`] = ` -" - - - - " -`; +exports[`writer should write lvlOverride with level 3`] = `""`; -exports[`writer should write nested table 1`] = ` -" - - - - - -" -`; +exports[`writer should write nested table 1`] = `""`; -exports[`writer should write nested table 2`] = ` -" - - - - - - - - - - - -Hello world!! - -" -`; +exports[`writer should write nested table 2`] = `"Hello world!!"`; -exports[`writer should write nested table 3`] = ` -" - - -" -`; +exports[`writer should write nested table 3`] = `""`; -exports[`writer should write pPrChange with deleted numbering 1`] = ` -" - - - - - -" -`; +exports[`writer should write pPrChange with deleted numbering 1`] = `""`; -exports[`writer should write pPrChange with deleted numbering 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write pPrChange with deleted numbering 2`] = `"Hello world!!"`; -exports[`writer should write pPrChange with deleted numbering 3`] = ` -" - - - - -" -`; +exports[`writer should write pPrChange with deleted numbering 3`] = `""`; -exports[`writer should write pPrChange with inserted numbering 1`] = ` -" - - - - - - -" -`; +exports[`writer should write pPrChange with inserted numbering 1`] = `""`; -exports[`writer should write pPrChange with inserted numbering 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write pPrChange with inserted numbering 2`] = `"Hello world!!"`; -exports[`writer should write pPrChange with inserted numbering 3`] = ` -" - - - - -" -`; +exports[`writer should write pPrChange with inserted numbering 3`] = `""`; -exports[`writer should write page margin 1`] = ` -" - - - - - -" -`; +exports[`writer should write page margin 1`] = `""`; -exports[`writer should write page margin 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write page margin 2`] = `"Hello world!!"`; -exports[`writer should write page margin 3`] = ` -" - - -" -`; +exports[`writer should write page margin 3`] = `""`; -exports[`writer should write page orientation 1`] = ` -" - - - - - -" -`; +exports[`writer should write page orientation 1`] = `""`; -exports[`writer should write page orientation 2`] = ` -" - - Hello - -" -`; +exports[`writer should write page orientation 2`] = `"Hello "`; -exports[`writer should write page orientation 3`] = ` -" - - -" -`; +exports[`writer should write page orientation 3`] = `""`; -exports[`writer should write page size 1`] = ` -" - - - - - -" -`; +exports[`writer should write page size 1`] = `""`; -exports[`writer should write page size 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write page size 2`] = `"Hello world!!"`; -exports[`writer should write page size 3`] = ` -" - - -" -`; +exports[`writer should write page size 3`] = `""`; -exports[`writer should write pageNum in header 1`] = ` -" - - - - - - -" -`; +exports[`writer should write pageNum in header 1`] = `""`; -exports[`writer should write pageNum in header 2`] = ` -" - - Hello world!! PAGE1 / NUMPAGES1 -" -`; +exports[`writer should write pageNum in header 2`] = `"Hello world!! PAGE1 / NUMPAGES1"`; -exports[`writer should write pageNum in header 3`] = ` -" -Hello world!! PAGE1 / NUMPAGES1" -`; +exports[`writer should write pageNum in header 3`] = `"Hello world!! PAGE1 / NUMPAGES1"`; -exports[`writer should write pageNum in header 4`] = ` -" -" -`; +exports[`writer should write pageNum in header 4`] = `""`; -exports[`writer should write paragraph delete 1`] = ` -" - - - - - - -" -`; +exports[`writer should write paragraph delete 1`] = `""`; -exports[`writer should write paragraph delete 2`] = ` -" - - Hello world!!Foo - -" -`; +exports[`writer should write paragraph delete 2`] = `"Hello world!!Foo"`; -exports[`writer should write paragraph delete 3`] = ` -" - - - - -" -`; +exports[`writer should write paragraph delete 3`] = `""`; -exports[`writer should write ptab 1`] = ` -" - - - - - -" -`; +exports[`writer should write ptab 1`] = `""`; -exports[`writer should write ptab 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write ptab 2`] = `"Hello world!!"`; -exports[`writer should write ptab 3`] = ` -" - - -" -`; +exports[`writer should write ptab 3`] = `""`; -exports[`writer should write strike 1`] = ` -" - - - - - -" -`; +exports[`writer should write strike 1`] = `""`; -exports[`writer should write strike 2`] = ` -" - - Hello world!! - -" -`; +exports[`writer should write strike 2`] = `"Hello world!!"`; -exports[`writer should write strike 3`] = ` -" - - -" -`; +exports[`writer should write strike 3`] = `""`; -exports[`writer should write style 1`] = ` -" - - - - - -" -`; +exports[`writer should write style 1`] = `""`; -exports[`writer should write style 2`] = ` -" - - Hello - - - - -Hello - -" -`; +exports[`writer should write style 2`] = `"HelloHello"`; -exports[`writer should write style 3`] = ` -" - - - - -" -`; +exports[`writer should write style 3`] = `""`; -exports[`writer should write table layout 1`] = ` -" - - - - - -" -`; +exports[`writer should write table layout 1`] = `""`; -exports[`writer should write table layout 2`] = ` -" - - - - - - -Hello!! - -" -`; +exports[`writer should write table layout 2`] = `"Hello!!"`; -exports[`writer should write table layout 3`] = ` -" - - -" -`; +exports[`writer should write table layout 3`] = `""`; -exports[`writer should write text border 1`] = ` -" - - - - - -" -`; +exports[`writer should write text border 1`] = `""`; -exports[`writer should write text border 2`] = ` -" - - Hello World! - -" -`; +exports[`writer should write text border 2`] = `"Hello World!"`; -exports[`writer should write text border 3`] = ` -" - - -" -`; +exports[`writer should write text border 3`] = `""`; -exports[`writer should write tl2br and tr2bl cells 1`] = ` -" - - - - - -" -`; +exports[`writer should write tl2br and tr2bl cells 1`] = `""`; -exports[`writer should write tl2br and tr2bl cells 2`] = ` -" - - - - - - -Hello!!Hello!!Hello!! - -" -`; +exports[`writer should write tl2br and tr2bl cells 2`] = `"Hello!!Hello!!Hello!!"`; -exports[`writer should write tl2br and tr2bl cells 3`] = ` -" - - -" -`; +exports[`writer should write tl2br and tr2bl cells 3`] = `""`; exports[`writer should write webextension 1`] = `""`; exports[`writer should write webextension 2`] = `""`; -exports[`writer should write webextension 3`] = ` -" - - - - - - -" -`; +exports[`writer should write webextension 3`] = `""`; -exports[`writer should write webextension 4`] = ` -" - - - - - -" -`; +exports[`writer should write webextension 4`] = `""`; exports[`writer should write webextension 5`] = `""`; -exports[`writer should write webextension 6`] = ` -" - - -" -`; +exports[`writer should write webextension 6`] = `""`; -exports[`writer should write webextension 7`] = ` -" - - - - - - - - -" -`; +exports[`writer should write webextension 7`] = `""`; diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 000000000..b6f799d65 --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1 @@ +tab_spaces = 4 From 7400979c394ffc8a4f4b35a53520f10597e0f5a6 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Wed, 6 Nov 2024 17:07:01 +0900 Subject: [PATCH 24/25] chore: rc19 (#783) --- Cargo.lock | 2 +- docx-core/Cargo.toml | 2 +- docx-wasm/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b5626a2c..ff61bcd90 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -143,7 +143,7 @@ checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" [[package]] name = "docx-rs" -version = "0.4.17" +version = "0.4.18-rc19" dependencies = [ "base64", "image", diff --git a/docx-core/Cargo.toml b/docx-core/Cargo.toml index 20675e00d..00849a9fe 100644 --- a/docx-core/Cargo.toml +++ b/docx-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "docx-rs" -version = "0.4.17" +version = "0.4.18-rc19" authors = ["bokuweb "] repository = "https://github.com/bokuweb/docx-rs" edition = "2018" diff --git a/docx-wasm/package.json b/docx-wasm/package.json index 213a8b417..b97603109 100644 --- a/docx-wasm/package.json +++ b/docx-wasm/package.json @@ -1,6 +1,6 @@ { "name": "docx-wasm", - "version": "0.4.18-rc18", + "version": "0.4.18-rc19", "main": "dist/node/index.js", "browser": "dist/web/index.js", "author": "bokuweb ", From 960f1b842a9f71a0dd7cd66b62705283b5097c73 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Fri, 15 Nov 2024 18:59:48 +0900 Subject: [PATCH 25/25] fix --- .../test/__snapshots__/index.test.js.snap | 1368 +---------------- 1 file changed, 64 insertions(+), 1304 deletions(-) diff --git a/docx-wasm/test/__snapshots__/index.test.js.snap b/docx-wasm/test/__snapshots__/index.test.js.snap index 580f7e7da..672275fd3 100644 --- a/docx-wasm/test/__snapshots__/index.test.js.snap +++ b/docx-wasm/test/__snapshots__/index.test.js.snap @@ -8396,11 +8396,7 @@ Object { "name": "header", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -8556,11 +8552,7 @@ Object { "name": "footer", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -11592,11 +11584,7 @@ Object { "name": "header", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -11752,11 +11740,7 @@ Object { "name": "footer", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -39103,11 +39087,7 @@ Object { "name": "header", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -39263,11 +39243,7 @@ Object { "name": "footer", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -98692,11 +98668,7 @@ Object { "id": 17, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -99352,11 +99324,7 @@ Object { "id": 10, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -99468,11 +99436,7 @@ Object { "id": 22, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -99727,11 +99691,7 @@ Object { "line": 280, "lineRule": "atLeast", }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -99903,11 +99863,7 @@ Object { "id": null, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -100071,11 +100027,7 @@ Object { "id": 11, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -100165,11 +100117,7 @@ Object { "id": 23, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -100265,11 +100213,7 @@ Object { "line": 280, "lineRule": "atLeast", }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -100371,11 +100315,7 @@ Object { "line": 280, "lineRule": "atLeast", }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -100474,11 +100414,7 @@ Object { "id": 27, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -100569,11 +100505,7 @@ Object { "id": 12, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -100663,11 +100595,7 @@ Object { "id": 25, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -100758,11 +100686,7 @@ Object { "id": 26, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -100863,11 +100787,7 @@ Object { "id": 24, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -100972,11 +100892,7 @@ Object { "line": 280, "lineRule": "atLeast", }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], "textAlignment": "baseline", }, @@ -103378,11 +103294,7 @@ Object { "next": null, "paragraphProperty": Object { "adjustRightInd": 0, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -103703,11 +103615,7 @@ Object { "start": 100, "startChars": 1400, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -105168,11 +105076,7 @@ Object { "next": null, "paragraphProperty": Object { "alignment": "left", -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object {}, @@ -105320,11 +105224,7 @@ Object { "name": "envelope return", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -105931,11 +105831,7 @@ Object { "next": null, "paragraphProperty": Object { "alignment": "left", -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object {}, @@ -108197,11 +108093,7 @@ Object { "id": 454, "level": null, }, -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object { @@ -167194,11 +167086,7 @@ Object { "name": "header", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -167357,11 +167245,7 @@ Object { "name": "footer", "next": null, "paragraphProperty": Object { -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [ Object { "leader": null, @@ -167521,11 +167405,7 @@ Object { "next": null, "paragraphProperty": Object { "alignment": "left", -<<<<<<< HEAD -======= - "runProperty": Object {}, "snapToGrid": false, ->>>>>>> origin/main "tabs": Array [], }, "runProperty": Object {}, @@ -168149,158 +168029,37 @@ Object { exports[`writer should write ToC with instrText 1`] = `""`; -<<<<<<< HEAD -exports[`writer should write ToC with instrText 2`] = ` -" - - -Before contentsTOC \\\\uAfter contents - -Hello!! -World - -" -`; -======= -exports[`writer should write ToC with instrText 2`] = `"Before contentsTOC \\\\uAfter contentsHello!!World"`; ->>>>>>> origin/main +exports[`writer should write ToC with instrText 2`] = `"Before contentsTOC \\\\uAfter contentsHello!!World"`; exports[`writer should write ToC with items 1`] = `""`; -<<<<<<< HEAD -exports[`writer should write ToC with items 2`] = ` -" - - - - - - - -TOCHello!!PAGEREF _Toc00000000 \\\\h2 - - -WorldPAGEREF _Toc00000001 \\\\h3 - - -Hello!! -World - -" -`; -======= -exports[`writer should write ToC with items 2`] = `"TOCHello!!PAGEREF _Toc00000000 \\\\h2WorldPAGEREF _Toc00000001 \\\\h3Hello!!World"`; ->>>>>>> origin/main +exports[`writer should write ToC with items 2`] = `"TOCHello!!PAGEREF _Toc00000000 \\\\h2WorldPAGEREF _Toc00000001 \\\\h3Hello!!World"`; exports[`writer should write align 1`] = `""`; -<<<<<<< HEAD -exports[`writer should write align 2`] = ` -" - - Hello world!! - -" -`; -======= -exports[`writer should write align 2`] = `"Hello world!!"`; ->>>>>>> origin/main +exports[`writer should write align 2`] = `"Hello world!!"`; exports[`writer should write anchor hyperlink 1`] = `""`; -<<<<<<< HEAD -exports[`writer should write anchor hyperlink 2`] = ` -" - - Hello!! - -World!! - -" -`; -======= -exports[`writer should write anchor hyperlink 2`] = `"Hello!!World!!"`; ->>>>>>> origin/main +exports[`writer should write anchor hyperlink 2`] = `"Hello!!World!!"`; exports[`writer should write auto items ToC 1`] = `""`; -<<<<<<< HEAD -exports[`writer should write auto items ToC 2`] = ` -" - - - - - - - -TOCHello!!PAGEREF _Toc00000000 \\\\h1 - - -WorldPAGEREF _Toc00000001 \\\\h1 - - -Hello!! -World - -" -`; -======= -exports[`writer should write auto items ToC 2`] = `"TOCHello!!PAGEREF _Toc00000000 \\\\h1WorldPAGEREF _Toc00000001 \\\\h1Hello!!World"`; ->>>>>>> origin/main +exports[`writer should write auto items ToC 2`] = `"TOCHello!!PAGEREF _Toc00000000 \\\\h1WorldPAGEREF _Toc00000001 \\\\h1Hello!!World"`; exports[`writer should write cell shading 1`] = `""`; -<<<<<<< HEAD -exports[`writer should write cell shading 2`] = ` -" - - - - - - -Hello!! - -" -`; - -exports[`writer should write cell shading 3`] = ` -" - - -" -`; -======= -exports[`writer should write cell shading 2`] = `"Hello!!"`; +exports[`writer should write cell shading 2`] = `"Hello!!"`; -exports[`writer should write cell shading 3`] = `""`; ->>>>>>> origin/main +exports[`writer should write cell shading 3`] = `""`; exports[`writer should write custom props 1`] = `"{\\"world\\": 0}"`; exports[`writer should write custom props 2`] = `""`; -<<<<<<< HEAD -exports[`writer should write custom props 3`] = ` -" - - Hello!! - -" -`; +exports[`writer should write custom props 3`] = `"Hello!!"`; -exports[`writer should write custom props 4`] = ` -" - - -" -`; -======= -exports[`writer should write custom props 3`] = `"Hello!!"`; - -exports[`writer should write custom props 4`] = `""`; ->>>>>>> origin/main +exports[`writer should write custom props 4`] = `""`; exports[`writer should write customItem 1`] = `""`; @@ -168312,1196 +168071,197 @@ exports[`writer should write customItem 4`] = `" - - -" -`; - -exports[`writer should write customItem 7`] = ` -" -" -`; - -exports[`writer should write default font 1`] = ` -" - - - - - -" -`; - -exports[`writer should write default font 2`] = ` -" - - Hello world!!!! - -" -`; - -exports[`writer should write default font 3`] = ` -" - - -" -`; - -exports[`writer should write default line spacing 1`] = ` -" - - - - - -" -`; - -exports[`writer should write default line spacing 2`] = ` -" - - Hello - -" -`; - -exports[`writer should write default line spacing 3`] = ` -" - - -" -`; - -exports[`writer should write deleted ToC 1`] = ` -" - - - - - -" -`; - -exports[`writer should write deleted ToC 2`] = ` -" - - -TOC \\\\uAfter contents - -Hello!! -World - -" -`; - -exports[`writer should write dirty and disable auto items ToC 1`] = ` -" - - - - - -" -`; - -exports[`writer should write dirty and disable auto items ToC 2`] = ` -" - - -TOC - -Hello!! -World - -" -`; - -exports[`writer should write doc grid 1`] = ` -" - - - - - -" -`; - -exports[`writer should write doc grid 2`] = ` -" - - Hello world!!!! -" -`; - -exports[`writer should write doc grid 3`] = ` -" - - -" -`; - -exports[`writer should write doc vars 1`] = ` -" - - - - - -" -`; - -exports[`writer should write doc vars 2`] = ` -" - - Hello world!!!! - -" -`; - -exports[`writer should write doc vars 3`] = ` -" - - -" -`; - -exports[`writer should write evenFooter with table for default section 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write evenFooter with table for default section 2`] = ` -" - - -" -`; - -exports[`writer should write evenFooter with table for default section 3`] = ` -" - - - - - -Hello Footer!!" -`; - -exports[`writer should write evenFooter with table for default section 4`] = ` -" -" -`; - -exports[`writer should write external hyperlink 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write external hyperlink 2`] = ` -" - - Hello!! - -" -`; - -exports[`writer should write firstHeader with table for default section 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write firstHeader with table for default section 2`] = ` -" - - - -" -`; - -exports[`writer should write firstHeader with table for default section 3`] = ` -" - - - - - -Hello Header!!" -`; - -exports[`writer should write firstHeader with table for default section 4`] = ` -" -" -`; - -exports[`writer should write footer for default section 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write footer for default section 2`] = ` -" - - World -" -`; - -exports[`writer should write footer for default section 3`] = ` -" -Hello Footer" -`; - -exports[`writer should write footer for default section 4`] = ` -" -" -`; - -exports[`writer should write header for default section 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write header for default section 2`] = ` -" - - World -" -`; - -exports[`writer should write hello 1`] = ` -" - - - - - -" -`; - -exports[`writer should write hello 2`] = ` -" - - Hello world!! - -" -`; - -exports[`writer should write hello 3`] = ` -" - - -" -`; - -exports[`writer should write image in header 1`] = ` -" - - - - - - - -" -`; - -exports[`writer should write image in header 2`] = ` -" - - Hello world!! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; - -exports[`writer should write inline image 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write inline image 2`] = ` -" - - Hello world!! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; - -exports[`writer should write inline jpeg image 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write inline jpeg image 2`] = ` -" - - Hello world!! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; - -exports[`writer should write jpeg image with del 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write jpeg image with del 2`] = ` -" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; - -exports[`writer should write jpeg image with ins 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write jpeg image with ins 2`] = ` -" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" -`; - -exports[`writer should write line spacing 1`] = ` -" - - - - - -" -`; - -exports[`writer should write line spacing 2`] = ` -" - - Hello - -" -`; - -exports[`writer should write line spacing 3`] = ` -" - - -" -`; - -exports[`writer should write lvlOverride with level 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write lvlOverride with level 2`] = ` -" - - Hello world!! - -" -`; - -exports[`writer should write lvlOverride with level 3`] = ` -" - - - - " -`; - -exports[`writer should write nested table 1`] = ` -" - - - - - -" -`; - -exports[`writer should write nested table 2`] = ` -" - - - - - - - - - - - -Hello world!! - -" -`; - -exports[`writer should write nested table 3`] = ` -" - - -" -`; - -exports[`writer should write pPrChange with deleted numbering 1`] = ` -" - - - - - -" -`; - -exports[`writer should write pPrChange with deleted numbering 2`] = ` -" - - Hello world!! - -" -`; - -exports[`writer should write pPrChange with deleted numbering 3`] = ` -" - - - - -" -`; - -exports[`writer should write pPrChange with inserted numbering 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write pPrChange with inserted numbering 2`] = ` -" - - Hello world!! - -" -`; - -exports[`writer should write pPrChange with inserted numbering 3`] = ` -" - - - - -" -`; - -exports[`writer should write page margin 1`] = ` -" - - - - - -" -`; - -exports[`writer should write page margin 2`] = ` -" - - Hello world!! - -" -`; - -exports[`writer should write page margin 3`] = ` -" - - -" -`; - -exports[`writer should write page orientation 1`] = ` -" - - - - - -" -`; - -exports[`writer should write page orientation 2`] = ` -" - - Hello - -" -`; - -exports[`writer should write page orientation 3`] = ` -" - - -" -`; - -exports[`writer should write page size 1`] = ` -" - - - - - -" -`; - -exports[`writer should write page size 2`] = ` -" - - Hello world!! - -" -`; - -exports[`writer should write page size 3`] = ` -" - - -" -`; - -exports[`writer should write pageNum in header 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write pageNum in header 2`] = ` -" - - Hello world!! PAGE1 / NUMPAGES1 -" -`; - -exports[`writer should write pageNum in header 3`] = ` -" -Hello world!! PAGE1 / NUMPAGES1" -`; - -exports[`writer should write pageNum in header 4`] = ` -" -" -`; - -exports[`writer should write paragraph delete 1`] = ` -" - - - - - - -" -`; - -exports[`writer should write paragraph delete 2`] = ` -" - - Hello world!!Foo - -" -`; - -exports[`writer should write paragraph delete 3`] = ` -" - - - - -" -`; - -exports[`writer should write strike 1`] = ` -" - - - - - -" -`; - -exports[`writer should write strike 2`] = ` -" - - Hello world!! - -" -`; - -exports[`writer should write strike 3`] = ` -" - - -" -`; - -exports[`writer should write style 1`] = ` -" - - - - - -" -`; - -exports[`writer should write style 2`] = ` -" - - Hello - - - - -Hello - -" -`; - -exports[`writer should write style 3`] = ` -" - - - - -" -`; - -exports[`writer should write table layout 1`] = ` -" - - - - - -" -`; - -exports[`writer should write table layout 2`] = ` -" - - - - - - -Hello!! - -" -`; - -exports[`writer should write table layout 3`] = ` -" - - -" -`; - -exports[`writer should write text border 1`] = ` -" - - - - - -" -`; - -exports[`writer should write text border 2`] = ` -" - - Hello World! - -" -`; - -exports[`writer should write text border 3`] = ` -" - - -" -`; - -exports[`writer should write tl2br and tr2bl cells 1`] = ` -" - - - - - -" -`; - -exports[`writer should write tl2br and tr2bl cells 2`] = ` -" - - - - - - -Hello!!Hello!!Hello!! - -" -`; - -exports[`writer should write tl2br and tr2bl cells 3`] = ` -" - - -" -`; -======= exports[`writer should write customItem 6`] = `""`; exports[`writer should write customItem 7`] = `""`; exports[`writer should write default font 1`] = `""`; -exports[`writer should write default font 2`] = `"Hello world!!!!"`; +exports[`writer should write default font 2`] = `"Hello world!!!!"`; -exports[`writer should write default font 3`] = `""`; +exports[`writer should write default font 3`] = `""`; exports[`writer should write default line spacing 1`] = `""`; -exports[`writer should write default line spacing 2`] = `"Hello "`; +exports[`writer should write default line spacing 2`] = `"Hello "`; -exports[`writer should write default line spacing 3`] = `""`; +exports[`writer should write default line spacing 3`] = `""`; exports[`writer should write deleted ToC 1`] = `""`; -exports[`writer should write deleted ToC 2`] = `"TOC \\\\uAfter contentsHello!!World"`; +exports[`writer should write deleted ToC 2`] = `"TOC \\\\uAfter contentsHello!!World"`; exports[`writer should write dirty and disable auto items ToC 1`] = `""`; -exports[`writer should write dirty and disable auto items ToC 2`] = `"TOCHello!!World"`; +exports[`writer should write dirty and disable auto items ToC 2`] = `"TOCHello!!World"`; exports[`writer should write doc grid 1`] = `""`; -exports[`writer should write doc grid 2`] = `"Hello world!!!!"`; +exports[`writer should write doc grid 2`] = `"Hello world!!!!"`; -exports[`writer should write doc grid 3`] = `""`; +exports[`writer should write doc grid 3`] = `""`; exports[`writer should write doc vars 1`] = `""`; -exports[`writer should write doc vars 2`] = `"Hello world!!!!"`; +exports[`writer should write doc vars 2`] = `"Hello world!!!!"`; -exports[`writer should write doc vars 3`] = `""`; +exports[`writer should write doc vars 3`] = `""`; exports[`writer should write evenFooter with table for default section 1`] = `""`; exports[`writer should write evenFooter with table for default section 2`] = `""`; -exports[`writer should write evenFooter with table for default section 3`] = `"Hello Footer!!"`; +exports[`writer should write evenFooter with table for default section 3`] = `"Hello Footer!!"`; exports[`writer should write evenFooter with table for default section 4`] = `""`; exports[`writer should write external hyperlink 1`] = `""`; -exports[`writer should write external hyperlink 2`] = `"Hello!!"`; +exports[`writer should write external hyperlink 2`] = `"Hello!!"`; exports[`writer should write firstHeader with table for default section 1`] = `""`; exports[`writer should write firstHeader with table for default section 2`] = `""`; -exports[`writer should write firstHeader with table for default section 3`] = `"Hello Header!!"`; +exports[`writer should write firstHeader with table for default section 3`] = `"Hello Header!!"`; exports[`writer should write firstHeader with table for default section 4`] = `""`; exports[`writer should write footer for default section 1`] = `""`; -exports[`writer should write footer for default section 2`] = `"World "`; +exports[`writer should write footer for default section 2`] = `"World "`; -exports[`writer should write footer for default section 3`] = `"Hello Footer"`; +exports[`writer should write footer for default section 3`] = `"Hello Footer"`; exports[`writer should write footer for default section 4`] = `""`; exports[`writer should write header for default section 1`] = `""`; -exports[`writer should write header for default section 2`] = `"World "`; +exports[`writer should write header for default section 2`] = `"World "`; exports[`writer should write hello 1`] = `""`; -exports[`writer should write hello 2`] = `"Hello world!!"`; +exports[`writer should write hello 2`] = `"Hello world!!"`; -exports[`writer should write hello 3`] = `""`; +exports[`writer should write hello 3`] = `""`; exports[`writer should write image in header 1`] = `""`; -exports[`writer should write image in header 2`] = `"Hello world!!"`; +exports[`writer should write image in header 2`] = `"Hello world!!"`; exports[`writer should write inline image 1`] = `""`; -exports[`writer should write inline image 2`] = `"Hello world!!"`; +exports[`writer should write inline image 2`] = `"Hello world!!"`; exports[`writer should write inline jpeg image 1`] = `""`; -exports[`writer should write inline jpeg image 2`] = `"Hello world!!"`; +exports[`writer should write inline jpeg image 2`] = `"Hello world!!"`; exports[`writer should write jpeg image with del 1`] = `""`; -exports[`writer should write jpeg image with del 2`] = `""`; +exports[`writer should write jpeg image with del 2`] = `""`; exports[`writer should write jpeg image with ins 1`] = `""`; -exports[`writer should write jpeg image with ins 2`] = `""`; +exports[`writer should write jpeg image with ins 2`] = `""`; exports[`writer should write line spacing 1`] = `""`; -exports[`writer should write line spacing 2`] = `"Hello "`; +exports[`writer should write line spacing 2`] = `"Hello "`; -exports[`writer should write line spacing 3`] = `""`; +exports[`writer should write line spacing 3`] = `""`; exports[`writer should write lvlOverride with level 1`] = `""`; -exports[`writer should write lvlOverride with level 2`] = `"Hello world!!"`; +exports[`writer should write lvlOverride with level 2`] = `"Hello world!!"`; -exports[`writer should write lvlOverride with level 3`] = `""`; +exports[`writer should write lvlOverride with level 3`] = `""`; exports[`writer should write nested table 1`] = `""`; -exports[`writer should write nested table 2`] = `"Hello world!!"`; +exports[`writer should write nested table 2`] = `"Hello world!!"`; -exports[`writer should write nested table 3`] = `""`; +exports[`writer should write nested table 3`] = `""`; exports[`writer should write pPrChange with deleted numbering 1`] = `""`; -exports[`writer should write pPrChange with deleted numbering 2`] = `"Hello world!!"`; +exports[`writer should write pPrChange with deleted numbering 2`] = `"Hello world!!"`; -exports[`writer should write pPrChange with deleted numbering 3`] = `""`; +exports[`writer should write pPrChange with deleted numbering 3`] = `""`; exports[`writer should write pPrChange with inserted numbering 1`] = `""`; -exports[`writer should write pPrChange with inserted numbering 2`] = `"Hello world!!"`; +exports[`writer should write pPrChange with inserted numbering 2`] = `"Hello world!!"`; -exports[`writer should write pPrChange with inserted numbering 3`] = `""`; +exports[`writer should write pPrChange with inserted numbering 3`] = `""`; exports[`writer should write page margin 1`] = `""`; -exports[`writer should write page margin 2`] = `"Hello world!!"`; +exports[`writer should write page margin 2`] = `"Hello world!!"`; -exports[`writer should write page margin 3`] = `""`; +exports[`writer should write page margin 3`] = `""`; exports[`writer should write page orientation 1`] = `""`; -exports[`writer should write page orientation 2`] = `"Hello "`; +exports[`writer should write page orientation 2`] = `"Hello "`; -exports[`writer should write page orientation 3`] = `""`; +exports[`writer should write page orientation 3`] = `""`; exports[`writer should write page size 1`] = `""`; -exports[`writer should write page size 2`] = `"Hello world!!"`; +exports[`writer should write page size 2`] = `"Hello world!!"`; -exports[`writer should write page size 3`] = `""`; +exports[`writer should write page size 3`] = `""`; exports[`writer should write pageNum in header 1`] = `""`; -exports[`writer should write pageNum in header 2`] = `"Hello world!! PAGE1 / NUMPAGES1"`; +exports[`writer should write pageNum in header 2`] = `"Hello world!! PAGE1 / NUMPAGES1"`; -exports[`writer should write pageNum in header 3`] = `"Hello world!! PAGE1 / NUMPAGES1"`; +exports[`writer should write pageNum in header 3`] = `"Hello world!! PAGE1 / NUMPAGES1"`; exports[`writer should write pageNum in header 4`] = `""`; exports[`writer should write paragraph delete 1`] = `""`; -exports[`writer should write paragraph delete 2`] = `"Hello world!!Foo"`; +exports[`writer should write paragraph delete 2`] = `"Hello world!!Foo"`; -exports[`writer should write paragraph delete 3`] = `""`; +exports[`writer should write paragraph delete 3`] = `""`; exports[`writer should write ptab 1`] = `""`; -exports[`writer should write ptab 2`] = `"Hello world!!"`; +exports[`writer should write ptab 2`] = `"Hello world!!"`; -exports[`writer should write ptab 3`] = `""`; +exports[`writer should write ptab 3`] = `""`; exports[`writer should write strike 1`] = `""`; -exports[`writer should write strike 2`] = `"Hello world!!"`; +exports[`writer should write strike 2`] = `"Hello world!!"`; -exports[`writer should write strike 3`] = `""`; +exports[`writer should write strike 3`] = `""`; exports[`writer should write style 1`] = `""`; -exports[`writer should write style 2`] = `"HelloHello"`; +exports[`writer should write style 2`] = `"HelloHello"`; -exports[`writer should write style 3`] = `""`; +exports[`writer should write style 3`] = `""`; exports[`writer should write table layout 1`] = `""`; -exports[`writer should write table layout 2`] = `"Hello!!"`; +exports[`writer should write table layout 2`] = `"Hello!!"`; -exports[`writer should write table layout 3`] = `""`; +exports[`writer should write table layout 3`] = `""`; exports[`writer should write text border 1`] = `""`; -exports[`writer should write text border 2`] = `"Hello World!"`; +exports[`writer should write text border 2`] = `"Hello World!"`; -exports[`writer should write text border 3`] = `""`; +exports[`writer should write text border 3`] = `""`; exports[`writer should write tl2br and tr2bl cells 1`] = `""`; -exports[`writer should write tl2br and tr2bl cells 2`] = `"Hello!!Hello!!Hello!!"`; +exports[`writer should write tl2br and tr2bl cells 2`] = `"Hello!!Hello!!Hello!!"`; -exports[`writer should write tl2br and tr2bl cells 3`] = `""`; ->>>>>>> origin/main +exports[`writer should write tl2br and tr2bl cells 3`] = `""`; exports[`writer should write webextension 1`] = `""`;