[Libreoffice-commits] core.git: Branch 'feature/cib_contract136' - 30 commits - configure.ac cppcanvas/source hwpfilter/source oox/source package/source postprocess/CustomTarget_signing.mk sc/qa sc/source sot/source sw/qa sw/source vcl/source vcl/unx writerfilter/source xmloff/source

Thorsten Behrens Thorsten.Behrens at CIB.de
Fri Jun 1 12:28:37 UTC 2018


 configure.ac                                             |    2 
 cppcanvas/source/mtfrenderer/emfplus.cxx                 |   16 
 hwpfilter/source/hcode.cxx                               |   30 
 hwpfilter/source/hwpfile.h                               |    2 
 oox/source/ole/vbacontrol.cxx                            |   10 
 package/source/zipapi/MemoryByteGrabber.hxx              |    2 
 package/source/zipapi/ZipFile.cxx                        |   10 
 postprocess/CustomTarget_signing.mk                      |    1 
 sc/qa/unit/data/xls/fail/forcepoint-group-range-1.xls    |binary
 sc/qa/unit/data/xls/pass/forcepoint-selfseriesadd.xls    |binary
 sc/source/core/data/column3.cxx                          |    4 
 sc/source/filter/excel/xichart.cxx                       |   23 
 sc/source/filter/xml/xmlcelli.cxx                        |    2 
 sc/source/ui/inc/viewdata.hxx                            |    4 
 sc/source/ui/view/viewdata.cxx                           |   12 
 sot/source/sdstor/stgstrms.cxx                           |    4 
 sw/qa/core/data/odt/fail/forcepoint-dtor-1.odt           |binary
 sw/qa/core/data/rtf/fail/forcepoint-7.rtf                |  517 +++++++++++++++
 sw/qa/core/data/rtf/pass/forcepoint-1.rtf                |  193 +++++
 sw/source/core/txtnode/fntcache.cxx                      |    3 
 sw/source/filter/ww8/ww8toolbar.cxx                      |    4 
 sw/source/filter/xml/xmlimp.cxx                          |    5 
 sw/source/filter/xml/xmltbli.cxx                         |    7 
 sw/source/filter/xml/xmltexti.cxx                        |   11 
 vcl/source/gdi/pdfwriter_impl2.cxx                       |   27 
 vcl/source/helper/strhelper.cxx                          |    9 
 vcl/unx/generic/glyphs/freetype_glyphcache.cxx           |    4 
 vcl/unx/generic/printer/jobdata.cxx                      |   14 
 writerfilter/source/dmapper/DomainMapperTableManager.cxx |   13 
 writerfilter/source/dmapper/DomainMapperTableManager.hxx |    1 
 writerfilter/source/dmapper/TableManager.cxx             |    2 
 writerfilter/source/rtftok/rtfdispatchvalue.cxx          |    2 
 xmloff/source/draw/ximpcustomshape.cxx                   |    2 
 xmloff/source/text/txtparai.cxx                          |   15 
 34 files changed, 877 insertions(+), 74 deletions(-)

New commits:
commit c390f39347260fadc4fb573e82a12ea91c6208a7
Author: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Date:   Fri Jun 1 14:27:41 2018 +0200

    Bump version to 5.2.7.6
    
    Change-Id: I0bbcaca0e6113f2fca7af73369e64f5152d41fce

diff --git a/configure.ac b/configure.ac
index 95d0bd52c77f..a4534231b499 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no idea.
 
