This is an automated email from the ASF dual-hosted git repository.

tballison pushed a commit to branch TIKA-4744
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 7b6e86035c905cb4c7cad95f7740fc86e13537b2
Author: tallison <[email protected]>
AuthorDate: Fri May 29 09:16:39 2026 -0400

    TIKA-4744 - fix apple, rtf, odf, ooxml xhtml tag balancing
---
 .../tika/parser/iwork/KeynoteContentHandler.java   |   6 +
 .../parser/iwork/KeynoteContentHandlerTest.java    |  84 ++++
 .../microsoft/ooxml/FormattingTagManager.java      |  19 +-
 .../microsoft/ooxml/OOXMLTikaBodyPartHandler.java  |  11 +-
 .../parser/microsoft/rtf/RTFEmbObjHandler.java     |  15 +-
 .../tika/parser/microsoft/rtf/RTFParser.java       |  14 +-
 .../tika/parser/microsoft/rtf/TextExtractor.java   |  36 +-
 .../parser/microsoft/ooxml/OOXMLDocxSAXTest.java   |  28 ++
 .../tika/parser/microsoft/rtf/RTFParserTest.java   |  16 +
 .../test-documents/testRTF_parInsideHyperlink.rtf  |   9 +
 .../testWORD_formattingFlipUnderlineOrder.docx     | Bin 0 -> 18506 bytes
 .../testWORD_tableInRunInsideParagraph.docx        | Bin 0 -> 18606 bytes
 .../tika/parser/odf/FlatOpenDocumentParser.java    | 100 +++-
 .../tika/parser/odf/OpenDocumentBodyHandler.java   |   7 +-
 .../org/apache/tika/parser/odf/ODFParserTest.java  |  15 +
 .../test-documents/testFODS_embeddedChart.fods     | 547 +++++++++++++++++++++
 16 files changed, 868 insertions(+), 39 deletions(-)

diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java
index a3ad3db0a8..7e33716ab6 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/KeynoteContentHandler.java
@@ -142,6 +142,12 @@ class KeynoteContentHandler extends DefaultHandler {
         } else if (inMetadata && "key:authors".equals(qName)) {
             inMetaDataAuthors = false;
         } else if (inSlide && "sf:tabular-model".equals(qName)) {
+            // If the final row has fewer cells than numberOfColumns,
+            // parseTableData never reaches its </tr> emit. Close any open
+            // row before </table> so the SAX stream stays balanced.
+            if (currentColumn != null && currentColumn != 0) {
+                xhtml.endElement("tr");
+            }
             xhtml.endElement("table");
             tableId = null;
             numberOfColumns = null;
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/test/java/org/apache/tika/parser/iwork/KeynoteContentHandlerTest.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/test/java/org/apache/tika/parser/iwork/KeynoteContentHandlerTest.java
new file mode 100644
index 0000000000..c67bc445aa
--- /dev/null
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/test/java/org/apache/tika/parser/iwork/KeynoteContentHandlerTest.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tika.parser.iwork;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+import org.xml.sax.helpers.AttributesImpl;
+
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
+import org.apache.tika.sax.StrictXHTMLValidator;
+import org.apache.tika.sax.ToXMLContentHandler;
+import org.apache.tika.sax.XHTMLContentHandler;
+
+public class KeynoteContentHandlerTest {
+
+    /**
+     * TIKA-4744: Keynote tables whose final row contains fewer cells than
+     * numberOfColumns left {@code <tr>} open when {@code </sf:tabular-model>}
+     * fired {@code </table>}. Drive the handler with a synthetic 3-column
+     * table whose final row has only 2 cells and assert the XHTML stays
+     * balanced through endDocument.
+     */
+    @Test
+    public void testIncompleteFinalRowClosesTr() throws Exception {
+        Metadata md = new Metadata();
+        ToXMLContentHandler xml = new ToXMLContentHandler();
+        XHTMLContentHandler xhtml = new XHTMLContentHandler(
+                new StrictXHTMLValidator(xml), md, new ParseContext());
+        KeynoteContentHandler h = new KeynoteContentHandler(xhtml, md);
+
+        xhtml.startDocument();
+
+        // <key:slide>
+        h.startElement("", "slide", "key:slide", new AttributesImpl());
+        // <sf:tabular-model sfa:ID="t1">
+        AttributesImpl tabAttrs = new AttributesImpl();
+        tabAttrs.addAttribute("", "sfa:ID", "sfa:ID", "CDATA", "t1");
+        h.startElement("", "tabular-model", "sf:tabular-model", tabAttrs);
+        // <sf:columns sf:count="3">
+        AttributesImpl colAttrs = new AttributesImpl();
+        colAttrs.addAttribute("", "sf:count", "sf:count", "CDATA", "3");
+        h.startElement("", "columns", "sf:columns", colAttrs);
+        h.endElement("", "columns", "sf:columns");
+        // Two cells (less than 3) -> incomplete final row.
+        AttributesImpl cell = new AttributesImpl();
+        cell.addAttribute("", "sfa:s", "sfa:s", "CDATA", "A");
+        h.startElement("", "ct", "sf:ct", cell);
+        h.endElement("", "ct", "sf:ct");
+        cell = new AttributesImpl();
+        cell.addAttribute("", "sfa:s", "sfa:s", "CDATA", "B");
+        h.startElement("", "ct", "sf:ct", cell);
+        h.endElement("", "ct", "sf:ct");
+        // </sf:tabular-model> -- without the fix this emits </table> while
+        // <tr> is still topmost and StrictXHTMLValidator throws.
+        h.endElement("", "tabular-model", "sf:tabular-model");
+        // </key:slide>
+        h.endElement("", "slide", "key:slide");
+
+        xhtml.endDocument();
+
+        String out = xml.toString();
+        // Sanity: the cells emitted, the row closed, and the table closed.
+        assertTrue(out.contains("<td>A</td>"), "expected td A; got: " + out);
+        assertTrue(out.contains("<td>B</td>"), "expected td B; got: " + out);
+        assertTrue(out.contains("</tr>"), "expected </tr>; got: " + out);
+        assertTrue(out.contains("</table>"), "expected </table>; got: " + out);
+    }
+}
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/FormattingTagManager.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/FormattingTagManager.java
index 0545cd0037..3e8ae2f0de 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/FormattingTagManager.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/FormattingTagManager.java
@@ -114,14 +114,16 @@ class FormattingTagManager {
         }
 
         if (runProperties.isBold() != isBold) {
-            if (isStrikeThrough) {
-                xhtml.endElement("s");
-                isStrikeThrough = false;
-            }
+            // Close inner tags before flipping <b>. Nesting is <b><i><s><u>
+            // (outermost to innermost), so close innermost first: u, s, i.
             if (isUnderline) {
                 xhtml.endElement("u");
                 isUnderline = false;
             }
+            if (isStrikeThrough) {
+                xhtml.endElement("s");
+                isStrikeThrough = false;
+            }
             if (isItalics) {
                 xhtml.endElement("i");
                 isItalics = false;
@@ -135,14 +137,15 @@ class FormattingTagManager {
         }
 
         if (runProperties.isItalics() != isItalics) {
-            if (isStrikeThrough) {
-                xhtml.endElement("s");
-                isStrikeThrough = false;
-            }
+            // Close inner tags before flipping <i>: u then s (u is innermost).
             if (isUnderline) {
                 xhtml.endElement("u");
                 isUnderline = false;
             }
+            if (isStrikeThrough) {
+                xhtml.endElement("s");
+                isStrikeThrough = false;
+            }
             if (runProperties.isItalics()) {
                 xhtml.startElement("i");
             } else {
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLTikaBodyPartHandler.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLTikaBodyPartHandler.java
index 1e11e80b78..5c05436fac 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLTikaBodyPartHandler.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLTikaBodyPartHandler.java
@@ -265,7 +265,16 @@ public class OOXMLTikaBodyPartHandler
 
     @Override
     public void startTable() throws SAXException {
-
+        // A <w:tbl> can appear nested inside an outer <w:p> -- corrupt-ish but
+        // present in the corpus (e.g., <w:p><w:r>...<wps:txbx><w:txbxContent>
+        // <w:tbl>...). At that point a run-level <b>/<i>/<u>/<s>/<a> may be on
+        // the SAX stack just above where the <table> is about to land. When a
+        // later paragraph inside a cell ends, formattingTags.closeAll() tries
+        // to emit </b> for the outer-paragraph state, but <td> is topmost --
+        // strict validator rejects the mismatch. Close pending formatting now
+        // so the table opens at a clean layer and the outer style is 
forgotten.
+        // Mirrors startSDT()'s same-shape guard.
+        formattingTags.closeAll();
         xhtml.startElement("table");
         openStructuralTags.push("table");
         tableDepth++;
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFEmbObjHandler.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFEmbObjHandler.java
index 5b52f19acb..0939d87cde 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFEmbObjHandler.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFEmbObjHandler.java
@@ -35,6 +35,7 @@ import org.apache.tika.metadata.RTFMetadata;
 import org.apache.tika.metadata.TikaCoreProperties;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.EmbeddedContentHandler;
+import org.apache.tika.sax.XHTMLBalancingHandler;
 
 /**
  * This class buffers data from embedded objects and pictures.
@@ -235,12 +236,24 @@ class RTFEmbObjHandler {
                     }
                     
metadata.set(TikaCoreProperties.RESOURCE_NAME_EXTENSION_INFERRED, true);
                 }
+                // Wrap the outer handler in a balancing handler so that if
+                // the embedded parser aborts mid-element (leaving <p>/<b>/etc
+                // open on the wire), we can drain those before propagating.
+                // Without this, the outer RTF parser's subsequent
+                // </b>/</p>/</body> sequence trips StrictXHTMLValidator on
+                // unbalanced nesting and surfaces as a misleading error at
+                // endDocument. Same shape as the SXWPF / Epub catch arms.
+                XHTMLBalancingHandler balancer = new 
XHTMLBalancingHandler(handler);
                 try {
                     embeddedDocumentUtil
-                            .parseEmbedded(tis, new 
EmbeddedContentHandler(handler), metadata,
+                            .parseEmbedded(tis, new 
EmbeddedContentHandler(balancer), metadata,
                                     true);
                 } catch (IOException e) {
+                    balancer.drainOpenElements();
                     EmbeddedDocumentUtil.recordEmbeddedStreamException(e, 
metadata);
+                } catch (SAXException e) {
+                    balancer.drainOpenElements();
+                    EmbeddedDocumentUtil.recordException(e, metadata);
                 }
             }
         }
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java
index 5e8dca35bc..4f83a81e97 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java
@@ -35,6 +35,7 @@ import org.apache.tika.metadata.Metadata;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
+import org.apache.tika.sax.XHTMLBalancingHandler;
 import org.apache.tika.sax.XHTMLContentHandler;
 
 /**
@@ -90,11 +91,22 @@ public class RTFParser implements Parser {
         TaggedInputStream tagged = new TaggedInputStream(tis);
         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, 
context);
         xhtml.startDocument();
+        // Wrap xhtml in a balancing handler so the finally's endDocument
+        // doesn't fire on an unbalanced stack if the RTF state machine
+        // emits inconsistent SAX events (e.g., </b> while <p> is topmost
+        // due to state-vs-stack drift on certain corpus files). Without
+        // this, StrictXHTMLValidator's </body> vs <p>/<b> at endDocument
+        // masks the real well-formedness error from inside extract().
+        XHTMLBalancingHandler balancer = new XHTMLBalancingHandler(xhtml);
         try {
-            parseInline(tis, xhtml, metadata, context);
+            parseInline(tis, balancer, metadata, context);
         } catch (IOException e) {
             tagged.throwIfCauseOf(e);
+            balancer.drainOpenElements();
             throw new TikaException("Error parsing an RTF document", e);
+        } catch (SAXException e) {
+            balancer.drainOpenElements();
+            throw e;
         } finally {
             xhtml.endDocument();
         }
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/TextExtractor.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/TextExtractor.java
index b4ad6ac544..ec698db49f 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/TextExtractor.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/TextExtractor.java
@@ -473,7 +473,6 @@ final class TextExtractor {
     }
 
     private void extract(PushbackInputStream in) throws IOException, 
SAXException, TikaException {
-
         while (true) {
             final int b = in.read();
             if (b == -1) {
@@ -648,6 +647,16 @@ final class TextExtractor {
             lazyStartParagraph();
         }
         if (inParagraph || paragraphStack.size() > 0) {
+            // A HYPERLINK's <a> can be open mid-fldrslt when a \par is
+            // encountered. Closing </p> while <a> is topmost on the SAX
+            // stack trips StrictXHTMLValidator -- close </a> first and
+            // forget the hyperlink state (the paragraph break terminates
+            // the link visually anyway).
+            if (hyperlinkAnchorDepth >= 0) {
+                end("a");
+                fieldState = 0;
+                hyperlinkAnchorDepth = -1;
+            }
             if (groupState.italic) {
                 end("i");
                 groupState.italic = preserveStyles;
@@ -1385,6 +1394,13 @@ final class TextExtractor {
             }
         } else if (equals("fldrslt") && fieldState == 2) {
             assert pendingURL != null;
+            // Temporarily clear fieldState so lazyStartParagraph's endStyles
+            // actually flushes any pending <b>/<i>. endStyles short-circuits
+            // when fieldState != 0 to keep style flips inside an already-open
+            // <a> from leaking; but here we're about to OPEN the <a>, so any
+            // outer <b>/<i> still on the SAX stack must close first or <p>
+            // would land on top of <b> and the link's </b> later mismatches.
+            fieldState = 0;
             lazyStartParagraph();
             AttributesImpl attrs = new AttributesImpl();
             attrs.addAttribute(XHTML, "href", "href", "CDATA", pendingURL);
@@ -1485,6 +1501,12 @@ final class TextExtractor {
                 embObjHandler.handleCompletedObject();
             } catch (TikaException | IOException e) {
                 EmbeddedDocumentUtil.recordException(e, metadata);
+            } catch (RuntimeException e) {
+                // POI dispatch on a zero-byte embedded object throws
+                // EmptyFileException; other malformed embedded payloads
+                // can surface as a variety of runtime exceptions. Record
+                // and continue rather than aborting the outer RTF parse.
+                EmbeddedDocumentUtil.recordException(e, metadata);
             }
             groupState.objdata = false;
         } else if (groupState.pictDepth > 0) {
@@ -1511,6 +1533,18 @@ final class TextExtractor {
         if (groupStates.size() > 0) {
             // Restore group state:
             final GroupState outerGroupState = groupStates.removeLast();
+            // If we're leaving the fldrslt group that owns the current <a>,
+            // close </a> BEFORE the style restore runs. Otherwise the
+            // restore's start("b") would land on top of <a>, and the next
+            // </a>/<b> would mismatch. Doing this here also flips fieldState
+            // to 0, which un-gates the style compare below so the outer
+            // bold/italic context is actually re-emitted.
+            if (fieldState == 3 && hyperlinkAnchorDepth >= 0
+                    && outerGroupState.depth < hyperlinkAnchorDepth) {
+                end("a");
+                fieldState = 0;
+                hyperlinkAnchorDepth = -1;
+            }
             //only modify styles if we're not in a hyperlink
             if (fieldState == 0) {
                 // Close italic, if outer does not have italic or
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLDocxSAXTest.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLDocxSAXTest.java
index 002ddbe3b6..ab10905228 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLDocxSAXTest.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLDocxSAXTest.java
@@ -282,6 +282,34 @@ public class OOXMLDocxSAXTest extends TikaTest {
         assertContains("VednĂ˝ odbor:", r.xml);
     }
 
+    @Test //TIKA-4744
+    public void testTableInRunInsideParagraph() throws Exception {
+        // A <w:tbl> nested deeply inside an outer <w:p>'s run (via
+        // <mc:AlternateContent>/<w:drawing>/<wps:txbx>/<w:txbxContent>) used
+        // to leave the run's <b>/<i>/etc on the SAX stack below the new
+        // <table>. A subsequent paragraph end inside a cell then tried to
+        // closeFormattingTags() for the outer state, emitting </b> while
+        // <td> was topmost. startTable now closes pending formatting first,
+        // mirroring startSDT.
+        XMLResult r = getXML("testWORD_tableInRunInsideParagraph.docx");
+        assertContains("<table>", r.xml);
+    }
+
+    @Test //TIKA-4744
+    public void testFormattingFlipPreservesNestingOrder() throws Exception {
+        // FormattingTagManager.applyFormatting used to close </s> before </u>
+        // in the bold-flip and italic-flip branches, but XHTML nesting is
+        // <b><i><s><u> (u is innermost). A run with bold+strike+underline
+        // followed by a non-bold run trips the wrong-order close: </s>
+        // emitted while <u> is topmost, then the catch arm's closeAnyPending
+        // tries </u> against <s> -- the visible </u> vs <s> the validator
+        // flagged on three corpus files.
+        XMLResult r = getXML("testWORD_formattingFlipUnderlineOrder.docx");
+        // Just confirm something extracted -- the real check is no validator
+        // throw, which getXML enforces via StrictXHTMLValidator.
+        assertContains("<body>", r.xml);
+    }
+
     @Test
     public void testDOCXOverrideParagraphNumbering() throws Exception {
         String xml = getXML("testWORD_override_list_numbering.docx").xml;
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/rtf/RTFParserTest.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/rtf/RTFParserTest.java
index 2c0a91bf9c..1b95235cc9 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/rtf/RTFParserTest.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/rtf/RTFParserTest.java
@@ -60,6 +60,22 @@ public class RTFParserTest extends TikaTest {
         assertContains("indexation Word", content);
     }
 
+    @Test //TIKA-4744
+    public void testParInsideHyperlink() throws Exception {
+        // A \par inside a HYPERLINK's \fldrslt used to leave <a> on the SAX
+        // stack while endParagraph emitted </p>, tripping the strict
+        // validator with </p> vs <a>. The exception was masked by the
+        // finally's xhtml.endDocument() throwing </body> vs <p>; visible
+        // end-state was just "<p> open at endDocument". Closing pending <a>
+        // before </p> drops the link span at the paragraph break, which is
+        // the right XHTML rendering.
+        XMLResult r = getXML("testRTF_parInsideHyperlink.rtf");
+        // First paragraph contains the link text, properly closed.
+        assertContains("<a href=\"#target\">line1</a>", r.xml);
+        // Second paragraph picks up the post-\par text without an open <a>.
+        assertContains("line2", r.xml);
+    }
+
     @Test //TIKA-4744
     public void testNestedHyperlinkPageRef() throws Exception {
         // A HYPERLINK field with a PAGEREF \field nested inside its \fldrslt
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testRTF_parInsideHyperlink.rtf
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testRTF_parInsideHyperlink.rtf
new file mode 100644
index 0000000000..f5b8a139f3
--- /dev/null
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testRTF_parInsideHyperlink.rtf
@@ -0,0 +1,9 @@
+{\rtf1\ansi
+{\fonttbl{\f0 Arial;}}
+\pard {\f0 Before }
+{\field {\*\fldinst HYPERLINK "#target" }{\fldrslt 
+{\f0 line1\par line2}
+}}
+{\f0  after.}
+\par
+}
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_formattingFlipUnderlineOrder.docx
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_formattingFlipUnderlineOrder.docx
new file mode 100755
index 0000000000..06d4467a9c
Binary files /dev/null and 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_formattingFlipUnderlineOrder.docx
 differ
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_tableInRunInsideParagraph.docx
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_tableInRunInsideParagraph.docx
new file mode 100644
index 0000000000..bbdefdd1ff
Binary files /dev/null and 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/resources/test-documents/testWORD_tableInRunInsideParagraph.docx
 differ
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java
index 30eae3d8f5..ea86070202 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java
@@ -38,6 +38,7 @@ import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.ContentHandlerDecorator;
 import org.apache.tika.sax.EmbeddedContentHandler;
+import org.apache.tika.sax.XHTMLBalancingHandler;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.apache.tika.utils.XMLReaderUtils;
 
@@ -100,9 +101,16 @@ public class FlatOpenDocumentParser implements Parser {
         final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, 
metadata, context);
 
         xhtml.startDocument();
+        // A balancing handler so that if the inner SAX parser aborts mid-
+        // element (e.g., malformed flat-doc XML -- some corpus FODT files
+        // omit </text:note-citation>), we can drain pending opens before
+        // the finally's xhtml.endDocument() fires its </body>/</html>.
+        // Without the drain, that endDocument throws </body> vs <p>/etc
+        // and masks the real well-formedness error.
+        final XHTMLBalancingHandler balancer = new 
XHTMLBalancingHandler(xhtml);
         tis.setCloseShield();
         try {
-            ContentHandler fodHandler = getContentHandler(xhtml, metadata, 
context);
+            ContentHandler fodHandler = getContentHandler(balancer, metadata, 
context);
             XMLReaderUtils.parseSAX(tis,
                     new EmbeddedContentHandler(fodHandler), context);
             //can only detect subtype (text/pres/sheet) during parse.
@@ -111,6 +119,9 @@ public class FlatOpenDocumentParser implements Parser {
             if (detected != null) {
                 metadata.set(Metadata.CONTENT_TYPE, detected.toString());
             }
+        } catch (SAXException e) {
+            balancer.drainOpenElements();
+            throw e;
         } finally {
             tis.removeCloseShield();
             xhtml.endDocument();
@@ -144,6 +155,20 @@ public class FlatOpenDocumentParser implements Parser {
         private final boolean extractMacros;
         private ContentHandler currentHandler = defaultHandler;
         private MediaType detectedType = null;
+        // <office:document> can nest: a flat ODS can embed a full inner
+        // <office:document> inside <draw:object> (e.g., for an embedded
+        // chart). Each level has its own <office:meta>/<office:body>/
+        // <office:scripts>. We only honour those sections at the OUTER
+        // document level -- inner ones must stay inside whatever handler
+        // is already active (so the outer body's <draw:object> content
+        // keeps emitting through bodyHandler), or the trailing </draw:object>
+        // and surrounding events get routed to a no-op handler and leave
+        // <object>/<table> unclosed on the XHTML stream.
+        private int documentDepth = 0;
+        // Track outer-section depth so the matching close switches back to
+        // defaultHandler only when the section actually ends, not on a
+        // nested-doc occurrence.
+        private int outerSectionDepth = 0;
 
         private FlatOpenDocumentParserHandler(ContentHandler baseHandler, 
Metadata metadata,
                                               ParseContext parseContext, 
boolean extractMacros) {
@@ -169,27 +194,44 @@ public class FlatOpenDocumentParser implements Parser {
         @Override
         public void startElement(String namespaceURI, String localName, String 
qName,
                                  Attributes attrs) throws SAXException {
-
-            if (META.equals(localName)) {
-                currentHandler = metadataHandler;
-            } else if (BODY.equals(localName)) {
-                currentHandler = bodyHandler;
-            } else if (extractMacros && SCRIPTS.equals(localName)) {
-                currentHandler = macroHandler;
-            }
-
-            //trust the mimetype element if it exists for the subtype
             if (DOCUMENT.equals(localName)) {
-                String mime = XMLReaderUtils.getAttrValue("mimetype", attrs);
-                if (mime != null) {
-                    if (mime.equals(ODT.toString())) {
-                        detectedType = FLAT_ODT;
-                    } else if (mime.equals(ODP.toString())) {
-                        detectedType = FLAT_ODP;
-                    } else if (mime.equals(ODS.toString())) {
-                        detectedType = FLAT_ODS;
+                documentDepth++;
+                //trust the mimetype element if it exists for the subtype.
+                //Only consult the outer <office:document>; inner ones (e.g.,
+                //an embedded chart's document) would otherwise overwrite the
+                //container's detected subtype.
+                if (documentDepth == 1) {
+                    String mime = XMLReaderUtils.getAttrValue("mimetype", 
attrs);
+                    if (mime != null) {
+                        if (mime.equals(ODT.toString())) {
+                            detectedType = FLAT_ODT;
+                        } else if (mime.equals(ODP.toString())) {
+                            detectedType = FLAT_ODP;
+                        } else if (mime.equals(ODS.toString())) {
+                            detectedType = FLAT_ODS;
+                        }
                     }
                 }
+            } else if (documentDepth == 1 && outerSectionDepth == 0) {
+                // Only outermost-level META/BODY/SCRIPTS triggers a handler
+                // switch. Inner-document occurrences are forwarded to 
whichever
+                // outer section's handler is already active.
+                if (META.equals(localName)) {
+                    currentHandler = metadataHandler;
+                    outerSectionDepth = 1;
+                } else if (BODY.equals(localName)) {
+                    currentHandler = bodyHandler;
+                    outerSectionDepth = 1;
+                } else if (extractMacros && SCRIPTS.equals(localName)) {
+                    currentHandler = macroHandler;
+                    outerSectionDepth = 1;
+                }
+            } else if (outerSectionDepth > 0
+                    && (META.equals(localName) || BODY.equals(localName)
+                        || SCRIPTS.equals(localName))) {
+                // Track nested occurrences so the matching end doesn't
+                // prematurely flip currentHandler back to defaultHandler.
+                outerSectionDepth++;
             }
             currentHandler.startElement(namespaceURI, localName, qName, attrs);
         }
@@ -202,14 +244,20 @@ public class FlatOpenDocumentParser implements Parser {
         @Override
         public void endElement(String namespaceURI, String localName, String 
qName)
                 throws SAXException {
-            if (META.equals(localName)) {
-                currentHandler = defaultHandler;
-            } else if (BODY.equals(localName)) {
-                currentHandler = defaultHandler;
-            } else if (extractMacros && SCRIPTS.equals(localName)) {
-                currentHandler = defaultHandler;
-            }
+            // Forward the end event to the still-active handler BEFORE we
+            // consider switching back. Otherwise the </office:body> close
+            // itself would land on defaultHandler.
             currentHandler.endElement(namespaceURI, localName, qName);
+            if (DOCUMENT.equals(localName)) {
+                documentDepth--;
+            } else if (outerSectionDepth > 0
+                    && (META.equals(localName) || BODY.equals(localName)
+                        || (extractMacros && SCRIPTS.equals(localName)))) {
+                outerSectionDepth--;
+                if (outerSectionDepth == 0) {
+                    currentHandler = defaultHandler;
+                }
+            }
         }
     }
 }
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentBodyHandler.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentBodyHandler.java
index 60c1457d68..8c121db125 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentBodyHandler.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentBodyHandler.java
@@ -362,7 +362,7 @@ class OpenDocumentBodyHandler extends 
ElementMappingContentHandler {
      * branch where this check is used.
      */
     private static boolean closeStylesBeforeOpen(String uri, String localName) 
{
-        if (DRAW_NS.equals(uri) && "text-box".equals(localName)) {
+        if (DRAW_NS.equals(uri) && ("text-box".equals(localName) || 
"object".equals(localName))) {
             return true;
         }
         if (TABLE_NS.equals(uri) &&
@@ -406,6 +406,11 @@ class OpenDocumentBodyHandler extends 
ElementMappingContentHandler {
             throws SAXException {
 
         if (DRAW_NS.equals(namespaceURI) && "image".equals(localName)) {
+            // Close any pending inline styles (e.g., a <b> opened lazily by a
+            // prior <text:span>) before emitting the <img> -- without this
+            // the <img> lands inside <b>, the styles are never flushed, and
+            // <b> reaches endDocument unbalanced.
+            closeStyleTags();
             String link = attrs.getValue(XLINK_NS, "href");
             AttributesImpl attr = new AttributesImpl();
             if (!StringUtils.isEmpty(link)) {
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
index bedcc038c2..66df1ed41f 100644
--- 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
@@ -365,6 +365,21 @@ public class ODFParserTest extends TikaTest {
                 xml);
     }
 
+    @Test //TIKA-4744
+    public void testFlatFodsEmbeddedChart() throws Exception {
+        // A flat ODS can embed a chart as a nested <office:document> inside
+        // <draw:object>. The dispatch handler in FlatOpenDocumentParser used
+        // to flip back to defaultHandler when the inner document's
+        // <office:meta>/<office:body> closed, sending the trailing
+        // </draw:object> / </table> / </office:body> to a no-op handler --
+        // <object>/<table> stayed open and the strict validator caught it.
+        // getXML wraps in StrictXHTMLValidator, so an imbalance throws here.
+        XMLResult r = getXML("testFODS_embeddedChart.fods");
+        // The outer <object> wrapper should close cleanly.
+        assertContains("<object>", r.xml);
+        assertContains("</object>", r.xml);
+    }
+
     @Test //TIKA-4744
     public void testSvgTitleInStyledSpan() throws Exception {
         // Empty <svg:title/>/<svg:desc/> inside a <draw:connector> or
diff --git 
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/test/resources/test-documents/testFODS_embeddedChart.fods
 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/test/resources/test-documents/testFODS_embeddedChart.fods
new file mode 100644
index 0000000000..68b3fd6fa9
--- /dev/null
+++ 
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/test/resources/test-documents/testFODS_embeddedChart.fods
@@ -0,0 +1,547 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns: [...]
+ 
<office:meta><meta:creation-date>2014-10-22T14:37:30.263776144</meta:creation-date><dc:date>2014-10-22T15:04:07.755937395</dc:date><meta:editing-duration>PT10M34S</meta:editing-duration><meta:editing-cycles>5</meta:editing-cycles><meta:generator>LibreOffice/4.3.1.2$Linux_x86
 
LibreOffice_project/958349dc3b25111dbca392fbc281a05559ef6848</meta:generator><meta:document-statistic
 meta:table-count="2" meta:cell-count="2" meta:object-count="1"/></office:meta>
+ <office:settings>
+  <config:config-item-set config:name="ooo:view-settings">
+   <config:config-item config:name="VisibleAreaTop" 
config:type="int">2257</config:config-item>
+   <config:config-item config:name="VisibleAreaLeft" 
config:type="int">2257</config:config-item>
+   <config:config-item config:name="VisibleAreaWidth" 
config:type="int">18062</config:config-item>
+   <config:config-item config:name="VisibleAreaHeight" 
config:type="int">9031</config:config-item>
+   <config:config-item-map-indexed config:name="Views">
+    <config:config-item-map-entry>
+     <config:config-item config:name="ViewId" 
config:type="string">view1</config:config-item>
+     <config:config-item-map-named config:name="Tables">
+      <config:config-item-map-entry config:name="Sheet1">
+       <config:config-item config:name="CursorPositionX" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="CursorPositionY" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="HorizontalSplitMode" 
config:type="short">0</config:config-item>
+       <config:config-item config:name="VerticalSplitMode" 
config:type="short">0</config:config-item>
+       <config:config-item config:name="HorizontalSplitPosition" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="VerticalSplitPosition" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="ActiveSplitRange" 
config:type="short">2</config:config-item>
+       <config:config-item config:name="PositionLeft" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionRight" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionTop" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionBottom" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
+       <config:config-item config:name="ZoomValue" 
config:type="int">88</config:config-item>
+       <config:config-item config:name="PageViewZoomValue" 
config:type="int">60</config:config-item>
+       <config:config-item config:name="ShowGrid" 
config:type="boolean">true</config:config-item>
+      </config:config-item-map-entry>
+      <config:config-item-map-entry config:name="Sheet2">
+       <config:config-item config:name="CursorPositionX" 
config:type="int">16</config:config-item>
+       <config:config-item config:name="CursorPositionY" 
config:type="int">2</config:config-item>
+       <config:config-item config:name="HorizontalSplitMode" 
config:type="short">0</config:config-item>
+       <config:config-item config:name="VerticalSplitMode" 
config:type="short">0</config:config-item>
+       <config:config-item config:name="HorizontalSplitPosition" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="VerticalSplitPosition" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="ActiveSplitRange" 
config:type="short">2</config:config-item>
+       <config:config-item config:name="PositionLeft" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionRight" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionTop" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="PositionBottom" 
config:type="int">0</config:config-item>
+       <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
+       <config:config-item config:name="ZoomValue" 
config:type="int">88</config:config-item>
+       <config:config-item config:name="PageViewZoomValue" 
config:type="int">60</config:config-item>
+       <config:config-item config:name="ShowGrid" 
config:type="boolean">true</config:config-item>
+      </config:config-item-map-entry>
+     </config:config-item-map-named>
+     <config:config-item config:name="ActiveTable" 
config:type="string">Sheet2</config:config-item>
+     <config:config-item config:name="HorizontalScrollbarWidth" 
config:type="int">270</config:config-item>
+     <config:config-item config:name="ZoomType" 
config:type="short">0</config:config-item>
+     <config:config-item config:name="ZoomValue" 
config:type="int">88</config:config-item>
+     <config:config-item config:name="PageViewZoomValue" 
config:type="int">60</config:config-item>
+     <config:config-item config:name="ShowPageBreakPreview" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="ShowZeroValues" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="ShowNotes" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="ShowGrid" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="GridColor" 
config:type="long">12632256</config:config-item>
+     <config:config-item config:name="ShowPageBreaks" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="HasColumnRowHeaders" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="HasSheetTabs" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="IsOutlineSymbolsSet" 
config:type="boolean">true</config:config-item>
+     <config:config-item config:name="IsSnapToRaster" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="RasterIsVisible" 
config:type="boolean">false</config:config-item>
+     <config:config-item config:name="RasterResolutionX" 
config:type="int">1000</config:config-item>
+     <config:config-item config:name="RasterResolutionY" 
config:type="int">1000</config:config-item>
+     <config:config-item config:name="RasterSubdivisionX" 
config:type="int">1</config:config-item>
+     <config:config-item config:name="RasterSubdivisionY" 
config:type="int">1</config:config-item>
+     <config:config-item config:name="IsRasterAxisSynchronized" 
config:type="boolean">true</config:config-item>
+    </config:config-item-map-entry>
+   </config:config-item-map-indexed>
+  </config:config-item-set>
+  <config:config-item-set config:name="ooo:configuration-settings">
+   <config:config-item config:name="EmbedFonts" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IsKernAsianPunctuation" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="UpdateFromTemplate" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="LoadReadonly" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="IsDocumentShared" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="AutoCalculate" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="PrinterSetup" 
config:type="base64Binary">lQH+/0Vwc29uLVN0eWx1cy1TWDIzNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpFcHNvbi1TdHlsdXMtU1gyMzUAAAAAAAAAAAAWAAMAtwAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9RXBzb24tU3R5bHVzLVNYMjM1Cm9yaWVudGF0aW9uPVBvcnRyYWl0CmNvcGllcz0xCmNvbGxhdGU9ZmFsc2UKbWFyZ2luZGFqdXN0bWVudD0wLDAsMCwwCmNvbG9yZGVwdGg9MjQKcHNsZXZ
 [...]
+   <config:config-item config:name="RasterIsVisible" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="PrinterName" 
config:type="string">Epson-Stylus-SX235</config:config-item>
+   <config:config-item config:name="RasterResolutionY" 
config:type="int">1000</config:config-item>
+   <config:config-item config:name="IsRasterAxisSynchronized" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="CharacterCompressionType" 
config:type="short">0</config:config-item>
+   <config:config-item config:name="RasterResolutionX" 
config:type="int">1000</config:config-item>
+   <config:config-item config:name="IsSnapToRaster" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="HasColumnRowHeaders" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="RasterSubdivisionX" 
config:type="int">1</config:config-item>
+   <config:config-item config:name="GridColor" 
config:type="long">12632256</config:config-item>
+   <config:config-item config:name="ShowZeroValues" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="RasterSubdivisionY" 
config:type="int">1</config:config-item>
+   <config:config-item config:name="SaveVersionOnClose" 
config:type="boolean">false</config:config-item>
+   <config:config-item config:name="ApplyUserData" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="LinkUpdateMode" 
config:type="short">3</config:config-item>
+   <config:config-item config:name="IsOutlineSymbolsSet" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="AllowPrintJobCancel" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ShowGrid" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ShowPageBreaks" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="HasSheetTabs" 
config:type="boolean">true</config:config-item>
+   <config:config-item config:name="ShowNotes" 
config:type="boolean">true</config:config-item>
+  </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+  <office:script script:language="ooo:Basic">
+   <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+    <ooo:library-embedded ooo:name="Standard"/>
+   </ooo:libraries>
+  </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+  <style:font-face style:name="Liberation Sans" 
svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" 
style:font-pitch="variable"/>
+  <style:font-face style:name="DejaVu Sans" svg:font-family="&apos;DejaVu 
Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="FreeSans" svg:font-family="FreeSans" 
style:font-family-generic="system" style:font-pitch="variable"/>
+  <style:font-face style:name="WenQuanYi Micro Hei" 
svg:font-family="&apos;WenQuanYi Micro Hei&apos;" 
style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+  <style:default-style style:family="table-cell">
+   <style:paragraph-properties style:tab-stop-distance="0.4921in"/>
+   <style:text-properties style:font-name="Liberation Sans" fo:language="en" 
fo:country="US" style:font-name-asian="DejaVu Sans" style:language-asian="zh" 
style:country-asian="CN" style:font-name-complex="DejaVu Sans" 
style:language-complex="hi" style:country-complex="IN"/>
+  </style:default-style>
+  <style:default-style style:family="graphic">
+   <style:graphic-properties svg:stroke-color="#3465a4" 
draw:fill-color="#729fcf" fo:wrap-option="no-wrap" 
draw:shadow-offset-x="0.1181in" draw:shadow-offset-y="0.1181in"/>
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" 
style:punctuation-wrap="simple" style:line-break="strict" 
style:writing-mode="page" style:font-independent-line-spacing="false">
+    <style:tab-stops/>
+   </style:paragraph-properties>
+   <style:text-properties style:use-window-font-color="true" 
fo:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" 
style:font-pitch="variable" fo:font-size="12pt" fo:language="en" 
fo:country="US" style:letter-kerning="true" style:font-name-asian="DejaVu Sans" 
style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" 
style:font-name-complex="DejaVu Sans" style:font-size-complex="12pt" 
style:language-complex="hi" style:country-complex="IN"/>
+  </style:default-style>
+  <number:number-style style:name="N0">
+   <number:number number:min-integer-digits="1"/>
+  </number:number-style>
+  <number:currency-style style:name="N121P0" style:volatile="true">
+   <number:number number:decimal-places="2" number:min-integer-digits="1" 
number:grouping="true"/>
+   <number:text> </number:text>
+   <number:currency-symbol number:language="hu" 
number:country="HU">Ft</number:currency-symbol>
+  </number:currency-style>
+  <number:currency-style style:name="N121">
+   <style:text-properties fo:color="#ff0000"/>
+   <number:text>-</number:text>
+   <number:number number:decimal-places="2" number:min-integer-digits="1" 
number:grouping="true"/>
+   <number:text> </number:text>
+   <number:currency-symbol number:language="hu" 
number:country="HU">Ft</number:currency-symbol>
+   <style:map style:condition="value()&gt;=0" style:apply-style-name="N121P0"/>
+  </number:currency-style>
+  <style:style style:name="Default" style:family="table-cell">
+   <style:text-properties style:font-name-asian="WenQuanYi Micro Hei" 
style:font-family-asian="&apos;WenQuanYi Micro Hei&apos;" 
style:font-family-generic-asian="system" style:font-pitch-asian="variable" 
style:font-name-complex="FreeSans" style:font-family-complex="FreeSans" 
style:font-family-generic-complex="system" style:font-pitch-complex="variable"/>
+  </style:style>
+  <style:style style:name="Result" style:family="table-cell" 
style:parent-style-name="Default">
+   <style:text-properties fo:font-style="italic" 
style:text-underline-style="solid" style:text-underline-width="auto" 
style:text-underline-color="font-color" fo:font-weight="bold"/>
+  </style:style>
+  <style:style style:name="Result2" style:family="table-cell" 
style:parent-style-name="Result" style:data-style-name="N121"/>
+  <style:style style:name="Heading" style:family="table-cell" 
style:parent-style-name="Default">
+   <style:table-cell-properties style:text-align-source="fix" 
style:repeat-content="false"/>
+   <style:paragraph-properties fo:text-align="center"/>
+   <style:text-properties fo:font-size="16pt" fo:font-style="italic" 
fo:font-weight="bold"/>
+  </style:style>
+  <style:style style:name="Heading1" style:family="table-cell" 
style:parent-style-name="Heading">
+   <style:table-cell-properties style:rotation-angle="90"/>
+  </style:style>
+ </office:styles>
+ <office:automatic-styles>
+  <style:style style:name="co1" style:family="table-column">
+   <style:table-column-properties fo:break-before="auto" 
style:column-width="0.889in"/>
+  </style:style>
+  <style:style style:name="ro1" style:family="table-row">
+   <style:table-row-properties style:row-height="0.178in" 
fo:break-before="auto" style:use-optimal-row-height="true"/>
+  </style:style>
+  <style:style style:name="ta1" style:family="table" 
style:master-page-name="Default">
+   <style:table-properties table:display="true" style:writing-mode="lr-tb"/>
+  </style:style>
+  <style:style style:name="gr1" style:family="graphic">
+   <style:graphic-properties draw:stroke="none" draw:fill="none" 
draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle" 
draw:ole-draw-aspect="1"/>
+  </style:style>
+  <style:page-layout style:name="pm1">
+   <style:page-layout-properties style:writing-mode="lr-tb"/>
+   <style:header-style>
+    <style:header-footer-properties fo:min-height="0.2953in" 
fo:margin-left="0in" fo:margin-right="0in" fo:margin-bottom="0.0984in"/>
+   </style:header-style>
+   <style:footer-style>
+    <style:header-footer-properties fo:min-height="0.2953in" 
fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0.0984in"/>
+   </style:footer-style>
+  </style:page-layout>
+  <style:page-layout style:name="pm2">
+   <style:page-layout-properties style:writing-mode="lr-tb"/>
+   <style:header-style>
+    <style:header-footer-properties fo:min-height="0.2953in" 
fo:margin-left="0in" fo:margin-right="0in" fo:margin-bottom="0.0984in" 
fo:border="2.49pt solid #000000" fo:padding="0.0071in" 
fo:background-color="#c0c0c0">
+     <style:background-image/>
+    </style:header-footer-properties>
+   </style:header-style>
+   <style:footer-style>
+    <style:header-footer-properties fo:min-height="0.2953in" 
fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0.0984in" 
fo:border="2.49pt solid #000000" fo:padding="0.0071in" 
fo:background-color="#c0c0c0">
+     <style:background-image/>
+    </style:header-footer-properties>
+   </style:footer-style>
+  </style:page-layout>
+  <style:style style:name="P1" style:family="paragraph">
+   <style:paragraph-properties fo:text-align="center"/>
+  </style:style>
+ </office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Default" style:page-layout-name="pm1">
+   <style:header>
+    <text:p><text:sheet-name>???</text:sheet-name></text:p>
+   </style:header>
+   <style:header-left style:display="false"/>
+   <style:footer>
+    <text:p>Oldal <text:page-number>1</text:page-number></text:p>
+   </style:footer>
+   <style:footer-left style:display="false"/>
+  </style:master-page>
+  <style:master-page style:name="Report" style:page-layout-name="pm2">
+   <style:header>
+    <style:region-left>
+     <text:p><text:sheet-name>???</text:sheet-name> 
(<text:title>???</text:title>)</text:p>
+    </style:region-left>
+    <style:region-right>
+     <text:p><text:date style:data-style-name="N2" 
text:date-value="2014-10-22">00/00/0000</text:date>, <text:time 
style:data-style-name="N2" 
text:time-value="15:03:18.803538570">00:00:00</text:time></text:p>
+    </style:region-right>
+   </style:header>
+   <style:header-left style:display="false"/>
+   <style:footer>
+    <text:p>Oldal <text:page-number>1</text:page-number> / 
<text:page-count>99</text:page-count></text:p>
+   </style:footer>
+   <style:footer-left style:display="false"/>
+  </style:master-page>
+ </office:master-styles>
+ <office:body>
+  <office:spreadsheet>
+   <table:table table:name="Sheet2" table:style-name="ta1">
+    <table:shapes>
+     <draw:frame draw:z-index="0" draw:style-name="gr1" 
draw:text-style-name="P1" svg:width="6.2988in" svg:height="3.5429in" 
svg:x="0.8894in" svg:y="0.8894in">
+      <draw:object draw:notify-on-update-of-ranges="Sheet1.A1:Sheet1.A1 
Sheet1.A2:Sheet1.A2">
+       <office:document 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; [...]
+        <office:meta><meta:generator>LibreOffice/4.3.1.2$Linux_x86 
LibreOffice_project/958349dc3b25111dbca392fbc281a05559ef6848</meta:generator></office:meta>
+        <office:styles/>
+        <office:automatic-styles>
+         <number:number-style style:name="N0">
+          <number:number number:min-integer-digits="1"/>
+         </number:number-style>
+         <style:style style:name="ch1" style:family="chart">
+          <style:graphic-properties draw:stroke="none"/>
+         </style:style>
+         <style:style style:name="ch2" style:family="chart">
+          <style:chart-properties chart:auto-position="true"/>
+          <style:graphic-properties draw:stroke="none" 
svg:stroke-color="#b3b3b3" draw:fill="none" draw:fill-color="#e6e6e6"/>
+          <style:text-properties fo:font-size="10pt" 
style:font-size-asian="10pt" style:font-size-complex="10pt"/>
+         </style:style>
+         <style:style style:name="ch3" style:family="chart">
+          <style:chart-properties chart:include-hidden-cells="false" 
chart:auto-position="true" chart:auto-size="true" 
chart:treat-empty-cells="leave-gap" chart:right-angled-axes="true"/>
+         </style:style>
+         <style:style style:name="ch4" style:family="chart" 
style:data-style-name="N0">
+          <style:chart-properties chart:display-label="true" 
chart:logarithmic="false" chart:reverse-direction="false" 
text:line-break="false" chart:link-data-style-to-source="true" 
chart:axis-position="0"/>
+          <style:graphic-properties svg:stroke-color="#b3b3b3"/>
+          <style:text-properties fo:font-size="10pt" 
style:font-size-asian="10pt" style:font-size-complex="10pt"/>
+         </style:style>
+         <style:style style:name="ch5" style:family="chart" 
style:data-style-name="N0">
+          <style:chart-properties chart:display-label="true" 
chart:logarithmic="false" chart:reverse-direction="false" 
text:line-break="false" chart:link-data-style-to-source="true" 
chart:axis-position="0"/>
+          <style:graphic-properties svg:stroke-color="#b3b3b3"/>
+          <style:text-properties fo:font-size="10pt" 
style:font-size-asian="10pt" style:font-size-complex="10pt"/>
+         </style:style>
+         <style:style style:name="ch6" style:family="chart">
+          <style:graphic-properties svg:stroke-color="#b3b3b3"/>
+         </style:style>
+         <style:style style:name="ch7" style:family="chart" 
style:data-style-name="N0">
+          <style:chart-properties chart:link-data-style-to-source="true"/>
+          <style:graphic-properties draw:stroke="none" 
draw:fill-color="#004586" dr3d:edge-rounding="5%"/>
+          <style:text-properties fo:font-size="10pt" 
style:font-size-asian="10pt" style:font-size-complex="10pt"/>
+         </style:style>
+         <style:style style:name="ch8" style:family="chart">
+          <style:graphic-properties draw:stroke="solid" 
svg:stroke-color="#b3b3b3" draw:fill="none" draw:fill-color="#e6e6e6"/>
+         </style:style>
+         <style:style style:name="ch9" style:family="chart">
+          <style:graphic-properties svg:stroke-color="#b3b3b3" 
draw:fill-color="#cccccc"/>
+         </style:style>
+        </office:automatic-styles>
+        <office:body>
+         <office:chart>
+          <chart:chart svg:width="16cm" svg:height="9cm" xlink:href=".." 
xlink:type="simple" chart:class="chart:bar" chart:style-name="ch1">
+           <chart:legend chart:legend-position="end" svg:x="15.006cm" 
svg:y="4.201cm" style:legend-expansion="high" chart:style-name="ch2"/>
+           <chart:plot-area chart:style-name="ch3" 
table:cell-range-address="Sheet1.A1:Sheet1.A2" 
chart:data-source-has-labels="row" svg:x="0.32cm" svg:y="0.18cm" 
svg:width="14.367cm" svg:height="8.64cm">
+            <chartooo:coordinate-region svg:x="1.047cm" svg:y="0.38cm" 
svg:width="13.64cm" svg:height="8.241cm"/>
+            <chart:axis chart:dimension="x" chart:name="primary-x" 
chart:style-name="ch4"/>
+            <chart:axis chart:dimension="y" chart:name="primary-y" 
chart:style-name="ch5">
+             <chart:grid chart:style-name="ch6" chart:class="major"/>
+            </chart:axis>
+            <chart:series chart:style-name="ch7" 
chart:values-cell-range-address="Sheet1.A2:Sheet1.A2" 
chart:label-cell-address="Sheet1.A1:Sheet1.A1" chart:class="chart:bar">
+             <chart:data-point/>
+            </chart:series>
+            <chart:wall chart:style-name="ch8"/>
+            <chart:floor chart:style-name="ch9"/>
+           </chart:plot-area>
+           <table:table table:name="local-table">
+            <table:table-header-columns>
+             <table:table-column/>
+            </table:table-header-columns>
+            <table:table-columns>
+             <table:table-column/>
+            </table:table-columns>
+            <table:table-header-rows>
+             <table:table-row>
+              <table:table-cell>
+               <text:p/>
+              </table:table-cell>
+              <table:table-cell office:value-type="string">
+               <text:p>A</text:p>
+               <draw:g>
+                <svg:desc>Sheet1.A1:Sheet1.A1</svg:desc></draw:g>
+              </table:table-cell>
+             </table:table-row>
+            </table:table-header-rows>
+            <table:table-rows>
+             <table:table-row>
+              <table:table-cell office:value-type="string"/>
+              <table:table-cell office:value-type="float" office:value="1">
+               <text:p>1</text:p>
+               <draw:g>
+                <svg:desc>Sheet1.A2:Sheet1.A2</svg:desc></draw:g>
+              </table:table-cell>
+             </table:table-row>
+            </table:table-rows>
+           </table:table>
+          </chart:chart>
+         </office:chart>
+        </office:body>
+       </office:document>
+      </draw:object><draw:image>
+       
<office:binary-data>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
+        
AQATAAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAAAAAC
+        
AQATAAAACQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAAC
+        
AQAeAAAAFABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAAAIBACAAAAAWAFhURVhUX1BB
+        
SU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMA
+        
AAAAAABhAQAA//8AAAIABQAAAAAAAAAJBAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwAB
+        
AAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgAuAAAAQQEAAGoXAAADAAAAMAAuADQAAAADAAMA
+        
AAC5AAAAIwEAANwBAAADADAALgA0AAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAAAAACAQAT
+        
AAAACQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAAAAACAQAT
+        
AAAACQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAe
+        
AAAAFABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5U
+        
U0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAA
+        
AABhAQAA//8AAAIABQAAAAAAAAAJBAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUA
+        
AAD/////AIYAAQAEAAAAAAAAAHEAAgAuAAAAQQEAAAwSAAADAAAAMAAuADYAAAADAAMAAAC5
+        
AAAAIwEAANwBAAADADAALgA2AAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAAAAACAQATAAAA
+        
CQBYVEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAAAAACAQATAAAA
+        
CQBYVEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAeAAAA
+        
FABYVEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hB
+        
UEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAABh
+        
AQAA//8AAAIABQAAAAAAAAAJBAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/
+        
////AIYAAQAEAAAAAAAAAHEAAgAuAAAAQQEAAK8MAAADAAAAMAAuADgAAAADAAMAAAC5AAAA
+        
IwEAANwBAAADADAALgA4AAACAQATAAAACQBYVEVYVF9FT0MAAAAAAAAAAAACAQATAAAACQBY
+        
VEVYVF9FT0MBAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT0MCAAAAAAAAAAACAQATAAAACQBY
+        
VEVYVF9FT0wAAAAAAAAAAAACAQATAAAACQBYVEVYVF9FT1AAAAAAAAAAAAACAQAeAAAAFABY
+        
VEVYVF9QQUlOVFNIQVBFX0VORAAAAAAAAAAAAAIBACAAAAAWAFhURVhUX1BBSU5UU0hBUEVf
+        
QkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNhbnMAAAAAAABhAQAA
+        
//8AAAIABQAAAAAAAAAJBAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEAhwABAAUAAAD/////
+        
AIYAAQAEAAAAAAAAAHEAAgAeAAAAZAIAAFEHAAABAAAAMQAAAAEAAQAAALkAAAABADEAAAIB
+        
ABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIB
+        
ABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5E
+        
AAAAAAAAAAAAAgEAIAAAABYAWFRFWFRfUEFJTlRTSEFQRV9CRUdJTgAAAAAAAAAAigABAEEA
+        
AAADADsAAAAPAExpYmVyYXRpb24gU2FucwAAAAAAAGEBAAD//wAAAgAFAAAAAAAAAAkEAAAA
+        
AAAAAAAA/wMAAAAAAIgAAQACAAAAAQCHAAEABQAAAP////8AhgABAAQAAAAAAAAAcQACAC4A
+        
AABBAQAA8wEAAAMAAAAxAC4AMgAAAAMAAwAAALkAAAAjAQAA3AEAAAMAMQAuADIAAAIBABMA
+        
AAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPQwEAAAAAAAAAAAIBABMA
+        
AAAJAFhURVhUX0VPQwIAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPTAAAAAAAAAAAAAIBABMA
+        
AAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BBSU5UU0hBUEVfRU5EAAAA
+        
AAAAAACFAAEABQAAAIZFAAABhAABAAUAAAAAAAAAAG8AAgA2AAAAAQAGAHw7AAD9EQAAEjsA
+        
AP0RAAASOwAAKhEAAOU7AAAqEQAA5TsAAP0RAAB8OwAA/REAAAAAAAIBACAAAAAWAFhURVhU
+        
X1BBSU5UU0hBUEVfQkVHSU4AAAAAAAAAAIoAAQBBAAAAAwA7AAAADwBMaWJlcmF0aW9uIFNh
+        
bnMAAAAAAABhAQAA//8AAAIABQAAAAAAAAAJBAAAAAAAAAAAAP8DAAAAAACIAAEAAgAAAAEA
+        
hwABAAUAAAD/////AIYAAQAEAAAAAAAAAHEAAgAeAAAASTwAAAsSAAABAAAAQQAAAAEAAQAA
+        
AO4AAAABAEEAAAIBABMAAAAJAFhURVhUX0VPQwAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VP
+        
TAAAAAAAAAAAAAIBABMAAAAJAFhURVhUX0VPUAAAAAAAAAAAAAIBAB4AAAAUAFhURVhUX1BB
+        
SU5UU0hBUEVfRU5EAAAAAAAAAACMAAEAAAAAAIsAAQACAAAAIACCAAEAIQAAAAIAGwAAAAIA
+        AgAAAAAAAAAnIwAAAQAAAAAAfz4AAAIAAIwAAQAAAAAAjAABAAAAAAA=
+       </office:binary-data>
+      </draw:image>
+     </draw:frame></table:shapes>
+    <table:table-column table:style-name="co1" 
table:default-cell-style-name="Default"/>
+    <table:table-row table:style-name="ro1">
+     <table:table-cell/>
+    </table:table-row>
+   </table:table>
+   <table:table table:name="Sheet1" table:style-name="ta1">
+    <table:table-column table:style-name="co1" 
table:default-cell-style-name="Default"/>
+    <table:table-row table:style-name="ro1">
+     <table:table-cell office:value-type="string" calcext:value-type="string">
+      <text:p>A</text:p>
+     </table:table-cell>
+    </table:table-row>
+    <table:table-row table:style-name="ro1">
+     <table:table-cell office:value-type="float" office:value="1" 
calcext:value-type="float">
+      <text:p>1</text:p>
+     </table:table-cell>
+    </table:table-row>
+   </table:table>
+   <table:named-expressions/>
+  </office:spreadsheet>
+ </office:body>
+</office:document>
\ No newline at end of file

Reply via email to