-AC_INIT([LibreOffice],[5.2.7.5],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[5.2.7.6],[],[],[http://documentfoundation.org/])
 
 AC_PREREQ([2.59])
 
commit 6fbb3777c099f6186a3a460d9879e80bded76d81
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue May 1 12:57:02 2018 +0100

    set Referer on link mediadescriptor
    
    to allow determining if the source document is from a trusted/untrusted
    location
    
    Reviewed-on: https://gerrit.libreoffice.org/53693
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    (cherry picked from commit cd25a97bbadc0a5c1fd6b0e8603c8b6ebd051926)
    
    Reviewed-on: https://gerrit.libreoffice.org/53803
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
    Tested-by: Mike Kaganski <mike.kaganski at collabora.com>
    (cherry picked from commit 2d87c267267530077a94c894bc619831b01d1c04)
    
    Conflicts:
            sw/source/filter/xml/xmltexti.cxx
    
    Change-Id: I780568652d2ef0cc8543c27ba26289277b5d9d0c

diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx
index 710f010b1cdc..943db05c75bf 100644
--- a/sw/source/filter/xml/xmltexti.cxx
+++ b/sw/source/filter/xml/xmltexti.cxx
@@ -577,16 +577,21 @@ uno::Reference< XPropertySet > SwXMLTextImportHelper::createAndInsertOOoLink(
         uno::Sequence< beans::PropertyValue > aMediaDescriptor( 1 );
         aMediaDescriptor[0].Name = "URL";
         aMediaDescriptor[0].Value <<= OUString( aURLObj.GetMainURL( INetURLObject::NO_DECODE ) );
-        if ( pDoc->GetDocShell() && pDoc->GetDocShell()->GetMedium() )
+
+        if (SfxMedium* pMedium = pDoc->GetDocShell() ? pDoc->GetDocShell()->GetMedium() : nullptr)
         {
-            uno::Reference< task::XInteractionHandler > xInteraction =
-                                        pDoc->GetDocShell()->GetMedium()->GetInteractionHandler();
+            uno::Reference< task::XInteractionHandler > xInteraction = pMedium->GetInteractionHandler();
             if ( xInteraction.is() )
             {
                 aMediaDescriptor.realloc( 2 );
                 aMediaDescriptor[1].Name = "InteractionHandler";
                 aMediaDescriptor[1].Value <<= xInteraction;
             }
+
+            const auto nLen = aMediaDescriptor.getLength() + 1;
+            aMediaDescriptor.realloc(nLen);
+            aMediaDescriptor[nLen - 1].Name = "Referer";
+            aMediaDescriptor[nLen - 1].Value <<= pMedium->GetName();
         }
 
         uno::Reference < embed::XEmbeddedObject > xObj(
commit 4b63f21d3933dcdbff3343e1a6daa97eb17d47f2
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Nov 27 16:29:37 2017 +0000

    keep track of available data
    
    Change-Id: Idc54cdef0f3a4355a7e26f25cdc5b50d65d9d583
    Reviewed-on: https://gerrit.libreoffice.org/45354
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit 35376a21e6bd3d7eede07b1e8f359f728b5c54c9)

diff --git a/package/source/zipapi/MemoryByteGrabber.hxx b/package/source/zipapi/MemoryByteGrabber.hxx
index 2beb8f5eccb7..e3326e2b9d33 100644
--- a/package/source/zipapi/MemoryByteGrabber.hxx
+++ b/package/source/zipapi/MemoryByteGrabber.hxx
@@ -39,6 +39,8 @@ public:
     }
     const sal_Int8 * getCurrentPos () { return mpBuffer + mnCurrent; }
 
+    sal_Int32 remainingSize() const { return mnEnd - mnCurrent; }
+
     // XInputStream chained
 
     void SAL_CALL skipBytes( sal_Int32 nBytesToSkip )
diff --git a/package/source/zipapi/ZipFile.cxx b/package/source/zipapi/ZipFile.cxx
index 8153aee7e0fd..037e08e2eaad 100644
--- a/package/source/zipapi/ZipFile.cxx
+++ b/package/source/zipapi/ZipFile.cxx
@@ -946,6 +946,9 @@ sal_Int32 ZipFile::readCEN()
             if ( aEntry.nExtraLen < 0 )
                 throw ZipException("unexpected extra header info length" );
 
+            if (aEntry.nPathLen > aMemGrabber.remainingSize())
+                throw ZipException("name too long");
+
             // read always in UTF8, some tools seem not to set UTF8 bit
             aEntry.sPath = OUString::intern ( reinterpret_cast<char const *>(aMemGrabber.getCurrentPos()),
                                                    aEntry.nPathLen,
commit e32d481df19d6b93d9d66eea36ce314d3f5080c6
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Feb 9 10:49:39 2018 +0000

    ofz#6173 check index before use
    
    Change-Id: I09d15ab324af0a8b3566f11868eb3266a68c4afe
    Reviewed-on: https://gerrit.libreoffice.org/49500
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit e355d7d691cfe9719b06e15129d86ec22a2bd7a4)

diff --git a/sw/source/filter/ww8/ww8toolbar.cxx b/sw/source/filter/ww8/ww8toolbar.cxx
index 056839aae6e9..abdc9458f212 100644
--- a/sw/source/filter/ww8/ww8toolbar.cxx
+++ b/sw/source/filter/ww8/ww8toolbar.cxx
@@ -166,7 +166,9 @@ bool SwCTBWrapper::Read( SvStream& rS )
     std::vector< sal_Int16 >::iterator it_end = dropDownMenuIndices.end();
     for ( std::vector< sal_Int16 >::iterator it = dropDownMenuIndices.begin(); it != it_end; ++it )
     {
-        rCustomizations[ *it ].bIsDroppedMenuTB = true;
+        if (*it < 0 || static_cast<size_t>(*it) >= rCustomizations.size())
+            continue;
+        rCustomizations[*it].bIsDroppedMenuTB = true;
     }
     return rS.good();
 }
commit a6ea8de2de3c8fed0d9045a160c2ac9f9c08bf13
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 27 19:38:12 2018 +0000

    ofz#5747 short->sal_Int32 like in StgDataStrm
    
    Change-Id: I254c00b1142d7187beabe5d18532efec036de494
    Reviewed-on: https://gerrit.libreoffice.org/48757
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    (cherry picked from commit 59cf6c6128f67d807de58fae2d7fae2b4909ad68)

diff --git a/sot/source/sdstor/stgstrms.cxx b/sot/source/sdstor/stgstrms.cxx
index 4f749486c1cc..212949d546d2 100644
--- a/sot/source/sdstor/stgstrms.cxx
+++ b/sot/source/sdstor/stgstrms.cxx
@@ -1047,7 +1047,7 @@ sal_Int32 StgSmallStrm::Read( void* pBuf, sal_Int32 n )
     // small stream is likely to be < 64 KBytes.
     if( ( m_nPos + n ) > m_nSize )
         n = m_nSize - m_nPos;
-    short nDone = 0;
+    sal_Int32 nDone = 0;
     while( n )
     {
         short nBytes = m_nPageSize - m_nOffset;
@@ -1078,7 +1078,7 @@ sal_Int32 StgSmallStrm::Write( const void* pBuf, sal_Int32 n )
 {
     // you can safely assume that reads are not huge, since the
     // small stream is likely to be < 64 KBytes.
-    short nDone = 0;
+    sal_Int32 nDone = 0;
     if( ( m_nPos + n ) > m_nSize )
     {
         sal_Int32 nOld = m_nPos;
commit 6f26e512ef349da114a33f87aa0f8265e90b6c7b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 12:49:54 2018 +0100

    forcepoint #33 ensure payload is a EMFPPath
    
    Change-Id: I0a9f332cc66e43caa4e1611006fa765cad063539
    Reviewed-on: https://gerrit.libreoffice.org/51916
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx
index 8c0b73b5ef1b..ea59720c1b16 100644
--- a/cppcanvas/source/mtfrenderer/emfplus.cxx
+++ b/cppcanvas/source/mtfrenderer/emfplus.cxx
@@ -1933,7 +1933,7 @@ namespace cppcanvas
 
                             SAL_INFO("cppcanvas.emf", "EMF+ FillPath slot: " << index);
 
-                            EMFPPath* path = static_cast<EMFPPath*>(aObjects[index]);
+                            EMFPPath* path = dynamic_cast<EMFPPath*>(aObjects[index]);
                             if (path)
                                 EMFPPlusFillPolygon(path->GetPolygon (*this), rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor);
                             else
@@ -2062,7 +2062,7 @@ namespace cppcanvas
                             SAL_INFO("cppcanvas.emf", "EMF+ DrawPath");
                             SAL_INFO("cppcanvas.emf", "EMF+\tpen: " << penIndex);
 
-                            EMFPPath* path = static_cast<EMFPPath*>( aObjects [flags & 0xff] );
+                            EMFPPath* path = dynamic_cast<EMFPPath*>( aObjects [flags & 0xff] );
                             if (path)
                                 EMFPPlusDrawPolygon(path->GetPolygon (*this), rFactoryParms, rState, rCanvas, penIndex);
                             else
commit e5731a3e35b2966de319b14215b44d42cbf37a9d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 13:44:31 2018 +0100

    forcepoint #34 survive missing autostyles
    
    Change-Id: I742816297659d614e836a8d5e8965b1c55154719
    Reviewed-on: https://gerrit.libreoffice.org/51892
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
index 4670aed7b050..3d7c2eb15a87 100644
--- a/sc/source/filter/xml/xmlcelli.cxx
+++ b/sc/source/filter/xml/xmlcelli.cxx
@@ -389,6 +389,8 @@ void ScXMLTableRowCellContext::PushFormat(sal_Int32 nBegin, sal_Int32 nEnd, cons
     sal_Int32 nEntryCount = xMapper->GetEntryCount();
 
     SvXMLStylesContext* pAutoStyles = GetImport().GetAutoStyles();
+    if (!pAutoStyles)
+        return;
 
     // Style name for text span corresponds with the name of an automatic style.
     const XMLPropStyleContext* pStyle = dynamic_cast<const XMLPropStyleContext*>(
commit 520fddb9cc4c1362349d51ee1a66b0db79c7609a
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 12:59:14 2018 +0100

    forcepoint #32 survive missing value range
    
    Change-Id: I90315f0481bf73c4d9071959bf5408f4a2690257
    Reviewed-on: https://gerrit.libreoffice.org/51886
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sc/source/filter/excel/xichart.cxx b/sc/source/filter/excel/xichart.cxx
index adff4074cf62..1ab405d0524a 100644
--- a/sc/source/filter/excel/xichart.cxx
+++ b/sc/source/filter/excel/xichart.cxx
@@ -3363,15 +3363,19 @@ Reference< XAxis > XclImpChAxis::CreateAxis( const XclImpChTypeGroup& rTypeGroup
         {
             case cssc2::AxisType::CATEGORY:
             case cssc2::AxisType::SERIES:
-                OSL_ENSURE( mxLabelRange, "Missing Label Range" );
                 // #i71684# radar charts have reversed rotation direction
                 if (mxLabelRange)
                     mxLabelRange->Convert( aAxisProp, aScaleData, rTypeInfo.meTypeCateg == EXC_CHTYPECATEG_RADAR );
+                else
+                    SAL_WARN("sc.filter", "missing LabelRange");
             break;
             case cssc2::AxisType::REALNUMBER:
             case cssc2::AxisType::PERCENT:
                 // #i85167# pie/donut charts have reversed rotation direction (at Y axis!)
-                mxValueRange->Convert( aScaleData, rTypeInfo.meTypeCateg == EXC_CHTYPECATEG_PIE );
+                if (mxValueRange)
+                    mxValueRange->Convert( aScaleData, rTypeInfo.meTypeCateg == EXC_CHTYPECATEG_PIE );
+                else
+                    SAL_WARN("sc.filter", "missing ValueRange");
             break;
             default:
                 OSL_FAIL( "XclImpChAxis::CreateAxis - unknown axis type" );
@@ -3420,12 +3424,18 @@ void XclImpChAxis::ConvertAxisPosition( ScfPropertySet& rPropSet, const XclImpCh
 {
     if( ((GetAxisType() == EXC_CHAXIS_X) && rTypeGroup.GetTypeInfo().mbCategoryAxis) || (GetAxisType() == EXC_CHAXIS_Z) )
     {
-        OSL_ENSURE( mxLabelRange, "Missing Label Range" );
         if (mxLabelRange)
             mxLabelRange->ConvertAxisPosition( rPropSet, rTypeGroup.Is3dChart() );
+        else
+            SAL_WARN("sc.filter", "missing LabelRange");
     }
     else
-        mxValueRange->ConvertAxisPosition( rPropSet );
+    {
+        if (mxValueRange)
+            mxValueRange->ConvertAxisPosition( rPropSet );
+        else
+            SAL_WARN("sc.filter", "missing ValueRange");
+    }
 }
 
 void XclImpChAxis::ReadChAxisLine( XclImpStream& rStrm )
commit 346d1a8a0ac46100412abd1de5801f66fc7e8da5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 12:50:20 2018 +0100

    forcepoint #31 check validity of another group range
    
    Change-Id: I82ff3e47a033c91581b108e1685b1ff4d5865895
    Reviewed-on: https://gerrit.libreoffice.org/51883
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 47a69052d660..712ca69fbe10 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -3024,6 +3024,8 @@ public:
             {
                 // Previous cell is a regular cell and current cell is a group.
                 nRow += xCurGrp->mnLength;
+                if (xCurGrp->mnLength > std::distance(it, itEnd))
+                    throw css::lang::IllegalArgumentException();
                 std::advance(it, xCurGrp->mnLength);
                 pPrev->SetCellGroup(xCurGrp);
                 xCurGrp->mpTopCell = pPrev;
commit 0faac780ee5074cae0803d38cff42ed3ef6577cd
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 09:32:14 2018 +0100

    forcepoint #31 survive missing control model
    
    Change-Id: I37e4af560b46b4f6d9e0b87fe58493818f366d3c
    Reviewed-on: https://gerrit.libreoffice.org/51878
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/oox/source/ole/vbacontrol.cxx b/oox/source/ole/vbacontrol.cxx
index 805bb2d7a504..e6f0d14b99da 100644
--- a/oox/source/ole/vbacontrol.cxx
+++ b/oox/source/ole/vbacontrol.cxx
@@ -431,7 +431,13 @@ void VbaFormControl::importStorage( StorageBase& rStrg, const AxClassTable& rCla
 
                 for ( ; it != it_end; ++it )
                 {
-                    if ( (*it)->mxCtrlModel->getControlType() == API_CONTROL_PAGE )
+                    auto& elem = (*it)->mxCtrlModel;
+                    if (!elem)
+                    {
+                        SAL_WARN("oox", "empty control model");
+                        continue;
+                    }
+                    if (elem->getControlType() == API_CONTROL_PAGE)
                     {
                         VbaSiteModelRef xPageSiteRef = (*it)->mxSiteModel;
                         if ( xPageSiteRef.get() )
@@ -439,7 +445,7 @@ void VbaFormControl::importStorage( StorageBase& rStrg, const AxClassTable& rCla
                     }
                     else
                     {
-                        AxTabStripModel* pTabStrip = static_cast<AxTabStripModel*> ( (*it)->mxCtrlModel.get() );
+                        AxTabStripModel* pTabStrip = static_cast<AxTabStripModel*>(elem.get());
                         sCaptions = pTabStrip->maItems;
                         pMultiPage->mnActiveTab = pTabStrip->mnListIndex;
                         pMultiPage->mnTabStyle = pTabStrip->mnTabStyle;
commit dd7dbf3b3f589c4285da56b213947fad5d5dd93e
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 12:14:23 2018 +0100

    forcepoint #32 survive missing emf paths
    
    Change-Id: Ic27c3bbac12f66b30ff2f30f558180127cc73a51
    Reviewed-on: https://gerrit.libreoffice.org/51876
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx
index 0b31a3a96a87..8c0b73b5ef1b 100644
--- a/cppcanvas/source/mtfrenderer/emfplus.cxx
+++ b/cppcanvas/source/mtfrenderer/emfplus.cxx
@@ -1933,7 +1933,12 @@ namespace cppcanvas
 
                             SAL_INFO("cppcanvas.emf", "EMF+ FillPath slot: " << index);
 
-                            EMFPPlusFillPolygon( static_cast<EMFPPath*>( aObjects [index])->GetPolygon (*this), rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor);
+                            EMFPPath* path = static_cast<EMFPPath*>(aObjects[index]);
+                            if (path)
+                                EMFPPlusFillPolygon(path->GetPolygon (*this), rFactoryParms, rState, rCanvas, flags & 0x8000, brushIndexOrColor);
+                            else
+                                SAL_WARN("cppcanvas.emf", "EmfPlusRecordTypeFillPath missing path");
+
                         }
                         break;
                     case EmfPlusRecordTypeDrawEllipse:
@@ -2058,9 +2063,10 @@ namespace cppcanvas
                             SAL_INFO("cppcanvas.emf", "EMF+\tpen: " << penIndex);
 
                             EMFPPath* path = static_cast<EMFPPath*>( aObjects [flags & 0xff] );
-                            SAL_WARN_IF( !path, "cppcanvas.emf", "EmfPlusRecordTypeDrawPath missing path" );
-
-                            EMFPPlusDrawPolygon (path->GetPolygon (*this), rFactoryParms, rState, rCanvas, penIndex);
+                            if (path)
+                                EMFPPlusDrawPolygon(path->GetPolygon (*this), rFactoryParms, rState, rCanvas, penIndex);
+                            else
+                                SAL_WARN("cppcanvas.emf", "EmfPlusRecordTypeDrawPath missing path");
 
                             break;
                         }
commit ae20434a0f186df2f4a6e6def1b6d1953ac2df27
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 09:23:48 2018 +0100

    forcepoint #30 check validity of group range
    
    Change-Id: Ie0611f36809b051ce46030e44c137b4e1f8d2fe0
    Reviewed-on: https://gerrit.libreoffice.org/51865
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sc/qa/unit/data/xls/fail/forcepoint-group-range-1.xls b/sc/qa/unit/data/xls/fail/forcepoint-group-range-1.xls
new file mode 100755
index 000000000000..1aca9c7f113e
Binary files /dev/null and b/sc/qa/unit/data/xls/fail/forcepoint-group-range-1.xls differ
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 27abbbf249fe..47a69052d660 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -3000,6 +3000,8 @@ public:
                     xPrevGrp->mnLength += xCurGrp->mnLength;
                     pCur->SetCellGroup(xPrevGrp);
                     sc::formula_block::iterator itGrpEnd = it;
+                    if (xCurGrp->mnLength > std::distance(itGrpEnd, itEnd))
+                        throw css::lang::IllegalArgumentException();
                     std::advance(itGrpEnd, xCurGrp->mnLength);
                     for (++it; it != itGrpEnd; ++it)
                     {
commit 5266c44a7a9d2288405baf9dc34b27f00d636ec8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 08:57:09 2018 +0100

    forcepoint #29 detect illegal self series add
    
    Change-Id: I3bba0f942780c54951a3a810c05cc3b56ca18a5e
    Reviewed-on: https://gerrit.libreoffice.org/51862
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sc/qa/unit/data/xls/pass/forcepoint-selfseriesadd.xls b/sc/qa/unit/data/xls/pass/forcepoint-selfseriesadd.xls
new file mode 100755
index 000000000000..e5eafd262520
Binary files /dev/null and b/sc/qa/unit/data/xls/pass/forcepoint-selfseriesadd.xls differ
diff --git a/sc/source/filter/excel/xichart.cxx b/sc/source/filter/excel/xichart.cxx
index 09bd891da9c5..adff4074cf62 100644
--- a/sc/source/filter/excel/xichart.cxx
+++ b/sc/source/filter/excel/xichart.cxx
@@ -1873,6 +1873,11 @@ void XclImpChSeries::SetDataLabel( const XclImpChTextRef& xLabel )
 void XclImpChSeries::AddChildSeries( const XclImpChSeries& rSeries )
 {
     OSL_ENSURE( !HasParentSeries(), "XclImpChSeries::AddChildSeries - not allowed for child series" );
+    if (&rSeries == this)
+    {
+        SAL_WARN("sc.filter", "self add attempt");
+        return;
+    }
 
     /*  In Excel, trend lines and error bars are stored as own series. In Calc,
         these are properties of the parent series. This function adds the
commit fc65f0aa8ababc8a4a673df1ab897d174ba6b0d7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 08:45:21 2018 +0100

    forcepoint #28 missing cell on abw import
    
    Change-Id: I7633a17afab5aa2eb9e47a552bd5d92c87d383c7
    Reviewed-on: https://gerrit.libreoffice.org/51853
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
index d8f0d8d7ae60..8669290fa20b 100644
--- a/sw/source/filter/xml/xmltbli.cxx
+++ b/sw/source/filter/xml/xmltbli.cxx
@@ -19,6 +19,7 @@
 
 #include "hintids.hxx"
 
+#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/text/XTextTable.hpp>
 #include <com/sun/star/table/XCellRange.hpp>
@@ -1658,8 +1659,10 @@ void SwXMLTableContext::InsertCell( const OUString& rStyleName,
         for( sal_uInt32 j=nRowSpan; j>0UL; --j )
         {
             const bool bCovered = i != nColSpan || j != nRowSpan;
-            GetCell( nRowsReq-j, nColsReq-i )
-                ->Set( sStyleName, j, i, pStartNode,
+            SwXMLTableCell_Impl *pCell = GetCell( nRowsReq-j, nColsReq-i );
+            if (!pCell)
+                throw css::lang::IndexOutOfBoundsException();
+            pCell->Set( sStyleName, j, i, pStartNode,
                        pTable, bProtect, pFormula, bHasValue, bCovered, fValue,
                        pStringValue, i_rXmlId );
         }
commit e5297ce62f8ffcc169e1eb3ba55d01cf542bfae1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 26 14:06:34 2018 +0100

    forcepoint #35 handle odd number of dimension fragments
    
    Change-Id: I97e4e1b38d80276077b3427c90ae33023afb5e59
    Reviewed-on: https://gerrit.libreoffice.org/51901
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx
index 9f482d98092e..0fcff9160672 100644
--- a/xmloff/source/draw/ximpcustomshape.cxx
+++ b/xmloff/source/draw/ximpcustomshape.cxx
@@ -481,7 +481,7 @@ void GetSizeSequence( std::vector< css::beans::PropertyValue >& rDest,
 
     if ( !vNum.empty() )
     {
-        uno::Sequence< awt::Size > aSizeSeq( vNum.size() / 2 );
+        uno::Sequence< awt::Size > aSizeSeq((vNum.size() + 1) / 2);
         std::vector< sal_Int32 >::const_iterator aIter = vNum.begin();
         std::vector< sal_Int32 >::const_iterator aEnd = vNum.end();
         awt::Size* pValues = aSizeSeq.getArray();
commit 19a255e91730fcac22b7ea7a39269ab6f99fbaa3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Mar 29 17:42:12 2018 +0100

    forcepoint#36 avoid dangling SvTextShapeImportHelper in case of exceptions
    
    Change-Id: Ibdbc047029c31d2b06d2349d68e1cbd9b15fd514
    Reviewed-on: https://gerrit.libreoffice.org/52137
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sw/qa/core/data/odt/fail/forcepoint-dtor-1.odt b/sw/qa/core/data/odt/fail/forcepoint-dtor-1.odt
new file mode 100755
index 000000000000..6442200cdeda
Binary files /dev/null and b/sw/qa/core/data/odt/fail/forcepoint-dtor-1.odt differ
diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
index 8ee58ceb6bfc..e056f1078047 100644
--- a/sw/source/filter/xml/xmlimp.cxx
+++ b/sw/source/filter/xml/xmlimp.cxx
@@ -420,6 +420,11 @@ SwXMLImport::SwXMLImport(
 
 SwXMLImport::~SwXMLImport() throw ()
 {
+    if (HasShapeImport())
+    {
+        SAL_WARN("sw", "endDocument skipped, dropping shapes now to avoid dangling SvTextShapeImportHelper pointing to this");
+        ClearShapeImport();
+    }
     delete m_pDocElemTokenMap;
     delete m_pTableElemTokenMap;
     delete m_pTableCellAttrTokenMap;
commit 9a991eab56008e5937c9928fb2c2b4055c778e08
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 12 10:24:55 2018 +0000

    forcepoint #24 back() on empty vector
    
    Thanks to Antti Levomäki and Christian Jalio from Forcepoint.
    
    Change-Id: Idb6723b53a1ae8aaca80847bfe643bc4abaedd21
    Reviewed-on: https://gerrit.libreoffice.org/51123
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sw/qa/core/data/rtf/fail/forcepoint-7.rtf b/sw/qa/core/data/rtf/fail/forcepoint-7.rtf
new file mode 100755
index 000000000000..e5b227346108
--- /dev/null
+++ b/sw/qa/core/data/rtf/fail/forcepoint-7.rtf
@@ -0,0 +1,517 @@
+{\rtf1\ânsi\ansicpg1252\deflang3081\ftnbj\uc1\deff0
+{\fonttbl{\f0 \fswiss \fcharset1 Arial;}{\f1 \froman \fcharset2 Times New Roman;}{\f2 \froman \fcharset2 Symbol;}{\f3 \fswiss \fcharset0 Times New Roman;}{\f4 \fswiss \fcharset2 Symbol;}{\f5 \froman \fcharset0 Arial;}{\f6 \fswiss \fcharset0 Lucida Sans;}{\f7 \fswiss \fcharset0 Arial;}{\f8 \fswiss \fcharset1 Wingdings;}}
+{\colortbl ;\red0\green0\blue0 ;\red255\green255\blue255 ;\red255\green255\blue128 ;\red0\green64\blue128 ;\red0\green0\blue255 ;\red0\green0\blue160 ;}
+{\stylesheet{\f0\fs20\cf1\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Normal;}{\cs1\f0\fs24\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0 Default Paragraph Font;}{\cs2\f6\fs16\b\protect\cf1\cb3\chcbpat3\expnd0\expndtw0\charscalex100\dn0 SSBookmark;}{\s3\snext0\outlinelevel0\f0\fs32\b\cf1\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel0 Heading 1;}{\s4\snext0\outlinelevel1\f0\fs24\b\cf1\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel1 Heading 2;}{\s5\snext0\outlinelevel2\f0\fs24\b\cf1\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel2 Heading 3
+;}{\s6\snext0\outlinelevel3\f0\fs24\b\cf1\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel3 Heading 4;}{\s7\snext0\outlinelevel4\f0\fs24\b\i\cf1\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel4 Heading 5;}{\s8\snext0\outlinelevel5\f0\fs20\b\cf1\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel5 Heading 6;}{\s9\snext0\outlinelevel6\f0\fs24\cf4\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel6 Heading 7;}{\s10\snext0\outlinelevel7\f0\fs24\i\cf4\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel7 Heading 8
+;}{\s11\snext0\outlinelevel8\f0\fs22\cf4\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0\outlinelevel8 Heading 9;}{\s12\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 TOC 1;}{\s13\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li180\ri0\sb0\sa0\sl0\shading0 TOC 2;}{\s14\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li360\ri0\sb0\sa0\sl0\shading0 TOC 3;}{\s15\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li540\ri0\sb0\sa0\sl0\shading0 TOC 4;}{\s16\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li720\ri0\sb0\sa0\sl0\shading0 TOC 5
+;}{\s17\snext0\f0\fs24\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li900\ri0\sb0\sa0\sl0\shading0 TOC 6;}{\s18\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li1080\ri0\sb0\sa0\sl0\shading0 TOC 7;}{\s19\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li1260\ri0\sb0\sa0\sl0\shading0 TOC 8;}{\s20\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li1440\ri0\sb0\sa0\sl0\shading0 TOC 9;}{\s21\snext0\f0\fs32\b\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb240\sa60\sl0\shading0\qc Title;}{\s22\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi-360\li360\ri0\sb0\sa0\sl0\shading0 Numbered List
+;}{\s23\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi-360\li360\ri0\sb0\sa0\sl0\shading0 Bulleted List;}{\s24\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa120\sl0\shading0 Body Text;}{\s25\snext0\f0\fs18\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa120\sl0\sl480\slmult1\shading0 Body Text 2;}{\s26\snext0\f0\fs16\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa120\sl0\shading0 Body Text 3;}{\s27\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Note Heading;}{\s28\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Plain Text
+;}{\s29\snext0\f0\fs20\b\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Strong;}{\s30\snext0\f0\fs20\i\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Emphasis;}{\s31\snext0\f0\fs20\ul\cf5\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Hyperlink;}{\s32\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Footer;}{\s33\snext0\f0\fs20\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Header;}{\s34\snext0\f0\fs18\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 Code
+;}{\cs35\f0\fs20\i\cf4\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0 Field Label;}{\cs36\f0\fs22\b\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0 Table Heading;}{\cs37\f0\fs20\b\ul\cf0\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0 Object type;}{\s38\snext0\f0\fs20\b\i\cf6\cb2\chcbpat2\expnd0\expndtw0\charscalex100\dn0\fi0\li0\ri0\sb0\sa0\sl0\shading0 List Header;}{\s39\snext24\f0\fs20\i\cf5\fi0\li0\ri0\sb0\sa120\sl240 InfoBlue;}}
+{\*\revtbl{Unknown;}}
+{\*\listtable
+{\list\listtemplateid1
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List1;}\listid1
+}
+{\list\listtemplateid2
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List2;}\listid2
+}
+{\list\listtemplateid3
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f1\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List3;}\listid3
+}
+{\list\listtemplateid4
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f1\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List4;}\listid4
+}
+{\list\listtemplateid5
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List5;}\listid5
+}
+{\list\listtemplateid6
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List6;}\listid6
+}
+{\list\listtemplateid7
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}\f3\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List7;}\listid7
+}
+{\list\listtemplateid8
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List8;}\listid8
+}
+{\list\listtemplateid9
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List9;}\listid9
+}
+{\list\listtemplateid10
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List10;}\listid10
+}
+{\list\listtemplateid11
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f2\fs24}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'01.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'02.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'03.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'04.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'05.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'06.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'07.}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'08.}{\levelnumbers \'01}}
+{\listname List11;}\listid11
+}
+{\list\listtemplateid12
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}\b}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List477861859_1;}\listid477861859
+}
+{\list\listtemplateid13
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}\b}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List735301812_1;}\listid735301812
+}
+{\list\listtemplateid14
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}\b}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List735310515_1;}\listid735310515
+}
+{\list\listtemplateid15
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}\b}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List735674015_1;}\listid735674015
+}
+{\list\listtemplateid16
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List366130062_1;}\listid735674016
+}
+{\list\listtemplateid17
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List366148531_1;}\listid735674017
+}
+{\list\listtemplateid18
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List366155203_1;}\listid735674018
+}
+{\list\listtemplateid19
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname ;}\listid735674019
+}
+{\list\listtemplateid20
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'02\'00.}{\levelnumbers \'01}\b}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List434687953_1;}\listid735674020
+}
+{\list\listtemplateid21
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List435828312_1;}\listid735674021
+}
+{\list\listtemplateid22
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}ô	{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List435835406_1;}\listid735674022
+}
+{\list\listtemplateid23
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List435856328_1;}\listid735674023
+}
+{\list\listtemplateid24
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname ;}\listid735674024
+}
+{\list\listtemplateid25
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List437350656_1;}\listid735674025
+}
+{\list\listtemplateid26
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List437406078_1;}\listid735674026
+}
+{\list\listtemplateid27
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List36741109_1;}\listid735674027
+}
+{\list\listtemplateid28
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List36766656_1;}\listid735674028
+}
+{\list\listtemplateid29
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List-2028665468_1;}\listid735674029
+}
+{\list\listtemplateid30
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List-1965950843_1;}\listid735674030
+}
+{\list\listtemplateid31
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'01\'00}{\levelnumbers \'01}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'03\'00.\'01}{\levelnumbers \'01\'03}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'05\'00.\'01.\'02}{\levelnumbers \'01\'03\'05}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'07\'00.\'01.\'02.\'03}{\levelnumbers \'01\'03\'05\'07}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'09\'00.\'01.\'02.\'03.\'04}{\levelnumbers \'01\'03\'05\'07\'09}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'b\'00.\'01.\'02.\'03.\'04.\'05}{\levelnumbers \'01\'03\'05\'07\'09\'b}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'d\'00.\'01.\'02.\'03.\'04.\'05.\'06}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'f\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f}}
+{\listlevel\levelnfc0\levelfollow0\levelstartat1{\leveltext \'11\'00.\'01.\'02.\'03.\'04.\'05.\'06.\'07.\'08}{\levelnumbers \'01\'03\'05\'07\'09\'b\'d\'f\'11}}
+{\listname List-1965798031_1;}\listid735674031
+}
+}
+{\*\listoverridetable
+{\listoverride\listid735674026\listoverridecount9
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+{\lfolevel\listoverrideformat\listoverridestartat
+{\listlevel\levelnfc23\levelfollow0\levelstartat1{\leveltext \'01\'b7}{\levelnumbers}\f4\fcs1\f4\af4\fcs0\rtlch\f4\af4\ltrch}
+}
+\ls1}
+}
+\paperw11908\paperh16833\margl1440\margr1440\margt1440\margb1440\headery720\footery720\nogrowautofit\deftab720\formshade\fet4\aenddoc\aftnnrlc\pgbrdrhead\pgbrdrfoot
+\sectd\pgwsxn12240\pghsxn15840\titlepg\marglsxn1440\margrsxn1440\margtsxn1440\margbsxn1440\headery720\footery720\sbkpage\pgnstarts1\pgnrestart\pgndec
+\plain\plain\f0\fs20
+{\footer\pard\plain\f0\fs20\plain\f0\fs20\loch  \par
+\plain\f0\fs20}
+{\header\pard\plain\f0\fs20\plain\f0\fs20\loch  \par
+\plain\f0\fs20}
+{\headerf\pard\plain\f0\fs20\plain\f0\fs20\loch  \par
+\plain\f0\fs20}
+\li108\qc\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\fs20\par
+\par
+\par
+\par
+\li0\ql\plain\f0\fs20{\*\bkmkstart BKM_33fd3768_22f8_4de1_91d2_533133defa34}{\*\bkmkend BKM_33fd3768_22f8_4de1_91d2_533133defa34}{\*\bkmkstart Test1}{\*\bkmkend Test1}{\*\bkmkstart BKM_AB2df357_B3ca_4a2b_86fb_B32f0a1ff7fe}{\*\bkmkend BKM_AB2df357_B3ca_4a2b_86fb_B32f0a1ff7fe}\plain\f3\fs20\lang4105\hich\f3\dbch\f3\loch\f3\cf1\fs20\par
+\trowd\trgaph60\trleft0\trrh288\trkeep
+\clvertalc\clbrdrt\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clshdng1000\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs20\plain\f5\fs20\lang1033\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\loch Scenario\cell
+\plain\f5\fs20\lang1033\hich\f5\dbch\f5\loch\f5\cf1\fs20\intbl\row
+\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clvmgf\cellx630
+\clvertalt\cellx9360
+\pard\intbl\ssparaaux0\s0\li360\ri90\sb40\qr\plain\f0\fs20\plain\f7\fs20\cell
+\pard\intbl\ssparaaux0\s0\sb40\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\par
+\pard\intbl\itap2\ssparaaux0\s0\sb40\sa40\ql\plain\f0\fs20\plain\f5\fs20\lang3081\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\protect\loch Basic Path\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\loch  \plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\loch   (\plain\f5\fs20\lang3081\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\protect\loch Basic Path\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\loch )\nestcell{\nonesttables\par}
+\intbl\itap2
+{{\*\nesttableprops\trowd\trgaph60\trleft0
+\clvertalt\clbrdrt\brdrs\brdrw1\clbrdrb\brdrs\brdrw1\clshdng1000\clcbpat2\cellx8610
+\nestrow}{\nonesttables\par}}
+\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clvmgf\cellx630
+\clvertalt\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\par
+\cell
+\intbl\row
+\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clvmrg\cellx630
+\clvertalt\clvmgf\cellx9360
+\pard\intbl\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls1\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls1\ilvl0\fi-180\li360\sb40\qr\plain\f0\fs20\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\cell
+\pard\intbl\itap2\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls1\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls1\ilvl0\fi-180\li360\sb40\qr\plain\f0\fs20\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\nestcell{\nonesttables\par}
+\pard\intbl\itap2\ssparaaux0\s0\ql\plain\f0\fs20{\*\bkmkstart Pkg_Element_ElemScenario_Scenario_Structured_Begin}{\*\bkmkend Pkg_Element_ElemScenario_Scenario_Structured_Begin}\plain\f6\fs16\cs2\lang4105\hich\f6\dbch\f6\loch\f6\cf1\highlight3\cb3\chcbpat3\ulc1\fs16\b\protect\loch structured scenarios {\*\bkmkstart Pkg_Element_ElemScenario_Scenario_Structured_Begin_Inner}{\*\bkmkend Pkg_Element_ElemScenario_Scenario_Structured_Begin_Inner}\loch >\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\par
+\par
+\plain\f5\fs20\lang3081\hich\f5\dbch\f5\loch\f5\cf1\ulc1\fs20\b\protect\loch 1\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\ulc1\fs20\b\loch .\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\loch   \plain\f5\fs20\lang3081\hich\f5\dbch\f5\loch\f5\cf1\ulc1\fs20\protect\loch user enter data\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\par
+\pard\intbl\itap2\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\par
+\pard\intbl\itap3\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\ul\i\loch Rules \loch Referenced:\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\nestcell{\nonesttables\par}
+\pard\intbl\itap3\ssparaaux0\s0\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\nestcell{\nonesttables\par}
+\intbl\itap3
+{{\*\nesttableprops\trowd\trgaph60\trleft0
+\clvertalt\clvmgf\clcbpat2\cellx1736
+\clvertalt\clcbpat2\cellx7910
+\nestrow}{\nonesttables\par}}
+\pard\intbl\itap-88\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\ul\i\loch Exc\loch epti\loch ons:\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\loch  \nestcell{\nonesttables\par}
+\pard\intbl\itap3\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\nestcell{\nonesttables\par}
+\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\intbl\itap3
+{{\*\nesttableprops\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clvmrg\clcbpat2\cellx532
+\clvertalt\clcbpat2\cellx7910
+\nestrow}{\nonesttables\par}}
+\pard\intbl\itap2\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\nestcell{\nonesttables\par}
+\intbl\itap2
+{{\*\nesttableprops\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clcbpat2\cellx580
+\clvertalt\clcbpat2\cellx8610
+\nestrow}{\nonesttables\par}}
+\pard\intbl\itap2\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls1\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls1\ilvl0\fi-180\li360\sb40\qr\plain\f0\fs20\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\nestcell{\nonesttables\par}
+\pard\intbl\itap2\ssparaaux0\s0\ql\plain\f0\fs20{\*\bkmkstart Pkg_Element_ElemScenario_Scenario_Structured_Begin}{\*\bkmkend Pkg_Element_ElemScenario_Scenario_Structured_Begin}\plain\f6\fs16\cs2\lang4105\hich\f6\dbch\f6\loch\f6\cf1\highlight3\cb3\chcbpat3\ulc1\fs16\b\protect\loch structured scenarios {\*\bkmkstart Pkg_Element_ElemScenario_Scenario_Structured_Begin_Inner}{\*\bkmkend Pkg_Element_ElemScenario_Scenario_Structured_Begin_Inner}\loch >\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\par
+\par
+\plain\f5\fs20\lang3081\hich\f5\dbch\f5\loch\f5\cf1\ulc1\fs20\b\protect\loch 2\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\ulc1\fs20\b\loch .\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\loch   \plain\f5\fs20\lang3081\hich\f5\dbch\f5\loch\f5\cf1\ulc1\fs20\protect\loch system returns data\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\par
+\pard\intbl\itap2\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\par
+\pard\intbl\itap3\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\ul\i\loch Rules \loch Referenced:\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\nestcell{\nonesttables\par}
+\pard\intbl\itap3\ssparaaux0\s0\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\nestcell{\nonesttables\par}
+\intbl\itap3
+{{\*\nesttableprops\trowd\trgaph60\trleft0
+\clvertalt\clvmgf\clcbpat2\cellx1736
+\clvertalt\clcbpat2\cellx7910
+\nestrow}{\nonesttables\par}}
+\pard\intbl\itap3\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\ul\i\loch Exc\loch epti\loch ons:\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\loch  \nestcell{\nonesttables\par}
+\pard\intbl\itap3\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\nestcell{\nonesttables\par}
+\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\intbl\itap3
+{{\*\nesttableprops\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clvmrg\clcbpat2\cellx532
+\clvertalt\clcbpat2\cellx7910
+\nestrow}{\nonesttables\par}}
+\pard\intbl\itap2\ssparaaux0\s0\tx720\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\b\i\nestcell{\nonesttables\par}
+\intbl\itap2
+{{\*\nesttableprops\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clcbpat2\cellx580
+\clvertalt\clcbpat2\cellx8610
+\nestrow}{\nonesttables\par}}
+\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clvmrg\cellx630
+\clvertalt\clvmgf\cellx9360
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs20\plain\f7\fs20\cell
+\plain\f7\fs20\lang4105\hich\f7\dbch\f7\loch\f7\cf1\ulc1\fs20\intbl\row
+\trowd\trgaph60\trleft0\trrh676
+\clvertalt\clvmrg\cellx630
+\clvertalt\clvmrg\cellx9360
+\pard\intbl\ssparaaux0\s0{\pntext\pard\plain\f4\fs20 \'b7\tab}{\*\pn\pnlvlblt\ls1\ilvl0\pnhang\pnf0{\pntxtb \'b7}}\ls1\ilvl0\fi-180\li360\sb40\qr\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\cell
+\pard\intbl\ssparaaux0\s0\ql\plain\f0\fs20\plain\f5\fs20\lang4105\hich\f5\dbch\f5\loch\f5\cf1\fs20\cell
+\intbl\row
+\pard\ssparaaux0\s0\ql\plain\f0\fs20\plain\f3\fs20\lang3081\hich\f3\dbch\f3\loch\f3\cf1\fs20\par
+\plain\f7\fs20\par
+}
\ No newline at end of file
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
index 107ce74aec3b..198ccb19df41 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
@@ -397,6 +397,11 @@ std::shared_ptr< vector<sal_Int32> > DomainMapperTableManager::getCurrentGrid( )
     return m_aTableGrid.back( );
 }
 
+bool DomainMapperTableManager::hasCurrentSpans() const
+{
+    return !m_aGridSpans.empty();
+}
+
 std::shared_ptr< vector< sal_Int32 > > DomainMapperTableManager::getCurrentSpans( )
 {
     return m_aGridSpans.back( );
@@ -512,6 +517,8 @@ void DomainMapperTableManager::endOfCellAction()
     TagLogger::getInstance().element("endOFCellAction");
 #endif
 
+    if (!hasCurrentSpans())
+        throw std::out_of_range("empty spans");
     getCurrentSpans()->push_back(m_nGridSpan);
     m_nGridSpan = 1;
     ++m_nCell.back( );
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.hxx b/writerfilter/source/dmapper/DomainMapperTableManager.hxx
index 21e9809c5691..dbf238b2161f 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.hxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.hxx
@@ -97,6 +97,7 @@ public:
     virtual void endOfRowAction() override;
 
     IntVectorPtr getCurrentGrid( );
+    bool hasCurrentSpans() const;
     IntVectorPtr getCurrentSpans( );
     IntVectorPtr getCurrentCellWidths( );
 
commit adc1b8008a7522c368c1ae0badc74699f4012c18
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 12 12:32:52 2018 +0000

    forcepoint #26 check input against max valid enum values
    
    Change-Id: Ide72884c77904ae9495b5189cde086e43923e4bd
    Reviewed-on: https://gerrit.libreoffice.org/51138
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index 75bcb41cece9..2ab9115894cf 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -39,9 +39,9 @@ enum class ScFillMode
     MATRIX      = 4,
 };
 
-enum ScSplitMode { SC_SPLIT_NONE = 0, SC_SPLIT_NORMAL, SC_SPLIT_FIX };
+enum ScSplitMode { SC_SPLIT_NONE = 0, SC_SPLIT_NORMAL, SC_SPLIT_FIX, SC_SPLIT_MODE_MAX_ENUM = SC_SPLIT_FIX };
 
-enum ScSplitPos { SC_SPLIT_TOPLEFT, SC_SPLIT_TOPRIGHT, SC_SPLIT_BOTTOMLEFT, SC_SPLIT_BOTTOMRIGHT };
+enum ScSplitPos { SC_SPLIT_TOPLEFT, SC_SPLIT_TOPRIGHT, SC_SPLIT_BOTTOMLEFT, SC_SPLIT_BOTTOMRIGHT, SC_SPLIT_POS_MAX_ENUM = SC_SPLIT_BOTTOMRIGHT };
 enum ScHSplitPos { SC_SPLIT_LEFT, SC_SPLIT_RIGHT };
 enum ScVSplitPos { SC_SPLIT_TOP, SC_SPLIT_BOTTOM };
 
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index a13583067ee5..4e608e7363d7 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -190,13 +190,13 @@ void ScViewDataTable::ReadUserDataSequence(const uno::Sequence <beans::PropertyV
         }
         else if (sName == SC_HORIZONTALSPLITMODE)
         {
-            aSettings[i].Value >>= nTemp16;
-            eHSplitMode = static_cast<ScSplitMode>(nTemp16);
+            if ((aSettings[i].Value >>= nTemp16) && nTemp16 <= ScSplitMode::SC_SPLIT_MODE_MAX_ENUM)
+                eHSplitMode = static_cast<ScSplitMode>(nTemp16);
         }
         else if (sName == SC_VERTICALSPLITMODE)
         {
-            aSettings[i].Value >>= nTemp16;
-            eVSplitMode = static_cast<ScSplitMode>(nTemp16);
+            if ((aSettings[i].Value >>= nTemp16) && nTemp16 <= ScSplitMode::SC_SPLIT_MODE_MAX_ENUM)
+                eVSplitMode = static_cast<ScSplitMode>(nTemp16);
         }
         else if (sName == SC_HORIZONTALSPLITPOSITION)
         {
@@ -220,8 +220,8 @@ void ScViewDataTable::ReadUserDataSequence(const uno::Sequence <beans::PropertyV
         }
         else if (sName == SC_ACTIVESPLITRANGE)
         {
-            aSettings[i].Value >>= nTemp16;
-            eWhichActive = static_cast<ScSplitPos>(nTemp16);
+            if ((aSettings[i].Value >>= nTemp16) && nTemp16 <= ScSplitPos::SC_SPLIT_POS_MAX_ENUM)
+                eWhichActive = static_cast<ScSplitPos>(nTemp16);
         }
         else if (sName == SC_POSITIONLEFT)
         {
commit d28a87a3293a5afd3b80d0bb677e0bcd98f23d2f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Mar 12 11:35:37 2018 +0000

    forcepoint #25 ensure null termination
    
    Change-Id: I37f4787fb5772e959c45280d9650adcc15591033
    Reviewed-on: https://gerrit.libreoffice.org/51130
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/vcl/unx/generic/printer/jobdata.cxx b/vcl/unx/generic/printer/jobdata.cxx
index aead34c96eb1..c15424df2e0d 100644
--- a/vcl/unx/generic/printer/jobdata.cxx
+++ b/vcl/unx/generic/printer/jobdata.cxx
@@ -274,11 +274,15 @@ bool JobData::constructFromStreamBuffer( void* pData, sal_uInt32 bytes, JobData&
                 if( rJobData.m_pParser )
                 {
                     rJobData.m_aContext.setParser( rJobData.m_pParser );
-                    const sal_uInt64 nBytes = bytes - aStream.Tell();
-                    std::unique_ptr<char[]> pRemain(new char[bytes - aStream.Tell()]);
-                    aStream.Read( pRemain.get(), nBytes );
-                    rJobData.m_aContext.rebuildFromStreamBuffer( pRemain.get(), nBytes );
-                    bContext = true;
+                    sal_uInt64 nBytes = bytes - aStream.Tell();
+                    std::vector<char> aRemain(nBytes+1);
+                    nBytes = aStream.Read(aRemain.data(), nBytes);
+                    if (nBytes)
+                    {
+                        aRemain[nBytes] = 0;
+                        rJobData.m_aContext.rebuildFromStreamBuffer(aRemain.data(), nBytes);
+                        bContext = true;
+                    }
                 }
             }
         }
commit ac139d058d7e0761c739013b8ae748ede2487b91
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Mar 2 11:33:24 2018 +0000

    forcepoint #17 nTextBreak is an index into pKernArray of len rInf.GetLen()
    
    Change-Id: I3afeaf987cc5e75362560165fea7230904530933
    Reviewed-on: https://gerrit.libreoffice.org/50630
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 5b8ca54a2ca0..117eb6399f37 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -2397,9 +2397,8 @@ sal_Int32 SwFont::GetTextBreak( SwDrawTextInfo& rInf, long nTextWidth )
             rInf.GetOut().GetTextArray( rInf.GetText(), pKernArray,
                                             rInf.GetIdx(), rInf.GetLen() );
             long nCurrPos = pKernArray[nTextBreak] + nGridWidthAdd;
-            while( nTextBreak < rInf.GetLen() && nTextWidth >= nCurrPos)
+            while (++nTextBreak < rInf.GetLen() && nTextWidth >= nCurrPos)
             {
-                nTextBreak++;
                 nCurrPos = pKernArray[nTextBreak] + nGridWidthAdd * ( nTextBreak + 1 );
             }
             delete[] pKernArray;
commit ef933d8324fff4cf03f755a9edf1eb0025ffe855
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Mar 1 21:14:15 2018 +0000

    forcepoint #14 check to see if we incremented at all
    
    Change-Id: Ia4670adbddcc8501cf522be296b3061a3529f880
    Reviewed-on: https://gerrit.libreoffice.org/50607
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/vcl/source/helper/strhelper.cxx b/vcl/source/helper/strhelper.cxx
index f8761336bb8f..63c06e720374 100644
--- a/vcl/source/helper/strhelper.cxx
+++ b/vcl/source/helper/strhelper.cxx
@@ -296,9 +296,12 @@ OUString WhitespaceToSpace( const OUString& rLine, bool bProtect )
     *pLeap = 0;
 
     // there might be a space at beginning or end
-    pLeap--;
-    if( *pLeap == ' ' )
-        *pLeap = 0;
+    if (pLeap > pBuffer)
+    {
+        pLeap--;
+        if( *pLeap == ' ' )
+            *pLeap = 0;
+    }
 
     return OUString(*pBuffer == ' ' ? pBuffer+1 : pBuffer);
 }
commit 6e56d430e0c67aff76169302c1fffec9fcade52e
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Feb 26 12:30:57 2018 +0000

    forcepoint #10 pop empty stack
    
    Change-Id: I96452a86187a6b03251614625445d1b18a5ee218
    Reviewed-on: https://gerrit.libreoffice.org/50359
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/qa/core/data/rtf/pass/forcepoint-1.rtf b/sw/qa/core/data/rtf/pass/forcepoint-1.rtf
new file mode 100755
index 000000000000..afee08d8d925
--- /dev/null
+++ b/sw/qa/core/data/rtf/pass/forcepoint-1.rtf
@@ -0,0 +1,193 @@
+{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang3082\deflangfe3082{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
+{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f153\froman\fcharset238\fprq2 Times New Roman CE;}{\f154\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f156\froman\fcharset161\fprq2 Times New Roman Greek;}
+{\f157\froman\fcharset162\fprq2 Times New Roman Tur;}{\f158\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f159\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f160\froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\f161\fswiss\fcharset238\fprq2 Arial CE;}{\f162\fswiss\fcharset204\fprq2 Arial Cyr;}{\f164\fswiss\fcharset161\fprq2 Arial Greek;}{\f165\fswiss\fcharset162\fprq2 Arial Tur;}{\f166\fswiss\fcharset177\fprq2 Arial (Hebrew);}
+{\f167\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f168\fswiss\fcharset186\fprq2 Arial Baltic;}{\f169\fmodern\fcharset238\fprq1 Courier New CE;}{\f170\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f172\fmodern\fcharset161\fprq1 Courier New Greek;}
+{\f173\fmodern\fcharset162\fprq1 Courier New Tur;}{\f174\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f175\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f176\fmodern\fcharset186\fprq1 Courier New Baltic;}}{\colortbl;\red0\green0\blue0;
+\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;
+\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs20\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext0 Normal;}{
+\s3\qj \li0\ri0\keepn\widctlpar\hyphpar0\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \b\fs24\lang3082\langfe1024\cgrid\langnp3082\langfenp1024 \sbasedon0 \snext0 heading 3;}{\*\cs10 \additive Default Paragraph Font;}{
+\s15\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon0 \snext15 Lower Roman List;}{\s16\ql \li0\ri0\nowidctlpar\tx431\faauto\rin0\lin0\itap0 
+\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon31 \snext0 Numbered Heading 1;}{\s17\ql \li0\ri0\nowidctlpar\tx431\faauto\rin0\lin0\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon32 \snext0 Numbered Heading 2;}{
+\s18\ql \li0\ri0\nowidctlpar\tx431\faauto\rin0\lin0\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon33 \snext0 Numbered Heading 3;}{\s19\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 
+\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon0 \snext19 Endnote Text;}{\s20\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext20 Diamond List;}{
+\s21\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext21 Numbered List;}{\s22\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 
+\fs20\lang3082\langfe3082\super\cgrid\langnp3082\langfenp3082 \snext22 Endnote Reference;}{\s23\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext23 Triangle List;}{
+\s24\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext24 Square List;}{\s25\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 
+\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext25 Dashed List;}{\s26\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon21 \snext26 Upper Roman List;}{
+\s27\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext27 Heart List;}{\s28\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 
+\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon21 \snext28 Upper Case List;}{\s29\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext29 Bullet List;}{
+\s30\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext30 Hand List;}{\s31\ql \li0\ri0\sb440\sa60\nowidctlpar\faauto\rin0\lin0\itap0 
+\b\f1\fs34\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon0 \snext0 Heading 1;}{\s32\ql \li0\ri0\sb440\sa60\nowidctlpar\faauto\rin0\lin0\itap0 \b\f1\fs28\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon0 \snext0 Heading 2;}{
+\s33\ql \li0\ri0\sb440\sa60\nowidctlpar\faauto\rin0\lin0\itap0 \b\f1\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon0 \snext0 Heading 3;}{\s34\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 
+\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext34 Tick List;}{\s35\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon21 \snext35 Lower Case List;}{
+\s36\ql \li1440\ri1440\sa117\nowidctlpar\faauto\rin1440\lin1440\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon0 \snext36 Block Text;}{\s37\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 
+\fs20\lang3082\langfe3082\super\cgrid\langnp3082\langfenp3082 \snext37 Footnote Reference;}{\s38\ql \li0\ri0\nowidctlpar\tx1584\faauto\rin0\lin0\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon16 \snext0 Section Heading;}{
+\s39\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext39 Implies List;}{\s40\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 
+\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext40 Box List;}{\s41\ql \fi-431\li720\ri0\nowidctlpar\faauto\rin0\lin720\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \snext41 Star List;}{
+\s42\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \f2\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon0 \snext42 Plain Text;}{\s43\ql \li0\ri0\nowidctlpar\tx1584\faauto\rin0\lin0\itap0 
+\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 \sbasedon16 \snext0 Chapter Heading;}}{\info{\author Unknown User}{\operator Unknown User}{\creatim\yr2003\mo4\dy6\hr19\min50}{\revtim\yr2003\mo4\dy6\hr23\min50}{\printim\yr2003\mo4\dy6\hr23\min29}
+{\version17}{\edmins226}{\nofpages4}{\nofwords1077}{\nofchars6144}{\*\company DellComputerCorporation}{\nofcharsws7545}{\vern8249}}\paperw11905\paperh16837\margl1440\margr1440 
+\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\nolnhtadjtbl \fet0\sectd 
+\sbknone\linex0\colsx360\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4
+\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}
+{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s16\ql \fi-1440\li1440\ri0\nowidctlpar\faauto\rin0\lin1440\itap0 
+\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\lang1034\langfe3082\langnp1034 Alumne: Jordi Mas i Hern\'e0ndez
+\par }\pard\plain \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs20\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\lang1034\langfe3082\langnp1034 PAC: C
+\par 
+\par }{\b\fs24\ul\lang1034\langfe3082\langnp1034 1. Introducci\'f3}{
+\par }{\b\fs24\ul\lang1034\langfe3082\langnp1034 \line }{\fs24\lang1034\langfe3082\langnp1034 L\rquote objectiu d\rquote aquesta PAC \'e9s comparar el funcionament de dos sistemes de traducci\'f3 autom\'e0tica.
+\par \line Cal destacar, que el Salt requereix la intervenci\'f3 humana per desambiguar molts casos mentre que l\rquote Internostrum ho intenta fer autom\'e0ticament. 
+\par }{\b\fs24\ul\lang1034\langfe3082\langnp1034 
+\par 2. Desenvolupament}{
+\par }{\b\fs24\ul\lang1034\langfe3082\langnp1034 
+\par }{\b\fs24\lang1034\langfe3082\langnp1034 Preedici\'f3}{
+\par }{\b\fs24\lang1034\langfe3082\langnp1034 
+\par }{\fs24\lang1034\langfe3082\langnp1034 De cara a facilitar al m\'e0xim la feina al sistema traducci\'f3 \'e9s for\'e7a convenient donar el text original el m\'e9s correcte possible. En aquest sentit, proposaria els seg\'fc
+ents canvis sobre el text original espanyol:}{
+\par }{\fs24\lang1034\langfe3082\langnp1034 
+\par - 'Com surgido'  ho substituiria per "Como surgido'\line }{
+\par }{\fs24\lang1034\langfe3082\langnp1034 - ' a cerca ' ho substituiria per ' acerca '\line }{
+\par }\pard\plain \s16\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\lang1034\langfe3082\langnp1034 - Imprevisilidad i orbitar no s\'f3n paraules normatives en castell\'e0 perqu\'e8
+ no tenen una entrada al diccionari de la RAE, per la qual cosa fora convenient canviar-les per una forma admesa.
+\par }\pard\plain \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs20\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\fs24\lang1034\langfe3082\langnp1034 \line }{\b\fs24\lang1033\langfe3082\langnp1033 Ambig\'fcitats l\'e8xiques}{
+\b\lang1033\langfe3082\langnp1033 
+\par }{\fs24\lang1033\langfe3082\langnp1033 
+\par }{\fs24\lang1034\langfe3082\langnp1034 - \lquote Cometa\rquote . Salt proposa \lquote cometa\rquote  i InterNostrum \rquote estel\rquote .\line 
+\par Per poder resoldre aquesta ambig\'fcitat necessitar\'edem que el traductor tingu\'e9s en compte la sem\'e0ntica dels mots, la qual cosa \'e9s impossible avui en dia. En aquesta situaci\'f3, malgrat la paraula estel \'e9
+s menys precisa que cometa quan es refereix a un cos del sistema solar, aquest mat\'eds nom\'e9s el pot donar l\rquote autor.
+\par 
+\par -\lquote Alcanzar\rquote , que en castell\'e0 t\'e9 dos sentits \lquote aconseguir\rquote  i \lquote arribar\rquote . Salt opta per \lquote aconseguir\rquote  i Internostrum per \lquote arribar\rquote . Sense tenir en compte la sem\'e0ntica de la frase 
+\'e9s impossible desambiguar aquest cas
+\par 
+\par }{\b\fs24\lang1033\langfe3082\langnp1033 Ambig\'fcitats sint\'e0ctiques}{\fs24\lang1034\langfe3082\langnp1034 
+\par 
+\par - \lquote Como surgido de la nada\rquote . Tots dos opten per la traducci\'f3 \lquote com sorgit del no res\rquote  i seria m\'e9s correcte \lquote com a sorgit del no res\rquote \line  
+\par }\pard\plain \s33\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \b\f1\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\f0\lang1034\langfe3082\langnp1034 Ambig\'fcitats sint\'e0ctico-sem\'e0ntiques
+\par }\pard\plain \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs20\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\fs24\lang1034\langfe3082\langnp1034 
+\par }{\fs24\lang1034\langfe3082\langnp1034 -}{\fs24\lang1034\langfe3082\langnp1034  \lquote Dicho\rquote . Salt proposa \lquote El dit vent\rquote  i InterNostrum \rquote Dit vent\rquote .Salt t\'e9 un problema amb l\rquote analitzador sint\'e0ctic perqu\'e8
+ interpreta un relatiu com si fos un substantiu.
+\par 
+\par }\pard\plain \s33\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \b\f1\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\f0\lang1034\langfe3082\langnp1034 Dialectal
+\par }\pard\plain \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs20\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\lang1034\langfe3082\langnp1034 
+\par }{\fs24\lang1034\langfe3082\langnp1034 Malgrat ambd\'f3s productes estan fets al Pa\'eds Val\'e8ncia, Salt escull preferentment la variant dialectal valenciana mentre que Internostrum opta per la varietat central, que s\rquote adopta com a est\'e0ndard.
+\line }{\lang1034\langfe3082\langnp1034 
+\par }{\fs24\lang1033\langfe3082\langnp1033 -}{\fs24\lang1033\langfe3082\langnp1033  Pronom possessiu \lquote su\rquote . }{\fs24\lang1034\langfe3082\langnp1034 Salt proposa \lquote seua\rquote  i InterNostrum \rquote seva\rquote .
+ Per altra banda, els dos sistemes reconeixen correctament que es tracta d\rquote un forma femenina per l\rquote an\'e0lisis sint\'e0ctica que fan de la frase.\line 
+\par }{\fs24\lang1034\langfe3082\langnp1034 -}{\fs24\lang1034\langfe3082\langnp1034  \lquote Atr\'e1s\rquote . Salt proposa \lquote arrere\rquote  i InterNostrum \rquote endarrere\rquote .}{\fs24\lang1034\langfe3082\langnp1034 
+\par 
+\par - \lquote Arrebatadas\rquote . }{\fs24\lang1034\langfe3082\langnp1034 Salt proposa \lquote }{\fs24\lang1034\langfe3082\langnp1034 Arrabassada}{\fs24\lang1034\langfe3082\langnp1034 \rquote  i InterNostrum \rquote }{\fs24\lang1034\langfe3082\langnp1034 
+arravassada}{\fs24\lang1034\langfe3082\langnp1034 \rquote . La forma que proposa Internostrum en aquest cas \'e9s err\'f2nia, i probablement es deu a un error en la introducci\'f3 del l\'e8xic.
+\par \line - \lquote Aparecer\rquote  Salt proposa \lquote }{\fs24\lang1034\langfe3082\langnp1034 apar\'e9ixer}{\fs24\lang1034\langfe3082\langnp1034 \rquote  i InterNostrum \rquote }{\fs24\lang1034\langfe3082\langnp1034 apar\'e8ixer}{
+\fs24\lang1034\langfe3082\langnp1034 \rquote . Salt proposa una forma incorrecte, que probablement es deu a un error en la introducci\'f3 del l\'e8xic.
+\par 
+\par }{\fs24\lang1034\langfe3082\langnp1034 - \lquote Encogerse\rquote .}{\fs24\lang1034\langfe3082\langnp1034  Salt proposa \lquote }{\fs24\lang1034\langfe3082\langnp1034 encollir-se}{\fs24\lang1034\langfe3082\langnp1034 \rquote  i InterNostrum \rquote }{
+\fs24\lang1034\langfe3082\langnp1034 encongir-se}{\fs24\lang1034\langfe3082\langnp1034 \rquote . Ambdues formes s\'f3n sin\'f2nimes.}{\fs24\lang1034\langfe3082\langnp1034 
+\par 
+\par - \lquote De estos\rquote .}{\fs24\lang1034\langfe3082\langnp1034  Salt proposa \lquote }{\fs24\lang1034\langfe3082\langnp1034 d\rquote estos}{\fs24\lang1034\langfe3082\langnp1034 \rquote  i InterNostrum \rquote }{\fs24\lang1034\langfe3082\langnp1034 d
+\rquote aquests}{\fs24\lang1034\langfe3082\langnp1034 \rquote . La segona forma \'e9s molt m\'e9s est\'e0ndard.\line }{\fs24\lang1034\langfe3082\langnp1034  
+\par }\pard\plain \s33\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \b\f1\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\f0\lang1034\langfe3082\langnp1034 Estil

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list