From 42d103d2f27362a994165d152c19acbf3aa43a45 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Sun, 26 Oct 2014 16:10:49 +0100 Subject: [PATCH] update to 4.4.0 beta1 --- .gitignore | 6 +- ...t-strong-for-gcc3_linux_aarch64-cpp2.patch | 34 - ...7853-nStartPara-of-EE_PARA_NOT_FOUND.patch | 62 - ...0264-plausible-fix-for-reported-cras.patch | 76 - ...emove-smb-from-X-KDE-Protocols-lines.patch | 156 -- 0001-Resolves-fdo-68967-looping-layout.patch | 49 - ...81-copy-and-paste-slideshow-crash-in.patch | 81 - ...51-change-style-on-toggling-bullets-.patch | 810 ------ ...11-don-t-swap-notes-page-width-heigh.patch | 96 - ...87-pasting-into-outline-view-crashes.patch | 48 - ...esolves-fdo-86449-backport-rtf-fixes.patch | 222 -- ...66-Wrong-background-color-shown-in-f.patch | 33 +- ...61238-sync-PRESOBJ_OUTLINE-para-dept.patch | 95 - ...d-X-TryExec-entries-to-desktop-files.patch | 12 +- ...low-to-build-with-system-opencollada.patch | 154 -- ...s-detecting-HTML-files-with-.xls-ext.patch | 96 - ...eate-a-master-document-template-type.patch | 2295 ----------------- ...nting-of-notes-to-sensible-2-x-1-not.patch | 41 - ...p-useless-test-for-ant-apache-regexp.patch | 71 - ...ts-cell-styles-in-inserting-rows-col.patch | 225 -- ...ange-picture-option-by-rightclicking.patch | 78 - ...nd-paste-of-a-slide-results-in-a-blu.patch | 36 - 0001-fix-KDE4-detection-on-aarch64.patch | 31 - ...tab-at-improving-impossible-question.patch | 28 - ...ELF-if-defined-_CALL_ELF-_CALL_ELF-2.patch | 103 - ...ng-off-removeable-master-elements-wi.patch | 205 -- ...tables-are-not-interactively-growing.patch | 55 - 0001-just-use-ANSI-C-declarations.patch | 65 - ...utls-are-only-used-by-our-internal-e.patch | 30 - ...one-by-vcl-brochures-by-draw-impress.patch | 47 - 0001-never-run-autogen.sh.patch | 2 +- ...CL.WM.ShouldSwitchWorkspace-to-false.patch | 31 - ...llow-to-export-an-empty-sheet-to-PDF.patch | 29 - 0001-scrolling-very-slow-in-calc.patch | 139 - ...oded-numbering-from-outliner-preview.patch | 67 - ...layout-cache-returns-wrong-rectangle.patch | 79 - ...eturn-of-convertDateTime-before-usin.patch | 42 - 0002-Linux-AArch64-port.patch | 1497 ----------- ...do-86451-guard-all-the-tops-post-pop.patch | 252 -- libreoffice.spec | 68 +- sources | 6 +- 41 files changed, 45 insertions(+), 7507 deletions(-) delete mode 100644 0001-No-fstack-protect-strong-for-gcc3_linux_aarch64-cpp2.patch delete mode 100644 0001-Related-rhbz-1117853-nStartPara-of-EE_PARA_NOT_FOUND.patch delete mode 100644 0001-Related-rhbz-1130264-plausible-fix-for-reported-cras.patch delete mode 100644 0001-Remove-smb-from-X-KDE-Protocols-lines.patch delete mode 100644 0001-Resolves-fdo-68967-looping-layout.patch delete mode 100644 0001-Resolves-fdo-76581-copy-and-paste-slideshow-crash-in.patch delete mode 100644 0001-Resolves-fdo-78151-change-style-on-toggling-bullets-.patch delete mode 100644 0001-Resolves-fdo-80911-don-t-swap-notes-page-width-heigh.patch delete mode 100644 0001-Resolves-fdo-81487-pasting-into-outline-view-crashes.patch delete mode 100644 0001-Resolves-fdo-86449-backport-rtf-fixes.patch delete mode 100644 0001-Resolves-rhbz-1161238-sync-PRESOBJ_OUTLINE-para-dept.patch delete mode 100644 0001-allow-to-build-with-system-opencollada.patch delete mode 100644 0001-avoid-problems-detecting-HTML-files-with-.xls-ext.patch delete mode 100644 0001-create-a-master-document-template-type.patch delete mode 100644 0001-default-n-up-printing-of-notes-to-sensible-2-x-1-not.patch delete mode 100644 0001-drop-useless-test-for-ant-apache-regexp.patch delete mode 100644 0001-fdo-60712-Inherits-cell-styles-in-inserting-rows-col.patch delete mode 100644 0001-fdo-82496-Change-picture-option-by-rightclicking.patch delete mode 100644 0001-fdo-85247-copy-and-paste-of-a-slide-results-in-a-blu.patch delete mode 100644 0001-fix-KDE4-detection-on-aarch64.patch delete mode 100644 0001-have-a-stab-at-improving-impossible-question.patch delete mode 100644 0001-if-_CALL_ELF-if-defined-_CALL_ELF-_CALL_ELF-2.patch delete mode 100644 0001-implement-toggling-off-removeable-master-elements-wi.patch delete mode 100644 0001-impress-tables-are-not-interactively-growing.patch delete mode 100644 0001-just-use-ANSI-C-declarations.patch delete mode 100644 0001-libgcrypt-and-gnutls-are-only-used-by-our-internal-e.patch delete mode 100644 0001-n-up-printing-done-by-vcl-brochures-by-draw-impress.patch delete mode 100644 0001-officecfg-set-VCL.WM.ShouldSwitchWorkspace-to-false.patch delete mode 100644 0001-rhbz-1111216-allow-to-export-an-empty-sheet-to-PDF.patch delete mode 100644 0001-scrolling-very-slow-in-calc.patch delete mode 100644 0001-strip-off-hard-coded-numbering-from-outliner-preview.patch delete mode 100644 0001-table-layout-cache-returns-wrong-rectangle.patch delete mode 100644 0001-valgrind-check-return-of-convertDateTime-before-usin.patch delete mode 100644 0002-Linux-AArch64-port.patch delete mode 100644 0002-Resolves-fdo-86451-guard-all-the-tops-post-pop.patch diff --git a/.gitignore b/.gitignore index e233af1..e87bb25 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,7 @@ /libmspub-0.0.6.tar.bz2 /libmwaw-0.2.0.tar.bz2 /libodfgen-0.0.4.tar.bz2 +/libpagemaker-0.0.1.tar.bz2 /libvisio-0.0.31.tar.bz2 /libreoffice-4.2.4.1.tar.xz /libreoffice-help-4.2.4.1.tar.xz @@ -60,7 +61,7 @@ /libetonyek-0.1.0.tar.bz2 /libfreehand-0.1.0.tar.bz2 /libmspub-0.1.0.tar.bz2 -/libmwaw-0.3.1.tar.bz2 +/libmwaw-0.3.3.tar.bz2 /libodfgen-0.1.0.tar.bz2 /librevenge-0.0.0.tar.bz2 /libvisio-0.1.0.tar.bz2 @@ -110,3 +111,6 @@ /libreoffice-4.3.4.1.tar.xz /libreoffice-help-4.3.4.1.tar.xz /libreoffice-translations-4.3.4.1.tar.xz +/libreoffice-4.4.0.0.beta1.tar.xz +/libreoffice-help-4.4.0.0.beta1.tar.xz +/libreoffice-translations-4.4.0.0.beta1.tar.xz diff --git a/0001-No-fstack-protect-strong-for-gcc3_linux_aarch64-cpp2.patch b/0001-No-fstack-protect-strong-for-gcc3_linux_aarch64-cpp2.patch deleted file mode 100644 index 2452164..0000000 --- a/0001-No-fstack-protect-strong-for-gcc3_linux_aarch64-cpp2.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 8d12e4ec8b843d59661a12a7a92bfec7e4473e0f Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Thu, 4 Sep 2014 15:26:58 +0200 -Subject: [PATCH] No -fstack-protect-strong for gcc3_linux_aarch64/cpp2uno.cxx - vtableSlotCall - -Change-Id: I52efda594d87c37c2d38c61b54f1eebcc76cdfce ---- - bridges/Library_cpp_uno.mk | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/bridges/Library_cpp_uno.mk b/bridges/Library_cpp_uno.mk -index 33a5c00..c2e303d 100644 ---- a/bridges/Library_cpp_uno.mk -+++ b/bridges/Library_cpp_uno.mk -@@ -38,7 +38,14 @@ endif - else ifeq ($(OS)-$(CPUNAME),LINUX-AARCH64) - - bridges_SELECTED_BRIDGE := gcc3_linux_aarch64 --bridge_exception_objects := abi callvirtualfunction cpp2uno uno2cpp -+bridge_exception_objects := abi callvirtualfunction uno2cpp -+ -+$(eval $(call gb_Library_add_cxxobjects,$(gb_CPPU_ENV)_uno, \ -+ bridges/source/cpp_uno/$(bridges_SELECTED_BRIDGE)/cpp2uno, \ -+ $(subst -fstack-protector-strong,-fstack-protector, \ -+ $(gb_LinkTarget_EXCEPTIONFLAGS) \ -+ $(call gb_LinkTarget__get_cxxflags,$(gb_CPPU_ENV)_uno)) \ -+)) - - else ifeq ($(OS)-$(CPUNAME),LINUX-AXP) - --- -1.9.3 - diff --git a/0001-Related-rhbz-1117853-nStartPara-of-EE_PARA_NOT_FOUND.patch b/0001-Related-rhbz-1117853-nStartPara-of-EE_PARA_NOT_FOUND.patch deleted file mode 100644 index 85b596d..0000000 --- a/0001-Related-rhbz-1117853-nStartPara-of-EE_PARA_NOT_FOUND.patch +++ /dev/null @@ -1,62 +0,0 @@ -From fdb1d62a09f7320ee5c2828aa4ce84248a6e3e4e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 17 Jul 2014 13:48:30 +0100 -Subject: [PATCH] Related: rhbz#1117853 nStartPara of EE_PARA_NOT_FOUND - -we know that nStartPara is EE_PARA_NOT_FOUND so rOutliner.GetAbsPos must have -returned that, but we don't know the circumstances that lead to that yet. - -Change-Id: I53a488317d154b4a3c050248b8737da0a611ca43 ---- - editeng/source/outliner/outliner.cxx | 3 +-- - sd/source/ui/view/outlnvsh.cxx | 5 ++--- - 2 files changed, 3 insertions(+), 5 deletions(-) - -diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx -index 4d7214b..aaa843d 100644 ---- a/editeng/source/outliner/outliner.cxx -+++ b/editeng/source/outliner/outliner.cxx -@@ -384,7 +384,6 @@ sal_Int32 Outliner::GetBulletsNumberingStatus() const - - OutlinerParaObject* Outliner::CreateParaObject( sal_Int32 nStartPara, sal_Int32 nCount ) const - { -- - if ( static_cast(nStartPara) + nCount > - static_cast(pParaList->GetParagraphCount()) ) - nCount = pParaList->GetParagraphCount() - nStartPara; -@@ -394,7 +393,7 @@ OutlinerParaObject* Outliner::CreateParaObject( sal_Int32 nStartPara, sal_Int32 - if ( ( nStartPara + nCount ) > pEditEngine->GetParagraphCount() ) - nCount = pEditEngine->GetParagraphCount() - nStartPara; - -- if( !nCount ) -+ if (nCount <= 0) - return NULL; - - EditTextObject* pText = pEditEngine->CreateTextObject( nStartPara, nCount ); -diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx -index 03e899d..e3b4aa7 100644 ---- a/sd/source/ui/view/outlnvsh.cxx -+++ b/sd/source/ui/view/outlnvsh.cxx -@@ -1658,7 +1658,6 @@ bool OutlineViewShell::UpdateTitleObject( SdPage* pPage, Paragraph* pPara ) - - ::Outliner* pOutliner = pOlView->GetOutliner(); - SdrTextObj* pTO = pOlView->GetTitleTextObject( pPage ); -- OutlinerParaObject* pOPO = NULL; - - OUString aTest = pOutliner->GetText(pPara); - bool bText = !aTest.isEmpty(); -@@ -1675,9 +1674,9 @@ bool OutlineViewShell::UpdateTitleObject( SdPage* pPage, Paragraph* pPara ) - } - - // if we have a title object and a text, set the text -- if( pTO ) -+ OutlinerParaObject* pOPO = pTO ? pOutliner->CreateParaObject(pOutliner->GetAbsPos(pPara), 1) : NULL; -+ if (pOPO) - { -- pOPO = pOutliner->CreateParaObject( pOutliner->GetAbsPos( pPara ), 1 ); - pOPO->SetOutlinerMode( OUTLINERMODE_TITLEOBJECT ); - pOPO->SetVertical( pTO->IsVerticalWriting() ); - if( pTO->GetOutlinerParaObject() && (pOPO->GetTextObject() == pTO->GetOutlinerParaObject()->GetTextObject()) ) --- -1.9.3 - diff --git a/0001-Related-rhbz-1130264-plausible-fix-for-reported-cras.patch b/0001-Related-rhbz-1130264-plausible-fix-for-reported-cras.patch deleted file mode 100644 index 9594cc9..0000000 --- a/0001-Related-rhbz-1130264-plausible-fix-for-reported-cras.patch +++ /dev/null @@ -1,76 +0,0 @@ -From eb21b6827e25b2c943025a662cde2049c0454a6b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 15 Aug 2014 15:59:58 +0100 -Subject: [PATCH] Related: rhbz#1130264 plausible fix for reported crash - -Change-Id: I4ccdf19bfc7986881f7022109f22f47a0f493591 ---- - avmedia/source/gstreamer/gstplayer.cxx | 20 ++++++++++++++++---- - avmedia/source/gstreamer/gstplayer.hxx | 3 +++ - 2 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/avmedia/source/gstreamer/gstplayer.cxx b/avmedia/source/gstreamer/gstplayer.cxx -index ceea8e2..836e89e 100644 ---- a/avmedia/source/gstreamer/gstplayer.cxx -+++ b/avmedia/source/gstreamer/gstplayer.cxx -@@ -74,7 +74,9 @@ Player::Player( const uno::Reference< lang::XMultiServiceFactory >& rxMgr ) : - mpXOverlay( NULL ), - mnDuration( 0 ), - mnWidth( 0 ), -- mnHeight( 0 ) -+ mnHeight( 0 ), -+ mnWatchID( 0 ), -+ mbWatchID( false ) - { - // Initialize GStreamer library - int argc = 1; -@@ -127,11 +129,15 @@ void SAL_CALL Player::disposing() - g_object_unref( G_OBJECT ( mpXOverlay ) ); - mpXOverlay = NULL; - } -+ -+ } -+ if (mbWatchID) -+ { -+ g_source_remove(mnWatchID); -+ mbWatchID = false; - } - } - -- -- - static gboolean pipeline_bus_callback( GstBus *, GstMessage *message, gpointer data ) - { - Player* pPlayer = static_cast(data); -@@ -357,7 +363,13 @@ void Player::preparePlaybin( const OUString& rURL, GstElement *pSink ) - g_object_set( G_OBJECT( mpPlaybin ), "uri", ascURL.getStr() , NULL ); - - pBus = gst_element_get_bus( mpPlaybin ); -- gst_bus_add_watch( pBus, pipeline_bus_callback, this ); -+ if (mbWatchID) -+ { -+ g_source_remove(mnWatchID); -+ mbWatchID = false; -+ } -+ mnWatchID = gst_bus_add_watch( pBus, pipeline_bus_callback, this ); -+ mbWatchID = true; - DBG( "%p set sync handler", this ); - #ifdef AVMEDIA_GST_0_10 - gst_bus_set_sync_handler( pBus, pipeline_bus_sync_handler, this ); -diff --git a/avmedia/source/gstreamer/gstplayer.hxx b/avmedia/source/gstreamer/gstplayer.hxx -index 2426eed..33c9e4d 100644 ---- a/avmedia/source/gstreamer/gstplayer.hxx -+++ b/avmedia/source/gstreamer/gstplayer.hxx -@@ -97,6 +97,9 @@ protected: - int mnWidth; - int mnHeight; - -+ guint mnWatchID; -+ bool mbWatchID; -+ - osl::Condition maSizeCondition; - }; - --- -1.9.3 - diff --git a/0001-Remove-smb-from-X-KDE-Protocols-lines.patch b/0001-Remove-smb-from-X-KDE-Protocols-lines.patch deleted file mode 100644 index 79ee877..0000000 --- a/0001-Remove-smb-from-X-KDE-Protocols-lines.patch +++ /dev/null @@ -1,156 +0,0 @@ -From f9f9aa9873c5851da86d33ca75e937ac022206a3 Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Wed, 8 Oct 2014 09:54:55 +0200 -Subject: [PATCH] Remove smb from X-KDE-Protocols lines - -smb was included in the set of supported protocols since those X-KDE-Protocol -lines got introduced with 673be8e76856c6bc39f448f3374db4ae84258952 "add -X-KDE-Protocols," but as discussed in the mail thread starting at - -"X-KDE-Protocols=...,smb,...," actual support for smb URLs in LO under KDE is -very fragile and typically requires further steps from the user (which vary -across the various LO configure options, --enable-gio vs. --enable-gnome-vfs, -and Linux distros) to work at all. - -So it is probably best to not unconditionally claim smb support in those -X-KDE_Protocols lines at least in the vanilla LO sources (esp. since the TDF -builds with --enable-gnome-vfs need a really weird OOO_FORCE_DESKTOP=gnome -workaround to make it work at all, cf. - -"Re: X-KDE-Protocols=...,smb,..."). Any Linux distros that are confident that -smb support in LO under KDE reliably works for them can patch those lines -locally. - -Change-Id: I1c247d85825c96f0d74efcce3003e327a1522fa3 ---- - sysui/desktop/menus/base.desktop | 2 +- - sysui/desktop/menus/calc.desktop | 2 +- - sysui/desktop/menus/draw.desktop | 2 +- - sysui/desktop/menus/impress.desktop | 2 +- - sysui/desktop/menus/math.desktop | 2 +- - sysui/desktop/menus/qstart.desktop | 2 +- - sysui/desktop/menus/startcenter.desktop | 2 +- - sysui/desktop/menus/writer.desktop | 2 +- - sysui/desktop/menus/xsltfilter.desktop | 2 +- - 9 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/sysui/desktop/menus/base.desktop b/sysui/desktop/menus/base.desktop -index 26f1c6a..76255fe 100644 ---- a/sysui/desktop/menus/base.desktop -+++ b/sysui/desktop/menus/base.desktop -@@ -31,8 +31,8 @@ X-GIO-NoFuse=true - Keywords=Data;SQL; - InitialPreference=5 - StartupWMClass=libreoffice-base --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav - X-TryExec=oobase - - Actions=NewDocument; - [Desktop Action NewDocument] -diff --git a/sysui/desktop/menus/calc.desktop b/sysui/desktop/menus/calc.desktop -index fca3fe3..5aa48d2 100644 ---- a/sysui/desktop/menus/calc.desktop -+++ b/sysui/desktop/menus/calc.desktop -@@ -31,8 +31,8 @@ X-GIO-NoFuse=true - Keywords=Accounting;Stats;OpenDocument Spreadsheet;Chart;Microsoft Excel;Microsoft Works;OpenOffice Calc;ods;xls;xlsx; - InitialPreference=5 - StartupWMClass=libreoffice-calc --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav - X-TryExec=oocalc - - Actions=NewDocument; - [Desktop Action NewDocument] -diff --git a/sysui/desktop/menus/draw.desktop b/sysui/desktop/menus/draw.desktop -index ae57504..3e20e8d 100644 ---- a/sysui/desktop/menus/draw.desktop -+++ b/sysui/desktop/menus/draw.desktop -@@ -31,8 +31,8 @@ X-GIO-NoFuse=true - Keywords=Vector;Schema;Diagram;Layout;OpenDocument Graphics;Microsoft Publisher;Corel Draw;cdr;odg;svg; - InitialPreference=5 - StartupWMClass=libreoffice-draw --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav - X-TryExec=oodraw - - Actions=NewDocument; - [Desktop Action NewDocument] -diff --git a/sysui/desktop/menus/impress.desktop b/sysui/desktop/menus/impress.desktop -index c1f6231..b419593 100644 ---- a/sysui/desktop/menus/impress.desktop -+++ b/sysui/desktop/menus/impress.desktop -@@ -31,8 +31,8 @@ X-GIO-NoFuse=true - Keywords=Slideshow;Slides;OpenDocument Presentation;Microsoft PowerPoint;Microsoft Works;OpenOffice Impress;odp;ppt;pptx; - InitialPreference=5 - StartupWMClass=libreoffice-impress --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav - X-TryExec=ooimpress - - Actions=NewDocument; - [Desktop Action NewDocument] -diff --git a/sysui/desktop/menus/math.desktop b/sysui/desktop/menus/math.desktop -index b6981f5..e437d26 100644 ---- a/sysui/desktop/menus/math.desktop -+++ b/sysui/desktop/menus/math.desktop -@@ -32,8 +32,8 @@ X-GIO-NoFuse=true - Keywords=Equation;OpenDocument Formula;Formula;odf;MathML; - InitialPreference=5 - StartupWMClass=libreoffice-math --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav - X-TryExec=oomath - - Actions=NewDocument; - [Desktop Action NewDocument] -diff --git a/sysui/desktop/menus/qstart.desktop b/sysui/desktop/menus/qstart.desktop -index 2669cc3..ec4e9c2 100644 ---- a/sysui/desktop/menus/qstart.desktop -+++ b/sysui/desktop/menus/qstart.desktop -@@ -25,4 +25,4 @@ NoDisplay=true - Name=%PRODUCTNAME Quickstarter - Comment=Hook for quickstarter startup - X-GIO-NoFuse=true --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav -diff --git a/sysui/desktop/menus/startcenter.desktop b/sysui/desktop/menus/startcenter.desktop -index 3858c89..08d4a11 100644 ---- a/sysui/desktop/menus/startcenter.desktop -+++ b/sysui/desktop/menus/startcenter.desktop -@@ -30,7 +30,7 @@ Comment=The office productivity suite compatible to the open and standardized OD - StartupNotify=true - X-GIO-NoFuse=true - StartupWMClass=libreoffice-startcenter --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav - - ##Define Actions - Actions=Writer;Calc;Impress;Draw;Base;Math; -diff --git a/sysui/desktop/menus/writer.desktop b/sysui/desktop/menus/writer.desktop -index e22a7b4..44a6421 100644 ---- a/sysui/desktop/menus/writer.desktop -+++ b/sysui/desktop/menus/writer.desktop -@@ -31,8 +31,8 @@ X-GIO-NoFuse=true - Keywords=Text;Letter;Fax;Document;OpenDocument Text;Microsoft Word;Microsoft Works;Lotus WordPro;OpenOffice Writer;CV;odt;doc;docx;rtf; - InitialPreference=5 - StartupWMClass=libreoffice-writer --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav - X-TryExec=oowriter - - Actions=NewDocument; - [Desktop Action NewDocument] -diff --git a/sysui/desktop/menus/xsltfilter.desktop b/sysui/desktop/menus/xsltfilter.desktop -index 3dcad81..adea82a 100644 ---- a/sysui/desktop/menus/xsltfilter.desktop -+++ b/sysui/desktop/menus/xsltfilter.desktop -@@ -9,4 +9,4 @@ GenericName=XSLT based filters - NoDisplay=true - StartupNotify=true - X-GIO-NoFuse=true --X-KDE-Protocols=file,http,smb,ftp,webdav -+X-KDE-Protocols=file,http,ftp,webdav --- -1.9.3 - diff --git a/0001-Resolves-fdo-68967-looping-layout.patch b/0001-Resolves-fdo-68967-looping-layout.patch deleted file mode 100644 index 8c89e8f..0000000 --- a/0001-Resolves-fdo-68967-looping-layout.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 1fec67aab152e0c0ad6dd85082c50f1beff7d520 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 16 Sep 2014 13:22:44 +0100 -Subject: [PATCH] Resolves: fdo#68967 looping layout - -RemoveFollowFlowLine() marks the layout invalid, but the -next cycle through does everything exactly the same again. - -Try the same foul horror as nUnSplitted. But at least with -a test-case that nails down reproducing the bug if a better -fix is needed. - -Change-Id: Id6698bcb2364bd0253bedd4a7c313e25f705be8d ---- - sw/qa/extras/ww8import/data/fdo68967.doc | Bin 0 -> 99328 bytes - sw/qa/extras/ww8import/ww8import.cxx | 4 ++++ - sw/source/core/layout/tabfrm.cxx | 7 +++++++ - 3 files changed, 11 insertions(+) - create mode 100644 sw/qa/extras/ww8import/data/fdo68967.doc - -diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx -index 06f38c7..f7a39f5 100644 ---- a/sw/source/core/layout/tabfrm.cxx -+++ b/sw/source/core/layout/tabfrm.cxx -@@ -1831,6 +1831,7 @@ void SwTabFrm::MakeAll() - } - - int nUnSplitted = 5; // Just another loop control :-( -+ int nThrowAwayValidLayoutLimit = 5; // And another one :-( - SWRECTFN( this ) - while ( !mbValidPos || !mbValidSize || !mbValidPrtArea ) - { -@@ -2301,7 +2302,13 @@ void SwTabFrm::MakeAll() - // An existing follow flow line has to be removed. - if ( HasFollowFlowLine() ) - { -+ if (!nThrowAwayValidLayoutLimit) -+ continue; -+ bool bInitialLoopEndCondition = mbValidPos && mbValidSize && mbValidPrtArea; - RemoveFollowFlowLine(); -+ bool bFinalLoopEndCondition = mbValidPos && mbValidSize && mbValidPrtArea; -+ if (bInitialLoopEndCondition && !bFinalLoopEndCondition) -+ --nThrowAwayValidLayoutLimit; - } - - const bool bSplitError = !Split( nDeadLine, bTryToSplit, ( bTableRowKeep && !bAllowSplitOfRow ) ); --- -1.9.3 - diff --git a/0001-Resolves-fdo-76581-copy-and-paste-slideshow-crash-in.patch b/0001-Resolves-fdo-76581-copy-and-paste-slideshow-crash-in.patch deleted file mode 100644 index db08b38..0000000 --- a/0001-Resolves-fdo-76581-copy-and-paste-slideshow-crash-in.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 9b3410961e52b4666a118158512e050462711fd0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 6 Nov 2014 09:56:49 +0000 -Subject: [PATCH] Resolves: fdo#76581 copy-and-paste -> slideshow crash in - presenter console - -crash started after... - -commit 0218b0e2fa510d7acd7413dbedefd9ad50257f76 -Date: Mon Jul 15 19:45:44 2013 +0300 - fdo#65457 - Provide visual clues in presenter view. - -Change-Id: I19d84800bd5924f2dcc9e5debcf18ef95577105c ---- - sdext/source/presenter/PresenterController.cxx | 28 ++++++++++++++++++-------- - 1 file changed, 20 insertions(+), 8 deletions(-) - -diff --git a/sdext/source/presenter/PresenterController.cxx b/sdext/source/presenter/PresenterController.cxx -index 43d60ac..6c64bd7 100644 ---- a/sdext/source/presenter/PresenterController.cxx -+++ b/sdext/source/presenter/PresenterController.cxx -@@ -358,7 +358,7 @@ void PresenterController::UpdatePaneTitles (void) - sCurrentSlideName = sName; - } - } -- catch (beans::UnknownPropertyException&) -+ catch (const beans::UnknownPropertyException&) - { - } - } -@@ -585,10 +585,16 @@ bool PresenterController::HasTransition (Reference& rxPage) - if( rxPage.is() ) - { - Reference xSlidePropertySet (rxPage, UNO_QUERY); -- xSlidePropertySet->getPropertyValue("TransitionType") >>= aTransitionType; -- if( aTransitionType > 0 ) -+ try -+ { -+ xSlidePropertySet->getPropertyValue("TransitionType") >>= aTransitionType; -+ if (aTransitionType > 0) -+ { -+ bTransition = true; -+ } -+ } -+ catch (const beans::UnknownPropertyException&) - { -- bTransition = true; - } - } - return bTransition; -@@ -597,8 +603,6 @@ bool PresenterController::HasTransition (Reference& rxPage) - bool PresenterController::HasCustomAnimation (Reference& rxPage) - { - bool bCustomAnimation = false; -- presentation::AnimationEffect aEffect = presentation::AnimationEffect_NONE; -- presentation::AnimationEffect aTextEffect = presentation::AnimationEffect_NONE; - if( rxPage.is() ) - { - sal_uInt32 i, nCount = rxPage->getCount(); -@@ -606,8 +610,16 @@ bool PresenterController::HasCustomAnimation (Reference& rxP - { - Reference xShape(rxPage->getByIndex(i), UNO_QUERY); - Reference xShapePropertySet(xShape, UNO_QUERY); -- xShapePropertySet->getPropertyValue("Effect") >>= aEffect; -- xShapePropertySet->getPropertyValue("TextEffect") >>= aTextEffect; -+ presentation::AnimationEffect aEffect = presentation::AnimationEffect_NONE; -+ presentation::AnimationEffect aTextEffect = presentation::AnimationEffect_NONE; -+ try -+ { -+ xShapePropertySet->getPropertyValue("Effect") >>= aEffect; -+ xShapePropertySet->getPropertyValue("TextEffect") >>= aTextEffect; -+ } -+ catch (const beans::UnknownPropertyException&) -+ { -+ } - if( aEffect != presentation::AnimationEffect_NONE || - aTextEffect != presentation::AnimationEffect_NONE ) - { --- -1.9.3 - diff --git a/0001-Resolves-fdo-78151-change-style-on-toggling-bullets-.patch b/0001-Resolves-fdo-78151-change-style-on-toggling-bullets-.patch deleted file mode 100644 index 81fce2e..0000000 --- a/0001-Resolves-fdo-78151-change-style-on-toggling-bullets-.patch +++ /dev/null @@ -1,810 +0,0 @@ -From 5399853eb369457d3060190ed0f1af348004501c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 6 Jun 2014 15:13:26 +0100 -Subject: [PATCH] Resolves: fdo#78151 change style on toggling bullets on - master page outliners - -"do what I mean" - -In master pages prior to this if we toggle bullets on and off the that changes -the *level* of the paragraph. And because the paragraph is effectively a -preview of the equivalent style level, changing the level disconnects it from -the style which is useless for us. - -So instead turn the numbering off at the given outline level. In order to -toggle the numbering back split the defaults-setting into a reusable piece that -sets the numbering indent which we can call to toggle numbering back on - -Also split out the broadcast style change *and explicit child* broadcast code -into a reusable method, the absence of which left me stumped for well over an -hour as to why my changes only worked on level 1 - -Related: fdo#78151 force outliners in master view to be read-only text - -because these contain place-holder text and it doesn't make sense -to be able to edit them (unless some-day we support custom place-holder -prompts) - -because they are now read-only add a pair of "show next level" and "hide -last level" features so on right clicking the last outline paragraph -you can make the next one visible, or make the last one invisible - -Change-Id: Iea24d810f298156cfe2f32aa53d0515da45e08eb -(cherry picked from commit 7e600aca08ebbd69b0c8ef924c84af4dcf80df56) - -Change-Id: I311c7f35f1ca7dff1d151c6141ff5faa7f15c5a2 -(cherry picked from commit 8a5b3971057237b178f7e65437deec766b56f9c4) ---- - .../openoffice/Office/UI/DrawImpressCommands.xcu | 10 +++ - sd/inc/app.hrc | 5 +- - sd/inc/sdcommands.h | 2 + - sd/inc/stlpool.hxx | 2 + - sd/inc/stlsheet.hxx | 8 +++ - sd/sdi/_drvwsh.sdi | 10 +++ - sd/sdi/sdraw.sdi | 48 ++++++++++++++ - sd/source/core/stlpool.cxx | 57 +++++++++++----- - sd/source/core/stlsheet.cxx | 30 ++++++++- - sd/source/ui/app/popup.src | 13 ++++ - sd/source/ui/func/futempl.cxx | 21 +----- - sd/source/ui/inc/DrawViewShell.hxx | 6 ++ - sd/source/ui/inc/View.hxx | 19 ++++++ - sd/source/ui/view/drtxtob1.cxx | 76 ++++++++++++++++++++-- - sd/source/ui/view/drviews2.cxx | 50 ++++++++++++++ - sd/source/ui/view/drviews7.cxx | 66 +++++++++++++++++++ - sd/source/ui/view/sdview.cxx | 30 ++++++++- - 17 files changed, 408 insertions(+), 45 deletions(-) - -diff --git a/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu -index b4b6366..31aa4d7 100644 ---- a/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu -+++ b/officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu -@@ -584,6 +584,16 @@ - H~yperlink... - - -+ -+ -+ ~Hide Last Level -+ -+ -+ -+ -+ ~Show Next Level -+ -+ - - - ~Page... -diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc -index ef8631f..fae13da 100644 ---- a/sd/inc/app.hrc -+++ b/sd/inc/app.hrc -@@ -447,9 +447,10 @@ - - #define SID_ADD_MOTION_PATH (SID_SD_START+442) - #define SID_TABLE_TOOLBOX (SID_SD_START+443) -- - // free --#define SID_PRESENTATION_MINIMIZER (SID_SD_START+450) -+#define SID_HIDE_LAST_LEVEL (SID_SD_START+448) -+#define SID_SHOW_NEXT_LEVEL (SID_SD_START+449) -+#define SID_PRESENTATION_MINIMIZER (SID_SD_START+450) - #endif - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/sd/inc/sdcommands.h b/sd/inc/sdcommands.h -index 2041d8f..276bf6d 100644 ---- a/sd/inc/sdcommands.h -+++ b/sd/inc/sdcommands.h -@@ -119,6 +119,8 @@ - #define CMD_SID_INSERTPAGE_LAYOUT_MENU ".uno:TaskPaneInsertPage" - #define CMD_SID_PHOTOALBUM ".uno:PhotoAlbumDialog" - #define CMD_SID_PRESENTATION_MINIMIZER ".uno:PresentationMinimizer" -+#define CMD_SID_HIDE_LAST_LEVEL ".uno:HideLastLevel" -+#define CMD_SID_SHOW_NEXT_LEVEL ".uno:ShowNextLevel" - - #endif - -diff --git a/sd/inc/stlpool.hxx b/sd/inc/stlpool.hxx -index 31cb814..7af9fe9 100644 ---- a/sd/inc/stlpool.hxx -+++ b/sd/inc/stlpool.hxx -@@ -42,6 +42,7 @@ class SdStyleSheet; - class SdDrawDocument; - class SdPage; - class SfxStyleSheetBase; -+class SvxNumberFormat; - - typedef std::map< const SdPage*, SdStyleFamilyRef > SdStyleFamilyMap; - -@@ -92,6 +93,7 @@ public: - - static SdStyleSheetVector CreateChildList( SdStyleSheet* pSheet ); - -+ static void setDefaultOutlineNumberFormatBulletAndIndent(sal_uInt16 i, SvxNumberFormat &rNumberFormat); - - public: - void throwIfDisposed() throw(::com::sun::star::uno::RuntimeException); -diff --git a/sd/inc/stlsheet.hxx b/sd/inc/stlsheet.hxx -index a64366b..d8b1183 100644 ---- a/sd/inc/stlsheet.hxx -+++ b/sd/inc/stlsheet.hxx -@@ -39,6 +39,8 @@ - - #include - -+#include "prlayout.hxx" -+ - class ModifyListenerForewarder; - - typedef cppu::ImplInheritanceHelper5< SfxUnoStyleSheet, -@@ -75,6 +77,12 @@ public: - - static SdStyleSheet* CreateEmptyUserStyle( SfxStyleSheetBasePool& rPool, SfxStyleFamily eFamily ); - -+ //Broadcast that a SdStyleSheet has changed, taking into account outline sublevels -+ //which need to be explicitly broadcast as changing if their parent style was -+ //the one that changed -+ static void BroadcastSdStyleSheetChange(SfxStyleSheetBase* pStyleSheet, PresentationObjects ePO, -+ SfxStyleSheetBasePool* pSSPool); -+ - // XInterface - virtual void SAL_CALL release( ) throw () SAL_OVERRIDE; - -diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi -index d328cf4..f8119e9 100644 ---- a/sd/sdi/_drvwsh.sdi -+++ b/sd/sdi/_drvwsh.sdi -@@ -2309,6 +2309,16 @@ interface DrawView - ExecMethod = FuTemporary ; - StateMethod = GetMenuState ; - ] -+ SID_HIDE_LAST_LEVEL // ole : no, status : ? -+ [ -+ ExecMethod = FuTemporary ; -+ StateMethod = GetMenuState ; -+ ] -+ SID_SHOW_NEXT_LEVEL // ole : no, status : ? -+ [ -+ ExecMethod = FuTemporary ; -+ StateMethod = GetMenuState ; -+ ] - SID_TRANSLITERATE_UPPER // ole : no, status : ? - [ - ExecMethod = FuSupport ; -diff --git a/sd/sdi/sdraw.sdi b/sd/sdi/sdraw.sdi -index 9a03c4f..de7f1a2 100644 ---- a/sd/sdi/sdraw.sdi -+++ b/sd/sdi/sdraw.sdi -@@ -7025,3 +7025,51 @@ SfxVoidItem PresentationMinimizer SID_PRESENTATION_MINIMIZER - ToolBoxConfig = TRUE, - GroupId = GID_OPTIONS; - ] -+ -+SfxVoidItem HideLastLevel SID_HIDE_LAST_LEVEL -+() -+[ -+ /* flags: */ -+ AutoUpdate = FALSE, -+ Cachable = Cachable, -+ FastCall = FALSE, -+ HasCoreId = FALSE, -+ HasDialog = TRUE, -+ ReadOnlyDoc = FALSE, -+ Toggle = FALSE, -+ Container = FALSE, -+ RecordAbsolute = FALSE, -+ RecordPerSet; -+ Synchron; -+ -+ /* config: */ -+ AccelConfig = FALSE, -+ MenuConfig = FALSE, -+ StatusBarConfig = FALSE, -+ ToolBoxConfig = FALSE, -+ GroupId = GID_OPTIONS; -+] -+ -+SfxVoidItem ShowNextLevel SID_SHOW_NEXT_LEVEL -+() -+[ -+ /* flags: */ -+ AutoUpdate = FALSE, -+ Cachable = Cachable, -+ FastCall = FALSE, -+ HasCoreId = FALSE, -+ HasDialog = TRUE, -+ ReadOnlyDoc = FALSE, -+ Toggle = FALSE, -+ Container = FALSE, -+ RecordAbsolute = FALSE, -+ RecordPerSet; -+ Synchron; -+ -+ /* config: */ -+ AccelConfig = FALSE, -+ MenuConfig = FALSE, -+ StatusBarConfig = FALSE, -+ ToolBoxConfig = FALSE, -+ GroupId = GID_OPTIONS; -+] -diff --git a/sd/source/core/stlpool.cxx b/sd/source/core/stlpool.cxx -index 17ca4f0..2015613 100644 ---- a/sd/source/core/stlpool.cxx -+++ b/sd/source/core/stlpool.cxx -@@ -1052,9 +1052,49 @@ void SdStyleSheetPool::UpdateStdNames() - } - } - --// Set new SvxNumBulletItem for the respective style sheet -+void SdStyleSheetPool::setDefaultOutlineNumberFormatBulletAndIndent(sal_uInt16 i, SvxNumberFormat &rNumberFormat) -+{ -+ rNumberFormat.SetBulletChar( 0x25CF ); // StarBats: 0xF000 + 34 -+ rNumberFormat.SetBulletRelSize(45); -+ const short nLSpace = (i + 1) * 1200; -+ rNumberFormat.SetLSpace(nLSpace); -+ rNumberFormat.SetAbsLSpace(nLSpace); -+ short nFirstLineOffset = -600; -+ -+ switch(i) -+ { -+ case 0: -+ { -+ nFirstLineOffset = -900; -+ } -+ break; - -+ case 1: -+ { -+ rNumberFormat.SetBulletChar( 0x2013 ); // StarBats: 0xF000 + 150 -+ rNumberFormat.SetBulletRelSize(75); -+ nFirstLineOffset = -900; -+ } -+ break; - -+ case 2: -+ { -+ nFirstLineOffset = -800; -+ } -+ break; -+ -+ case 3: -+ { -+ rNumberFormat.SetBulletChar( 0x2013 ); // StarBats: 0xF000 + 150 -+ rNumberFormat.SetBulletRelSize(75); -+ } -+ break; -+ } -+ -+ rNumberFormat.SetFirstLineOffset(nFirstLineOffset); -+} -+ -+// Set new SvxNumBulletItem for the respective style sheet - void SdStyleSheetPool::PutNumBulletItem( SfxStyleSheetBase* pSheet, - Font& rBulletFont ) - { -@@ -1134,12 +1174,7 @@ void SdStyleSheetPool::PutNumBulletItem( SfxStyleSheetBase* pSheet, - SVX_MAX_NUM, false ); - for( sal_uInt16 i = 0; i < aNumRule.GetLevelCount(); i++ ) - { -- aNumberFormat.SetBulletChar( 0x25CF ); // StarBats: 0xF000 + 34 -- aNumberFormat.SetBulletRelSize(45); -- const short nLSpace = (i + 1) * 1200; -- aNumberFormat.SetLSpace(nLSpace); -- aNumberFormat.SetAbsLSpace(nLSpace); -- short nFirstLineOffset = -600; -+ setDefaultOutlineNumberFormatBulletAndIndent(i, aNumberFormat); - - sal_uLong nFontSize = 20; - switch(i) -@@ -1147,36 +1182,28 @@ void SdStyleSheetPool::PutNumBulletItem( SfxStyleSheetBase* pSheet, - case 0: - { - nFontSize = 32; -- nFirstLineOffset = -900; - } - break; - - case 1: - { -- aNumberFormat.SetBulletChar( 0x2013 ); // StarBats: 0xF000 + 150 -- aNumberFormat.SetBulletRelSize(75); - nFontSize = 32; -- nFirstLineOffset = -900; - } - break; - - case 2: - { - nFontSize = 28; -- nFirstLineOffset = -800; - } - break; - - case 3: - { -- aNumberFormat.SetBulletChar( 0x2013 ); // StarBats: 0xF000 + 150 -- aNumberFormat.SetBulletRelSize(75); - nFontSize = 24; - } - break; - } - -- aNumberFormat.SetFirstLineOffset(nFirstLineOffset); - nFontSize = (sal_uInt16)((nFontSize * 2540L) / 72); // Pt --> 1/100 mm - rBulletFont.SetSize(Size(0,846)); // 24 pt - aNumberFormat.SetBulletFont(&rBulletFont); -diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx -index 5df055f..c0f34e0 100644 ---- a/sd/source/core/stlsheet.cxx -+++ b/sd/source/core/stlsheet.cxx -@@ -1364,12 +1364,38 @@ Any SAL_CALL SdStyleSheet::getPropertyDefault( const OUString& aPropertyName ) t - return aRet; - } - -- -- - /** this is used because our property map is not sorted yet */ - const SfxItemPropertySimpleEntry* SdStyleSheet::getPropertyMapEntry( const OUString& rPropertyName ) const throw() - { - return GetStylePropertySet().getPropertyMapEntry(rPropertyName); - } - -+//Broadcast that a SdStyleSheet has changed, taking into account outline sublevels -+//which need to be explicitly broadcast as changing if their parent style was -+//the one that changed -+void SdStyleSheet::BroadcastSdStyleSheetChange(SfxStyleSheetBase* pStyleSheet, -+ PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool) -+{ -+ SdStyleSheet* pRealSheet =((SdStyleSheet*)pStyleSheet)->GetRealStyleSheet(); -+ pRealSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED)); -+ -+ if( (ePO >= PO_OUTLINE_1) && (ePO <= PO_OUTLINE_8) ) -+ { -+ OUString sStyleName(SD_RESSTR(STR_PSEUDOSHEET_OUTLINE) + " "); -+ -+ for( sal_uInt16 n = (sal_uInt16)(ePO - PO_OUTLINE_1 + 2); n < 10; n++ ) -+ { -+ OUString aName( sStyleName + OUString::number(n) ); -+ -+ SfxStyleSheetBase* pSheet = pSSPool->Find( aName, SD_STYLE_FAMILY_PSEUDO); -+ -+ if(pSheet) -+ { -+ SdStyleSheet* pRealStyleSheet = ((SdStyleSheet*)pSheet)->GetRealStyleSheet(); -+ pRealStyleSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED)); -+ } -+ } -+ } -+} -+ - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/sd/source/ui/app/popup.src b/sd/source/ui/app/popup.src -index 7f8692f..1fd5561 100644 ---- a/sd/source/ui/app/popup.src -+++ b/sd/source/ui/app/popup.src -@@ -33,6 +33,19 @@ Menu RID_DRAW_TEXTOBJ_INSIDE_POPUP - { - ItemList = - { -+ MenuItem -+ { -+ Identifier = SID_HIDE_LAST_LEVEL; -+ Command = CMD_SID_HIDE_LAST_LEVEL; -+ Text [ en-US ] = "~Hide Last Level"; -+ }; -+ MenuItem -+ { -+ Identifier = SID_SHOW_NEXT_LEVEL; -+ Command = CMD_SID_SHOW_NEXT_LEVEL; -+ Text [ en-US ] = "~Show Next Level"; -+ }; -+ SEPARATOR - MN_SET_DEFAULT - SEPARATOR - MN_TEXTATTR -diff --git a/sd/source/ui/func/futempl.cxx b/sd/source/ui/func/futempl.cxx -index 1dd0c40..42b453c 100644 ---- a/sd/source/ui/func/futempl.cxx -+++ b/sd/source/ui/func/futempl.cxx -@@ -428,27 +428,8 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) - } - } - -- OUString sStyleName(SD_RESSTR(STR_PSEUDOSHEET_OUTLINE) + " "); -- - pStyleSheet->GetItemSet().Put(aTempSet); -- SdStyleSheet* pRealSheet =((SdStyleSheet*)pStyleSheet)->GetRealStyleSheet(); -- pRealSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED)); -- -- if( (ePO >= PO_OUTLINE_1) && (ePO <= PO_OUTLINE_8) ) -- { -- for( sal_uInt16 n = (sal_uInt16)(ePO - PO_OUTLINE_1 + 2); n < 10; n++ ) -- { -- OUString aName( sStyleName + OUString::number(n) ); -- -- SfxStyleSheetBase* pSheet = pSSPool->Find( aName, SD_STYLE_FAMILY_PSEUDO); -- -- if(pSheet) -- { -- SdStyleSheet* pRealStyleSheet = ((SdStyleSheet*)pSheet)->GetRealStyleSheet(); -- pRealStyleSheet->Broadcast(SfxSimpleHint(SFX_HINT_DATACHANGED)); -- } -- } -- } -+ SdStyleSheet::BroadcastSdStyleSheetChange(pStyleSheet, ePO, pSSPool); - } - - SfxItemSet& rAttr = pStyleSheet->GetItemSet(); -diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx -index 96c5c9c..996b35b 100644 ---- a/sd/source/ui/inc/DrawViewShell.hxx -+++ b/sd/source/ui/inc/DrawViewShell.hxx -@@ -31,6 +31,7 @@ - #include - #include - -+class Outliner; - class SdPage; - class DrawDocShell; - class TabBar; -@@ -41,6 +42,7 @@ class TransferableClipboardListener; - class AbstractSvxNameDialog; - class SdrLayer; - class SvxClipboardFmtItem; -+struct ESelection; - - namespace sd { - -@@ -161,6 +163,10 @@ public: - virtual OUString GetSelectionText( bool bCompleteWords = false ); - virtual bool HasSelection( bool bText = true ) const; - -+ //If we are editing an PRESOBJ_OUTLINE return the Outliner and fill rSel -+ //with the current selection -+ ::Outliner* GetOutlinerForMasterPageOutlineTextObj(ESelection &rSel); -+ - void ExecCtrl(SfxRequest& rReq); - void GetCtrlState(SfxItemSet& rSet); - void GetDrawAttrState(SfxItemSet& rSet); -diff --git a/sd/source/ui/inc/View.hxx b/sd/source/ui/inc/View.hxx -index cd80568..2c59ade 100644 ---- a/sd/source/ui/inc/View.hxx -+++ b/sd/source/ui/inc/View.hxx -@@ -63,6 +63,24 @@ struct SdViewRedrawRec - Rectangle aRect; - }; - -+//For master view we want to force that master -+//textboxes have readonly text, because the -+//text is the auto-generated click-here-to-edit -+//and it doesn't help to change it -+class OutlinerMasterViewFilter -+{ -+private: -+ SdrOutliner *m_pOutl; -+ bool m_bReadOnly; -+public: -+ OutlinerMasterViewFilter() -+ : m_pOutl(0) -+ , m_bReadOnly(false) -+ { -+ } -+ void Start(SdrOutliner *pOutl); -+ void End(); -+}; - - class View : public FmFormView - { -@@ -275,6 +293,7 @@ protected: - - private: - ::std::auto_ptr mpClipboard; -+ OutlinerMasterViewFilter maMasterViewFilter; - }; - - -diff --git a/sd/source/ui/view/drtxtob1.cxx b/sd/source/ui/view/drtxtob1.cxx -index 605983c..761ed63 100644 ---- a/sd/source/ui/view/drtxtob1.cxx -+++ b/sd/source/ui/view/drtxtob1.cxx -@@ -57,10 +57,14 @@ - #include - - #include "app.hrc" -- -+#include "glob.hrc" -+#include "sdresid.hxx" -+#include "prlayout.hxx" - #include "ViewShell.hxx" - #include "drawview.hxx" - #include "drawdoc.hxx" -+#include "stlpool.hxx" -+#include "stlsheet.hxx" - #include "OutlineView.hxx" - #include "Window.hxx" - #include "futempl.hxx" -@@ -316,10 +320,74 @@ void TextObjectBar::Execute( SfxRequest &rReq ) - break; - - case FN_NUM_BULLET_ON: -- if( pOLV ) -- pOLV->ToggleBullets(); -- break; -+ { -+ if (pOLV) -+ { -+ bool bMasterPage = false; -+ SdrPageView* pPageView = mpView->GetSdrPageView(); -+ if (pPageView) -+ { -+ SdPage* pPage = (SdPage*)pPageView->GetPage(); -+ bMasterPage = pPage && (pPage->GetPageKind() == PK_STANDARD) && pPage->IsMasterPage(); -+ } - -+ if (!bMasterPage) -+ pOLV->ToggleBullets(); -+ else -+ { -+ //Resolves: fdo#78151 in master pages if we toggle bullets on -+ //and off then just disable/enable the bulleting, but do not -+ //change the *level* of the paragraph, because the paragraph is -+ //effectively a preview of the equivalent style level, and -+ //changing the level disconnects it from the style -+ -+ ::Outliner* pOL = pOLV->GetOutliner(); -+ if (pOL) -+ { -+ const SvxNumBulletItem *pItem = NULL; -+ SfxStyleSheetBasePool* pSSPool = mpView->GetDocSh()->GetStyleSheetPool(); -+ OUString sStyleName(SD_RESSTR(STR_PSEUDOSHEET_OUTLINE) + " 1"); -+ SfxStyleSheetBase* pFirstStyleSheet = pSSPool->Find(sStyleName, SD_STYLE_FAMILY_PSEUDO); -+ if( pFirstStyleSheet ) -+ pFirstStyleSheet->GetItemSet().GetItemState(EE_PARA_NUMBULLET, false, (const SfxPoolItem**)&pItem); -+ -+ if (pItem ) -+ { -+ SvxNumRule aNewRule(*((SvxNumBulletItem*)pItem)->GetNumRule()); -+ ESelection aSel = pOLV->GetSelection(); -+ aSel.Adjust(); -+ sal_Int32 nStartPara = aSel.nStartPara; -+ sal_Int32 nEndPara = aSel.nEndPara; -+ for (sal_Int32 nPara = nStartPara; nPara <= nEndPara; ++nPara) -+ { -+ sal_uInt16 nLevel = pOL->GetDepth(nPara); -+ SvxNumberFormat aFmt(aNewRule.GetLevel(nLevel)); -+ -+ if (aFmt.GetNumberingType() == SVX_NUM_NUMBER_NONE) -+ { -+ aFmt.SetNumberingType(SVX_NUM_CHAR_SPECIAL); -+ SdStyleSheetPool::setDefaultOutlineNumberFormatBulletAndIndent(nLevel, aFmt); -+ } -+ else -+ { -+ aFmt.SetNumberingType(SVX_NUM_NUMBER_NONE); -+ aFmt.SetLSpace(0); -+ aFmt.SetAbsLSpace(0); -+ aFmt.SetFirstLineOffset(0); -+ } -+ -+ aNewRule.SetLevel(nLevel, aFmt); -+ } -+ -+ pFirstStyleSheet->GetItemSet().Put(SvxNumBulletItem(aNewRule, EE_PARA_NUMBULLET)); -+ -+ SdStyleSheet::BroadcastSdStyleSheetChange(pFirstStyleSheet, PO_OUTLINE_1, pSSPool); -+ } -+ } -+ } -+ } -+ break; -+ } - case SID_GROW_FONT_SIZE: - case SID_SHRINK_FONT_SIZE: - { -diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx -index 384a6c7..1b56692 100644 ---- a/sd/source/ui/view/drviews2.cxx -+++ b/sd/source/ui/view/drviews2.cxx -@@ -1824,6 +1824,56 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq) - } - break; - -+ case SID_HIDE_LAST_LEVEL: -+ { -+ ESelection aSel; -+ // fdo#78151 editing a PRESOBJ_OUTLINE in a master page ? -+ ::Outliner* pOL = GetOutlinerForMasterPageOutlineTextObj(aSel); -+ if (pOL) -+ { -+ //we are on the last paragraph -+ aSel.Adjust(); -+ if (aSel.nEndPara == pOL->GetParagraphCount() - 1) -+ { -+ sal_uInt16 nDepth = pOL->GetDepth(aSel.nEndPara); -+ //there exists a previous numbering level -+ if (nDepth != sal_uInt16(-1) && nDepth > 0) -+ { -+ Paragraph* pPara = pOL->GetParagraph(aSel.nEndPara); -+ pOL->Remove(pPara, 1); -+ } -+ } -+ } -+ Cancel(); -+ rReq.Done (); -+ } -+ break; -+ -+ case SID_SHOW_NEXT_LEVEL: -+ { -+ ESelection aSel; -+ // fdo#78151 editing a PRESOBJ_OUTLINE in a master page ? -+ ::Outliner* pOL = GetOutlinerForMasterPageOutlineTextObj(aSel); -+ if (pOL) -+ { -+ //we are on the last paragraph -+ aSel.Adjust(); -+ if (aSel.nEndPara == pOL->GetParagraphCount() - 1) -+ { -+ sal_uInt16 nDepth = pOL->GetDepth(aSel.nEndPara); -+ //there exists a previous numbering level -+ if (nDepth != sal_uInt16(-1) && nDepth < 8) -+ { -+ sal_uInt16 nNewDepth = nDepth+1; -+ pOL->Insert(SD_RESSTR(STR_PRESOBJ_MPOUTLINE+nNewDepth), EE_PARA_APPEND, nNewDepth); -+ } -+ } -+ } -+ Cancel(); -+ rReq.Done (); -+ } -+ break; -+ - case SID_INSERT_FLD_DATE_FIX: - case SID_INSERT_FLD_DATE_VAR: - case SID_INSERT_FLD_TIME_FIX: -diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx -index 81e2e00..d57b4a6 100644 ---- a/sd/source/ui/view/drviews7.cxx -+++ b/sd/source/ui/view/drviews7.cxx -@@ -212,6 +212,37 @@ void DrawViewShell::GetDrawAttrState(SfxItemSet& rSet) - rSet.Put(aSet,false); - } - -+::Outliner* DrawViewShell::GetOutlinerForMasterPageOutlineTextObj(ESelection &rSel) -+{ -+ if( !mpDrawView ) -+ return NULL; -+ -+ //when there is one object selected -+ if (!mpDrawView->AreObjectsMarked() || (mpDrawView->GetMarkedObjectList().GetMarkCount() != 1)) -+ return NULL; -+ -+ //and we are editing the outline object -+ if (!mpDrawView->IsTextEdit()) -+ return NULL; -+ -+ SdrPageView* pPageView = mpDrawView->GetSdrPageView(); -+ if (!pPageView) -+ return NULL; -+ -+ SdPage* pPage = (SdPage*)pPageView->GetPage(); -+ //only show these in a normal master page -+ if (!pPage || (pPage->GetPageKind() != PK_STANDARD) || !pPage->IsMasterPage()) -+ return NULL; -+ -+ OutlinerView* pOLV = mpDrawView->GetTextEditOutlinerView(); -+ ::Outliner* pOL = pOLV ? pOLV->GetOutliner() : NULL; -+ if (!pOL) -+ return NULL; -+ rSel = pOLV->GetSelection(); -+ -+ return pOL; -+} -+ - void DrawViewShell::GetMenuState( SfxItemSet &rSet ) - { - if (mpDrawView == NULL) -@@ -1565,6 +1596,41 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) - if ( bDisableEditHyperlink ) - rSet.DisableItem( SID_OPEN_HYPERLINK ); - -+ //fdo#78151 enable show next level/hide last level if editing a master page -+ //PRESOBJ_OUTLINE object and the current selection allow that to happen -+ { -+ bool bDisableShowNextLevel = true; -+ bool bDisableHideLastLevel = true; -+ -+ ESelection aSel; -+ ::Outliner* pOL = GetOutlinerForMasterPageOutlineTextObj(aSel); -+ if (pOL) -+ { -+ //and are on the last paragraph -+ aSel.Adjust(); -+ if (aSel.nEndPara == pOL->GetParagraphCount() - 1) -+ { -+ sal_uInt16 nDepth = pOL->GetDepth(aSel.nEndPara); -+ if (nDepth != sal_uInt16(-1)) -+ { -+ //there exists another numbering level that -+ //is currently hidden -+ if (nDepth < 8) -+ bDisableShowNextLevel = false; -+ //there exists a previous numbering level -+ if (nDepth > 0) -+ bDisableHideLastLevel = false; -+ } -+ } -+ } -+ -+ if (bDisableShowNextLevel) -+ rSet.DisableItem(SID_SHOW_NEXT_LEVEL); -+ -+ if (bDisableHideLastLevel) -+ rSet.DisableItem(SID_HIDE_LAST_LEVEL); -+ } -+ - #if defined WNT || defined UNX - if( !mxScannerManager.is() ) - { -diff --git a/sd/source/ui/view/sdview.cxx b/sd/source/ui/view/sdview.cxx -index 53e48a5..8755f8e 100644 ---- a/sd/source/ui/view/sdview.cxx -+++ b/sd/source/ui/view/sdview.cxx -@@ -653,12 +653,33 @@ static void SetSpellOptions( const SdDrawDocument& rDoc, sal_uLong& rCntrl ) - rCntrl &= ~EE_CNTRL_ONLINESPELLING; - } - -+void OutlinerMasterViewFilter::Start(SdrOutliner *pOutl) -+{ -+ m_pOutl = pOutl; -+ OutlinerView* pOutlView = m_pOutl->GetView(0); -+ m_bReadOnly = pOutlView->IsReadOnly(); -+ pOutlView->SetReadOnly(true); -+} -+ -+void OutlinerMasterViewFilter::End() -+{ -+ if (m_pOutl) -+ { -+ OutlinerView* pOutlView = m_pOutl->GetView(0); -+ pOutlView->SetReadOnly(m_bReadOnly); -+ m_pOutl = NULL; -+ } -+} -+ - bool View::SdrBeginTextEdit( - SdrObject* pObj, SdrPageView* pPV, ::Window* pWin, - bool bIsNewObj, - SdrOutliner* pOutl, OutlinerView* pGivenOutlinerView, - bool bDontDeleteOutliner, bool bOnlyOneView, bool bGrabFocus ) - { -+ SdrPage* pPage = pObj->GetPage(); -+ bool bMasterPage = pPage && pPage->IsMasterPage(); -+ - GetViewShell()->GetViewShellBase().GetEventMultiplexer()->MultiplexEvent( - sd::tools::EventMultiplexerEvent::EID_BEGIN_TEXT_EDIT, (void*)pObj ); - -@@ -731,12 +752,17 @@ bool View::SdrBeginTextEdit( - } - } - -- return(bReturn); -+ if (bMasterPage && bReturn) -+ maMasterViewFilter.Start(pOutl); -+ -+ return bReturn; - } - - /** ends current text editing */ --SdrEndTextEditKind View::SdrEndTextEdit(bool bDontDeleteReally ) -+SdrEndTextEditKind View::SdrEndTextEdit(bool bDontDeleteReally) - { -+ maMasterViewFilter.End(); -+ - SdrObjectWeakRef xObj( GetTextEditObject() ); - - bool bDefaultTextRestored = RestoreDefaultText( dynamic_cast< SdrTextObj* >( GetTextEditObject() ) ); --- -1.9.3 - diff --git a/0001-Resolves-fdo-80911-don-t-swap-notes-page-width-heigh.patch b/0001-Resolves-fdo-80911-don-t-swap-notes-page-width-heigh.patch deleted file mode 100644 index c7c70c1..0000000 --- a/0001-Resolves-fdo-80911-don-t-swap-notes-page-width-heigh.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 8e4c1db34025dff41f4576865e49f1e9f990aa9f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 18 Sep 2014 11:40:26 +0100 -Subject: [PATCH] Resolves: fdo#80911 don't swap notes page width/height - -IsDraw doesn't mean the app/page is Draw - -it means a slide in impress. - -commit 7b31e45ec7106d2cfbdbb7915d97667ba710f81c -Date: Mon Jun 23 20:55:21 2014 +0100 - Make Draw use paper size when printing - fdo#63905 - - Previously, Draw/Impress use the default size from the printer. - Now Draw uses the paper size (specified in page formatting). - Impress still uses the old method - not sure if this is correct - but printing handouts etc probably complicate print/paper size. - -suggests the intent is for this to not affect Impress and to only -affect Draw, so this does that - -(cherry picked from commit f1f89f0202232635e7fbbd7ca47de51755b2bce0) - -Conflicts: - sd/source/ui/view/DocumentRenderer.cxx - -Change-Id: I481a824ef244fd837992c893f6de0c051af0a26b - -(cherry picked from commit cca120ad92ecab741ca9683f3cf76d9e4fc81729) - -Conflicts: - sd/source/ui/view/DocumentRenderer.cxx - -Change-Id: I9826f69d03de85ea8d2b2c025121599877798852 ---- - sd/source/ui/view/DocumentRenderer.cxx | 31 +++++++++++++++++-------------- - 1 file changed, 17 insertions(+), 14 deletions(-) - -diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx -index 7080e9d..8e1739c 100644 ---- a/sd/source/ui/view/DocumentRenderer.cxx -+++ b/sd/source/ui/view/DocumentRenderer.cxx -@@ -1409,6 +1409,7 @@ private: - SdDrawDocument* pDocument = mrBase.GetMainViewShell()->GetDoc(); - bool bIsDraw = pDocument->GetDocumentType() == DOCUMENT_TYPE_DRAW; - rInfo.meOrientation = ORIENTATION_PORTRAIT; -+ bool bDoDodgyHeightWidthFit = !bIsDraw && !mpOptions->IsNotes(); - - if( ! mpOptions->IsBooklet()) - { -@@ -1418,9 +1420,9 @@ private: - else if (rInfo.maPageSize.Width() < rInfo.maPageSize.Height()) - rInfo.meOrientation = ORIENTATION_LANDSCAPE; - -- // Draw should abide by specified paper size -+ // Draw and Notes should abide by their specified paper size - Size aPaperSize; -- if (bIsDraw) -+ if (!bDoDodgyHeightWidthFit) - { - aPaperSize.setWidth(rInfo.maPageSize.Width()); - aPaperSize.setHeight(rInfo.maPageSize.Height()); -@@ -1431,18 +1433,19 @@ private: - aPaperSize.setHeight(rInfo.mpPrinter->GetPaperSize().Height()); - } - -- if( (rInfo.meOrientation == ORIENTATION_LANDSCAPE && -- (aPaperSize.Width() < aPaperSize.Height())) -- || -- (rInfo.meOrientation == ORIENTATION_PORTRAIT && -- (aPaperSize.Width() > aPaperSize.Height())) -- ) -- { -- maPrintSize = awt::Size(aPaperSize.Height(), aPaperSize.Width()); -- } -- else -+ maPrintSize = awt::Size(aPaperSize.Width(), aPaperSize.Height()); -+ -+ if (bDoDodgyHeightWidthFit) - { -- maPrintSize = awt::Size(aPaperSize.Width(), aPaperSize.Height()); -+ if( (rInfo.meOrientation == ORIENTATION_LANDSCAPE && -+ (aPaperSize.Width() < aPaperSize.Height())) -+ || -+ (rInfo.meOrientation == ORIENTATION_PORTRAIT && -+ (aPaperSize.Width() > aPaperSize.Height())) -+ ) -+ { -+ maPrintSize = awt::Size(aPaperSize.Height(), aPaperSize.Width()); -+ } - } - - return true; --- -1.9.3 - diff --git a/0001-Resolves-fdo-81487-pasting-into-outline-view-crashes.patch b/0001-Resolves-fdo-81487-pasting-into-outline-view-crashes.patch deleted file mode 100644 index 4cbecd5..0000000 --- a/0001-Resolves-fdo-81487-pasting-into-outline-view-crashes.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a5793f5e0013b156600fd718d8f77870a9e73032 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 18 Jul 2014 09:06:44 +0100 -Subject: [PATCH] Resolves: fdo#81487 pasting into outline view crashes impress - -CreateTitleTextObject will call indirectly ImpPageChange which -triggers tools::EventMultiplexerEvent::EID_PAGE_ORDER and so -in outlview.cxx without ignore page changes level in action -the outliner is filled in from the slide contents in -FillOutliner clearing the outliner contents and filling it -fresh, but.. - -a) this hack tower is not prepared for all the outliner -iterators to become invalid -b) the contents of this title object is empty, because -it was just created, and we didn't get a chance to fill -in its text. - -This all works for typing vs pasting because the KeyInput -uses the OutlineViewPageChangesGuard guard which sets the -ignore pages changes bit. - -So, given that OutlineView::UpdateDocument expects -the iterators of the outliner to be valid during -the lifetime of the method lock the full method with -the OutlineViewPageChangesGuard guard - -Change-Id: Iecbf37d54f5f0c5a181be5f27832f769a3d2e389 ---- - sd/source/ui/view/outlview.cxx | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/sd/source/ui/view/outlview.cxx b/sd/source/ui/view/outlview.cxx -index 268a32b..a76bb0b 100644 ---- a/sd/source/ui/view/outlview.cxx -+++ b/sd/source/ui/view/outlview.cxx -@@ -1535,6 +1535,8 @@ void OutlineView::EndModelChange() - /** updates all changes in the outliner model to the draw model */ - void OutlineView::UpdateDocument() - { -+ OutlineViewPageChangesGuard aGuard(this); -+ - const sal_uInt32 nPageCount = mrDoc.GetSdPageCount(PK_STANDARD); - Paragraph* pPara = mrOutliner.GetParagraph( 0 ); - sal_uInt32 nPage; --- -1.9.3 - diff --git a/0001-Resolves-fdo-86449-backport-rtf-fixes.patch b/0001-Resolves-fdo-86449-backport-rtf-fixes.patch deleted file mode 100644 index 8dde37c..0000000 --- a/0001-Resolves-fdo-86449-backport-rtf-fixes.patch +++ /dev/null @@ -1,222 +0,0 @@ -From b4840d3632e4404bee4bd192a7db916cbad3a401 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 20 Aug 2014 08:56:54 +0100 -Subject: [PATCH 1/2] Resolves: fdo#86449 backport rtf fixes - -empty Reference - -valgrind + bff - -(cherry picked from commit 0a42632a74596cbc781746931bf8f2650994b80f) - -empty m_aStates - -valgrind + bff - -(cherry picked from commit e3247719911f4e9b61ec43ea1c9ce04bcddc4ff8) - -Change-Id: Id3c039a46dec5d2d4a4642dfb53d23a76972dde2 -3bd526b7ebf0f4fce5d0c7054809e0dc2908e73f -Reviewed-on: https://gerrit.libreoffice.org/12965 -Reviewed-by: Miklos Vajna -Tested-by: Miklos Vajna ---- - ...7381c4a46d642c79a4b1817dc0-101375-minimized.rtf | 62 ++++++++++++++++++++++ - ...7381c4a46d642c79a4b1817dc0-108116-minimized.rtf | 62 ++++++++++++++++++++++ - .../source/dmapper/DomainMapperTableHandler.cxx | 8 ++- - writerfilter/source/rtftok/rtfdocumentimpl.cxx | 13 ++--- - 4 files changed, 138 insertions(+), 7 deletions(-) - create mode 100644 writerfilter/qa/cppunittests/rtftok/data/pass/sf_2063317381c4a46d642c79a4b1817dc0-101375-minimized.rtf - create mode 100644 writerfilter/qa/cppunittests/rtftok/data/pass/sf_2063317381c4a46d642c79a4b1817dc0-108116-minimized.rtf - -diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/sf_2063317381c4a46d642c79a4b1817dc0-101375-minimized.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/sf_2063317381c4a46d642c79a4b1817dc0-101375-minimized.rtf -new file mode 100644 -index 0000000..c3ffebc ---- /dev/null -+++ b/writerfilter/qa/cppunittests/rtftok/data/pass/sf_2063317381c4a46d642c79a4b1817dc0-101375-minimized.rtf -@@ -0,0 +1,62 @@ -+{\rtf1\ansi\deff0\adeflang1025 -+{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset128 Times New Roman;}{\f4\froman\fprq2\fcharset128 Arial Narrow;}{\f5\froman\fprq0\fcharset128 Arial Narrow;}{\f6\froman\fprq2\fcharset128 Symbol;}{\f7\froman\fprq0\fcharset128 Symbol;}{\f8\froman\fprq2\fcharset128 Wingdings;}{\f9\froman\fprq0\fcharset128 Wingdings;}{\f10\froman\fprq0\fcharset128 Times New Roman;}{\f11\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f12\fnil\fprq2\fcharset128 SimSun;}{\f13\fnil\fprq2\fcharset128 Times New Roman (Arabic);}{\f14\fnil\fprq0\fcharset128 Times New Roman (Arabic);}{\f15\fnil\fprq2\fcharset128 Times New Roman;}{\f16\fnil\fprq0\fcharset128 Times New Roman;}{\f17\fnil\fprq2\fcharset0 Mangal;}{\f18\fnil\fprq0\fcharset128 Mangal;}{\f19\fnil\fprq2\fcharset128 Mangal;}{\f20\fnil\fprq2\fcharset128 Cambria Math;}{\f21\fnil\fprq0\fcharset128 Cambria Math;}} -+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red128\green128\blue128;} -+{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040 Predefinito;} -+{\s15\sbasedon0\snext16\sb240\sa120\keepn\hich\af11\dbch\af17\afs28\loch\f2\fs28 Intestazione;} -+{\s16\sbasedon0\snext16\sb0\sa120 Corpo testo;} -+{\s17\sbasedon16\snext17\sb0\sa120\dbch\af18 Elenco;} -+{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af18\afs24\ai\fs24 Didascalia;} -+{\s19\sbasedon0\snext19\noline\dbch\af18 Indice;} -+}{\info{\creatim\yr2011\mo9\dy28\hr16\min28}{\revtim\yr2011\mo9\dy28\hr16\min29}{\printim\yr0\mo0\dy0\hr0\min0}{\comment LibreOffice}{\vern3500}}\deftab720 -+ -+{\*\pgdsctbl -+{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1417\margbsxn1134\pgdscnxt0 Predefinito;}} -+\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1134\margr1134\margt1417\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1417\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc -+\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx9864\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\keepn{\scaps\b\hich\af14\langfe1040\dbch\af14\afs26\alang1025\ab\rtlch \ltrch\loch\fs26\lang1040\loch\f5 -+SSSSSSS SSSSSSS curriculum vitae} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\langfe1040\dbch\af14\afs16\alang1025\rtlch \ltrch\loch\fs16\lang1040\loch\f5 -+}\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\keepn{\scaps\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+Informazioni personali}\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Nome}\cell\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\scaps\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSSS SSSSSSS}\cell\cell\row\pard\trowd\trql\trleft-108\ltrrow\trrh876\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvert`lt\cellx2623\clvertalt\cellx2896\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\h{phmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Indirizzo}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\scaps\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSS S. SSSSSSSS SSSS} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40[\scaps\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSS SSSSS SSSSSS}\cell\row\pard\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2896\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Telefono}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSSSSSS}\cell\row\pard\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2896\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\langfe1040\dbch\af14\afs22\alang1025\rtlch \ltrch\loch\fs22\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+}\cell\row\pard\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2896\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+E-mail}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSSSSSSSSSSSSSSSSSS}\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa0{\rtlch \ltrch\loch -+} -+\par \trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Nazionalit\'e0}\cell\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSSSS}\cell\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20{\rtlch \ltrch\loch -+} -+\par \trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Luogo e Data di nascita}\cell\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSS SSSSSSSSSS }\cell\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par } -\ No newline at end of file -diff --git a/writerfilter/qa/cppunittests/rtftok/data/pass/sf_2063317381c4a46d642c79a4b1817dc0-108116-minimized.rtf b/writerfilter/qa/cppunittests/rtftok/data/pass/sf_2063317381c4a46d642c79a4b1817dc0-108116-minimized.rtf -new file mode 100644 -index 0000000..9576906 ---- /dev/null -+++ b/writerfilter/qa/cppunittests/rtftok/data/pass/sf_2063317381c4a46d642c79a4b1817dc0-108116-minimized.rtf -@@ -0,0 +1,62 @@ -+{\rtf1\ansi\deff0\adeflang1025 -+{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset128 Times New Roman;}{\f4\froman\fprq2\fcharset128 Arial Narrow;}{\f5\froman\fprq0\fcharset128 Arial Narrow;}{\f6\froman\fprq2\fcharset128 Symbol;}{\f7\froman\fprq0\fcharset128 Symbol;}{\f8\froman\fprq2\fcharset128 Wingdings;}{\f9\froman\fprq0\fcharset128 Wingdings;}{\f10\froman\fprq0\fcharset128 Times New Roman;}{\f11\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f12\fnil\fprq2\fcharset128 SimSun;}{\f13\fnil\fprq2\fcharset128 Times New Roman (Arabic);}{\f14\fnil\fprq0\fcharset128 Times New Roman (Arabic);}{\f15\fnil\fprq2\fcharset128 Times New Roman;}{\f16\fnil\fprq0\fcharset128 Times New Roman;}{\f17\fnil\fprq2\fcharset0 Mangal;}{\f18\fnil\fprq0\fcharset128 Mangal;}{\f19\fnil\fprq2\fcharset128 Mangal;}{\f20\fnil\fprq2\fcharset128 Cambria Math;}{\f21\fnil\fprq0\fcharset128 Cambria Math;}} -+{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red128\green128\blue128;} -+{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040 Predefinito;} -+{\s15\sbasedon0\snext16\sb240\sa120\keepn\hich\af11\dbch\af17\afs28\loch\f2\fs28 Intestazione;} -+{\s16\sbasedon0\snext16\sb0\sa120 Corpo testo;} -+{\s17\sbasedon16\snext17\sb0\sa120\dbch\af18 Elenco;} -+{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af18\afs24\ai\fs24 Didascalia;} -+{\s19\sbasedon0\snext19\noline\dbch\af18 Indice;} -+}{\info{\creatim\yr2011\mo9\dy28\hr16\min28}{\revtim\yr2011\mo9\dy28\hr16\min29}{\printim\yr0\mo0\dy0\hr0\min0}{\comment LibreOffice}{\vern3500}}\deftab720 -+ -+{\*\pgdsctbl -+{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1417\margbsxn1134\pgdscnxt0 Predefinito;}} -+\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1134\margr1134\margt1417\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1417\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc -+\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx9864\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\keepn{\scaps\b\hich\af14\langfe1040\dbch\af14\afs26\alang1025\ab\rtlch \ltrch\loch\fs26\lang1040\loch\f5 -+SSSSSSS SSSSSSS curriculum vitae} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\langfe1040\dbch\af14\afs16\alang1025\rtlch \ltrch\loch\fs16\lang1040\loch\f5 -+}\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\keepn{\scaps\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+Informazioni personali}\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Nome}\cell\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\scaps\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSSS SSSSSSS}\cell\cell\row\pard\trowd\trql\trleft-108\ltrrow\trrh876\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2896\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Indirizzo}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\scaps\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSS S. SSSSSSSS SSSS} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\scaps\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSS SSSSS SSSSSS}\cell\row\pard\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2896\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Telefono}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSSSSSS}\cell\row\pard\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2896\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\langfe1040\dbch\af14\afs22\alang1025\rtlch \ltrch\loch\fs22\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+}\cell\row\pard\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2896\clvertalt\cellx9864\pard\plain \sp\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+E-mail}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSSSSSSSSSSSSSSSSSS}\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb120\sa0{\rtlch \ltrch\loch -+} -+\par \trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Nazionalit\'e0}\cell\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSSSS}\cell\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20{\rtlch \ltrch\loch -+} -+\par \trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\qr\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20\keepn{\hich\af14\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+Luogo e Data di nascita}\cell\trowd\trql\trleft-108\ltrrow\trpaddft3\trpaddt0\trpaddfl3\trpaddl0\trpaddfb3\trpaddb0\trpaddfr3\trpaddr0\clvertalt\cellx2623\clvertalt\cellx2895\clvertalt\cellx9864\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb20\sa20{\langfe1040\dbch\af14\afs20\alang1025\rtlch \ltrch\loch\fs20\lang1040\loch\f5 -+}\cell\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\intbl\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\sb40\sa40{\b\hich\af14\langfe1040\dbch\af14\afs24\alang1025\ab\rtlch \ltrch\loch\fs24\lang1040\loch\f5 -+SSSSSS SSSSSSSSSS }\cell\cell\row\pard\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\hich\af22\langfe2052\dbch\af17\afs24\alang1081\loch\f0\fs24\lang1040\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\rtlch \ltrch\loch -+} -+\par } -\ No newline at end of file -diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx -index b8193c7..fdf292d 100644 ---- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx -+++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx -@@ -921,6 +921,12 @@ bool lcl_emptyRow(TableSequence_t& rTableSeq, sal_Int32 nRow) - } - - RowSequence_t rRowSeq = rTableSeq[nRow]; -+ if (rRowSeq.getLength() == 0) -+ { -+ SAL_WARN("writerfilter", "m_aCellProperties not in sync with m_pTableSeq?"); -+ return false; -+ } -+ - uno::Reference xTextRangeCompare(rRowSeq[0][0]->getText(), uno::UNO_QUERY); - try - { -@@ -931,7 +937,7 @@ bool lcl_emptyRow(TableSequence_t& rTableSeq, sal_Int32 nRow) - if (xTextRangeCompare->compareRegionStarts(rRowSeq[nCell][0], rRowSeq[nCell][1]) != 0) - return false; - } -- catch (lang::IllegalArgumentException& e) -+ catch (const lang::IllegalArgumentException& e) - { - SAL_WARN("writerfilter", "compareRegionStarts() failed: " << e.Message); - return false; -diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx -index 31ff8b8..be56161 100644 ---- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx -+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx -@@ -5789,12 +5789,13 @@ int RTFDocumentImpl::popState() - case DESTINATION_SHAPEPROPERTYNAME: - case DESTINATION_SHAPEPROPERTYVALUE: - case DESTINATION_SHAPEPROPERTY: -- { -- m_aStates.top().aShape = aState.aShape; -- m_aStates.top().aPicture = aState.aPicture; -- m_aStates.top().aCharacterAttributes = aState.aCharacterAttributes; -- } -- break; -+ if (!m_aStates.empty()) -+ { -+ m_aStates.top().aShape = aState.aShape; -+ m_aStates.top().aPicture = aState.aPicture; -+ m_aStates.top().aCharacterAttributes = aState.aCharacterAttributes; -+ } -+ break; - case DESTINATION_FLYMAINCONTENT: - case DESTINATION_SHPPICT: - case DESTINATION_SHAPE: --- -1.9.3 - diff --git a/0001-Resolves-fdo-86466-Wrong-background-color-shown-in-f.patch b/0001-Resolves-fdo-86466-Wrong-background-color-shown-in-f.patch index abf9d4c..381b3d2 100644 --- a/0001-Resolves-fdo-86466-Wrong-background-color-shown-in-f.patch +++ b/0001-Resolves-fdo-86466-Wrong-background-color-shown-in-f.patch @@ -1,4 +1,4 @@ -From 84cce94c86c3357b88017f29b84b3c19bd1ab731 Mon Sep 17 00:00:00 2001 +From e91ab2104b62b689dca2c565cd81a8cb40885822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Thu, 20 Nov 2014 15:53:14 +0000 Subject: [PATCH] Resolves: fdo#86466 Wrong background color shown in format @@ -23,21 +23,16 @@ Now format color shows the expected color, and loading the sample for bnc#882627 and selecting cells and changing the border distance (etc) doesn't cause bulleting and paragraph alignment properties to be stripped away -(cherry picked from commit e91ab2104b62b689dca2c565cd81a8cb40885822) - -Conflicts: - svx/source/table/tablecontroller.cxx - Change-Id: Id414e09faa221d151f393971654b17bbe9f46d81 --- svx/source/table/tablecontroller.cxx | 44 ++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx -index 0b239e1..f7a5468 100644 +index f5b4c99..c028a2a 100644 --- a/svx/source/table/tablecontroller.cxx +++ b/svx/source/table/tablecontroller.cxx -@@ -858,6 +858,19 @@ void SvxTableController::onSelect( sal_uInt16 nSId ) +@@ -856,6 +856,19 @@ void SvxTableController::onSelect( sal_uInt16 nSId ) } } @@ -57,15 +52,15 @@ index 0b239e1..f7a5468 100644 void SvxTableController::onFormatTable( SfxRequest& rReq ) { -@@ -872,15 +885,11 @@ void SvxTableController::onFormatTable( SfxRequest& rReq ) +@@ -870,15 +883,11 @@ void SvxTableController::onFormatTable( SfxRequest& rReq ) SfxItemSet aNewAttr( pTableObj->GetModel()->GetItemPool() ); // merge drawing layer text distance items into SvxBoxItem used by the dialog - SvxBoxItem aBoxItem( static_cast< const SvxBoxItem& >( aNewAttr.Get( SDRATTR_TABLE_BORDER ) ) ); -- aBoxItem.SetDistance( sal::static_int_cast< sal_uInt16 >( ((SdrTextLeftDistItem&)(aNewAttr.Get(SDRATTR_TEXT_LEFTDIST))).GetValue()), BOX_LINE_LEFT ); -- aBoxItem.SetDistance( sal::static_int_cast< sal_uInt16 >( ((SdrTextRightDistItem&)(aNewAttr.Get(SDRATTR_TEXT_RIGHTDIST))).GetValue()), BOX_LINE_RIGHT ); -- aBoxItem.SetDistance( sal::static_int_cast< sal_uInt16 >( ((SdrTextUpperDistItem&)(aNewAttr.Get(SDRATTR_TEXT_UPPERDIST))).GetValue()), BOX_LINE_TOP ); -- aBoxItem.SetDistance( sal::static_int_cast< sal_uInt16 >( ((SdrTextLowerDistItem&)(aNewAttr.Get(SDRATTR_TEXT_LOWERDIST))).GetValue()), BOX_LINE_BOTTOM ); +- aBoxItem.SetDistance( sal::static_int_cast< sal_uInt16 >( static_cast(aNewAttr.Get(SDRATTR_TEXT_LEFTDIST)).GetValue()), BOX_LINE_LEFT ); +- aBoxItem.SetDistance( sal::static_int_cast< sal_uInt16 >( static_cast(aNewAttr.Get(SDRATTR_TEXT_RIGHTDIST)).GetValue()), BOX_LINE_RIGHT ); +- aBoxItem.SetDistance( sal::static_int_cast< sal_uInt16 >( static_cast(aNewAttr.Get(SDRATTR_TEXT_UPPERDIST)).GetValue()), BOX_LINE_TOP ); +- aBoxItem.SetDistance( sal::static_int_cast< sal_uInt16 >( static_cast(aNewAttr.Get(SDRATTR_TEXT_LOWERDIST)).GetValue()), BOX_LINE_BOTTOM ); + SvxBoxItem aBoxItem(mergeDrawinglayerTextDistancesAndSvxBoxItem(aNewAttr)); SvxBoxInfoItem aBoxInfoItem( static_cast< const SvxBoxInfoItem& >( aNewAttr.Get( SDRATTR_TABLE_BORDER_INNER ) ) ); @@ -75,7 +70,7 @@ index 0b239e1..f7a5468 100644 FillCommonBorderAttrFromSelectedCells( aBoxItem, aBoxInfoItem ); aNewAttr.Put( aBoxItem ); aNewAttr.Put( aBoxInfoItem ); -@@ -890,8 +899,21 @@ void SvxTableController::onFormatTable( SfxRequest& rReq ) +@@ -888,8 +897,21 @@ void SvxTableController::onFormatTable( SfxRequest& rReq ) // Even Cancel Button is returning positive(101) value, if( pDlg.get() && ( pDlg->Execute() == RET_OK ) ) { @@ -88,18 +83,18 @@ index 0b239e1..f7a5468 100644 + //ones, so if they were not changed, then forcible set them back to + //their originals in the new result set so we can decompose that + //unchanged state back to their input properties -+ if (aNewSet.GetItemState(SDRATTR_TABLE_BORDER, false) != SFX_ITEM_SET) ++ if (aNewSet.GetItemState(SDRATTR_TABLE_BORDER, false) != SfxItemState::SET) + { + aNewSet.Put(aBoxItem); + } -+ if (aNewSet.GetItemState(SDRATTR_TABLE_BORDER_INNER, false) != SFX_ITEM_SET) ++ if (aNewSet.GetItemState(SDRATTR_TABLE_BORDER_INNER, false) != SfxItemState::SET) + { + aNewSet.Put(aBoxInfoItem); + } SvxBoxItem aNewBoxItem( static_cast< const SvxBoxItem& >( aNewSet.Get( SDRATTR_TABLE_BORDER ) ) ); -@@ -912,8 +934,6 @@ void SvxTableController::onFormatTable( SfxRequest& rReq ) +@@ -910,8 +932,6 @@ void SvxTableController::onFormatTable( SfxRequest& rReq ) } } @@ -108,7 +103,7 @@ index 0b239e1..f7a5468 100644 void SvxTableController::Execute( SfxRequest& rReq ) { const sal_uInt16 nSId = rReq.GetSlot(); -@@ -2951,8 +2971,8 @@ void SvxTableController::FillCommonBorderAttrFromSelectedCells( SvxBoxItem& rBox +@@ -2949,8 +2969,8 @@ void SvxTableController::FillCommonBorderAttrFromSelectedCells( SvxBoxItem& rBox nCellFlags |= (nCol > aEnd.mnCol) ? CELL_AFTER : 0; const SfxItemSet& rSet = xCell->GetItemSet(); @@ -120,5 +115,5 @@ index 0b239e1..f7a5468 100644 } -- -1.9.3 +2.1.0 diff --git a/0001-Resolves-rhbz-1161238-sync-PRESOBJ_OUTLINE-para-dept.patch b/0001-Resolves-rhbz-1161238-sync-PRESOBJ_OUTLINE-para-dept.patch deleted file mode 100644 index 9055061..0000000 --- a/0001-Resolves-rhbz-1161238-sync-PRESOBJ_OUTLINE-para-dept.patch +++ /dev/null @@ -1,95 +0,0 @@ -From a6ddf90a2c4070d9c2355b7349db9f02b2119dc4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 7 Nov 2014 14:16:58 +0000 -Subject: [PATCH] Resolves: rhbz#1161238 sync PRESOBJ_OUTLINE para depths to - outline numbering - -same problem as fdo#78151, except that pre-existing documents created -before the bullet/numbering toggling UI change have PRESOBJ_OUTLINEs with -paras in them with "numbering off" but the outline level they are a -preview of still have numbering enabled. - -Leave the actual numbering styles alone in this case and toggle the -PRESOBJ_OUTLINEs paras back to the level they "really" are - -Change-Id: I76508f88b5003afd1740feee3ec328326117f896 ---- - sd/source/filter/xml/sdxmlwrp.cxx | 48 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 48 insertions(+) - -diff --git a/sd/source/filter/xml/sdxmlwrp.cxx b/sd/source/filter/xml/sdxmlwrp.cxx -index 411e7b1..65a52ac 100644 ---- a/sd/source/filter/xml/sdxmlwrp.cxx -+++ b/sd/source/filter/xml/sdxmlwrp.cxx -@@ -26,6 +26,7 @@ - #include - #include - #include "drawdoc.hxx" -+#include "Outliner.hxx" - #include - #include - -@@ -415,6 +416,51 @@ sal_Int32 ReadThroughComponent( - - - -+//PRESOBJ_OUTLINEs in master pages are the preview of the outline styles -+//numbering format. Since fdo#78151 toggling bullets on and off changes -+//the style they are a preview of, previously toggling bullets on and off -+//would only affect the preview paragraph itself without an effect on the -+//style. i.e. previews of numbering which don't match the real numbering -+//they are supposed to be a preview of. -+// -+//But there exist documents which were saved previous to that modification -+//so here we detect such cases and fix them up to ensure the previews -+//numbering level matches that of the outline level it previews -+void fixupOutlinePlaceholderNumberingDepths(SdDrawDocument* pDoc) -+{ -+ for (sal_uInt16 i = 0; i < pDoc->GetMasterSdPageCount(PK_STANDARD); ++i) -+ { -+ SdPage *pMasterPage = pDoc->GetMasterSdPage(i, PK_STANDARD); -+ SdrObject* pMasterOutline = pMasterPage->GetPresObj(PRESOBJ_OUTLINE); -+ if (!pMasterOutline) -+ continue; -+ OutlinerParaObject* pOutlParaObj = pMasterOutline->GetOutlinerParaObject(); -+ if (!pOutlParaObj) -+ continue; -+ ::sd::Outliner* pOutliner = pDoc->GetInternalOutliner(); -+ pOutliner->Clear(); -+ pOutliner->SetText(*pOutlParaObj); -+ bool bInconsistent = false; -+ const sal_Int32 nParaCount = pOutliner->GetParagraphCount(); -+ for (sal_Int32 j = 0; j < nParaCount; ++j) -+ { -+ const sal_Int16 nExpectedDepth = j; -+ if (nExpectedDepth != pOutliner->GetDepth(j)) -+ { -+ Paragraph* p = pOutliner->GetParagraph(j); -+ pOutliner->SetDepth(p, nExpectedDepth); -+ bInconsistent = true; -+ } -+ } -+ if (bInconsistent) -+ { -+ SAL_WARN("sd.filter", "Fixing inconsistent outline numbering placeholder preview depth"); -+ pMasterOutline->SetOutlinerParaObject(pOutliner->CreateParaObject(0, nParaCount)); -+ } -+ pOutliner->Clear(); -+ } -+} -+ - bool SdXMLFilter::Import( ErrCode& nError ) - { - sal_uInt32 nRet = 0; -@@ -779,6 +825,8 @@ bool SdXMLFilter::Import( ErrCode& nError ) - } - } - -+ fixupOutlinePlaceholderNumberingDepths(pDoc); -+ - pDoc->EnableUndo(true); - mrDocShell.ClearUndoBuffer(); - return nRet == 0; --- -1.9.3 - diff --git a/0001-add-X-TryExec-entries-to-desktop-files.patch b/0001-add-X-TryExec-entries-to-desktop-files.patch index 0b4707c..43e8ceb 100644 --- a/0001-add-X-TryExec-entries-to-desktop-files.patch +++ b/0001-add-X-TryExec-entries-to-desktop-files.patch @@ -20,7 +20,7 @@ index 26f1c6a..2861dfe 100644 @@ -32,6 +32,7 @@ Keywords=Data;SQL; InitialPreference=5 StartupWMClass=libreoffice-base - X-KDE-Protocols=file,http,smb,ftp,webdav + X-KDE-Protocols=file,http,ftp,webdav +X-TryExec=oobase Actions=NewDocument; @@ -32,7 +32,7 @@ index fc5e241..c50f380 100644 @@ -32,6 +32,7 @@ Keywords=Accounting;Stats;OpenDocument Spreadsheet;Chart;Microsoft Excel;Microso InitialPreference=5 StartupWMClass=libreoffice-calc - X-KDE-Protocols=file,http,smb,ftp,webdav + X-KDE-Protocols=file,http,ftp,webdav +X-TryExec=oocalc Actions=NewDocument; @@ -44,7 +44,7 @@ index b5d58ce..274275f 100644 @@ -32,6 +32,7 @@ Keywords=Vector;Schema;Diagram;Layout;OpenDocument Graphics;Microsoft Publisher; InitialPreference=5 StartupWMClass=libreoffice-draw - X-KDE-Protocols=file,http,smb,ftp,webdav + X-KDE-Protocols=file,http,ftp,webdav +X-TryExec=oodraw Actions=NewDocument; @@ -56,7 +56,7 @@ index c1f6231..7e70bfb 100644 @@ -32,6 +32,7 @@ Keywords=Slideshow;Slides;OpenDocument Presentation;Microsoft PowerPoint;Microso InitialPreference=5 StartupWMClass=libreoffice-impress - X-KDE-Protocols=file,http,smb,ftp,webdav + X-KDE-Protocols=file,http,ftp,webdav +X-TryExec=ooimpress Actions=NewDocument; @@ -68,7 +68,7 @@ index b6981f5..4d7bd3c 100644 @@ -33,6 +33,7 @@ Keywords=Equation;OpenDocument Formula;Formula;odf;MathML; InitialPreference=5 StartupWMClass=libreoffice-math - X-KDE-Protocols=file,http,smb,ftp,webdav + X-KDE-Protocols=file,http,ftp,webdav +X-TryExec=oomath Actions=NewDocument; @@ -80,7 +80,7 @@ index c4cea12..6d943a9 100644 @@ -32,6 +32,7 @@ Keywords=Text;Letter;Fax;Document;OpenDocument Text;Microsoft Word;Microsoft Wor InitialPreference=5 StartupWMClass=libreoffice-writer - X-KDE-Protocols=file,http,smb,ftp,webdav + X-KDE-Protocols=file,http,ftp,webdav +X-TryExec=oowriter Actions=NewDocument; diff --git a/0001-allow-to-build-with-system-opencollada.patch b/0001-allow-to-build-with-system-opencollada.patch deleted file mode 100644 index e2cffd1..0000000 --- a/0001-allow-to-build-with-system-opencollada.patch +++ /dev/null @@ -1,154 +0,0 @@ -From f24c60870531689d95c056037e48cd29ad1d17bb Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Mon, 20 Oct 2014 14:21:22 +0200 -Subject: [PATCH] allow to build with system opencollada - -Change-Id: I6101099c57d429987e06bca0652c843f4a94f8cc ---- - Makefile.fetch | 2 +- - RepositoryExternal.mk | 16 ++++++++++++++++ - config_host.mk.in | 4 +++- - configure.ac | 35 +++++++++++++++++++++++++++++++++++ - external/Module_external.mk | 2 +- - 5 files changed, 56 insertions(+), 3 deletions(-) - -diff --git a/Makefile.fetch b/Makefile.fetch -index e8ccf5b..18b12be 100644 ---- a/Makefile.fetch -+++ b/Makefile.fetch -@@ -184,7 +184,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR) - $(call fetch_Optional,NSS,NSS_TARBALL) \ - $(call fetch_Optional_pack,NUMBERTEXT_EXTENSION_PACK) \ - $(call fetch_Optional,ODFGEN,ODFGEN_TARBALL) \ -- $(call fetch_Optional,COLLADA2GLTF,OPENCOLLADA_TARBALL) \ -+ $(call fetch_Optional,OPENCOLLADA,OPENCOLLADA_TARBALL) \ - $(call fetch_Optional,OPENLDAP,OPENLDAP_TARBALL) \ - $(call fetch_Optional,OPENSSL,OPENSSL_TARBALL) \ - $(call fetch_Optional,ORCUS,ORCUS_TARBALL) \ -diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk -index 5277aea..911dab1 100644 ---- a/RepositoryExternal.mk -+++ b/RepositoryExternal.mk -@@ -3371,6 +3371,20 @@ endif # SYSTEN_LIBGLTF - - ifeq ($(ENABLE_COLLADA),TRUE) - -+ifeq ($(SYSTEM_OPENCOLLADA),TRUE) -+ -+define gb_LinkTarget__use_opencollada_parser -+$(call gb_LinkTarget_set_include,$(1),\ -+ $$(INCLUDE) \ -+ $(OPENCOLLADA_CFLAGS) \ -+) -+ -+$(call gb_LinkTarget_add_libs,$(1),$(OPENCOLLADA_LIBS)) -+ -+endef -+ -+else # !SYSTEM_OPENCOLLADA -+ - define gb_LinkTarget__use_opencollada_parser - $(call gb_LinkTarget_set_include,$(1),\ - -I$(call gb_UnpackedTarball_get_dir,opencollada)/COLLADABaseUtils/include \ -@@ -3385,6 +3399,8 @@ $(call gb_LinkTarget_use_static_libraries,$(1),\ - ) - endef - -+endif # SYSTEM_OPENCOLLADA -+ - define gb_LinkTarget__use_collada2gltf - $(call gb_LinkTarget_set_include,$(1),\ - -I$(call gb_UnpackedTarball_get_dir,collada2gltf) \ -diff --git a/config_host.mk.in b/config_host.mk.in -index 0fefbb0..738c80c 100644 ---- a/config_host.mk.in -+++ b/config_host.mk.in -@@ -431,6 +431,8 @@ export OOOP_SAMPLES_PACK=@OOOP_SAMPLES_PACK@ - export OOO_JUNIT_JAR=@OOO_JUNIT_JAR@ - export OOO_VENDOR=@OOO_VENDOR@ -+export OPENCOLLADA_CFLAGS=$(gb_SPACE)@OPENCOLLADA_CFLAGS@ -+export OPENCOLLADA_LIBS=$(gb_SPACE)@OPENCOLLADA_LIBS@ - export OPENSSL_CFLAGS=$(gb_SPACE)@OPENSSL_CFLAGS@ - export OPENSSL_LIBS=$(gb_SPACE)@OPENSSL_LIBS@ - export ORCUS_CFLAGS=$(gb_SPACE)@ORCUS_CFLAGS@ - export ORCUS_LIBS=$(gb_SPACE)@ORCUS_LIBS@ -@@ -558,4 +559,5 @@ export SYSTEM_NPAPI_HEADERS=@SYSTEM_NPAPI_HEADERS@ - export SYSTEM_ODBC_HEADERS=@SYSTEM_ODBC_HEADERS@ - export SYSTEM_ODFGEN=@SYSTEM_ODFGEN@ -+export SYSTEM_OPENCOLLADA=@SYSTEM_OPENCOLLADA@ - export SYSTEM_OPENLDAP=@SYSTEM_OPENLDAP@ - export SYSTEM_OPENSSL=@SYSTEM_OPENSSL@ -diff --git a/configure.ac b/configure.ac -index 17feb1a..5d2198b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1641,6 +1641,11 @@ AC_ARG_WITH(system-ucpp, - [Use ucpp already on system.]),, - []) - -+AC_ARG_WITH(system-opencollada, -+ AS_HELP_STRING([--with-system-opencollada], -+ [Use openCOLLADA already on system.]),, -+ [with_system_opencollada=no]) -+ - AC_ARG_WITH(system-openldap, - AS_HELP_STRING([--with-system-openldap], - [Use the OpenLDAP LDAP SDK already on system.]),, -@@ -10342,11 +10347,41 @@ if test "$enable_collada" != "no" -a "$ENABLE_GLTF" = "TRUE"; then - AC_MSG_RESULT([yes]) - ENABLE_COLLADA=TRUE - AC_DEFINE(HAVE_FEATURE_COLLADA,1) -+ AC_MSG_CHECKING([which OPENCOLLADA to use]) -+ if test "$with_system_opencollada" = "yes"; then -+ AC_MSG_RESULT([external]) -+ SYSTEM_OPENCOLLADA=TRUE -+ AS_IF([test -n "$OPENCOLLADA_CFLAGS"],[],[AC_MSG_ERROR([export OPENCOLLADA_CFLAGS])]) -+ AS_IF([test -n "$OPENCOLLADA_LIBS"],[],[AC_MSG_ERROR([export OPENCOLLADA_LIBS])]) -+ AC_LANG_PUSH([C++]) -+ save_CXXFLAGS=$CXXFLAGS -+ save_CPPFLAGS=$CPPFLAGS -+ CXXFLAGS="$CXXFLAGS $OPENCOLLADA_CFLAGS" -+ CPPFLAGS="$CPPFLAGS $OPENCOLLADA_CFLAGS" -+ AC_CHECK_HEADERS( -+ COLLADABU.h \ -+ COLLADAFW.h \ -+ COLLADASaxFWLLoader.h \ -+ GeneratedSaxParser.h, -+ [], -+ [AC_MSG_ERROR([openCOLLADA headers not found. Install openCOLLADA])], -+ []) -+ CXXFLAGS=$save_CXXFLAGS -+ CPPFLAGS=$save_CPPFLAGS -+ AC_LANG_POP([C++]) -+ OPENCOLLADA_CFLAGS=$(printf '%s' "$OPENCOLLADA_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g") -+ else -+ AC_MSG_RESULT([internal]) -+ BUILD_TYPE="$BUILD_TYPE OPENCOLLADA" -+ fi - BUILD_TYPE="$BUILD_TYPE COLLADA2GLTF" - else - AC_MSG_RESULT([no]) - fi - AC_SUBST(ENABLE_COLLADA) -+AC_SUBST([OPENCOLLADA_CFLAGS]) -+AC_SUBST([OPENCOLLADA_LIBS]) -+AC_SUBST([SYSTEM_OPENCOLLADA]) - - # pdf import? - AC_MSG_CHECKING([whether to build the PDF import feature]) -diff --git a/external/Module_external.mk b/external/Module_external.mk -index c95ea20..688e335 100644 ---- a/external/Module_external.mk -+++ b/external/Module_external.mk -@@ -75,7 +75,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\ - $(call gb_Helper_optional,NEON,neon) \ - $(call gb_Helper_optional,NSS,nss) \ - $(call gb_Helper_optional,ODFGEN,libodfgen) \ -- $(call gb_Helper_optional,COLLADA2GLTF,opencollada) \ -+ $(call gb_Helper_optional,OPENCOLLADA,opencollada) \ - $(call gb_Helper_optional,OPENLDAP,openldap) \ - $(call gb_Helper_optional,OPENSSL,openssl) \ - $(call gb_Helper_optional,ORCUS,liborcus) \ --- -1.9.3 - diff --git a/0001-avoid-problems-detecting-HTML-files-with-.xls-ext.patch b/0001-avoid-problems-detecting-HTML-files-with-.xls-ext.patch deleted file mode 100644 index 85ba462..0000000 --- a/0001-avoid-problems-detecting-HTML-files-with-.xls-ext.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 86c6f18c2766aad43d6e3bfcf3530e40440ebca7 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Tue, 8 Jul 2014 17:01:27 +0200 -Subject: [PATCH] avoid problems detecting HTML files with .xls ext. - -Change-Id: I9955223aac20f3f640fde51bb7231666c269ca70 ---- - filter/Configuration_filter.mk | 1 + - filter/source/config/fragments/types/calc_HTML.xcu | 35 ++++++++++++++++++++++ - filter/source/textfilterdetect/filterdetect.cxx | 6 ++-- - 3 files changed, 38 insertions(+), 4 deletions(-) - create mode 100644 filter/source/config/fragments/types/calc_HTML.xcu - -diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk -index e035464..0465f17 100644 ---- a/filter/Configuration_filter.mk -+++ b/filter/Configuration_filter.mk -@@ -512,6 +512,7 @@ $(call filter_Configuration_add_ui_filters,fcfg_langpack,filter/source/config/fr - $(call filter_Configuration_add_types,fcfg_langpack,fcfg_calc_types.xcu,filter/source/config/fragments/types,\ - calc_DIF \ - calc_ODS_FlatXML \ -+ calc_HTML \ - generic_HTML \ - generic_Text \ - calc_Lotus \ -diff --git a/filter/source/config/fragments/types/calc_HTML.xcu b/filter/source/config/fragments/types/calc_HTML.xcu -new file mode 100644 -index 0000000..51bf8f1 ---- /dev/null -+++ b/filter/source/config/fragments/types/calc_HTML.xcu -@@ -0,0 +1,35 @@ -+ -+ -+ -+ com.sun.star.comp.filters.PlainTextFilterDetect -+ -+ xls -+ text/html -+ false -+ -+ -+ HTML Table -+ -+ -+ -diff --git a/filter/source/textfilterdetect/filterdetect.cxx b/filter/source/textfilterdetect/filterdetect.cxx -index ffad7fa..1d29dd4 100644 ---- a/filter/source/textfilterdetect/filterdetect.cxx -+++ b/filter/source/textfilterdetect/filterdetect.cxx -@@ -132,7 +132,7 @@ OUString SAL_CALL PlainTextFilterDetect::detect(uno::Sequence xInStream(aMediaDesc[MediaDescriptor::PROP_INPUTSTREAM()], uno::UNO_QUERY); - if (!xInStream.is() || !IsHTMLStream(xInStream)) -@@ -141,12 +141,10 @@ OUString SAL_CALL PlainTextFilterDetect::detect(uno::Sequence -Date: Mon, 8 Sep 2014 15:31:14 +0100 -Subject: [PATCH] create a master document template type - -of application/vnd.oasis.opendocument.text-master-template with -suffic otm - -https://lists.oasis-open.org/archives/office-comment/201002/msg00042.html - -desktop/icons/oasis-master-document-template.icns is just a copy -of -desktop/icons/oasis-master-document.icns -because I can't draw - -Change-Id: I0d18c79c4c893e97505052884ee8be97d0f117a1 ---- - bin/get-bugzilla-attachments-by-mimetype | 1 + - comphelper/source/misc/storagehelper.cxx | 1 + - extensions/source/activex/so_activex.cxx | 1 + - extensions/source/nsplugin/source/npshell.cxx | 1 + - extensions/source/nsplugin/source/nsplugin_oo.rc | 1 + - filter/Configuration_filter.mk | 3 ++ - .../fragments/filters/writerglobal8_template.xcu | 17 ++++++++ - .../filters/writerglobal8_template_ui.xcu | 12 ++++++ - .../fragments/types/writerglobal8_template.xcu | 19 +++++++++ - filter/source/storagefilterdetect/filterdetect.cxx | 1 + - include/comphelper/documentconstants.hxx | 2 + - include/sot/formats.hxx | 3 +- - officecfg/registry/data/org/openoffice/Setup.xcu | 4 +- - package/source/manifest/ManifestExport.cxx | 1 + - scp2/source/writer/registryitem_writer.scp | 8 ++++ - sfx2/source/control/recentdocsview.cxx | 2 +- - sfx2/source/control/templateabstractview.cxx | 2 +- - solenv/inc/mime.types | 1 + - sot/source/base/exchange.cxx | 5 +-- - sot/source/sdstor/storage.cxx | 1 + - sot/source/sdstor/ucbstorage.cxx | 1 + - sw/source/uibase/app/docsh.cxx | 1 + - sw/source/uibase/globdoc/globdoc.cxx | 5 +-- - sysui/CustomTarget_share.mk | 2 + - sysui/Package_osxicons.mk | 1 + - sysui/desktop/debian/postinst | 2 + - sysui/desktop/freedesktop/freedesktop-menus.spec | 1 + - .../icons/oasis-master-document-template.icns | Bin 0 -> 118979 bytes - sysui/desktop/macosx/Info.plist.in | 43 +++++++++++++++++++++ - sysui/desktop/menus/writer.desktop | 2 +- - .../oasis-master-document-template.desktop | 26 +++++++++++++ - .../mimetypes/oasis-master-document-template.keys | 9 +++++ - sysui/desktop/mimetypes/openoffice.applications | 2 +- - sysui/desktop/share/documents.ulf | 3 ++ - sysui/desktop/solaris/mailcap | 1 + - sysui/desktop/solaris/mime.types | 1 + - 36 files changed, 173 insertions(+), 13 deletions(-) - create mode 100644 filter/source/config/fragments/filters/writerglobal8_template.xcu - create mode 100644 filter/source/config/fragments/filters/writerglobal8_template_ui.xcu - create mode 100644 filter/source/config/fragments/types/writerglobal8_template.xcu - create mode 100644 sysui/desktop/icons/oasis-master-document-template.icns - create mode 100644 sysui/desktop/mimetypes/oasis-master-document-template.desktop - create mode 100644 sysui/desktop/mimetypes/oasis-master-document-template.keys - -diff --git a/bin/get-bugzilla-attachments-by-mimetype b/bin/get-bugzilla-attachments-by-mimetype -index 6f72dc7..5ac0a26 100755 ---- a/bin/get-bugzilla-attachments-by-mimetype -+++ b/bin/get-bugzilla-attachments-by-mimetype -@@ -357,6 +357,7 @@ mimetypes = { - 'application/vnd.oasis.opendocument.text-flat-xml': 'fodt', - 'application/vnd.oasis.opendocument.text-master': 'odm', - 'application/vnd.oasis.opendocument.text-template': 'ott', -+ 'application/vnd.oasis.opendocument.text-master-template': 'otm', - 'application/vnd.oasis.opendocument.text-web': 'oth', - # OOo XML - 'application/vnd.sun.xml.base': 'odb', -diff --git a/comphelper/source/misc/storagehelper.cxx b/comphelper/source/misc/storagehelper.cxx -index 51ee8c5..67d14c1 100644 ---- a/comphelper/source/misc/storagehelper.cxx -+++ b/comphelper/source/misc/storagehelper.cxx -@@ -263,6 +263,7 @@ sal_Int32 OStorageHelper::GetXStorageFormat( - aMediaType.equalsIgnoreAsciiCase(MIMETYPE_OASIS_OPENDOCUMENT_REPORT_ASCII ) || - aMediaType.equalsIgnoreAsciiCase(MIMETYPE_OASIS_OPENDOCUMENT_REPORT_CHART_ASCII ) || - aMediaType.equalsIgnoreAsciiCase(MIMETYPE_OASIS_OPENDOCUMENT_TEXT_TEMPLATE_ASCII ) || -+ aMediaType.equalsIgnoreAsciiCase(MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII ) || - aMediaType.equalsIgnoreAsciiCase(MIMETYPE_OASIS_OPENDOCUMENT_DRAWING_TEMPLATE_ASCII ) || - aMediaType.equalsIgnoreAsciiCase(MIMETYPE_OASIS_OPENDOCUMENT_PRESENTATION_TEMPLATE_ASCII) || - aMediaType.equalsIgnoreAsciiCase(MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_TEMPLATE_ASCII ) || -diff --git a/extensions/source/activex/so_activex.cxx b/extensions/source/activex/so_activex.cxx -index 850ebab..d460bc6 100644 ---- a/extensions/source/activex/so_activex.cxx -+++ b/extensions/source/activex/so_activex.cxx -@@ -138,6 +138,7 @@ const char* aMimeType[] = { - MIMETYPE_VND_SUN_XML_MATH_ASCII, - - MIMETYPE_OASIS_OPENDOCUMENT_TEXT_TEMPLATE_ASCII, -+ MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII, - MIMETYPE_OASIS_OPENDOCUMENT_DRAWING_TEMPLATE_ASCII, - MIMETYPE_OASIS_OPENDOCUMENT_PRESENTATION_TEMPLATE_ASCII, - MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_TEMPLATE_ASCII, -diff --git a/extensions/source/nsplugin/source/npshell.cxx b/extensions/source/nsplugin/source/npshell.cxx -index 84aff99..82881fa 100644 ---- a/extensions/source/nsplugin/source/npshell.cxx -+++ b/extensions/source/nsplugin/source/npshell.cxx -@@ -377,6 +377,7 @@ MIMETYPE_OASIS_OPENDOCUMENT_TEXT_ASCII ":odt:OpenDocument Text;" - MIMETYPE_OASIS_OPENDOCUMENT_TEXT_ASCII "-flat-xml:fodt:OpenDocument Text Flat XML;" - MIMETYPE_OASIS_OPENDOCUMENT_TEXT_TEMPLATE_ASCII ":ott:OpenDocument Text Template;" - MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_ASCII ":odm:OpenDocument Master Document;" -+MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII ":otm:OpenDocument Master Document Template;" - MIMETYPE_OASIS_OPENDOCUMENT_TEXT_WEB_ASCII ":oth:HTML Document Template;" - MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_ASCII ":ods:OpenDocument Spreadsheet;" - MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_ASCII "-flat-xml:fods:OpenDocument Spreadsheet Flat XML;" -diff --git a/extensions/source/nsplugin/source/nsplugin_oo.rc b/extensions/source/nsplugin/source/nsplugin_oo.rc -index 6e14c09..ce57c04 100644 ---- a/extensions/source/nsplugin/source/nsplugin_oo.rc -+++ b/extensions/source/nsplugin/source/nsplugin_oo.rc -@@ -117,6 +117,7 @@ VS_VERSION_INFO VERSIONINFO - "application/vnd.oasis.opendocument.text|" - "application/vnd.oasis.opendocument.text-template|" - "application/vnd.oasis.opendocument.text-master|" -+ "application/vnd.oasis.opendocument.text-master-template|" - "application/vnd.oasis.opendocument.text-web|" - "application/vnd.oasis.opendocument.spreadsheet|" - "application/vnd.oasis.opendocument.spreadsheet-template|" -diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk -index 0465f17..36d7584 100644 ---- a/filter/Configuration_filter.mk -+++ b/filter/Configuration_filter.mk -@@ -488,6 +488,7 @@ $(call filter_Configuration_add_types,fcfg_langpack,fcfg_global_types.xcu,filter - writer_globaldocument_StarOffice_XML_Writer_GlobalDocument \ - pdf_Portable_Document_Format \ - writerglobal8 \ -+ writerglobal8_template \ - ) - - $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_global_filters.xcu,filter/source/config/fragments/filters,\ -@@ -496,6 +497,7 @@ $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_global_filters.xcu,fi - writer_globaldocument_StarOffice_XML_Writer_GlobalDocument \ - writer_globaldocument_pdf_Export \ - writerglobal8 \ -+ writerglobal8_template \ - writerglobal8_writer \ - writerglobal8_HTML \ - ) -@@ -505,6 +507,7 @@ $(call filter_Configuration_add_ui_filters,fcfg_langpack,filter/source/config/fr - writer_globaldocument_StarOffice_XML_Writer_ui \ - writer_globaldocument_StarOffice_XML_Writer_GlobalDocument_ui \ - writerglobal8_ui \ -+ writerglobal8_template_ui \ - writerglobal8_writer_ui \ - ) - -diff --git a/filter/source/config/fragments/filters/writerglobal8_template.xcu b/filter/source/config/fragments/filters/writerglobal8_template.xcu -new file mode 100644 -index 0000000..9cb8a8d ---- /dev/null -+++ b/filter/source/config/fragments/filters/writerglobal8_template.xcu -@@ -0,0 +1,17 @@ -+ -+ -+ IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY -+ -+ -+ CXMLV -+ 6800 -+ writerglobal8_template -+ -+ com.sun.star.text.GlobalDocument -+ -diff --git a/filter/source/config/fragments/filters/writerglobal8_template_ui.xcu b/filter/source/config/fragments/filters/writerglobal8_template_ui.xcu -new file mode 100644 -index 0000000..305ae8d ---- /dev/null -+++ b/filter/source/config/fragments/filters/writerglobal8_template_ui.xcu -@@ -0,0 +1,12 @@ -+ -+ -+ -+ ODF Master Document Template -+ -+ -diff --git a/filter/source/config/fragments/types/writerglobal8_template.xcu b/filter/source/config/fragments/types/writerglobal8_template.xcu -new file mode 100644 -index 0000000..10c866b ---- /dev/null -+++ b/filter/source/config/fragments/types/writerglobal8_template.xcu -@@ -0,0 +1,19 @@ -+ -+ -+ com.sun.star.comp.filters.StorageFilterDetect -+ private:factory/swriter/GlobalDocument* -+ otm -+ application/vnd.oasis.opendocument.text-master-template -+ true -+ writerglobal8_template -+ -+ Writer 8 Master Document Template -+ -+ Writer/Global 8 Template -+ -diff --git a/filter/source/storagefilterdetect/filterdetect.cxx b/filter/source/storagefilterdetect/filterdetect.cxx -index 5917261..fa10c3c 100644 ---- a/filter/source/storagefilterdetect/filterdetect.cxx -+++ b/filter/source/storagefilterdetect/filterdetect.cxx -@@ -45,6 +45,7 @@ OUString getInternalFromMediaType(const OUString& aMediaType) - else if ( aMediaType == MIMETYPE_OASIS_OPENDOCUMENT_TEXT_TEMPLATE_ASCII ) return OUString("writer8_template"); - else if ( aMediaType == MIMETYPE_OASIS_OPENDOCUMENT_TEXT_WEB_ASCII ) return OUString("writerweb8_writer_template"); - else if ( aMediaType == MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_ASCII ) return OUString("writerglobal8"); -+ else if ( aMediaType == MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII ) return OUString("writerglobal8_template"); - else if ( aMediaType == MIMETYPE_OASIS_OPENDOCUMENT_DRAWING_ASCII ) return OUString("draw8"); - else if ( aMediaType == MIMETYPE_OASIS_OPENDOCUMENT_DRAWING_TEMPLATE_ASCII ) return OUString("draw8_template"); - else if ( aMediaType == MIMETYPE_OASIS_OPENDOCUMENT_PRESENTATION_ASCII ) return OUString("impress8"); -diff --git a/include/comphelper/documentconstants.hxx b/include/comphelper/documentconstants.hxx -index 47d31a5..940740f 100644 ---- a/include/comphelper/documentconstants.hxx -+++ b/include/comphelper/documentconstants.hxx -@@ -75,6 +75,7 @@ - - // template formats of SO8 - #define MIMETYPE_OASIS_OPENDOCUMENT_TEXT_TEMPLATE_ASCII "application/vnd.oasis.opendocument.text-template" -+#define MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII "application/vnd.oasis.opendocument.text-master-template" - #define MIMETYPE_OASIS_OPENDOCUMENT_DRAWING_TEMPLATE_ASCII "application/vnd.oasis.opendocument.graphics-template" - #define MIMETYPE_OASIS_OPENDOCUMENT_PRESENTATION_TEMPLATE_ASCII "application/vnd.oasis.opendocument.presentation-template" - #define MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_TEMPLATE_ASCII "application/vnd.oasis.opendocument.spreadsheet-template" -@@ -82,6 +83,7 @@ - #define MIMETYPE_OASIS_OPENDOCUMENT_FORMULA_TEMPLATE_ASCII "application/vnd.oasis.opendocument.formula-template" - - #define MIMETYPE_OASIS_OPENDOCUMENT_TEXT_TEMPLATE OUString( MIMETYPE_OASIS_OPENDOCUMENT_TEXT_TEMPLATE_ASCII ) -+#define MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE OUString( MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII ) - #define MIMETYPE_OASIS_OPENDOCUMENT_DRAWING_TEMPLATE OUString( MIMETYPE_OASIS_OPENDOCUMENT_DRAWING_TEMPLATE_ASCII ) - #define MIMETYPE_OASIS_OPENDOCUMENT_PRESENTATION_TEMPLATE OUString( MIMETYPE_OASIS_OPENDOCUMENT_PRESENTATION_TEMPLATE_ASCII ) - #define MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_TEMPLATE OUString( MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_TEMPLATE_ASCII ) -diff --git a/include/sot/formats.hxx b/include/sot/formats.hxx -index dc4feaa..4cfb94b 100644 ---- a/include/sot/formats.hxx -+++ b/include/sot/formats.hxx -@@ -176,7 +176,8 @@ - #define SOT_FORMATSTR_ID_STARBASE_8 ((sal_uLong)139) - #define SOT_FORMATSTR_ID_HC_GDIMETAFILE ((sal_uLong)140) - #define SOT_FORMATSTR_ID_PNG ((sal_uLong)141) --#define SOT_FORMATSTR_ID_USER_END SOT_FORMATSTR_ID_PNG -+#define SOT_FORMATSTR_ID_STARWRITERGLOB_8_TEMPLATE ((sal_uLong)142) -+#define SOT_FORMATSTR_ID_USER_END SOT_FORMATSTR_ID_STARWRITERGLOB_8_TEMPLATE - - #endif // INCLUDED_SOT_FORMATS_HXX - -diff --git a/officecfg/registry/data/org/openoffice/Setup.xcu b/officecfg/registry/data/org/openoffice/Setup.xcu -index ca65cc7..51ff7c0 100644 ---- a/officecfg/registry/data/org/openoffice/Setup.xcu -+++ b/officecfg/registry/data/org/openoffice/Setup.xcu -@@ -233,7 +233,9 @@ - - writerglobal8 - -- -+ -+ writerglobal8_template -+ - - writerglobal8 - -diff --git a/package/source/manifest/ManifestExport.cxx b/package/source/manifest/ManifestExport.cxx -index 82ce37f..1ced0a6 100644 ---- a/package/source/manifest/ManifestExport.cxx -+++ b/package/source/manifest/ManifestExport.cxx -@@ -147,6 +147,7 @@ ManifestExport::ManifestExport( uno::Reference< xml::sax::XDocumentHandler > xHa - || aDocMediaType == MIMETYPE_OASIS_OPENDOCUMENT_DATABASE_ASCII - || aDocMediaType == MIMETYPE_OASIS_OPENDOCUMENT_FORMULA_ASCII - || aDocMediaType == MIMETYPE_OASIS_OPENDOCUMENT_TEXT_TEMPLATE_ASCII -+ || aDocMediaType == MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII - || aDocMediaType == MIMETYPE_OASIS_OPENDOCUMENT_DRAWING_TEMPLATE_ASCII - || aDocMediaType == MIMETYPE_OASIS_OPENDOCUMENT_PRESENTATION_TEMPLATE_ASCII - || aDocMediaType == MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET_TEMPLATE_ASCII -diff --git a/scp2/source/writer/registryitem_writer.scp b/scp2/source/writer/registryitem_writer.scp -index ea38cfa..80cbbdd 100644 ---- a/scp2/source/writer/registryitem_writer.scp -+++ b/scp2/source/writer/registryitem_writer.scp -@@ -1063,6 +1063,14 @@ RegistryItem gid_Regitem_Ott_Contenttype - Value = "application/vnd.oasis.opendocument.text-template"; - End - -+RegistryItem gid_Regitem_Otm_Contenttype -+ ParentID = PREDEFINED_HKEY_CLASSES_ROOT; -+ ModuleID = gid_Module_Prg_Wrt_Bin; -+ Subkey = ".otm"; -+ Name = "Content Type"; -+ Value = "application/vnd.oasis.opendocument.text-master-template"; -+End -+ - RegistryItem gid_Regitem_Soffice_Starwritertemplate_1 - ParentID = PREDEFINED_HKEY_CLASSES_ROOT; - Subkey = "LibreOffice.WriterTemplate.1"; -diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx -index af1469c..f88cfbb 100644 ---- a/sfx2/source/control/recentdocsview.cxx -+++ b/sfx2/source/control/recentdocsview.cxx -@@ -71,7 +71,7 @@ bool RecentDocsView::typeMatchesExtension(ApplicationType type, const OUString & - bool bRet = false; - - if (rExt == "odt" || rExt == "doc" || rExt == "docx" || -- rExt == "rtf" || rExt == "txt") -+ rExt == "rtf" || rExt == "txt" || rExt == "odm" || rExt == "otm") - { - bRet = type & TYPE_WRITER; - } -diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx -index cbda6e6..87be587 100644 ---- a/sfx2/source/control/templateabstractview.cxx -+++ b/sfx2/source/control/templateabstractview.cxx -@@ -40,7 +40,7 @@ bool ViewFilter_Application::isFilteredExtension(FILTER_APPLICATION filter, cons - - if (filter == FILTER_APP_WRITER) - { -- bRet = rExt == "ott" || rExt == "stw" || rExt == "oth" || rExt == "dot" || rExt == "dotx"; -+ bRet = rExt == "ott" || rExt == "stw" || rExt == "oth" || rExt == "dot" || rExt == "dotx" || rExt == "otm"; - } - else if (filter == FILTER_APP_CALC) - { -diff --git a/solenv/inc/mime.types b/solenv/inc/mime.types -index 7d39a4c..e5afd93 100644 ---- a/solenv/inc/mime.types -+++ b/solenv/inc/mime.types -@@ -189,6 +189,7 @@ application/vnd.oasis.opendocument.text odt - application/vnd.oasis.opendocument.text-template ott - application/vnd.oasis.opendocument.text-web oth - application/vnd.oasis.opendocument.text-master odm -+application/vnd.oasis.opendocument.text-master-template otm - application/vnd.oasis.opendocument.graphics odg - application/vnd.oasis.opendocument.graphics-template otg - application/vnd.oasis.opendocument.presentation odp -diff --git a/sot/source/base/exchange.cxx b/sot/source/base/exchange.cxx -index 084b1b5..ff79cb6 100644 ---- a/sot/source/base/exchange.cxx -+++ b/sot/source/base/exchange.cxx -@@ -50,8 +50,6 @@ struct DataFlavorRepresentation - const ::com::sun::star::uno::Type* pType; - }; - -- -- - namespace - { - struct ImplFormatArray_Impl -@@ -202,6 +200,7 @@ namespace - /*139 SOT_FORMATSTR_ID_STARBASE_8*/ { MIMETYPE_OASIS_OPENDOCUMENT_DATABASE_ASCII, "StarBase 8", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, - /*140 SOT_FORMAT_GDIMETAFILE*/ { "application/x-openoffice-highcontrast-gdimetafile;windows_formatname=\"GDIMetaFile\"", "High Contrast GDIMetaFile", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, - /*141 SOT_FORMATSTR_ID_PNG*/ { "image/png", "PNG Bitmap", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, -+ /*142 SOT_FORMATSTR_ID_STARWRITERGLOB_8_TEMPLATE*/ { MIMETYPE_OASIS_OPENDOCUMENT_TEXT_GLOBAL_TEMPLATE_ASCII, "Writer/Global 8 Template", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) }, - }; - return &aInstance[0]; - } -@@ -212,8 +211,6 @@ namespace - const DataFlavorRepresentation, ImplFormatArray_Impl > {}; - } - -- -- - static tDataFlavorList& InitFormats_Impl() - { - SotData_Impl * pSotData = SOTDATA(); -diff --git a/sot/source/sdstor/storage.cxx b/sot/source/sdstor/storage.cxx -index 87fe013..9cc4204 100644 ---- a/sot/source/sdstor/storage.cxx -+++ b/sot/source/sdstor/storage.cxx -@@ -975,6 +975,7 @@ sal_Int32 SotStorage::GetVersion( const com::sun::star::uno::Reference < com::su - case SOT_FORMATSTR_ID_STARWRITER_8_TEMPLATE: - case SOT_FORMATSTR_ID_STARWRITERWEB_8: - case SOT_FORMATSTR_ID_STARWRITERGLOB_8: -+ case SOT_FORMATSTR_ID_STARWRITERGLOB_8_TEMPLATE: - case SOT_FORMATSTR_ID_STARDRAW_8: - case SOT_FORMATSTR_ID_STARDRAW_8_TEMPLATE: - case SOT_FORMATSTR_ID_STARIMPRESS_8: -diff --git a/sot/source/sdstor/ucbstorage.cxx b/sot/source/sdstor/ucbstorage.cxx -index 879d372..e95a9b4 100644 ---- a/sot/source/sdstor/ucbstorage.cxx -+++ b/sot/source/sdstor/ucbstorage.cxx -@@ -355,6 +355,7 @@ SvGlobalName GetClassId_Impl( sal_Int32 nFormat ) - case SOT_FORMATSTR_ID_STARWRITERWEB_8 : - return SvGlobalName( SO3_SWWEB_CLASSID_60 ); - case SOT_FORMATSTR_ID_STARWRITERGLOB_8 : -+ case SOT_FORMATSTR_ID_STARWRITERGLOB_8_TEMPLATE : - return SvGlobalName( SO3_SWGLOB_CLASSID_60 ); - case SOT_FORMATSTR_ID_STARDRAW_8 : - case SOT_FORMATSTR_ID_STARDRAW_8_TEMPLATE : -diff --git a/sw/source/uibase/app/docsh.cxx b/sw/source/uibase/app/docsh.cxx -index 3da9550..9cecce9 100644 ---- a/sw/source/core/uibase/app/docsh.cxx -+++ b/sw/source/core/uibase/app/docsh.cxx -@@ -642,6 +642,7 @@ bool SwDocShell::ConvertTo( SfxMedium& rMedium ) - SOT_FORMATSTR_ID_STARWRITERWEB_40 == nSaveClipId ) - nSaveType = 1; - else if( SOT_FORMATSTR_ID_STARWRITERGLOB_8 == nSaveClipId || -+ SOT_FORMATSTR_ID_STARWRITERGLOB_8_TEMPLATE == nSaveClipId || - SOT_FORMATSTR_ID_STARWRITERGLOB_60 == nSaveClipId || - SOT_FORMATSTR_ID_STARWRITERGLOB_50 == nSaveClipId || - SOT_FORMATSTR_ID_STARWRITERGLOB_40 == nSaveClipId ) -diff --git a/sw/source/uibase/globdoc/globdoc.cxx b/sw/source/uibase/globdoc/globdoc.cxx -index 3a6df50..2e1ae47 100644 ---- a/sw/source/core/uibase/globdoc/globdoc.cxx -+++ b/sw/source/core/uibase/globdoc/globdoc.cxx -@@ -51,19 +51,18 @@ void SwGlobalDocShell::FillClass( SvGlobalName * pClassName, - sal_Int32 nVersion, - bool bTemplate /* = false */) const - { -- (void)bTemplate; -- OSL_ENSURE( !bTemplate, "No template for Writer Global" ); -- - if (nVersion == SOFFICE_FILEFORMAT_60) - { - *pClassName = SvGlobalName( SO3_SWGLOB_CLASSID_60 ); - *pClipFormat = SOT_FORMATSTR_ID_STARWRITERGLOB_60; - *pLongUserName = SW_RESSTR(STR_WRITER_GLOBALDOC_FULLTYPE); -+ OSL_ENSURE( !bTemplate, "No template for Writer Global" ); - } - else if (nVersion == SOFFICE_FILEFORMAT_8) - { - *pClassName = SvGlobalName( SO3_SWGLOB_CLASSID_60 ); - *pClipFormat = SOT_FORMATSTR_ID_STARWRITERGLOB_8; -+ *pClipFormat = bTemplate ? SOT_FORMATSTR_ID_STARWRITERGLOB_8_TEMPLATE : SOT_FORMATSTR_ID_STARWRITERGLOB_8; - *pLongUserName = SW_RESSTR(STR_WRITER_GLOBALDOC_FULLTYPE); - } - -diff --git a/sysui/CustomTarget_share.mk b/sysui/CustomTarget_share.mk -index 862e57f..e4dde6f 100644 ---- a/sysui/CustomTarget_share.mk -+++ b/sysui/CustomTarget_share.mk -@@ -58,6 +58,7 @@ MIMELIST := \ - oasis-presentation-flat-xml \ - oasis-formula \ - oasis-master-document \ -+ oasis-master-document-template \ - oasis-database \ - oasis-web-template \ - ms-excel-sheet-12 \ -@@ -90,6 +91,7 @@ MIMEICONLIST := \ - oasis-presentation-template \ - oasis-formula \ - oasis-master-document \ -+ oasis-master-document-template \ - oasis-database \ - oasis-web-template \ - text \ -diff --git a/sysui/Package_osxicons.mk b/sysui/Package_osxicons.mk -index cd8343a..24a6998 100644 ---- a/sysui/Package_osxicons.mk -+++ b/sysui/Package_osxicons.mk -@@ -20,6 +20,7 @@ $(eval $(call gb_Package_add_files_with_dir,sysui_osxicons,Resources,\ - oasis-drawing.icns \ - master-document.icns \ - oasis-master-document.icns \ -+ oasis-master-document-template.icns \ - formula.icns \ - oasis-formula.icns \ - text-template.icns \ -diff --git a/sysui/desktop/debian/postinst b/sysui/desktop/debian/postinst -index 67072de..b9b6f24 100755 ---- a/sysui/desktop/debian/postinst -+++ b/sysui/desktop/debian/postinst -@@ -60,6 +60,7 @@ application/vnd.oasis.opendocument.text-flat-xml fodt - application/vnd.oasis.opendocument.text-template ott - application/vnd.oasis.opendocument.text-web oth - application/vnd.oasis.opendocument.text-master odm -+application/vnd.oasis.opendocument.text-master-template otm - application/vnd.oasis.opendocument.graphics odg - application/vnd.oasis.opendocument.graphics-flat-xml fodg - application/vnd.oasis.opendocument.graphics-template otg -@@ -123,6 +124,7 @@ application/vnd.oasis.opendocument.text-flat-xml; %PREFIX -view %s - application/vnd.oasis.opendocument.text-template; %PREFIX -view %s - application/vnd.oasis.opendocument.text-web; %PREFIX -view %s - application/vnd.oasis.opendocument.text-master; %PREFIX -view %s -+application/vnd.oasis.opendocument.text-master-template; %PREFIX -view %s - application/vnd.sun.xml.writer; %PREFIX -view %s - application/vnd.sun.xml.writer.template; %PREFIX -view %s - application/vnd.sun.xml.writer.global; %PREFIX -view %s -diff --git a/sysui/desktop/freedesktop/freedesktop-menus.spec b/sysui/desktop/freedesktop/freedesktop-menus.spec -index 09aeaf5..9c952a5 100755 ---- a/sysui/desktop/freedesktop/freedesktop-menus.spec -+++ b/sysui/desktop/freedesktop/freedesktop-menus.spec -@@ -150,6 +150,7 @@ do - icon=${link_target_dir}%iconprefix-oasis-drawing-template.png; test -f ${link_dir}/$icon && ln -sf ${icon} ${link_dir}/gnome-mime-application-vnd.oasis.opendocument.graphics-template.png - icon=${link_target_dir}%iconprefix-oasis-formula.png; test -f ${link_dir}/$icon && ln -sf ${icon} ${link_dir}/gnome-mime-application-vnd.oasis.opendocument.formula.png - icon=${link_target_dir}%iconprefix-oasis-master-document.png; test -f ${link_dir}/$icon && ln -sf ${icon} ${link_dir}/gnome-mime-application-vnd.oasis.opendocument.text-master.png -+ icon=${link_target_dir}%iconprefix-oasis-master-document-template.png; test -f ${link_dir}/$icon && ln -sf ${icon} ${link_dir}/gnome-mime-application-vnd.oasis.opendocument.text-master-template.png - icon=${link_target_dir}%iconprefix-oasis-presentation.png; test -f ${link_dir}/$icon && ln -sf ${icon} ${link_dir}/gnome-mime-application-vnd.oasis.opendocument.presentation.png - icon=${link_target_dir}%iconprefix-oasis-presentation-template.png; test -f ${link_dir}/$icon && ln -sf ${icon} ${link_dir}/gnome-mime-application-vnd.oasis.opendocument.presentation-template.png - icon=${link_target_dir}%iconprefix-oasis-spreadsheet.png; test -f ${link_dir}/$icon && ln -sf ${icon} ${link_dir}/gnome-mime-application-vnd.oasis.opendocument.spreadsheet.png -diff --git a/sysui/desktop/icons/oasis-master-document-template.icns b/sysui/desktop/icons/oasis-master-document-template.icns -new file mode 100644 -index 0000000000000000000000000000000000000000..9115dfc4b443fda6eea466552158df12de698a3c -GIT binary patch -literal 118979 -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 -z8DudRgqQ{vU1457%5Kt<5 -zAva=#jUWp`1m`ite}1Xx`3VH2q6cyT9xH7(0{)GF{{<)&J;YM+O#-E&2XZE{TLI_ -z-Cfvj=TXFR6j;s)4&CUkZdVXz^$$xbVA)mFP1V)a?Lng9ho57Dx;j9&qKj}NcOf@2 -zXd!fVc652b&xsL$9d&S5J212%F|_NV28Qijp1^VqflCtNhZAUmx;`PMa97}{4fwY0 -zqCw0)0lNfn@koN~33jx>U9AMe>@He@L2H*cuvkm5kN}b5>4Q6)TM(O$PC|N}NP2K5 -zT?dHP+S1(V4aWm>2@sHI{>}b}`C<@y&b+zv4vD=09ES?-gqtx0g1`}*&cG3xZ>DfF -z3fRVh`wfXL4pNCjhjcW+P1J<&?P(p@zpX`4)(Gr|KwBG|>ytbksIf55U*e9^# -zp63?-iKP{pO+!QdoKIENr+e@dP+Pxy#Vif|^q$-;_R~^wxA&g{=KHaRww6~^R?ZRD -z)z>3=wmfNNZ9(V&8#1pCRh5+$<*fm547BbW<9axHS!iq7&#p18%YJq(YYhax`~+VS -zaAu;}!dgoxI7hXzQE)D44T7VAw+J{xBG7s`YI#^oK@kP_h}Pwl+zaRV3&Bw3@fe=Rsj#w4ml#!X0lLKZ2 -zR;GL|A#f2Q2{i;Ztpb-G;iMoJ!~2Tz^0E?eT5@u-GBcV&;Rvu(AVymKuqo}=q3$=W -z{&lFdrZ5m|Jrc`K2!6EYVN>dFLfvax^P5nqAl4%gOK2_@=fj5N)YSCXb0-TdKDd66 -zlMZe)5l2gmhbBHxZ!L6m?1%ul^;9UmVr -zFU&*5&CSIHuSIimuCZB-TD1yZNyWjz&Tg{;T8?FdmfNhLVrS>zfL9`_)#x>AIBnLV -zxwyD(crd)YeCyW1{2&}w&==qS{ae5f-zMOXZ{c^v|7}D4ZA1NSL;Y<-{Xf@+!g`L{ -zVd-IuOJ`3WIk0!P(XaYZj603?9yoIH>?I2riya-sf=*X)nN1;eYe(N(;@p>MT>befY^xGYrnp -ziDLWfA3Xj*LyUyM73(HXp7-Vo~g%(Sdiw$m--}rfv6xZpsLi_?K)!@x2C@X5wQt3YVrOk$F#~-wEa;nIK?806^|zp{ -zHj>*Al(w#UW#k{4Z@+V0@OB*Qk9OR=;@mlJ2EXplA^wC0T1N-DKiiKz%>Poqjsax$ -zBP&o!JHD0Df7iNO+|)eJyZxK@-!2}~GyL1d1I@>>lD}QNpPPYyyLf-Qcz?TidXP4F -z8SL-NWPe{K`};E4|GAgR>OdE-j{ZYIMq2Htnzq7TL19V?mpNPqwEs7*ihh@q(Pc|r_Y5Q7xGBL7^Wm#Llsk8IW5Zu|sU(iU!z!# -zGEz4=c|}rEx^QB2@@voJ1d>1<=-kbRzkoOtJ9lKUCZ5>v(QRy;Dp%GSoFs$-t+zT- -zwEue~N}ap9o^`ftv~nJ++1T_6nINy9k%ELgD0S}YZaYILw>r?do0EKg(YYhdcX+tY -zRST*Eox3{FxvO*0LKz@#lsb3w-P{R2Nav39a{J?*yC0<9b)a)MkBj0%-S-04Lo8sFyLDvw5(*f|5_Idn6)?)(I#M^#t*Zmwx;ms=H}9HT -z*lyjA6hJxanpZmhsay9O*Z;|G-Mln9=gr_>b?eCe*?#O*{ujG-Ke7Vlv*TO&{MX&O -zdEV{cy#IFV{&wrWy(;*(TSw{Dy}#YMzumfj*RA{hPwyaq2KwU*b2h4B?oYx0_0O@o -zc-yr|~Mf9>(_HN*sTe_aGg -zIZ5Sz&+;2fVgmZVOn{V=RQ^rW|ALB`z>Z%fK*~uf{})JpXPW!{8rU^S*^HEvRHkhG -zUq^`v?4g_hDJQA?UuXJ-2Qh(t6cZrjB$a;=?Y{vN6F4|U!JCwmRHk71--UMO#-Bxr1F14_p>iCfn(%nfRvL|{yD~fgyem% -z1LR9U%1J8!M{E?Fi3yOM0a8v#F4EjX^q@1Mke?~^ho0!17B_QP_l_^E|4>4i_ -z$7X&+BIP8Ne^~rEDUb0R!_glJkaCjBe~y(T5;1|}-xKH}FMB@QXrE(Fvt` -zDcLRrMkFK?7J`dXOfp*Hkdo~}U_?SPVIjCE#U!I84k_6#1V$tz6BdGtQcN;h;*gT< -zLSRHfGGQUOD8(eBB@QXsE(As-Boh{bi&9K7TH=tB?LuHgLNZ|?xG2RWqa_Y0*)9Y| -zBqS3Sf{Rj2GFsx0lI=oZL_#uQA-E{TB%>t`DcLRrMkFK?7J`dXOfp*Hkdo~}U_?SP -zVIjCE#U!I84k_6#1V$tz6BdGtQcN;h;*gTt`DcLRrMkFK?7J`dXOfp*Hkdo~}U_?SPVIjCE#U!I84k_6#1V$tz6BdGtQcN;h -z;*gTt`DcLRrMkFK?7J`dXOfp*Hkdo~} -zU_?SPVIjCE#U!I84k_6#1V$tz6BdGtQcN;h;*gTt`DcLRrMkFK?7J`dXOfp*Hkdo~}U_?SPVIjCE#U!I84k_6#1V$tz6Z#i| -z?B|&MWVFO#>Cd(cfs_&n$%N>IVEZ{{G#M>%DDnL-1b+7UgUE~ok&s+~{|6G7fyr4( -z#!`>V7W5+QFO4Rf{h1TuG7u!3>};T?v1HN8MIf0aTAFG*AP5CS6hub@4hJts8$%G) -zz!_Cl11(imE`!S#jnAAr1wn$|?nVt4>vk8nGB%G! -z>u$tnm6fkbJ_S#|h&ekHSYoarmA95LS4 -z9pfDQ)@*|rc?Z|ITZk!ry&qupC~KlXdU?;zey&F6l(XaZF$S+qN__ZJ&R@P!y7jR` -zkZG#4i-O$>mZrz=RlGZSm3)n_JU!xM)#LuGJX8FOh)&1;+sk_%uKS{4*7QEF$jOS? -zx~sMuQ?_q!r19bQS^EthM;Na#e-KIB^=YfKT1Hr&(wFL}yc7}H<~Huj2P6+kc`Q?z -zy>o&l(dm`<&;`|4Y|yHJz@jUPpSHdf3NNdSd+c{AV~yHPc8_%%!;WS%e39FmfRc>% -za%6bD#>{Xh6_t*ULFEn~cIT*LjHmi;w8Pn#a{QM(t-il$+nKT!mM_@Vfmd1Wd-FTF -z*56S*>F);XH1b{a&gOG{$8y>1ebQ>zvf~Xk!$Vs)mTzcVV^{ntWZRKt{ZFmlmB(8T -zk1aQy@(wz)A=H8vm(BRXpK5S2UUVj5!`EjjqUlzNJ>5%nS9JJ7kzmW^U}$C -zQsJdTrjh1}3&vg*@>{ogIj$(;I-Gs#=FM_5Jkj&=DnQM*j8s9x`IIcH-c%0*8%N?_Q<60>^H+c`b1y{9oo*3%2 -zvpi5Gshf6qr+9?hivyNgh16Zc(^$O-aid(Y)+mCJHTbM@&I-_R7=YrH9) -zNjkx^{)nc)?U`=ohlu2MCdGKEdO)coLh -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 -z0Ylhuxf%q{O2iXlQA5 -zUk2_K_G3ZO+PsMc3u@2HV(}G}W93Q1R>KWq`r%w*S|&~g(;GK!YH^b)g}g>F4h{}F -zYgV}CCR}bW1j$S3czup{z0}r8)(oxLn7j+GKaoG%6^sph5vJZ`}uI^p6=JCO{NO?M4 -z%!??d^IMfZInebUbvs0TlmQM-T17j+D^Puu=9n#fvRO?OJoB@`E(6*-hVc_QK-0V{ -zGCbFOZ<%aU>hat~U>QL%i()^q=W?l3HfnM8z;#cB(Y={>zm{;h(H`Z4_?ROKUYvPv -z2CBBLgx?^hH~~~B;R8v+iFsj%^l>qC^0VV@`e#C*6UDv9ni`&;DjEy+F$Lun<{ExG -zf+=>vrC#evxcd2Bu~6>jYWAzDm?Wt@QPhCLo49^d%IzXQktXvUA#C7Ej&+pY&)_4d -z3!d%gZ=idsH>@;3V%aSshQNHd?|X@1MfyyTcM$|NLITpN7x -z?-S(oJh0S8Tl5tMlFUZACQ@As8ajXP$n6^yPOup#e7JpsOY63?>kRo`ym%3onE3v3 -zUNd-hUK-3@K?OG?FRexiu4G}>gXpq^MMOmIpQhcYkJHf)5kVUt-hapO0SgM8!mkkB -zmKRA$t>9wxAKnzIdKl_7Z9MiU%lnr$So9#Ke+!TwMd7 -z2Q{|gK=OqdCV@&U%t#f -zvdYX`3)aro%+AlxPs@}c;0E8`A&j5!K6D=YGWBPPxYL5_O6({uCfLl?&u@8g@D^!S -zRBt7J2Hd98M8$p^1%+mFau&Uf2q~YV$cZ}V$b4gdDJQny94*cj)n0yiMBlV=AbrEw{0FjHdsdeT=>BHR7M=)eNAyNhgId#lEu;(E;>b!cQ%+DxKE`v -zU<#hQ=>~2-_Qsa_zCY}KEQTMgVu1#`bQ+OG+sEzs(Y4xY;O5J7Uo|-BX}ua!5d%u7 -z9mT9%{^5he=%_gq>9O2GC(MutKgz5lJ1 -z26y<*)xMxV9enM>qkTeKY~IAh#o^SH*qLB1+efjnOV+Gea! -zPO$fe_;riVTok>`h4#D(o_i@Xfs442?EqSNT;0lQ3;3VuMHH3_7fFIoDN_C7FKP}4 -zqNc$frRZJ2Nj+wMI!$JtipEBd4<9}h-^^rVDfbgfUI{6_3NDkyhg4_ktAea^U}kp@ -z4@Pibp*73K0&lD|@H6tHU=DBaTkaedNKoHTT^q4dpeLLD)D)<&v0Xo6*ECt$u!zPb#N<;g)-mo^@lp^D|z2|YhpkkbM>(0ICa3PVuFD&wsZktc|g&C -z;Lo|r4=Mz~R3%QAuHK>^_u`5dQYn`Nh;XSzW@M~+AElrCiC*oYA(FqjTJz2%(RXOD -zt8{Hh>6sn0Qz}}U`ck3%>y>9lYYXW4?y@QgF$&Ui`C@!dP9E7rEhr$pi8@*+ObFWZ -zK2%oUx&x9C9}PTk?ueC!hTNXcftG9z7V-Tnlw9d=PSrIf?Wo*Xx8lrFuwzjGpOw`f -zJbXx1Qc}VJs#ZX1MXxevz_~*~)SzxmN1kmHL*?;byn_*^_xdz^di|oel3W^k7b=FA -zJEJdCGp|?OxSvr?F(4(Py6yJ$eXbj-Gov@T$i=Lc;#H)*3%wQkL`Ta97p&IVf#NWE -zJ+pgf=TNOGOZe8q9}jqZxme>-XpQBN0xe#T)v|Y3P_7#=9ESZJ1z%YLlBpa;n3VeE -zigZo4Rf7p;n*GK&+RM*n?F_Va7L{t6{Ou`6Q1I7 -zE8E^q`$UYO+^Um09G^ATjjFgrEA6shjoQ0QeZ)spX(WBdf7>4BTThubT|1l8V{Fyk -z)dfF(EMqw=xJ(_?FCWU}c -z?An(Zb~j>2LctFDhk9=Q=fD?a`*DZPE0{^-@0 -z?F^@N+_`cc2fD)hkMV4}p*yK2GFbbtZ3arR9AQNToz1u0X|v6G -zY*h>2vyY+FUi&NqcM3ezX&oO^ZOX40SJrv7bZreyo+6HFDwD=npxlr*JVwQ~7!Hth -znArKyVkcIDeTpDv})>Bb51MB^R=}AU*15? -zE5+>m$EB+0U%6$USd_Kn#Otx~Ng=LlBl8?YBtsZuzeDEg9Z+ -z8_Um7RNq;1PWVhJc|A-JEoVQ{{v@ZNLWo_J~zgbzSEZ -zb&j~MQH%C;xI8psCZe714Q;;VR) -zwT0r+0*Ru0esPD`{@KKq+x<+h9h&+w*O;EZ^?v%5cGy0dg-L06GQrh^<^mQpf)c0fPd%fq -zh?DB-p--JYXq(De@gZqhDV6yCWtAdeBl@J1HCFzK!L1ZKL5K6;a|YKrHVx(p@$MFN -z(@wDcY0`N$aaex{Qfuq77M)I=$P4u^%VuI&(ZsNEx<^+Tzml8I9de2c!gzZoyxa*s -zBCUKt?Mj!WE6D1_<-!ggAMw1bxdWR(ukV6bSo1Yb*o0lZ!7k+9*s6GA?yOOV4WM!K -z)W&tU%`uzq^OC#PoK*TnnU^6Jv+a1%n6lWA-4z95q`AIRZnTb=k2^$7uI%~arKXRk%w6;``KbcR6)-9bS8~f -zAgwQ40XD0+gCK0X>{(ku8Z0Z68I3Q#s1i(T_NnOoL4~Fl)^e@g6Y}9ooVaFu`o^v& -zR9uaBj%))TW=#UT=%|dF7=;&2967GXtfmD%2!@ReEQ{Ujcwj^+#5c`=Q%Tc*{9YOD -zEqV|3Rf)5k8*Z8`x%_FB)FIg;1}R2s^;ph_G&z;iK_k1=*y#dk4?G9$g<Un$ogZHc5`dUaG`WMj^0`HR%xg&IY2J7n$v}DWH77o@>OfoxDD-}kL`xkSkPag -zn~}l~))qy(NNzNe=v^zxsgbvHwJ)1g7(bup^F?{Nj>Jg`MY%s$2{{)OtZTS& -z*P~Tkwtj*;R?Emmc7-U0d~$lrpjvTZmq+6gBWgZhWh2=zDEiKuiI@zZVy22Hi(WU40oKK(L9Ik|wbDarK>{u-yq2eMLtwj^*-#_Sp*LJi&a(WF*H#Nl$SO(5}Z|*Y4ub)jQsGb}+L)YBVu_@~YbUVD7_lE9- -z)}G|ACkJ|lX*jA39S&t*KgRWX1vD^Sekj^EKqB#`#PZD=1GP$vZq%WFvu)V1U8~a3 -zQ&}kuJX{CUoOmAUY`^Gh=rFpUqi++-YMpead$en}$;;YUTt>G!Uy|QCFvh-PO5&wT -zUX3oxu5J4oMR=rk-ILm=dnW&F@fPvQQC&VEF}3Y6v^!dR(lSR{LTQ$?g<;*x?|++tWBjWcs93@hk7;?KM<;O)}(hUvA(0pkYu58d0$ -zAX*Lmk*=jw#=6c&&&rB>@3^FcTDjpAL&2V7DYw}Qg-(f&U|`hFk&4Mo&%pVc23_s| -z8Eh#PUD3zw@$&a0l4Y++7V>#mD-PdU?Y=fgO=!^j{LyJD`2@VF!4349O-loW_}(%^ -zuRr0hxXC5bq=*sx69=7C_i -z^ELW=^wAm;3Jkkeo$_KI_*#Bqe8^jIS$(qg_$hg_=FP*U>8y#7n$at11D^1SKkB*G -z`HXg;YwEhnafZ;~DXE)JyX7nWie%&?mC`%>)@F9M#kWnqce>5JpZ{o=Je9E5(_u^Eho!aFrGpo-7CoDc?uT?sZ8y2ExP&&Bg&7m1QJ-)LcGkfoGc3xK1@!Sxx -zmhv3DYD96x4iR34JD*SA8n=m7$l%P%fi}9VV>){BBwznni4g+>PNDxcn_ZiuZfL)! -zm9H2IjQN4H9oXgTh~DNF -zI^|I95R&u6G5NsO(GclOkL$+M9A%sqkV`;uTA8=^t?`y8)vW^BAxhU? -zY*95`aXxn~c*;YW6+PbR9pCo{T0K1j0+jX#!>_c%zwZySj*qWgh8ez3+my!oFosoA -zh&9A7@%!E&=kRz|+2qG9R~6yu_udzdB?Y_iEL+!u(wS<_1e@1^mKEJYepY6~*C3p| -z)NaeksXH;4(ItwsiRkjtA!Yq|4eTU4`wceSx)49sB#-SfC~-@V{ma@ns`SgDM -zKZ6HUmGG_0Zl7H#j?|T7n6O>Tsr%;b4<@l8I48p90X(JVb~Dfu(ff}dd+erPIaPA{ -z+*(tI`sm5>*uD_I(^x~FrkO^o^!4_MU2ALD -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

g32wdV~*>SmIfka2IcgX<7GIz?)iOGoOZ -zweZT|(~my??t&M}5#K6EK%u@xW1V24LBfdc2aQ~i3g*H^`gVaxuF297N8dB}Yl<;J -zkHlD^FuqGlr{R#_Rq&e7jX%v0es(@UVLMxEufjX+=2gF4QTc;wi3|mhcs_ -zHIBm7o7^v6N|!(=oo9juMF?WQ&Hlkbkl>9hL%3tr@)eSuAPZWA33J*#QSgj^n(J@dNPX`?ubWL*_W_>4z(jyC~=p{=Z{$Lmd -z%|vs{%OO?wS#mxckAq}7jR}XUi=)UX+ -z2_&4ixhC(ZWqaNyKjn%3&4A-s0C&w20?!b8ckL=k5`sRs{#?XrhhSGRgsPLXc;C^* -zsVBcvyv!lav{E6XQflJ0KzqcZrZbz|e25UjPnUmtd|~36=6xKKKQ*NC=Q(Ji`L*m6 -zaF9Sk@{SemSa-Ce1$ia=UQ>obU?hP38I?TvUkOWZhuNGDmdgT+`L`8DkDA#IeNmE) -z5LzY4u-4Dp1nGQ15;5x1%*H{o_H@CW8pb3+261nUg8n{d&~28MnTg3*K|I6aD7lVp -zwq??pZudMyrl3{ip|vY?Y0f#cu$9#)3)aL+p_Oy#y~`|SelGe-_z7rNo$$G7&llyc -z`v;sQWS}KVV11{ouExR>Ofmc!gpg3%xZ(gt;cor3*D!3D-xtt? -zNhH3c5bQPWGpsBi_Dc0;2OSlc{F13t+(jdJmL;I)chB7W1xc>A(d5ebA>@7J?iN%sG25Ytbk3n7!m?*#xHQ -z{fWu1CTQ}vJ2Y7CVmV^Pz46YwI|ML4082g?on?jR{C)q!C0EkBmPlk- -z7CF=}m=^p__raq_$k^K%=MRiPH?3p&FETez&w-j5If+aXr9L)i(7x=CMy`tyd>TZ} -zO&FGEiy5f)Gn7xqBwU^nJNa&1^yBxYLC#1dXs;uzuB0w|{llsV; -znLTVn6T@HZXB{YRIwN%mC#cMQ7ORmpT}zD&t4ScdmeLq`sQyNz|IW -zMvpwjxwG#+Mk-YpTO&EO#DJo_vgX3$7&k!A;2^`~6L7E^RpfdAcK8|psqpKpq4c{5 -zY2)ABO|6h9osITSrI>O(lv)O-65eQHzrPao=8qVR0A@>)?c;X%3H!R)jnU8sf&@!N -z4r3TfK!MSUg^X->%@$MP#s2(;?Ey2KpS;=Tk;^_F$n;9>!HTDC+)mkw<*m>9K<-Mx -zfw~hUG#WOhTO->0lj)9-<)EFinfR?xOZeL}aM0zJjfUj>$jYg-aA8VyWO)P^wwhrNLS3OoG1xpUzQR?ERf3OWYLc%~lpB*bakd+aYhFZH~GT=mJr;Oj) -zl9;8Kn`Cg02skr&oyFvj?N^$HtUZE;)L1VNcbwj}mGY@!VMZNRgXj>@y~Z4(bVRcK -zG1A?iuQIY~1Ak44P~oipN$8oVQ7WL<&m5oKA2=L`3Kq?ABw7^3~dd -zPwMHqW^M(^v9Z}z@422>0@HRKNItkc%_^;PTv|;DFkzuwoIl23vA1U`!S#6vKA}(? -z9SOGicfYEN1P3nyd>}6N2ntZb0~_@$B7*+UrZ@D3u5Er&q9T<72GUoZ*xS}B1KS1V -zIN6T(P}&WmrG2ccmS^~dvcmY&ie#NK);CX4R~daJek@ik-O;7)8w&0E+z(pwxtr;W -zdBSb@zCsDxBe%LumM -z_3mr{kDnRm9{j308+r-x=ShWBX3u;;o+E`hl9L=5<-Hqf&n4~q+d{Dm(PDK<_>M%` -zv*X7-%{%eB -zBJeL~FUPhi+~BIMnB?ljZID@dr{Iq6Wp~997r@9ORs7oX!%W*V -z{hv%m3URe}FL}#*9#NU?DurS%0f`fHtr%S_9$I?5VmS`F?}5qZtyJZ%Q(*%{C9S7` -zy~O?X@Lw=0Eec$dnw9pkOA6dglk@%W+IL^ -z&{T0SoP&pg6D1LezupW@)(d#0b;JuGc7Y#h;m@4R$^B#}{kYII+?+g^AHllkhf%!} -zUsLQ;bNM2ci!%v`aUeUQz7YKfSo#!wK_85+{C4jhm+7ec9Ucn$(UJ!}-gc(sug}`> -zr|%HGSt=3+jAP8qlZvX*0x?A6oj)Y#_o7UwFPR3OSPrhqk{-|Cr?NC;3^B~ -zpN4Y2B^*;Va&$%+eJBcfy@X-2u4y8(*jeWULzKR53T*ah%F^67^|os0idaKAyJb)>*dfU_GPJ&e*Jtk+o9wm#o8^C)+33Kx4i3hqMeeGIeIg03Aqc-;ruLJU$X8Jbn{m4Xq -zBO!k2UZxRTQ{l+1dS1iHuDlM!Jyd|tH7jDoSu|=GeKU~l)P4u^6mU%*5pN1*^r=i9 -z&iMB6S4)w%wX!EDK=>~%_7@d*i!tZHnX=w0> -zAtE>S4nx2Jd{+hr*-$3b(5ACOeqLWlSamlaLK^r0IR%QEt#py5Q}>O#oda&sz`(2me?o22Mt9iA2QYm3W4m*bqR}Km~WHNbxIhO%s -zm~o80z#Skx1_Pb)8>sQa0q-GGn6o_0?Bp`a0a2(kP`Y6qpbbR -zr>d1p4~vHeti)qE%8lTx@cM8VKE!`lrMq_?wf5qEH9W?|V`xbzu&?PZ{(RV){mfDEN26)!> -ze^nLefr~=rCBCGc%uw1SxEX=ag?qP=Yj$J@l3?;NhC-TO6tEuPMMm9Zj?NS8H9gT? -z#cDpE|C*$xw~TNw-?d=snnAPkllT(IO@p{neuL4{q>hK;vl5iBC0Zmok;nO(&#(iv -zJ73B{dUy7BV=kG%($M_8s69Y{2lA1Jb#Z@l7x4jb>)& -zt;`-m)hzH!NKKF}kb9%Lm87{+_J?47gk_fS>smNAn*)LfLni48SgRwu{Wc)qckgmS{p%>mH9>Atn;8 -zwA8mj9F1Gp*7Ssw(X+se<@sPEtPB)co`s$H{!m=M4s(r2=E{RZN?4x|Y~|@w3ThZ5 -z_)$SXtH}hjPWb}|W9P4=l4IZ>!q`AE<=lCV@bbPP{J7_6 -z3Hzj?EgDJ|gWAr|Q$+BsfJ_&Rmq!R}x^`S8CwkBZn^Pd`o2$e`e_B*<1@X|N2w=Wi -zwXyIsFnH0P6nXXw!fVLQZ)eD63M5|2o}N;pgeG1I#JN6q|9J3@XWc#Fn5#)GydV&^ -zSe&w;f^;OVa;0>ae8sqtJ51EFfl)OlY0<)-O+MhfV8s26Jvk68 -zO3dQX1ABT^RAfv0q!*yS3+D -z;5!C{XK_mo#zhGm0gNL70%;>g9mIuK1_V|SZa0Jj7Jv~3#|FRy8kl8V#^WCMBbJo` -zR(N#-2(U^yQB6UNaDW;tnr@y)5SQx1}epNH~^Nl=L>{yOKj)n8(9Jz -zTvmq>_*;*nlm%xe17@RgKhGOxHJZWE>iB;-R}Mq;+@aKUK7)nZbzKbeZl -zg96l$u&LQs&&ez7!p7yh)gb0|7_YAQbq9evclEcoIzEKOH0<$6Y5N|;6^ga&q(c_+ -zOe)L-sFz=thrEui^K#oYf-vM8VwWCH)EbAe$}jVG5V9ytDe&QdKi89lX8;q=p|P>2wFsU+cw$5mcU_dQksFGHKeyN%ejNR|29m%m -zM%fKUB2B^*P@ -zN(rh%C~yUp61l;HF!q^G_gc0$3kUN$l|~3)VuMjO_nu*CX(*32eOD@MWWG;~0V1lX -zg!lIK^>w4b^fztw&X$|Lem$A9kqvl<} -z$%GC63C319(r;DrOcu2Y$I}4abOwsY7t@-w;zTaD7(^Uk6W0JOoH;9mqxN -z)*e_|08y^L=*MlC2i8x-86k3K5$op>z#&YXD)1tGQnA13L~aDHXM!i4QcB1=3IR1VUI23*y+XIkg>Z%!g3|VlrI -zAyed}DP&E>5pV|20woZ$VZzc_mDC2^q3sR2O2`6KKQVn~&iJy3Ocf?BO{5pdE?xe7 -zj~JQ?voc_1V{4k6G;he=X>wM=>QWLW0s>6%?~{^l$S12_irRP>pdk%(3Xs8Pr1vut -z0LA`r{0^`Q1eg~M_A)F1W=^pbd)N{+eHxk|cLt2}U1XPLvMElypmWXT@kH%dPay8q -ztG>enVvMeytl&I}Zm%=jj2j?gJufoAWVzh_+y`)seBbs~6g2qj_sGQY70kxFWC;hW -zIc+4gB)_X24B5Rl0U{&sLPkbQP2KxSZe@TnNxevB%!)fMa2}Lj7?y0vuk3)j0OH0m^pQ%^wCyNM7#B(si!sd625xR -zC`#88OtM!{!?>9K0TNUsSTcE1x*sa4;@Gc$*57h4Q$kj+zjA5>!RA|_vDVfZKx3(4 -zzZyVn)vE~hskq9k?E)yZ7D%Zf2zK7Sf|;}DU-6ba6RWOrH@~33X=eo@7;^)kB=D&m -zE`nJPpQVO{T6mS#U1WtTg@VvXV^^h@0{jvHz5are!so!GQlL`mN%VlDc-+VfAjI1Pvj1)mAVj*pL5iow7hhNNd$shW8W>FLNjAVlS3qNIjV(CAH>Q1BK!sy-ZqT@ -zQg-(~Jz~}csBA-+I$Uy7C%Sb2Fwuv6Hx>fXBG+WQ6K2yv9Yl;E@$<5T)>x}hVOb_e -zM@NH&77Yo+{MEZugcni079yf@@m;oWjlQ5bqLGPc;*d17v=16WY3AnVvwhnOP-}rK -z)gaqa+)ANBT`@KLQhW*<#@re!>~(T{#LB@@;QiRo?;IGI1Grt%l6sE>F}Ew9jy770 -zpE%4AHkUS`t6Vv-ZJ>a$jCxM^U&gEo{uqR#RhS--kdXY1JOEU@KUd>O;jDze#hch$ -z$OBIInTL}IhlDA0P{6=O8h0*$a@KF6oWZ)4$-T}1j0sX(4J2?kK>{~81DoVTb8j@@ -z@lb!h(S4%&PXml>d^1UEq-pY8XQXbiC0s^Qi|F^-QIkQ$jN65qi<>h1>({TZL$US+ -zHOxdz;OD%XNvrZ_{b1X;q~(I=`4B7I4-X`eiK~wbAKN-{^{QtYPl_QiG7J+X3Q5@M -zbLScXP}$wrr#G-54R%O8_&jHDx%$&$`AnR>b3FxbZwO>_8!$(L$ein4Z+X-U9miyd -zfN9=+HH#-te)dEI>@1|LdRmA^8R}Y(##RAGPYfP_jxwDB-yLI{ypNOy7>Z3Z;x3MA -z&KxNX(zzr6wsXG_`!Uu-V!C -zk*!vpJJThIbDpCvARS}@npg_tFD$SS)C<6}9P17-m}w~1P39Gm9AHmNHU+H1r6*P} -ziv);ac4Xxu@cR#t`oTo%iJ?(CcLhx=SLQ_Sj -z)NNiDKtYw(x6#`|f$6$GiUrodT@z(JAAsq18fB~nD=-P)hy=b2$_rpOg9dP=rZ@^9 -zNP}POS(MQTG03Z}C@(G~j1LJ&;U5l?SM%A9M4}GsX5SqX3JkSyTkrzmDV)fT_fM42 -zL@(LCheX1C<3KA%Q@;}lOObyUF>999p_0|B=&b^lp -zU`nFDq=TJ5f8L!7KhFTddb)oiDDD?Q)2%U5)G#%Ev%h%LXUvh02YImm(aGrzCUQ7K -zMDj=DUH4Id?!ur>xlL;DL-wZee;tLB^xFWjCl%*BmWM-#rfIM)AYd#J)X&fZ+tDp` -zH#L#cCkGQJ$1f*j!x>76g7W^LD0?`4jgc01Wf;<;zJP51|DP0!^^?bek#vjpI7y2~6y@)@ -zurR!DpXM -zUl}cZY{adMCI;X1-j-l`~Z|C%BZj=NEIe`0Ehq0-?LU| -zohROYM@{~XFLH_jP)toj!zFf@O#wmwtS|#Wxk;ig8@#fr>NAirz@jv33`DMsRUjIy -ztW>Zt#Nyu)2^XY6K1gO@aw) -za6QRYk(gGnRE%bI-s~mV2M1(#awgvC+uYovu|>7)jOoWc6woJVO|s6T>sEvlY_gAy -zKBA8KNrEx>5wO%G0#t`gJugyiER>H93_K&Mkh!_J&h%qfZ%^Kn9n1@&M^AGmE~Ei_ -z8Gbt72G$TLEj2YY5SfP^sL2m3#5FOCGBtM;07On7VFPyLTpnSV1h$@N96g^tH3ZnLV`!ytW*K6q-?5hb1!=-);&r`xt -zS*qg|TyxyPhN=tCz|zl112VxLQ$4}K7^6^_RV;+KTLB@V3|P9LZ=y~~0GJ{%z@oIR -zDX@hn`AhE6I-#g~dDE-O`3@`{HG4|K2P|+km^LMOZE4TRL>+)z`}2!e6V8Gld68X` -z`ok~%r%h*oX9h)twI5oTpYN92Emp`GRS-r%Kfinajb|T83#4$2!Q{jJAag2g^I#wd -zG~c6$3r@(PbJu*BLM?i$t>Z3AXl%M(G83U8HNkp_LE3rwr&|yv!3J>rdTVjw-VvkDcyY{hKlj_tdzxP6P$4A@{RJFEd2#Cp9-03FK^Z41Fg -zsVc`3oYeSQAx^P3ryzu2456-R$9^%DXLLCvmF+U -z#V4sRog#x?eDUBw_eU|jzvMfRZ>i6$8)w4T)ABVC8%Ze&OND7OP-5Rivwbt?=sdOb -z)VSzL7fVLqi+1H(L5!9AsZ0r1D0*7T^c3oa$+%K5pQgerpcMU{VQCNQ83~7lf%P>D -zk~=)E$8>^N3#mdNci&+*tP0CY=%&!qSjSrjmpGUsi%p^E5+mz}k8sbs8A|sp;;>l~ -z3H%X{b20kAI-$)_sI`bQo!S){2Fk2Bmz_H2Zj6!g$lLb_mi@>sn$T6uSiz)nb`(*k` -zibbdJj25{ZP*<|czK4(46_P*syexVOlNujXRFPaDB_IpM(oV@i!Yc;pe8Un0Y2kY@ -zul!}AJ#7n{pNy!R-J2{qW&4qNZO^(j!nVgTE#JYDd;1a}u>K@1puAs?!t$G+hKnM! -z$w0`Y49^G_Clyr3zS3BxGCE=v>Fvj@_qMW_D4;$!!~jIs*Y|7(Bfej6m8ep;`0bfB -zUSz0i-Dr5O%>PKKS4g1BJwY@w$@6SGGxBM7VBFYD_h?gLo+F;2@HWg!@1oyji-KZA -zTZ@ksUOr2JLhowV9p8F=1=`N{#UtlBm$BI!;kg`_e6}rXQTT9iC*nu0dWy(|e`>G! -zC@~p1&HphS%k-$+VSeEACo`wY#Jy;eJKvUeQnoEhW}o0uZ$hD#s9YJ6;&4&YNDC2B -z3mmfG++6lGi#!hU%>0~vv9QmdTAB3}R8%^n0MgeW25mn2QdAM2U4PG@xpuoWCA=#d -zKzlzA#)7K1E)x77&kcyam)-Hv(U|=Ddtg0n$^A_S%>bln_*Q8M@r^Rv{_Qy-zT1(f -z_QgGZz22ey;OQr#JL8JFXH`j>FTPxLcSkP~g(c%tzZ?2AxAOT@?9SrIF@b%ce>RA@ -zb-$b7v!&@*FumWMbt!n+tG5koGg=3UmvsjUzYZ-=@gSPwF51OJI#g3zla^A?N#1v@ -zyW~f&6?4p3C+wGQUGoVhVi>JtcB8GLW-t0k^;OQ}3>WjEXBGxmtDFXk4!lCFaDPhU -zeRV1-8BsY!^4uS)8w5MHN$!=GIw -z=+CZ@;Clu;F())yECH|{@imoS&j#;Ty6#A7+Z -z$FFlQ2w#ibe7j=!EzU5syg?fTiC++Gklz(hM#uh?@4933+gKs(3bK%%@OiK(Z>Z_W -z=R-)GB@4Q~e0J=$Ea9PdHrZ_3t0NhopUp*U!Fz)2tS2(m?o0AHCudHWeaP;aKVGmZ -zUaZt*5MfpO^)+ZZv^^gHlzA`5Bhgo^R;vb&)L!QMNRcHS8-+cgctfeixU+1Q^W^%& -zVHVGynTq3i9NVkU?T*5fA?J6x8;%ei04+tQzg)C6W1p9)xBnDB>sti3_i>wzAk!{f -zn>sI*YOdM$cv1C(l*K`ps%Vx|l8My&omqXq*V?hdt7t%(fe5yylT)_(Q#d`X)i{RlVcVS2Lt$5HO`5$bkpmJ#I)(~9iY0AEgn7~;#Q+VLFYbzo8#<01LyD3gsWtkf%6i=@EJyYT)7iS3m*9PP6{4b}kqOY#Ttp8RV -z^`C4g)J{4|V1mc*y9u`2OOBX*f7_3Uc4xB>dk2wSX4t#Ukr6Y7?QSnKw>Fn;>wP-} -zGiwR-7holal?uskTNc)0)~@Kpss5>g4*Tui@fGYhG>tVb%DwR9JpVauaWFhu+&iA5|$9PZJVMRUvX*<2tMv*SsPA2uXn)UHIAmF!$n!NxsI~6sOQc1+qI-X -z=aN2mB{IxuQV6!HpL?$(dWo?uca)iR$dWKWQZ-mMDK66J5>PeKv+N$1ygfA(+ss@& -zCfbX8G62>Vmrsg6i#UMi^<@MQNKenwW;H?R&oh|OTw$z6jf}WnbHqgFA;XE7k9{jx -z&Lh92r5|Sy^v<^<-Xx|6J9Xf`B>P}c=+T>*Kaj^0e%t`j^?@JghCqbC=*5 -z-b*@##UpmvCA~Kj7FExcpUm7k`*A^v3}U(Rt2z9@$HLb10jKYhs6kPN%LvEunHv>f -zPX9UQd3gM8ZlaoUaZ@DDWZ)h1;9&05^Y!6~36n~Es65;JMVpmC$&kFIK)9&Rz4sDK -z2rPwisu4?8E!INsvDu$R)jj>AxhH)%Y2&3*Vhs{IBdr$9pxlF%9Q&d=Ae(%Qplz3< -zX%J`m!qg70T^~FUyNAiKt|Bpbddj4^)>NSK!t2H4gGp1}%e%9@3Sn9bhh*o(l44B? -zn9TVPTDHD+izmgEthGgk1YM?7rMwN9zIb?qPFK}{=qeVPOTO+awgU^%CdGI+H+*0^ -zbxl7msw>CtPyVv$aL)4L|d)y|K57ArosZTaE>( -z`%GOyBgwOsrih;~zj;ro2g7o@n@N6Z=E?=H-%>D9n-_g_E@|AKPA~7n#fmRJ8<>4o -z&NcyhX2Y1%q=eoSEUd)|;(p8GPV{<=Dh&;i68)&lUtW*t2ayMHHkLzAAqoGyUJUL| -zgp)m4YTja4Bt!r4L -zotm?%ROIoFi@zEazDbqT;q~I>b&6{h9(V446Na1`zhD{_t5|fZk@l})oEG2yb-?$M -z3FFD9zTfTJ=-#+fzWo{3AbM1lI9IAF|1`BtMy_sEQgZPW(~AH8W;x+`yoIoH+D@{( -zD_!NbqH*QQk>nz|YkdsA=}sM?d~bs3K^{lx*93IGKh6?Sp*1O&>I;hPmKFtt76Mwi -zhC%@WdM7#XwWx_&s&`Ev*kf{{DM-xxb`!l;`6s@$B={>`Gn5GvSv|PCboR)*b>!gq -z*r@BB;fvyXD>(*r5=H@7t^HGsi_KztWVkCYhfmB1{wHz$!%HkW2mZ3JVAu!w`=t|R -zFa7E2j2dAcVi_-{%I60LCP^|^zB0b6YrG$DAb&gZ8*@#K5yAi5wQR+NG9NDwHYZz0 -z4nXG9Bo!7T~N*Z;_K(h(K*DUEdcNyC(V#wOmDj-4Dasl{W4l# -zDmhBwAUwXKbJpvJX4~4+6LUvBDptx6h+Y%5?$oUnO^gl@4z48 -zltkK2)Smx2)Y7BwhSVq~M05-lP*8lI(cAD0DE*W^;hCpD(p>q;$x=O;E`H&lfv$AT -zZ$CulxTlWb7oXU;?~;eP9Yx2v0K*;2m -zfTjuzUsE`}9q2oL@OUEigtijN^Z*dUF^UtObZlZvHv%i7-J> -zikbbJe}`_~WzW?wOs=tG)sCh>qob&>kolRYTz8li({ge&g+4PUBGLfPxfCGan`jlu -z6&zE$MawAy%vR1e3?n{>4Z^<`u7Bz>gFv -z@TN*)Gc&|;QInfn4M4lNkZWkruIonccZx94>Ev>9&~!uyKT8YWVj;oH{l53~HwJon -zusT~-esc8t_<;UPAW%;iDryxKou(-lS0eJuq?Yib(+m`+iARk@P(u{O3qocgy3E17 -zFe^nQ4C#C9oO%n*k4E~|z=J=5@JmSzt#)wP=S<p{5C-+y4*V}>rOaB~|XlSJ$Q=Kw|~=YmS98ze=8L!&`$ -zmpe_{j^MK30DD9f)Ejks{VCySc{_sls#dj4xGGPos9hOGySk7HfHr(j2jP?4!N{#m -z6_r0U9x#b!fRWuhNU1+wdjZgBH~L3U1Cj6ijD>ans=0q4%?QPay&V3|W$LirTbm)q -z1x_R{57uk+K&OPMC8IpOj!m1Vl1JV6iV5s)co6hFEQ}#c2=JT=P9Gs9&6rZh3Ncu3 -zey -z2+ouiQZyt=!)GOfv@N^*JHK{FzQxYamIp$lzuQWIy~=)bE1EdH_o@pFR1 -zde#M|8_WH4FIYf9p^)Nv7$0i_MVHwU{NGo01sy0NalWt0JQmL`s#b?Adr5E*IPqCg -z3QM5PQJ>4OfkaNSVPDaup7?o||9qa)K^h1Cd>ux_w*K;iqS$&?;Xf>3rm|2_Hh#pQ -zO^K>EE%+xqeZ%nP=kd$G;b}-B*Z*d|{%u1#D=ogBVQIoWY!;o1|U?}J|iJAd~VBd?s9C*o{Z~Y27py}YzB21q4eOTDL8yCMr$cfF~CjF4mVM4<)5xxmT(CMz~&k-Qnr1A1ZAtIQzG(=fiA -zKw3`6)F>kkL?_Z@RUWD%||#F6c>>HLDESP57>X?<^39{1kihM -zNdPlOeB*^56?Os?LAEz_#e?YSCF=z|0zjS2%?D*x1ql540 -zqrA@jJOH@>7JzR(cvYmdogPRc$_O;IyC(;}-xp&c@7k;;;eYN~6e84s=qIPR0}H_U`_Cxb^{~ABy0#h&^K-4TElUuTW}d -z1Y4cKLT!PLQnT?4E#lBk>W3;;i4^)hH|=})qLv=Nj}ElGghocbxX20X!GCuD7X~Fo -z()7GbI`LsT5Bv?)!AIW3f&;S1BF>Mre68#yd`lQ*V8@5Z8G+;eKjr=CfKte675!i7 -zm~QbzOb479`rpzqqvfgErAX&QPA#+8r;aE5UE$52;hw|19uxY$a))EBPa>6u -z0_;+)Cqxiy?FXuILT0_q+A1}egi`L1632i{pY>$@r?Si@3bls?SN;Cv3Iy%z$$ia) -z?SsCG2l-=i(OML@V`^l>SffKCtyx-B*rRzk)8V(FGbxcJ$`RH>7I{jxJ80qgb6Xmu -z>E8G98YxYVv?(>?RjRgwJiB`QSRuatk}E4M=h|!sdkdz1HIQYfW$;dmEs-%p*rF%c -z%Y#NQEKOi%Qm75)DGL+6pp?G8^=N(hXDlNLX>ueA)3KGdufnYTj+yxiqNR)~+BGc= -z;iXExd|0zkx0pd`VVe4+4I{JKjf3g=PW@t-`3<43Kj$Y%qAr?nF$LeFKpLjsDtm%w -ziLxHM>vJtw8+$RKsy&Ma;EdM{7!7%%n1=H>3e%DqhDaw1K-Kt|F2nlcBE#zBR{f`5 -zO|#e=U!jE7tXDPsqbGM^*71EBYAL)%6^+VL->lvK^jV_P#1oX1rycHMnTH9FrM!|jsK}FpgB52=Gts3l0zYT -z+shkNl#Es(wJ%M|pO3e8DR}?IGo!C@z4>`bqg+XmkJPGD$Wm%k=Dv@7$(sEBr&r@n -zB|*RS6<+UDv)3?A*w(inAqnp2aM?b|8k}Kt2B`e&oZ{uEtO$7Af!=vwC)cW~Tx^SsMf4f(fOBUyM5la&M7yIgZ_D3*T*aaw|va4MK~`_ -zdMXt~e$kT1$=M{~V|a$u54lw_Iu500xp>ZJoH<+_8Z7w0 -z>n}*9^}h4>)AfP|?dFcc6Uk$tE$Te{aBr*i!1hNTO~bf)W%AbWGkZsa`loA7KXtIO -z#y=nkh?Oo}WA)m(gPLXtzN?)zN|uF)MC~++Dk)K-Z>_3&f5!CI@#buwr}ZLT6#=10 -zi6N}P)B=nwY5&$-$9b9*^Iy%Xj!It>az^@bH=OEsQgPKR&!^khg)qK@cz$KuM`zwJz~@sRODC8-`>NoFGMq<6@|fFFYPYZ#T2ofh -z>GSy->f=6R8nZC(#csj=ob`Z}hqVMbCxoPFFn$UD#AYNe=)Y!}H -z)NojAQM@M&MQhgR=Hq(#^5)4a1u0FHnBW7$kLM$GC8_#|D%2B_W%B2<)h3#9FOrNO -z@ew6$jDag$I}~Eg5StY@l?$t)^J8UhDNcT;WDa0M9`AhX11f``armN7mcFdxI0!mJ -zPh4R}! -zPN5n7CAtc=o|BdlIULdFNaJByr-{i_&4_u!_Q`*0hOGksWVos?WyU!EQ!-pOxD!d5 -znhDF@I98j@>bg`Wc+1x5Yzu}1x=EAv~=|BtRa_Db*~@2JB*_g2Gw -ze@PwRQ;}~OD#;vHwE9NjJ3-23c-PA~5wEH`wiEjOJ7#$M820%4ii~hx;qLXd_b|&O -z`hE3H2K%ZnapHW?GaEs-Ohn~nc1%d#G3t9xZ(78&wPDK`6M_!R#LiRwtC3@s>b9lhV9_StIz?{I7I*U9P9TsHm1xL -z%F7u_o@(ZN=bf{V@1ru??gr%i_~>4O28p)HCb8J)N(dBgSEqi6W4ox{FX4F5VAjAV -z;<$CdR(En?U#g&f|1g}WucTMD<_A~fXs;AdIn4FFvE68l{U5-k1f)tG;%Jgm`Sdx9 -z)N;7r5uX4OVhmM^$;AX$i#<^U+FCG&V_0Whg@=h~ko3C^m`Y9TZSguknz3b#uEVyH#~|y_B)`Wp%&8!M{M}PlpMYsk#QGV|nV*SJ!JXTYdew)9;$u -zrPy)ypGiSevm!EcyaZi)X+<+ybv?29Bxhd8BwrBVm7zxLzASh9mYkK~i#}g6$O#;5 -z#~0-{*W%Zg{!A5*_&DxU_{~S0)zalcs!(FA;4MNl(o%V}WXGPJ-U^z3v~g8SU7p>Q4UMui)pVXcZ^+Z9Pi$glWQm -zi;*wdW})=U$(-`;!ueHfy4|yI&rIyob3y4b`U=0F@g9ae_hZ2hc=fR>C=U%+bO$_n -zB!zLGBd=XroJiiM4HZAT7H4(8V=t*WgB`E1iT27^zw)zymrjoYp5|WhPqX$9 -zFvN>L{jfB(tzx`L-VH)NhMCC$)tP`hVH%p6rCZ0xdFYIsXk2u1eLjHDX5hS*1}{h0 -z_Yk4ti))9q1HF0owaW?fom1nyj-lDi9>K@+mkB9G9F6IV<7UMeQC>f9*2xd6!*dPy -zWS?y}TzSviv%!V{uoFBUAA=|Qy{Bc2vTUcCeUaiVKY&nBJ|k~SXawXu;y(*F-s -zvtQm7V;fDr>j4m|KWDEEzsaHmeRhK(DB->nS&Z1uwL?dG^1-I}mtIe0n3)C9B~+4Y -z-9Bb8J6b*v)j4Cdwc|KOaM}7u<}$wUYsfv%ZrSn(S>|!Dew8-mDzO>Q1;6h6|Hd*4 -zO!cAK{mBCt-ILAFwTpY>Oogz1x_&yf*Thz-Waoy9&&j>i4ayIG)G2oh;+NLuvVs`3 -z+D|e_#f2DsF<_Q|VhbbKnMZJ_>eE*MjC?s8ZU_(%mG+m+r!bh^dvdam73P}#NAC8v -zy}z^DVad@PvM3+M?*A_a*<3<@^p1`9-X;qP)HG~4b+Cs2Dw`TSR$|{lU@d)9EJ$^y -zpMGiRM90Bs?>|^)`p>gL!n7ghi0z0-QR5YbU2oPL30c>boMXwa%vl#&0kfmrQJ0g~~o<9-%50*9b^!ne5)UZ~vONQ9J{}ZvC&8GUF -zDbP>M_ZK&91hhoD{~MMSfB(nH8Qc6J-+us05wMo<{saf6Fl4qzq?h09k^J86K@dLX -za@?6FF^5t>cbjo_ZJqQHtrS@XqQXYY*& -z*+B5bdy(x1aR_P=Z1BE>0}Vu-rvDuPdezcbi4}jbqt%KKq(Z@41YxM1x~Q5C@fMWQ -zV6(t%any3XH$&1Jtccc2B&`kE7BdI=Z6dS=I=I&2Cho6ATPdo|2y>^|y?Xs>nH@L8 -z4H^nmV1vTWXsJ0Fa5O%Q%% -z?tNlSJ3jc5J67A9b#kPy5J#nKc3_;J^QwQ-77IfEoA1jxpsC}7J)xC=y7Ci@O1}9& -zKoHSLQrUhhaQv2osVhz*xgW;o$o#W$^_yjC9kJK?FL;R5|B!oJVTi0Qoc`vd{1>Ck -zp}xtqbNEZ?9aa~M+VLSpngkUw1xI2dcWkyK%=N}amZ713!r-mP$5mgE>3 -zzql-Q?EV)v{1?_4U-(T(c~?QU?_$nL-_)cOzk9@v_&#Or`oEAgFNfO3>`0j_UN)}@ -zo<86yovLBBwPu538QedZX(JI}q2zfDTO(q@hW=jPl;S?m_-OHxk+JU%e~MO6?iQ1m -zAMc+9tRi!wR7&l2JbLso@gnBR0eSepxF0iwYxmRxn;YAg?)BZ@JjZ%dMQ5@ZTNeWU -zJDOqc)~N>oLZ)bFPSw4f$D#6r*tswNv40KHY6m5fgz`>0IkR5S&xfqKajHwAeJDW6 -zE-hz;d-CN|6((j=sr63Jz!?+hzfdl`T(zV46KlAeQ=L!ZyU6rN;`g4~dEzIOJ{`s{ -zKRavyHRk4;BU$a1z&A1}g0dHo2d97k|M2L>h1B#VwwwPeKvS~YIrwRSho}7ap02#N -z%e#9V_^b+8eva3nv?;N=gM`>t_->H4{`w0V?*9L=_a@#{e_#CYxz{bXNG?T5=o*rQ -zipY4AArhjblp!G*D^teXAS4Nel&K70>-i6U -zcdc*h^L5XCzt7ocpFO`S#Z71q(_8FTAa~y1F5~JL*2KzbfQ2LLDE7kj;%}#<^9yA8<7bk>zPJ&UJvr)u61bMC`me;lY7EWew=@07OaA! -z_r_@cR_(Lw2F#DF{EpmNX1)6VAINYUy7j|ghAruR-X^QE%_wR8E}2E20daHO57+-! -zxXR98O7Z4t?_4=n1VzPe^jQ2UO*rI57 -zyhnd9Voytjn;rrjdJFu5;{XC3}B{9NXOF;$h)85e$@g_n*ddT!*g5iofvAcA7q< -z(zxGg+#qBv=<~xuJ8fNO{bq6dO!F7RGM;ABh5j{U4vdp)%CIBQ(`-fo4cuf3vZg<5px%kKCCu%w0D2GdLGB?cYOT;9M0hHqxHP3 -zADE80>nE@r3*+43{6{U-`LgI%!cF;GF3kIzvYDlDpC721tbb!}!~2h|rPYK#qqOMN -ziV6k&s^^z^ckn`nY1vyhtL>=yyK_lrlWy2Vt@V?gHjoo6(%`e6YNv@1C!fgQMj!NJ -zhsi?RM+*AgP%w}aSHF^*d%aXNSdSY~H-zE7RG)Fl4ski!x4@k!#lB7J*oXLm9FoRL -zvccpQTp?V8L*}Xkgpf|)akL}ZP~&Zby#Gy_qUfC0>Zm~|Q!fV;LZfQ-*T2d&n;V{K -zmGpj4GdeiTjnlc@ -zj?qJ+nN~U%98?u2USqRkrC7ym=~yUqzieTCIm=wfA_3CSJo!@`9ES0p+zSHFerhZa -z`8<`deN;%G-S`y33TxsdGi9EXzv!Y~xMlsf+fDWvOkUiE)I-0&bh?&w=CV$+Bag8P -z0=f@NhgZB@WTlLdJO@at11=k5+U|a&Y-IY$?Qk{TwuNZBI$i2B;M=J~jp@EC@WP9K -zJNyFM2Z1~ub?R@;KL*=8`2BA-@9q3@?QWQ#&IhxBC+M(Vei*FGT=f#-k&Cb0Og8My -zp8n#YaIto4&lP_CM|(LF(v&hwWC!t?%xQvtq{V)}+%T1JHA=57*>wO3`Gi|7w|`%Ce#po9xzVw6nyvAh+IZ -z)x>byF?M}!Z0EScC8baTGXXue#ScX%=&Q@@xX -z#qPxsF*ADg@2I>+^{~(HDkh26>ACNz1Ip-&(jRNWX5=Gq^l8c>O3?g0^fyK8ws-4- -zQJ|TPZtO_Tc -z$N%P*_0N?zu6*NKdK|Zb-I0L!($qytS2qtg8{T4WJ(Ti5<MEfYTkPdvTGZ|NnD -zqBr0uOa&WP-d7oD)EC%7DQBxvq&?a3lJ#@ssKUwXgg86Db9>hLrF7eAt}L+u*A*F^mCIcqz!?^U=h>p$9jdhgf2-~PpNvuatx6EvS5 -zslFaDes@`*r|^*fP1lV~`$I{ZE9XkX{4OgPXsifZRRoQlv-mm|H7LtFkETr$Eo)rK7+CRR%0`s*(FS&36zGG5o-9<9EyS>+a2O -zPpw9C^OOfMu34_=3ML}UKTE!5vp9-lvgV6iN%Ih9LPa$A-?C*Sn5#d?OgKH62~96<;;VGuAkcK%`{KcMxwDP(3Ucx_Zfi1tNygEAC`-!O -zN71bJ=10n%=Akcsi|1b7D*IuTmM2koVBO0AByiBIGHV~cI6=zUOq7+Ed7a@i!oSYX -z2e@>hXn0&Pdp7|oB<)=H{w>Q7`?AyB7AnFD10`-!CA%Ktf5So7xxRybPTR9UqjE%E -zu;5X@NfA*s(_n>Zjv)1~{DwVmVqwDr86%)&GD4Kmc -z^_z6w>>X>S8Mm{PgE6|>lQW_gBYPyc+DfgxcJ|C`+}_91d5y1p>fGy--qrh6^DZ1O -zIrYh@{(tgOzXh5wmJD5f(bzU*`(pU~N!ObG;!8=jq8H;Yu1NfL;8XGa=dIM2(|>-k -zZbZ|>j}&2%R-lrE9hI*UyVIW{otp{lDXmY&`J&*sV)LmEl!AV#aqEq_a1_gej2Ag= -zB1Zj6U0$oK7juIPB$a2~cTZhx)JIPs~lAbq|pID`nQBiEx$*JzJ_+rxOHcH5R`t+&$ -zYNJbU>$Iv3Q&ov+T8-kR65hoQyUe5udhbqr5x?^GFxy3W-R}n+Qb$c>t&|+N)D)W3 -zzj$Tme9c*LYw2++ZlYFB?{pciow>oe?U6c3fT3^n!|XH)N|b0Rz0;#Sl`qfMXEx3B -zyu}^Mnzj4%ezXMYmEE5i8d666J`;gFW}cl%B1r0a$6`QTJ}6<@9U_B>pfo^t!9V{~ -z&G4Vp4J7ziY8M{<6;XqK{u``6Ylv&&kWWq;&C1@hSeq4Zb5khwG!eFYyb{ -zI#@2+U)KwGV6Blc;Hn$cgE5C^DBaPYP%G~4iGp>uM -z_^mAYktdF%ciZys-jRLc-}pt-z0(il&*Rh|Ecf(#n+#{n*lZO%!yH~%7E}4Hpse}9 -zo~fVZS(V!J_pjyba`Stvu-y4JBg5~^B()&Kc>~>H2xMJKy-(*+m^USVWHF9(1-)7! -zz2B4RI+$a9?o~tbGgC>D|EqCjJHJSoD@c3KjW^rhl0qluho_v>(U0Hr-Xkla4-M1! -zzv=o>kw|7e?%1qPEinrD+O`8JTnb0MG>9m&aTA>0)WuSpJBXh8zyA{eFQq!S&nmS; -zX;9OWg{Z({+jcfYlkRAnR=NOtkzem4v>x?;X7{NP#nFNpzq1TfPF;k~uWC?wDwI5N -zPHm;Ra37*3mT-mfo5+#_b{&A*F3;5d4mA!V#5y`uq@3z?lz`kzNnvItvUnu*#;hkd -zWBW%b94%YiN&W9@#<-!^MWxonQ4x>Mf%8=#;*`8*RMko^W0TP@HH+-2Y7F^e8_i1l -z7O(!d&{Ytj^8CowQY+E&b?~yKGiu7*w}5_y@a<&L+Mmhfs_bH}Fg>-ui;WIAxRd5HT}=?WFc%uQH0+_sW;pJ20J~FnO^#QYBTOaei<$pd -zc&_#8mN37-FL{;S9N-qg(Em$@S{Ia>S -z`|487Sj{OMt+C5_uB2@}KK|a9gQR(5HRaz+vq#>o$0LI!5wer)>N1%e+~&5RvNN=D -zBz};4XqCHWT|lRr560sEuPXEVr4TCV{Qp*&$IMeuXuw0rZ|7c^1Jju8(WClWM~@2V -zUvsjywFjG6G%VzFyHo3_Eh<4y=aaZp60#n!Z4J&iZD>-kgD3s-daa1$0ac!Y@6BRK -zUtJw}44V$+);pYzpTRq^&cTf%X1<3WsywWpX0nHI@3jn%Z2cvaq~!9Oayeq=)+^_? -z8HPm{KIeyJ_#N(ZS04Q-L#aFy(;cm~-MnMsf=ql^Xnb^}g3+!GwMTYOQBqU9bPLZ* -z;3Yo$Yc`gf?fTFm%lvz2^}4H3S}K!JoT~j9B_FSTfF=rFaKsa!$HxDk-u3#Vji> -zhu^c4ijzVF>k#(}VYl9*(PGP&_pQ$Mn5j~d>jxaQ&S({$s}s{o4>u4td7YGR$wWYM -zAHt<2Z0)ZV=})Yd2@m9i5AT4hzoT-}x&$@(*aycw)#|vkVuf1|Xpyu!Pj}_aw|{l` -z^dt=b)?7yFQh*|2%?2 -zOLQeIv&U05;VY-=;-Lo1YSFu+xA>Fl2aXF*Yk8X183Y6{d9=SwDhrz`3V$#?JL}il -zHEw>B9pS}ebvuP@hyJ>~PRe{Ih)0A^vO>#2Ns`CpTRJ;ebIZGL2I%-+9yb(wwiLk2 -z$41wTOp?@Ih!0-~!mX$xVzi5VZ1~ipBtbFny3L3hAtJP#xG`RS=jiCD%J7&6-C)4w -zw|-as%I4Qn75uc1?}U~gB(462C+|yTzFi=QFfx>C*9C{i8FelAAk=29Q^$X7Vc%9| -zR~~l{Mdu(F`4Y7{r{kVK2C@*&)wE7i$S1$7Z1qk3?GOJ*$Xg;-HzRy1B0O$u{a=JS -z#&>G*M@?y2uOpbib9L$-Chd*oV?oPLlla4?hJf_XB(9{5ccBd55v};BhClGdsi~NxVR+dpeTrhvkE3bA>moKb_42xTiX$Zc -z@Ot=4QBwQ>kf?9UJW~oTc4ioKacVe@GUvB?g~!Q3Rr$t&n>0Q=RS&js$EmqXf5l)T -zh(?}!ki;K3b@uJi=_n|Zvo(ChpzaEMLyIg=|$%nYi5%!m#% -z^i2RNpLxbd>`lqbbAK(A!ok!r{Rv9i`?d}oNsz}=1Ayn-!+kXk8W=yp?-m{&8Xfg( -zg$G`RvNk8eSB})J$H>>HA>4i)=2mtM=63%$QWS%^kq6u>zCueobp>G`;aFX#tDXYU -zkNG)wuTqr77|xhRzl^J*qiHHTfK6U -z$~gJ$k?*+hR%^U-9#@pbdTJ#QEtT=~oNeL0hoG9FfqZQ5a$OG)dXrW>JG>;mO=w{E -zGd_Yf8F?I&kM%XETl;|HR+;?R#khwxG;W>^G+U;XZzf}IV_Pui@YMAWI|L45Gd(eRaHb+Njk>kta{yik_{ -z6K~qd$E*$I9VDWrGX5~J(P~Fvx0|_R`3M{5tcEtJ2&Zh9iMeh3Dq3~jA^ -zLG4_AR?kFJU;5};096ljlH#v<0@u#bWa(Jv0T$dd;S -zik(+sLa6rvk -zQ<6Qtus5|5XMQp^qT#TVlyl9%O#*Cw+W>PchWy|@>QF24eh=V~vCH@HLkdcP34$nJ -z$H{3_I6VIZ@I`PiF*BctC{hm2p6G}sa*iK;yv5Cv9c)E*lKD70qMD!UojID~Wjbwfm`|?j`X*p2jn!Z7BJ=l~2^gzTC8i53&=ki9S@YLh5V;aKCyJ3n5 -z36XGIJiBoesd1-H3j&(;pwx*0pMX=tj^kphRQx|*^k4Oaxtp&i(>{9C!rYzJst0g{ -zoj95j=Gof!Gcb`myK6gK3PIw9Ju^BVk`T@BobW}&an*isTi -z$h0L3SgjmvF`LdRGotMXM3c7xexyVANdbnSF*Y)-4V*(7j+DyG?gF)o&+Z=JV9c8* -zTet2t{GmloN@}dI{`RCamlvq=@3ZjF!SJ)~|>VmOdxJ88_ -zh>Mj(;UFbI0q>iudUaPZLiz&Oju6YMpG5Psk>XY7Xr#lpi27#nNqHbp(A;)dE)vgg -zsU`^E2~{*2?P++fmi!Q?1zHBS@8&1%TXRo5m34CL->*hB-@a|z9E(VhI%DV@&v~FN3z!&aN8;{FtW;g;$ex>rk&foc0yBoZM -zY-8$kwMS)tm5y{dq+6ZMfUY%9iTWRCG)h^Ljqnpp1})uzXCtn5sQR6Awfpm3zV7m| -zVk21GJy=}l7GRp*t=Qb6Vn)?FF#03S;SRWc*LHpLL0t3({a@qVm3|lMlv|2(TSUG46-D -zy{~w1-}L(Lu`n&Lk`nI1EBwyY`D)dhvi{PY@tIpd)Wd?gJ^FssD=7kapH?$VfO=tK%_=}^?+Yx<@H?)UJm$5IuU!N&86saD8cRTu)p6T%ibM -zd|`E>>8{n;Z+(+(yAUOT@k%=-C|_1M-Dt8`gQ~szT1A9n{4RWh^Pf*adfV=fKi9U# -zH=N`BA$@|3s5FN2e8vkZnGMwtL^TP-NY355OW79NIxTI?V1U3HZ4R=&=+&WK2}B>R -z!DGzGctmkv5ZUvtML$%~_^~gqtb -zV%zEyIC1M3E7XD&4y496LZ<{Z!b8(t_)~5Zf4_zTC6Btz10D-6g_7JY@&%HR@cMiWX}5Gth*qE!hmEu5Xl -z$`kebHHZHlCm^~k<3T&RoQ>qEAH(iih;jtY4Nv353xRdULcbhoTZiHr -z+uMhy*b%KB3fm@Ny>DD^zizryZh_T@g{rPmQ;##eE8GZUUG2Dg2XVj=P&jP)FFf~X -zq?OOhsiDWWs8(lr`1#LB^Gw$dF;QsFP*M!xxI!y`wY2Ohmr5~GnXTg5=syKLM+TNh -z{ZyiuoDWk@Luot}5|HiV$O@E_#I}~mj`0eP8-56%AN!_?$-Hbs^L_D6IZdX=L0X@Z -zk(QoukHhqK5AbMLZ~

WE=CZMFV9Pi3@g+&e+unrq=>hCNu -z({I%mV~v!=#Kct|wt&^5SU>FOno?i@I=yZe9xJ!MF`ztG_usy%Iw-PF5}?2fSB{Hr -zSvYIk%R}mcra&h^>S>!W{K3)$Y@zFt-?82jnqMpc4n4I#5UI}ja#3h2I496{aOeepH?srx9(%(viU -zSLSdF8))^fFa^#K4Zp7=ItZJB04#)hc8>;CU-XjKbf33!8U0;luO&-Bxx6!-DpB^O;%DFeo_*Aclc#}l%0FV+XPu)klFgs6gyQ8oWGs1yE|N(8uq -z2Vm8PB+9E|jT3v~HL1sA`2u(Nmv@zC8UKrTY|8!ER1&yCmofPpCnfQx&X -zNL%qxTnUd|1|rN)_9;y|A*%a-hj8p|9npN&J@7k~*96`;VI<|zd -zFqv>uVSKgpcHB(G#Vj+)RnwgAnCpEt^B~}8Rt!ph*djIU78uZ142lxEv -z%k)ZPqplI8tnk%jAFKeh)q8T-m&tLDrGsuWAXbboV`4fp;T}m~OSWJ0$!B7tZb53Q -z0h{?7q2&c;Ufk0r)0~=H;)%$77iJ02ZrM3HHbRL^pB*@;zN?A}7uSiuS_gUARJemH -zl;?Hr?ZMPAvsq -zcdYhvBHGf^@zzQfr)=Ns>wUUsR+;0YqhHQ1hx#pbvn)(jR#w{iu0p2;vmfzbk@-Ot -z(fX%Or7b^Fk0k1Unb|k{%w=Wi#`1*ZYIf;#x|6N9ciYTlaK*(<{-n)wxk(|IuI2_y -z{t$G^Bc9OF@pf}@nc7ekYU}7Y(>lb2J0vI9zhc&_{Mm^EX!0`V=~EER!sSx-wZy8v -zNfu9*lKHxZh9p7F2bZCg<~@xUxi9=TkFwEpsA3{Ec*V!ZgnV0TR;md|3aACP^-qx1 -zCKAliwbA;;ya{1op_dk`3xJ6mP8?HUkUv@yBR@S*qlqB;w&ah0)z;vHIHL^H6Bt#2 -zK+&OUWIYj%pw66kDkMbn7J$*Ha!v`)tL$wI#ZJi}VZ>tYBQMS%wK4`<_TB@lv-=Pk -z(fuAvFu!zd+FCCyvwweA(Cp1i2hw2bI_fBG!pme2nUblaL9OHr`n2D+cj(14+ZcJT -znKzxL{D_NTjmk+p(K%EsLTw_`pm`c3zuDIk@}0YGb?Q!lFn^>*#T8|224k*;F{d-4 -zA;|40HC~VkMiCWC7wW2!!zwv~K3#<&{;Jrt-*)v8f7I1I$H-T4Z|na~)K4|?)ms>I -zVdsIHzz}%sAAmT2hKSCPm9)>S^chBh%g)Zu;v7N$9IssY)`A_u -z1Rgv(kD2hIVxh>bgSnUkch1CQ`cJUrAzqw@rslF6=3!hsfd2>jV4-AU^t6fEMD>${ -zn8gvzaOcMEUnCGgm)ZnFz3{KnCn{~yf3HhxYN~!PvkM4Ts^;WPhBAiHYmqFCr|Lm{n?d?^` -z#JHBS2cyE+vp+gWMT44~dk9GUh^QZkGT3p}z`F`?&QxqL8BJZYpP~O!56}S~42=ly -zV{~{agkMUGZDIzk0V)6?KBGP0Zb&sACnc1WTz~@PvGDzDhQS -zpf?*3fdzE?XC4BgYV13ktp-EWy$(|b7K6?RLb37M@6sn?Rs1?aN%YfXnhwk)ROpwI -zW41VCwGfD)nx=J~+e^VG(KsF{{uAm7zXHF_oq0@~0Hs;epve2HnHe`>jtwTGwUJf> -zZ3WjcePtPNqs{0nctc?Dg1!Pu)~dhwnZ9q|KELx$B9#3cBplUT09&cqD{kDkvysUx -z+!7ul_~N-g!B?D|&KMd-3|B%;;u_A{4BTsgro=>pkl)81gzgbhbcFxg#T47dHiTX# -z|0D_o5$Q^5R59!&8ZUk_o18nh@(4gPGWPiR$?F8@5V)O`Kqcx|Tq1ZRBq#UOf~f$- -z$HBsw+k&y-wa^gjl=S>M>00$u6m58%bkO3!OP -z;N1m`@k$J+XeEn(rtA{~YeN`c$f$u_t?TGe7Q{Dr#*d#P$a&9Yf-FeI%tn0>?%=qT -zaEEB*y?_6HDF;&xfO;`jarz$0*`gO-;>^*|-kuKZ{4yu!H0XRcl>uQqq4LL%A6{9; -z_Qzof2J^FG>jXiS_+SjnemR*$tI^6nm9L(_t$Pb9C#N<7*+Btq=i%{`NV%0GFlY4g -zV=c)XED1I0t<&KE0#pMBuf)L)GhsW-3Ph?0Dbmo<@zz+}+N*F0Oh!zVFFd(w*ZAg1 -zA#Xxj+Si$OV5SfI!B=z>=W31CPF_i@8!DH&Z~IiJWO1ZO4bhS@_Cu~vcv@%Y&YfT- -z9|Hrt|9L#&y9iIU2!2ZwY$D;P7GX}aC@hfppPxg!dy(+cm8HZW(&{h=&e{@+jK5>J -zQ5X^PE@m~CKx3hJa5cevg^&G&7eUTrEFt`>5DE75C+w*S2)qtBQGVfrwQ~DU7^dpQ -zyZybk?a-{FGZ$mWa8;4}3}M$K1!-Vvy3lF3|2&1s_ODgA(r<8byol&!&@Digbz);< -z84l4gNp&jp(bNe>b=7@m9)PX_x9GdExSNxm-4H;7rK0BJi=!p8al1`dshy0uStm;4 -zo0o+ej+4xx*@3o5#1%(JYY{{;zY89rwKPvV5UtdDcKQebJ!62W(a9GHfuR5O!fWGI -zMuQ>}puv>d;_N7>!-LrBPC~1}P&nmIa75&Rmmr%2%wk>_aN^p@KWeld3X!R^aB4v< -zbf{v~i57%|a9pwkv>qrkGI))Pe|yj>*ov?{hY2X3Cm7Ix;^)%%QZJp=L;EAGz$tpOg_Q6dj*KM3?hFnEgmTZS(2KhDi1HBn50G%$;Piv?SsJ=T -zn7fOeL)srQ1aew}2=Cg#h{2WsIQFyuEx~&?Pe=!(6}4eGOehn9bb}^R>lj-I9u?5W -z^ZUrhFg0Y}r4Fcg+xKCX;Q}9Th;9u1`}fG|ti0>sqndaXsFSugzSi#2CAF`Y3=$s} -zsiYSC%dVPQnyei%j9+*pH1MzGool?=emsb={FQl`gl)J()(5tmyrwg&!#2!74fPQR -zTif{;?`&${=3Q?)bl|{qFdtHznCW6mRj@I}l!_+^y4d9McRx1i-)e&?df^BylRTpI -z2}7HjXXBqH?J%qzI%qk8|LS$_+&NRHOCr=-Q+}!)CNL3~@qYZNB7f7vRoRMLaaa?S -zyJV`K9%cnYcTicd3QIs_bh3^OF*&cpBdcD66cG0ayIBrwK_0tK$OjN25Um4chqayr -zFE9_kw19XS%w{a)8;SrS6UR8~G%U$lh@)Wl6P?nN1B;PXCtB}C1!qbLNcj=Lj+~Ia -zH39M}V_sd -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 -znQK$Zr?%I7L1UjeoOR(_fnFQ^(& -zSz&=rY(>E&b3Y0f0 -z){Hfn0!|G5ax}nIad2?RbxQ1eT!n)arWdV_MJIkLWlhwno -z@X2nKbeFr{d;fD~BF|I<{*QL?gaiFK#MtK2C`4x}cRI&&WZ;=xhpX -zmQ-)s4)(~V?*yq6hR_DB^ckSm*w(G+!E9Iq%5RWqkAO>ES5=(j*S4nvv(BMOSiLKful -zieTa{fU!%#fJ9ikiru!)*KzldS=7|kROXuis=oZXZZzT}zB+cRhRRpmn%UbTCyk+APH&gz*79P{h?y7YW@Mp-L{Gd)i -z9+8@UBs^mGs387mXt)Gv84zoMjEf&Xbf|wAu+Br6h@fq}Q2j`NS%nF~^YWrT@U30y -zs)?mML-uf8kmmUX%?rVygOfctoYy&{M(~*Uy4!Vmx@j*@h}aVy4meN;|6VK5+i^Fm -zQ;N0q`jXNVu9^S%LT3GKnhrx@$vxkO;|RL*yS3Hk{NR~k!ykE_z9taD)b%SoJ8Mt@ -zjZp#Khhqs(iDE66Gv9W1_@LKjHELPZ`@K|67veji7LCUhfc+xM11f%EI -z$zbTaeWz-z9wR-$_*y~R>cfVnFFJ^O{$7#-ycqJT2{~)SH)a{X>0)R*5)MM`Up(j#$ljIhM8>aIN4O -zx8zyOa=&ts1jaG_P95<_W1~p9)Fn&{J_2W~UQZ?cbw+6ngPo(Qe01x+L$Xqf`tH>} -z;pNPvr!YM;Ii+pV53pl{&M>rX8bn6H>Ftp}eoEUJY3iEn!`J0J$8b_VFqx7C_(>D1gQ-$d_| -zb+cOM;1Mf^5>Z~3I6p3~pZ7Z@&Nr3hgM=F#T&1V##=e?gHe3E>cHu|-DkN?-F0Fu@ -zQIdc;mHCy;&Cytt7ej~uOlr6-)Y-xoz-<{F+|w!S@U7>XnX9LOV=gpgWYeV5EYR=>?G{Ea{1ghp(6!U(KmP -zj+1cIc`OY9z0-hXzY@EDSlkQc2SIcQV9@u_7t6ogLPl1$)e~S7p6%OzVt#7ngUS4T -zdE!HlnfbjTU?fcieifv^4rqY3f^LgqylhQA_u7a!STayQ9a^fws(X^x -zvY#k863Pq$S|QX42Xn@UV4UZ;6Ff-NjKvq6_klQYRsbuDiJ6TNO`+^0pz2`%b6vlr -zzsKx=S?_!daUXX2+Vj#c6h(rFKv&5Bg*uV%Nj}`aO!4Dzq^|j3;5H=s(B6<~5K#z1 -z6bb`rVc%9ke0WRKo>wI}Vkya%W;3l3Q9y4Rf -ze92$~O3(yR-yy5Gu41YN!%v`SELTVCWYZYf8WalnItLBrlOL%}r!wkXBzE -z4hz7)7_|umEXG8>11qq_c!$#}gCQ3HvO&rW7!VC&PK0q}GVEB9G6ul+LxL7mc`%UU -z&E1I;%90YG?`OP@cK4K6GSFYfSBLGHfx -zIB(!NasE6fxGE>$D)9b*)`u4fbDwrAC+2l{9*1Zqkj|C=%zXs^nfTC2*+yK0`n_y* -zv1~OIZd66@?OdwDrp{$J5Cb3`-owg*25Tq}*lgF5ZDn{6_YYt|Iu!DNk9p);au-aj -zO1MOoKy6~2eClE7EPAfsTC$`d1y+Ua9`s5kQyYZINO4U8SD%D0G6ZQ|%w#kU|f%*^7!b{Xv0Nt3#tb|M_oRN)|>zlG?T -zp1boMJ7GS~Cjr@9^ELqPfEKE1kga6|fizg?#jI$d?{bI4RZJne0VIGF?g#uuHQkL? -zXB+oI-+PG7#;Ib9LcKrj$<#B}jNe0W6^q`>@frcJwY;<>&k2%8k|FicWOXf;WZ`oK -zB4+Scr(NL6J&W^Q2lj~(b2*7JF^XBb&THBrlLmcMpO1_rK~(MXBCx` -z3yl6>@Z9*AVutPwhxPvqy`mYvO`xfvy{4S?Y!{ngOJ4%EU?4{I+={l-)4|nE(wxUAg2h> -zt^l^324at~tSvgn+R-@zq<}9VzBxEFB#0qlbUDV$=$S1V(4Cj02O$wVzDJT<U#(*(EWKBFlZjky~u*PB%Ij}j9RSM!8Oq|~f?4S3N%ppSz(kjCJMj>)f -zQ(cqB640$W8;a#5ExeP4;QW(=Hel9`%*C9@$pxO-spz2(h%{z5aIN`v&IQ`QeHqx@ -z7oA;r^CJv)K${^V#}M<_7ICp+M{>=t6*%@ykdpIjvZ~CN;mFNbZ2R*DgSwg7c=Zhp -z>)#hKHJqEuybMk3oht9DA#vi`M(x4^*=No~fj=AmH3?EM|9qr6h9XGMtNU=9Ih9P2 -z=E<3stIC#!*nM8nDH2XI7Q%1gR)U0-|8BmZF#(X`pnirR -zj~Ox&u!a4%`(vVD3oI|r0^$<*-^~<6E7t}5x~>7x(%Hz<*MSKD -zz`;@gAXd=Zj?;#uxqq#BdgC76V)#>@zK^+7r)&ux{zPgEnZdKlncnjgkUUYWK-~%G -z(RGGJ5<4^6sj?LZNX~FyUpeu|9x}3qypqFdvm2IGA-fahUp_>lNuQ`yqt;=lQpq)d -zEiVjBQRw^Dm|YX3d}D^09wGmwp+9CTtX)Szb2>SYry)O22HxN{^{_A^nP0qki%6ve -z!(}dW37vWuPmE%3L1_RAhMB8r1qEkqYU9$qCZ5*zL4f=@XgdI^j|n=oLG#RMEPk9E -zWm@OY!o4L(4G4d77LKaz#f#4qFVk^wv26Z&{9;?Dg3`A99oXFn$T$MU7IO&D)-^Z2 -zsg}^3X>l8i_5#EGyC{NgL1HC*=8R#dA<^WwKH=ftAfoeE;V4LRCgT$rSuKcu9eSnD -zx)MB~G4qz-3P_+u4M!M1#M8jwD?8M|vKF9!SF5bB4}Yrgb6H&zC}_B5awS{*HHQ16 -zQP8_R?(1IWN_AjK!VsFb!NU~=liCwv;=cXwEKSHrY;Bit20S>(o^w#bj5ReZKJTr; -zh^hTA7J>-XpznYE{Mpq?9K)iiJRuk!AbNCdN-v9wTJsC-v{W-`K$ivM19*V3gES%-w*FUas7xa3>Pn+AhK_4Q8=+} -z=gw(BAqLY@dEzz*kZ^Pr4AzdqUMc>d4zn@s)gelyNW#4>p3qjB{~H0>+nBozH;s6W -zMhQ*BV9}zb7a&DIft21yXD+xtj`JMc0|IXQ-Tl*T|9B^Lb#%a&s0=OXyE^n)k--RQ3h -z>7L<(8Ox7q`=G$re41WWd*KDRbO7K^25>uT`Q`o**hvovYr==d3P;-j6fPKiF)=ar -z81+LQJSg_Km$g7YOsQbk}2$K -z782aEe0d-AE@rf+j^gQ4wP5(rs)_o;BM{#vfUZ9eu!JYvs!CNy8Y%LXx&H#Ub%D+s-8(!{m^@O`g;`^l6e -zkTu^qaMRp(O++>u@nC>Z2AKxIEKTgR)>Ww?zg^g`(dA?N@em{c?-T>_67{jT&)7}| -zgTU>SCc>B{A%A6I$UzhG`td&b#;%Z|-!(;%a%ac@wCNzLCB~$CN%Xrr9HXZJ?bD$C -zi`)lSN-Ydj~tWl2>}uQpkCGd^UE&e5_V8r0_u$K|>Ak?1Ya -zyF9v465U|52Z=UH5S?hzMRW#vO%7@R%wp67eN?|shsowNS%+q3PN -zz4lsnTi1QvYd1W=J)jXt+&TdI{u>zs@qGkr0YDkgx(knvZa93p`#bH-^lN(&9SB}p -zS~6S%;M(I_3!tDN&FN$%U(bWf7C^e=aSZ65vh4hS{rAJV@5y>wl22!H^Qlv=B2@49@OV`&j6fBnr+02$~24}Y*n8U{d8fJz8t -zbIvb+4NRjB0Pyank9^d;f|JHkuPy^<@mQ_kj -z3_b89Sfd`uT38z<0U3Va?}heC{}rRj>2{dbP?n_hneR`5KfN^Vk}nA&?t=BJ0bu9fXacDG&zoUl -zj$=P3&Q#hDb5Zk^8Vr`79xZHvUj2@81Mz@V0t}{c4xc-;j@V|2yO)1HFQf|u;CN~? -zv9EnV!$Ei&2&BmRfg4owQg4v)H?|)L0RUxB{r#OMCvi(lgMcAOXYG9A3oI?O1CM{8 -zZ4_AA0YT*lK)?&bKgEgxW#ZRa=o-xm6%IHMnmgE; -zu24_&ldwD#0Cq|^Hk%-L%CQCj)RrJR)&U?bnZerW2ka>TBwc_OxJdTrYNL*D-I-V6 -z$Eg_VS;fmVkMb>n9`$6fJ{|Zy=H7b1m|r=o{DR|3Q3Fh8DGMl>u}&?R#T$)|`*})G -z>)8LrMge649unZi4X<6)YSEnuO##V7fRd@UkQ#HP&D^~o_RGO8*l_I -z3@LAYx$`JNCl_}um^`9E9ng3C3gr9vP6DY>b(&`eJ{UKF1XR(0h77 -zSA6L>GBrLY`3o4uSZl+*uZ%4}x3m_5Z-FizSN8+7^}7lHro`5M|JvKJqvqlB4`^8Z -z){krneY10tc&X`tti|+V2U0QGL0JqvLm$F&CRWY0o%5S8jiRFDY}W=)$NU>mEg -zH6Qvf532{xzDQ1FiJ8mr;(=1$`jyTtXck#voQ -z1QCb$w9vVNmhwY(FCu(e#U?Io=ae!nr<2F*Y+>mQt~04eja)mR7P|3R=0Cx^tO}Ga -zG~B#Ohw^^-`oaV;Bx(lPk9Zl`mudWCaoH=9ljg%+2RwpTEgtO>b^Sa9pKRTyzeioS(-=K+GZHYRp{YAO3`6{tA27}Z@|)j$W}T4uVYmP -zZLt)9vP&csiY^x^r<^+G -z8@w!sRZ^Z}phsydrp^&qCS8){=hv4)n+F-dl -zi{k;UzOd${`A+{J)fXwRo{T8yVHEf7OG;=E6 -zNFuNE7KZVMaP-+WF2m>v74?2jYlr?*@eb#MZ=t#%ugDF=eFt;h?9M-?Iho?yplq;e -zbT2U%_Pn&XLxHwh>Pk)Rv)cpbl>o2)y4Vf@~KqwswJP*?dAoZp>K{} -zTVXnPmP~%w`~93zNO>@udcGX3wM%o0S-cC8tfS7fSd-Jh1xx~agOx!AN!ieHrfTDb -zC~W0KhaeL>Av$WOxa`0>EsQiSz`Pc9C{M9-Dw_>I>oEOoW0nrB!GHD@Zh$SZ$J!90 -zOl#53MpY4>GJj|NPdRo`TT!a#97bz};xj#z&CI3rhSVCQ)?R7$N;>_h_RcSC&qDvC -zoQO|o*3MQr`0Hwlc`^>D=YP_??z{nrz>)1-~)g+PP|<+Xv;MXYyeqUT? -zVpqSG?987f_(;<=dbA0VV4_QssK*xB>#o(a5i;i3*`IM4=1Un8n^NCB7nZH#K^dbu -z-24#n5?=&eYhV@u6x@=*9Gy${0NLm2jpSE>-k)Zx`lQG)0-HMXcy&z -zS_!YAkixmvj8r{>X7|H{t$40Y|AdPlpm4K|7pqSdG~(^YH_vxz)OEtYqz}4zGH#Vw -za?T**i6`(mKI(z-g3@Ww)xBq`mcB -zdhFffuoa#rl2?iiNGTO7{slLeB8VLUQ@!+$%sVELqFNGnucmY^`(e8{dmSO1obtg4 -zj%UOGjPKSRuow0e7pzHHZ?oLv8YiJbd@eeXZ{M5Ec#2ha`$9O6Uh~DPvH~$+1N|C~ -zHdjSjrPo&i<3KnuAUFUfq2`2?={HD^Ty~FQNDR89$>CAqiw^vpi6^hVdUD1BdqoiE -znwpOQyVV>A+MP*2YvW%1@$SX*? -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 -z?ZssH_Qf40VC4Zd+Nmilh -zPcq$Z8)B7aWT5eLT!TQ@SHuOO8EnnBAQ9#}nY$6igCBw5h#*{gX+VyGb5$qKD%!Su -zaPZKdbt#k#VmhABBQ+X}E3nyG7MbNjtrj?x!;M!3?2-)yd)2Bc3QxK)S -zaR=sJK|PywKzE&XhAy!0*p_ei4hQ7=h=0aGqOws*n2zZqXYi%J^oNlb98U5* -zrQpoUX6UMrtqfbj00(3smo;;jJL5gV3xzp2J>6L{!M}ar>*K#VB1LL8Wsg6NZhava -zOdgyv>VS7i3x+V!jNSc>8!T=q-e74o-hAL2;Ca9k63IvU{JN#IBAu+Nd_>sOJ7f2R -zf^#mLL7L3J&s)VCv+>1>(FR_o#o18J{YrfDB-d~5MNut%%1(T9ln{``Oa1PPN+tU! -z6VE&qyv43P9o&WNH)gl|KN2vyg#L+uahMNryc_x}SoQ7&>)>%%w?L7q#_zo6shMDiEw#X7NgL|Z$ibK2l7Hn!qIuSzKa+{D`hKckH{6l -zZ(6;MDCc>Ga;w=<)b&|pf?IPic37vKgEA_YGnu!Ibc?o%O9Z*ad!3)gn`)azMSUXf -zBD5)wndX_Y#C@<$aMb?O#wd-Y0Jj8ev>`3F+#K;7DN06_FKS~y8tJg -zg-S&Nx(z&kn$^GJ8Z{~}2{^%U|2Lg&e9i>_?56(baI8p$_t{d~-^`cg6uJI(`Wd@)?8^b!y&n+@g=HEnE5bgx9#g5qhTAF1i -z3MH2F@Q@@1gMk7&fOWp&&0xU9fGRlAxy2Y#{OgxWO -z-4O0n>J-8LL|Ca)nmKmo7%Z*SoZ4dHS#=7X;|0UJ?k!Yt7~g7(C-~3*dA7V -z2mI`OfXB1zyAIc6KOQg@{eKJ7%yc1Ech)!sB!6gn+^{p#9TV|NgPIJAu?|2DlbY3NW^p<=lh+7Apl1 -zh=jLSfHyrDG?dQL1+I1co_IifsZ$HIe>;GHvNMGF-T->bs80Qz^Ol`3ZF8{&=#&eg>lG{lM~!-823IQQTB -z^LG!aI|>1un6xUh&ur8|iUY~%TV8%bJ!!!5@5(#YwoREPB>x6g^Q@kR?!@~&`uf4= -z9dIBT9mgoM+kW$wb`Rqo*#}}(>Li%~2Tx=dr6&mGTpR1$MOe}DrWlcxYrFr^NVDFs -z{VyYJGTUfIoV9p)SEN&g%YZxu!mk8PPbDmovi7Fo)=+;r85P(U5n0_h_=nKe#t#vG -zq7mQ`ShP;bhJX>-Oh56%T*LT&ZgI0)G*UP|a;8fC6e5yCKU&bjVLo*_Exk*AkXD-a-7Zb3TNbMF?D-lJ3yYNq|?xQOuGDKkXcbzY}DXYyIH*?tqY7o)GBs5}ZU60RJCs#3y%8FCr4Jy3(ZK-Cve7@r -zw+_Pqd^XUuU!5(*bbUC8(fhw^LiM*he!v&xLfiy~@eh#T42!=z^q&W!RC>e4b~4q2 -z@apj0cz`&J!^a+3omsP_?50$G^y -zi@%f$y9#^+>Cr`kjumf!?%2=+szUdkHZZgES`eBH3&bXpTBl1Z7%b+=J59CeZv5tp -z`-^r_<9D)NZST)u>@PR6&9gO}P;X=X%NrGF% -zO>~#Rgu5hIw)U~M1h?grdzI0fzNnLW!Zqu&Ge`f(<;3oz$F$D1pGwxc*?qF1(*rSs -z{PI=HE-F#2a=qzsf5VY1p|A0r^y;`V5Llnuk^*zKTBK$bcPS2jH8*|!tc9tA!J$>5 -zSl5S<->;%X<@tum>cMkeY(uBzEz~nfGMce;f&0tpSwXVz4;PFgHSJ0jsyl7e!TCp_ -z`g_I!Zo=q=$V%WsfTF!<)Y8YK_fL-JZx8hMLFJj-M#npffU?<~F1OWm-U-2-{M#LJ -zPzN6{Sk#c_e;n}9zWGPVfv^M)^=X0}SHFjwC3##A{0>yQ0sQ4*R{zzY(h`tW7=Se7 -z-T^u~7Q4s!xJwDpq5%P_$KI-hDZ2xjK@DAjmKtjy&#kwy6Fz8SAo%0olD}1MD|Y -z-z4<=(F4T>ABUL%R9OB`XQ(zA30>U|Tz6VBt+L&p7%dDL?TAE^L4n{ -zkt@eN28JAcU74BcKY(Yhqs~Yh&mB}~bPNY0XzO@JKz7W^0@MpC<9^Rc;8UY`UZ;yP -z%EHv=p|$}o=k>v!o72Z8;h#qCzlIR-rJ|NT^adyaM0_>raL*(EXnhz4G0@v{-^OiN$vE1Gw1(##t8&4Z=?z1 -zp8#neg&nrVmWnb;XAMVXN>DO8`%HU_);nWN;{7P8aZ!E;9_*sEw?C^B5;$g=UFu+8 -z^sIXqx8pN?uTHqLNdeS3lWUyDKSiI8Mto4IA^ue)t#4=`5HZJdUG#{(RIkK!G-CNE -zmQ$BE&QHg*lHNkJc)6{<%%zB1IZ-9gwdRAI^=emue*B={oNl>NamOu7opSG9eF%J3 -zmIuIVBZ_3jI_+BS=zhr4dVzF(R{T_1tGHFaSciGy0CiKhd+5ieJTFC$hFTTScG`2d -zM~36~+Dvp!ra8~5_2;Ryd%(ghZ!niE@XSn@*wR7bM$EXP#WMPkaHj#CKGb`ybB?nV -zGvS~_HGT?5wA9s+etp}rD5s0sGKYVVAS2zU)aPfIMgI?J)c@ect0G-_{$gZs|BQu9 -ze(z+sp$bxpe@zS+pIc~^5E}3so*wBF?-Z|@U_KjizJI#e+FN|$(tg*@{Tant7$rV` -zM)A4+dlw{wo&;%!s{2`w@R%_S3J#3{2ade&0}6 -z<^6G$7kLWuP1rS!KjCg0!ms7A-1NIfPww3_$G_jic0B}VeNFBB7*w!{87IL+W$#wf -zeuJZ{-hgYaGDDcSjX7YqeX+Lt?OjxG7cdvuiu}TjEb1TZ-ZH9bU{6)KZm5JU`F7B+ -zTD^K(A^P2aGFIF*!gwj-Jiy&exD%my^+>C9llVaIb&0e@s|(ZZ6IO4@gGNcj_DcX- -z&IV}TKyHA1~y;X@NYMt~SRB_6>{jK9XAZG269&i|dr -z+zIa8PG14XE=>8N)eLi~k-SVS$26|@gm4ncTz&>Q^cDmF2Q>h`1A^)#t+uU(1bJRK -z4WzTAUo{p-;9CTW9BMisu%|(?f}-?4^oP*p;&Tu;R|vQaV4(~6v=CWSj4Cpg+dXD$ -zeTQPY;_p% -z1V~cu_kDI^_r=4{rIt(URgR0_Sng`LVQO=W%5is1TA`uWCzR~8`6x%k6Gl{OGLSb^ -zPm--g=1heJ$G9p`@2$FAlBZU)3GV8YF5^}3dD2~C?g9DJE8C}5xAD)&Rn(;;V90UL -z?O7gAOFuUwLDpCpL`}C-1<=W0(4zY+XPA*3P5>e*`OzsT&jF*k#ajZqUy -zq|ipSp*Nc7*$Cqq2fn^U_wS<%I5DTuvM)J{Xx~*6S7&3F&%lD`#~oO8?FyN#<8}5F -zIgTO@2{|L!?b}qH(85rUz`z; -zCHQGGv_^2%oZjlVt-8Ad-Jm5JajbO8(U;-?TQ*DL<)fZPT6 -z>m|RO6N9PzbtM(_sB64B*9sFJAL*1*AZwk_(V&)_Jkljnd+`F3I1TY_f^=IMgb(}7 -zPQJ5I6n0@DD)VzwwhId{Nu4qf3b2PEFDZ60yj|DiR|b3Rf`M8F;m(3T3TD}>6)=Q9 -zVuci5>?0R~v^1yV%o8Quq3Nk^s_4zFbr&Vwt2@};db)le_C*eJQPTA$JYr9Slqu=M -z&e#!NLBB-ef|-}i4sa8Q@m_jZL*-f-CQz4(I1>ITc+^8`pBrZPiTsO^_52K#$WBxF -z92f_{Ocq+c -zP^}@#n7nSser%y^hfes977+H7qB8@ufpmt5;Do99O%sj0>9_`GIM_E#{yMK&_`U?J -zOWc#oJ_ZaLpu#!>xoRrsTZV6m7@wvExJ>TVzeaRtB@%hexEHI8fA|)xh=6_Q`Cco! -zLAS0quFOGZ6`)R;Es0i9rE$$OVa>`+8>F1?sQYGMK0iLlj94?KLmX5S=J)h8=*My> -z`SrZFMn@NZPA#jGA%)|m_hX91899t)1Q4n4Ujnqev+xh2-MG&~!?lY{#=0Iq0iHS& -z?^w+8@X~AY$`ImBK82L}V=LV|r`)O@=0p@&algU~G_)`g&Y^ -zSyab>@*v|@Ktq@fAx>Y^tgXb8ZZ1AkOAz(G9y5ZJhSo?orTK0-nEUv1RB()jodC4* -zv5Uww1H#7qH?fE**LIB$Cxz_caoQrYDSzpF17>ECrr@jruwnR28_ouDu=AkIAG=mO -z!8k5sRRhT*p}-Z`GVbo_0V`50%we6rJ1r+^{(R2h1J8x6Dej(b2WGtdVsRr(5#aR~ -zH}r_q?3zRTmM@}wd{UtD*j=j*_q6Y$HC)a`ip0}XGWH{Ba~>&V+u4MMLoUNf-Zc%i -zg;RAwWc2hKFny>Nw6i?D#mz4SFi@GmOV+Zl!&-1BwW$u*aCq;G-Yds*)FK~<4>mq) -zz`q0D?NgY7%WE-iR_=USM7qUtztLII`5DP5+OilYB27pxoo?W7Eo;cJRqgBQ>UyXg -z7gxs6o;Vl(t3iX5*gVfM%OvlvUgo%QB=ZANQcI}QdubptP-GSfX5W1X`|E&J_7SkI -zwgr{}ZKtijZ@~Xw$m_ht6Apib_vsq>Tc(cfB6;R_IyYbW`+Z)!gVI$W_A?P>T0qsB -zVYxS<3H&s(4UH(Pqk^#JyiPp}IY#4t@@q{Z!fDigB6~E*>@C39r& -zyc22+GBsm=jj0@s`GRh}!J2yHtFFV^g4<=!udw47%P%<(&@D0$mOj0T)*0^&j}A(0 -zdWKRyU}C;-uD$rqrEa!oJMOc!b4{mkX6>OR2fGA;6I`*ve{ZcJVMdl#P@A~`-`p(f -zitT37Hz)Rw=xrq_wX(bY2VY(A8$+GKv0uJ=5~wY8*mk53vq2%sA$`x_ONyVpx_s+! -zuL<83JxVvqYL{W7Nm{cfxDw2o*=$6WO+GAYMsZ8KDYr`*zMbGK@#qni -zT+&h3+bO3XRyXs)c5`ZrB6f)Qx9FbkPY?e-#@#s;KOrSHc<}>ZR -zIlKYdOHr3n+eeB{JPAb${J@b4iYqjyOC3Z67bia`&i%iT)I%Ze3-^w6W!^Aymx#|L -zB-Teii0-V1FeRpm%;2pvX4JoAlriA*>EX@;8N^u@D#_ZV-~QpWC6QhEWL_t{0COV} -zuxw|6)g$xR%8Daew~eXl-o44n-amf)|FP6}-ehHYNlLC(ySOh2etNX-m@)4AxmKE} -z5W0z+;ZA7S$8wdtW>!Y`JnV>s8FEGj+J7-^iJZR1a3osusdXxv{OOa23x({m*Fmf+ -z=!7@dG&=jjJK$CnHfwbZU_49^zow7ct4<0azw&5q0-rmM36mFw+`YO5)Lxpg<7NMp6>S;wHQ -zAY~&#w+Vtcz#@nJ{f7szdl6IWriaA!={!Y-F0GwTxUxTS(s&{UtT~mMOb>koduroz -zEJD}56sx8&)}+!6^bdutpROfcK0PFAEPqO&3Px<-jc;BPd -zw$a>+ObQ;Q7Ml5EX1uo?b=@|dANxOHcLGhv^s -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 -zvEa`OnaT{BtSgQTTXRS(b3!4$ -zpU$6Qb+9qpIzJvpZ$*S3^ciLk`{p%(VT~-`JB$_9dvnAL*V@$_h*7wB;%6Wn@Gj1G -z=iIo?=w$o~j1+!hylczlx6hv+>y9C#$1E74 -z;`o4V?P@T+5VKko{S3vWhAcHa^*nz%E8x5g*P-d#n#X<5#Jm*|yzy_2aq=jV6o$Wy -z+!>ImKUX>3ZAAc0(T(tNAX=P2aj^`rek%N4$FZr37*1@9CEZ(JB -z4}Lp^h#!BV95eCZv*(@<&t)YDUz;vUs)JhjIx2>+AWN2W^lv6-OtMtmGNUV|`1O_4 -ziK{C)(bfD>y!53VG((B@)FE4>I~+OUwHUn-ds -zX0LZ-Z`Tc(bE;h~N~4H6axyD}rla$x*-IyC>9?|C5op%1#F?EU+O!;TyjIbGuQzA1 -zD|D$BXQRE7wlL@xcJE-{X%Eg}G|e2$K#znie`Yps_p~zgCU=E0Zrw-g@k= -zFzaVKB%geQ2h$pZxS8~*`w27lHeUEpx+kSgp`U=L{+9L%H+^ka=*7C;mISo~gjBH& -zzq9hYF*3mv$7T7>_Np+d>&WuriuHajB_M}gel$9!C;>A!h0GknB^eh6ynrH>s#ZMv -zQmT>0TB)AqFFw%4X0+6iW!;u@Rgm5M*D#h*?R-6Kc(Iz#X+XA^k$A|_XE~F*6Q=D0 -z`PVpojYKi-)DF#>dlsjBIRng}j?Kgw?l73;j!x>QJ|RD9ES$B=-j`Z?I8O)DO(0-i;3@KjSBGcX>V3h2nt$pFjg8p+7nfuN4pV`{1D21-s^eNRxtxao(}7?F|V6&%X*%p>6k(avNoONAC|v#g-~pmL$B2~#_P -zZ)qNG$8K=j(~|J>#X&R>sR`m!?7P_aa+9B;a!13(IcLMT=Za&`$m^n^h3!J-`{*}T -z#M~q^^hSY%4nm1~l18`Jp1UzJro!OeNAIbhX@Ny63_j|zy%W6|LHpkDfiMbGw_Vuq -zxfXF(H*}*axXjVKQ5vZ46FRou7G7GQ2_yGi3eF_t5EcnYgP$=BWEOL-H7rEukP9a- -zOTUZKO<_}X6hkaHHB_{t|9;q43$>md14M3(*_-DZ0M}n0Ii65|Bt8=z((X(W%Cp4G -z*Y$Ew@*KY|j!#k?(K8*=Cq*a#7B^5l5jxi6OLRs?Vq7@xD=}8RpkBl9_;6s*8zW|; -z8(e1cKHRqvZ~M-+BvHOjZ$p@>c8FEW6T77a=~W_BImC6JYaG_cTM11qEsq(a1>oE# -zGEG$XA^?@G((6XZVS-1jo+Ey^4sRk|&)^@Znx7y?$LLx$%R2H7NgIpU0w5+iSs(20 -zqj#fFaWKQ+O;B%Y-G#k_YMCMS>9mC6FFyHK%I7L)m+;&MBIRMH1>@@(zRyaDM$49j -z<$o5Gj2UyW`vW9?7>JDvS9t{6LJWe_h%O4 -zW6DY8(dE8XB4zhPpt6B^$K}q*R+TPxVnDUT`-E-n^O3Ehwi+iYY{r6()buJAl*t^k -zWMkB#O5|K4B}1ds)NRavX@qSW_`)7h>ZSRdcqEXguRMuTF8wz9HaICMpevJJXsTA) -zIllL?coD@5_8v8yh`JMauC()V)6h`zo~z!Pr8BehkJxD?Q<3973Sw^yB@+WG;5vS+ -z-j4RVqk27vlHU2Z`nk)18{S>Qa0ARN6^?z5g?Z(|>afS5EoX(H>}ONmD}T6fpi@aA -zkYpcdJS;Cq^BTlwq4~s)E*Dt!-{l8vY*Am -zIs!PoZ&gP9up3l7EXY}w!-$R@LgppaT8#yvVGl}qjl_ZtLhgAdVqwAb+m}}c)6b68 -zImC8i=13{6Iw5zEx@qD*UPdIkw*d|>(M=5V3JOE2%%S;TnTf_fL+{{J*3YB0p5yn8 -zE6L;J4N&tUz;z^%L%c|^sO>Qtlj}OOn9eu0QHL^WNF9WE-U#Cx(*_sJy8^p(Wr*wB -zcc}C${(y;Fh#q+b1U=20Fg~%&ZB(o>Jz2CCieTJh#!B?i1UQ*bOuY+B*hMd<4uDkVz)|dyeanVT=J|H`yUzwTT{T$~vFI#B*LXiyTvV -z%;l=L(;drWVUNx)u!MS_h(I3>V=zzNML^I*2{r4H31sfsUU+ke&fE?{zne-UKVbSS -zSOqg#u1P?k>UYV9qd}hFr69Hd=uLlSn5}uUGUA2$y4BDp2V*9Oh&sJX6>=~0xU)P< -zj*&Stu@LflSK-aE)_Y!L(kJH{*?arFNGw&Tt5rN8atwJbL6j$Q|NSC!ll5S%jY_Sz! -z;x9D*O7%Mxu?14yefM1iX4(ZWBN03nj3_nLQP!q(&PNW^^13}g%txA{W|rqV_}6T% -z4eoV(Dy~SsmKdO`lG`py4y;z0UQTrJlo;-;nx{(GR7fVSzn{e$!IaJn&S&&Z7=78S -z@M^9xAbr|-ph)kt&+OYaT~7&5PuuFq^77Vdz0QR+!U%ij%d@@hx)L^llYT39FItgN -z=U#I8uXPj)%P^6(6-&YgmOrJmhSt5-vadUki2S*Vyw352wze{ziBlw!Bgehr+WPes -z62W-P47*i%x$Y=2@m?@qwwo;H|6n~aPO&EVHX5N!M;d6;6Por18FaAa@1SgOFNdop -zhr{&g;)*bI)_TR5Z_a51@ntzu|FshSlX{=FBw|>>E|#dbijd)FsZ}D7d$NlZC+&NB -z#yt5=#3}}HEx_fP--q#=#Cjp8=db8~uo>#*78383j9}D57g^3lxd(s>AN*l)b_$4U -z$hr`_mKS$%f$Px6?eW414&^WM{FS~aAo0BN($Mr1F;F~_ZZXDryHy7X(n0eJZsPIB -zB3``vl?r%D5SIk6$Pi={{fpp0j|WvRt8}v~hM?TQ^JXI+OQ&Fe(D~Lk&>AU?UDa+~ftI~SimyM0kvz|Hw|6BHmpEh?r@$B51cfA>XH#zShG-dOPbw| -ztgHUa!%v+vvl>Dek%(cpHiwS`c}x28q(~rcwGlIcto@}W62X|slMs~~7x|4KES^C3 -z2J$zH4KIyEBR`>DTp`hof9kAKxb_~EL-5JWCMUGAZ4)}!DkbY2%;tG5+4jla9)U9< -zINEF! -z1^}VZo);sqvOAiBM;`oHPVx^b%wFx(EVV7gE2Vi_Kp2$|Zex=AxQgwZ+a`sAQU4^Y -z-vna({A3x+kUXyo$oIS$uLEs290R>m{jUUN!25zM&=qkqJsH0>zl`ckNGUkA6Bcr>E)$v!j%< -z0L3_^+i$3*O!77t|;w#D6A8k4sTIcW#WlTxa35I&DdXVO~ -zXkI#K4d;hn%TDu*M>9}+m^KGflq0~B|3t}p==$p^#e#2&Mbn*rJouaG#jjQthHu=% -zh#7Rym+bCPLTT~($jHN>tyJGOXnWrk1XqLVc`Q!YT^DdkU-+B+&@ki2uRkH^OZU7_ -zdI#Di3gCE2_9d7ILxyh;UD-ceCSrWCY&yhR<9`tDk4mQuPQ>VAx(yiKTI;OKrgt6^ -zg0e}exU6~*2f1nX&tSOM+jNU~Zmdxwc_R -zz&a@M9PclCtEB3hMwiM}KO6q|{!;yf@oUuNg|0-wge|*6G*5+&&!38hjpb~ -zZPb(}eZqa*)A6iiHw%ShIoxR-7*<#0!V{*pqtgkPu4Hg=#lp*iz#VgOq>;35?X4{* -z#<-*}&TM&!x(>oU0#l$ry24>LMtIpQULqdfx_jHcO(MNOb4ps&5%RqF?}aKqDzYON -z1yVdUcZNMd_0~Bn}vy03*Sr(k*g{+;jF -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 -zx_VgWo^~*?sGsrXUCuAfg|v@OWVOQmQrU? -z75pxYYAS;D|EuUV$-8*84)=3k7$@wPbzhil0HmFC+{+F&zhct4`_M{(TMXh1lJUXO -z5bmV_JP)A5KVO?G9wEP=(6l!@2Ef`=Iab_iy8!;dv;A4=GcfgA@q6gucyJW -z>74#sY~i+9ZNV!Y1UBwzo5f8z9-9X}`0&_btV>(Lc!g$ox)}<UWu`=8tX+`R-u1PdK0Fc9yQR*dOugR|V|T_m$UfSs;5;9!U$}|IODxS-sYtL<7IQ -zVDk8thQXl>jAlXQ25>gDI2n%Z34HtETrO{V0^rOimln=xGWDBb)Xm@iO3Y|PMtkC7kyC+&et{$uVb!OLoeBdqd}dn -z__!2}J2PDc%N>9C*_8T@xglCnuV{Ezy!X|Ql%cqqc#EIJ`KP&u#NGt%B2>YcAe=)6|lndvBS@c*VE2|$@M@qcYx4t -znnyiiC8;)GOw^oPO8*{qE^Grfgc{gga;dM#6#Vj$Mv!&SZIm7M=?=ftha4vMO}K$2 -zGp?%l6wS~(bxMYxXI;!Y;GqF<^bgklySQdaL6`I0AAj+ws2LN4>}W@Yv#+|q-);uu -zVwP684E&Pu{|Hq6M*VLU@|%+d8v8HW`THV&j|Kk!7}jvPPw10kaHiv|HJ+R`<%L~*R;ah>}*pe=}h)o1F|xP>ye?%)m_ -z&gi^L*LyUP^KpqL)xN9q$>opdYH4 -z&cZAdYNFvon;b19U*YU*hxu?CZ~ir#?9^;J3|fxLS}7Q{c?so_zF~oX09gz9Wks7n -zm%3m;yFL*9fBf*;LIIlQsm$)%2?}>!S$2h|8iL~mo!L~t5*M6iF7C61uv8F>g-+e7 -zGHV8O8kk1|pCHSIuenz@L4BdsfBVQj+b2-=g$)W8q7SOqwiQx?9gMe{gf^~qxS^z6 -zl&=f4cf|H1Z$O*kN$dvY086O%y;=eI5^{>-)zW}3nzvR!F4-OM^8wH)sQ0cHh^T&Y -z{h@zINyuEB2R=k-AE4$7t%=w&@Yb!1BEfL#^92Jm8Vx|-&?Dvn8^NHcSiztZi~RmS -zL=3}simZm9vP2y{&tt;ba1iPRk3-2L6bsRY2=H%?hmro}fQ{h0wf-3EX*>B%(4i6l -zAKHj>{m-dC5f`ThldKd(R(OIjM}jl?r;Rvxpbv9;lauSxWySgO_%B!$4YPw?~3KlnSFpyxp -zw-9YyRE4g4g@<$9jcQeuwRdd*-l@~W9tlPV7zS<^R};aoDzG_3Y-HLm=$vjNZNUoe -zeMk4Eh#0OYEH1_$QAQX3TCIg8z(WPVRgVi5@qikA=u6+saE+s+1lb~BD*z|W$KKHq -z -zFhEh;ko=t^Eiq?##741*d*_O; -zDsJ7`VDnCdndTuf}~5Lty}FUsNQ%0$i@A -zIqFz$kpd_3QdD`gO9u~Elz@?I0+INk2iDqaB8;Yo$|vs~ezJ}g9m$%DtbFx38_<%= -zVL6GcSU*V~0z68W?7L?qtqL6m8??u0D%Yzj7sW>wXyY>v&G8f1LpCOFfQ)!`QNlN< -zt^ZjEKU`NC{x* - - -+ -+ -+ UTTypeIdentifier -+ org.oasis-open.opendocument.text-master-template -+ UTTypeDescription -+ OpenDocument Text Master Template -+ UTTypeConformsTo -+ -+ public.data -+ public.content -+ -+ UTTypeTagSpecification -+ -+ public.filename-extension -+ -+ otm -+ -+ public.mime-type -+ -+ application/vnd.oasis.opendocument.text-master-template -+ -+ -+ -+ - - - UTTypeIdentifier -@@ -1118,6 +1142,24 @@ - - CFBundleTypeExtensions - -+ otm -+ -+ CFBundleTypeMIMETypes -+ -+ application/vnd.oasis.opendocument.text-master-template -+ -+ CFBundleTypeIconFile -+ oasis-master-template.icns -+ CFBundleTypeName -+ OpenDocument Master Template -+ CFBundleTypeRole -+ Editor -+ LSIsAppleDefaultForType -+ -+ -+ -+ CFBundleTypeExtensions -+ - stc - - CFBundleTypeMIMETypes -@@ -1343,6 +1385,7 @@ - org.oasis-open.opendocument.formula - org.openoffice.text-template - org.oasis-open.opendocument.text-template -+ org.oasis-open.opendocument.text-master-template - org.openoffice.spreadsheet-template - org.oasis-open.opendocument.spreadsheet-template - org.openoffice.presentation-template -diff --git a/sysui/desktop/menus/writer.desktop b/sysui/desktop/menus/writer.desktop -index c4cea12..e22a7b4 100644 ---- a/sysui/desktop/menus/writer.desktop -+++ b/sysui/desktop/menus/writer.desktop -@@ -22,7 +22,7 @@ Icon=writer - Type=Application - Categories=Office;WordProcessor;X-Red-Hat-Base;X-MandrivaLinux-Office-Wordprocessors; - Exec=${UNIXBASISROOTNAME} --writer %%FILE%% --MimeType=application/vnd.oasis.opendocument.text;application/vnd.oasis.opendocument.text-template;application/vnd.oasis.opendocument.text-web;application/vnd.oasis.opendocument.text-master;application/vnd.sun.xml.writer;application/vnd.sun.xml.writer.template;application/vnd.sun.xml.writer.global;application/msword;application/vnd.ms-word;application/x-doc;application/x-hwp;application/rtf;text/rtf;application/vnd.wordperfect;application/wordperfect;application/vnd.lotus-wordpro;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;application/vnd.ms-works;application/vnd.stardivision.writer-global;application/x-extension-txt;application/x-t602;text/plain;application/vnd.oasis.opendocument.text-flat-xml;application/x-fictionbook+xml;application/macwriteii;application/x-aportisdoc;application/prs.plucker;application/vnd.palm;application/clarisworks; -+MimeType=application/vnd.oasis.opendocument.text;application/vnd.oasis.opendocument.text-template;application/vnd.oasis.opendocument.text-web;application/vnd.oasis.opendocument.text-master;application/vnd.oasis.opendocument.text-master-template;application/vnd.sun.xml.writer;application/vnd.sun.xml.writer.template;application/vnd.sun.xml.writer.global;application/msword;application/vnd.ms-word;application/x-doc;application/x-hwp;application/rtf;text/rtf;application/vnd.wordperfect;application/wordperfect;application/vnd.lotus-wordpro;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;application/vnd.ms-works;application/vnd.stardivision.writer-global;application/x-extension-txt;application/x-t602;text/plain;application/vnd.oasis.opendocument.text-flat-xml;application/x-fictionbook+xml;application/macwriteii;application/x-aportisdoc;application/prs.plucker;application/vnd.palm;application/clarisworks; - Name=%PRODUCTNAME Writer - GenericName=Word Processor - Comment=Create and edit text and graphics in letters, reports, documents and Web pages by using Writer. -diff --git a/sysui/desktop/mimetypes/oasis-master-document-template.desktop b/sysui/desktop/mimetypes/oasis-master-document-template.desktop -new file mode 100644 -index 0000000..a47588c ---- /dev/null -+++ b/sysui/desktop/mimetypes/oasis-master-document-template.desktop -@@ -0,0 +1,26 @@ -+# -+# This file is part of the LibreOffice project. -+# -+# This Source Code Form is subject to the terms of the Mozilla Public -+# License, v. 2.0. If a copy of the MPL was not distributed with this -+# file, You can obtain one at http://mozilla.org/MPL/2.0/. -+# -+# This file incorporates work covered by the following license notice: -+# -+# Licensed to the Apache Software Foundation (ASF) under one or more -+# contributor license agreements. See the NOTICE file distributed -+# with this work for additional information regarding copyright -+# ownership. The ASF licenses this file to you under the Apache -+# License, Version 2.0 (the "License"); you may not use this file -+# except in compliance with the License. You may obtain a copy of -+# the License at http://www.apache.org/licenses/LICENSE-2.0 . -+# -+[Desktop Entry] -+Version=1.0 -+Encoding=UTF-8 -+Hidden=false -+Icon=oasis-master-document-template -+Type=MimeType -+Patterns=*.otm -+MimeType=application/vnd.oasis.opendocument.text-master-template -+Comment=OpenDocument Master Document Template -diff --git a/sysui/desktop/mimetypes/oasis-master-document-template.keys b/sysui/desktop/mimetypes/oasis-master-document-template.keys -new file mode 100644 -index 0000000..3cd4d5e ---- /dev/null -+++ b/sysui/desktop/mimetypes/oasis-master-document-template.keys -@@ -0,0 +1,9 @@ -+application/vnd.oasis.opendocument.text-master-template -+ description=OpenDocument Master Document Template -+ default_action_type=application -+ short_list_application_ids_for_novice_user_level= -+ short_list_application_ids_for_intermediate_user_level= -+ short_list_application_ids_for_advanced_user_level= -+ category=Documents/Word Processor -+ use_category_default=yes -+ icon_filename=oasis-master-document-template -diff --git a/sysui/desktop/mimetypes/openoffice.applications b/sysui/desktop/mimetypes/openoffice.applications -index 26a3494..8af25f6 100755 ---- a/sysui/desktop/mimetypes/openoffice.applications -+++ b/sysui/desktop/mimetypes/openoffice.applications -@@ -5,5 +5,5 @@ OFFICENAME - expects_uris=true - requires_terminal=false - uses_gnomevfs=true -- mime_types=application/vnd.oasis.opendocument.text,application/vnd.oasis.opendocument.text-flat-xml,application/vnd.oasis.opendocument.text-template,application/vnd.oasis.opendocument.text-web,application/vnd.oasis.opendocument.text-master,application/vnd.oasis.opendocument.graphics,application/vnd.oasis.opendocument.graphics-flat-xml,application/vnd.oasis.opendocument.graphics-template,application/vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.presentation-flat-xml,application/vnd.oasis.opendocument.presentation-template,application/vnd.oasis.opendocument.spreadsheet,application/vnd.oasis.opendocument.spreadsheet-flat-xml,application/vnd.oasis.opendocument.spreadsheet-template,application/vnd.oasis.opendocument.formula,application/vnd.oasis.opendocument.database,application/vnd.ms-excel,application/rtf,application/msword,application/vnd.ms-powerpoint,application/vnd.stardivision.calc,application/vnd.stardivision.chart,application/vnd.stardivision.draw,application/vnd.stardivision.impress,application/vnd.stardivision.mail,application/vnd.stardivision.math,application/vnd.stardivision.writer,application/vnd.sun.xml.calc,application/vnd.sun.xml.calc.template,application/vnd.sun.xml.draw,application/vnd.sun.xml.draw.template,application/vnd.sun.xml.impress,application/vnd.sun.xml.impress.template,application/vnd.sun.xml.math,application/vnd.sun.xml.writer,application/vnd.sun.xml.writer.global,application/vnd.sun.xml.writer.template,application/vnd.sun.xml.base,image/x-emf,image/x-pcx,image/x-photo-cd,image/x-pict;application/vnd.wordperfect;application/vnd.lotus-wordpro;application/vnd.openofficeorg.extension;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroenabled.12;application/vnd.ms-excel.sheet.binary.macroenabled.12;application/x-hwp;text/spreadsheet; -+ mime_types=application/vnd.oasis.opendocument.text,application/vnd.oasis.opendocument.text-flat-xml,application/vnd.oasis.opendocument.text-template,application/vnd.oasis.opendocument.text-web,application/vnd.oasis.opendocument.text-master,application/vnd.oasis.opendocument.text-master-master,application/vnd.oasis.opendocument.graphics,application/vnd.oasis.opendocument.graphics-flat-xml,application/vnd.oasis.opendocument.graphics-template,application/vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.presentation-flat-xml,application/vnd.oasis.opendocument.presentation-template,application/vnd.oasis.opendocument.spreadsheet,application/vnd.oasis.opendocument.spreadsheet-flat-xml,application/vnd.oasis.opendocument.spreadsheet-template,application/vnd.oasis.opendocument.formula,application/vnd.oasis.opendocument.database,application/vnd.ms-excel,application/rtf,application/msword,application/vnd.ms-powerpoint,application/vnd.stardivision.calc,application/vnd.stardivision.chart,application/vnd.stardivision.draw,application/vnd.stardivision.impress,application/vnd.stardivision.mail,application/vnd.stardivision.math,application/vnd.stardivision.writer,application/vnd.sun.xml.calc,application/vnd.sun.xml.calc.template,application/vnd.sun.xml.draw,application/vnd.sun.xml.draw.template,application/vnd.sun.xml.impress,application/vnd.sun.xml.impress.template,application/vnd.sun.xml.math,application/vnd.sun.xml.writer,application/vnd.sun.xml.writer.global,application/vnd.sun.xml.writer.template,application/vnd.sun.xml.base,image/x-emf,image/x-pcx,image/x-photo-cd,image/x-pict;application/vnd.wordperfect;application/vnd.lotus-wordpro;application/vnd.openofficeorg.extension;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-word.document.macroenabled.12;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.template.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.ms-excel.sheet.macroenabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroenabled.12;application/vnd.ms-excel.sheet.binary.macroenabled.12;application/x-hwp;text/spreadsheet; - -diff --git a/sysui/desktop/share/documents.ulf b/sysui/desktop/share/documents.ulf -index cff9422..2073c17 100644 ---- a/sysui/desktop/share/documents.ulf -+++ b/sysui/desktop/share/documents.ulf -@@ -40,6 +40,9 @@ en-US = "OpenDocument Text Template" - [oasis-master-document] - en-US = "OpenDocument Master Document" - -+[oasis-master-document-template] -+en-US = "OpenDocument Master Document Template" -+ - [oasis-formula] - en-US = "OpenDocument Formula" - -diff --git a/sysui/desktop/solaris/mailcap b/sysui/desktop/solaris/mailcap -index 43c0207..910fcbe 100755 ---- a/sysui/desktop/solaris/mailcap -+++ b/sysui/desktop/solaris/mailcap -@@ -40,6 +40,7 @@ cat << END - application/vnd.oasis.opendocument.text; %PREFIX -view %s - application/vnd.oasis.opendocument.text-flat-xml; %PREFIX -view %s - application/vnd.oasis.opendocument.text-template; %PREFIX -view %s -+application/vnd.oasis.opendocument.text-master-template; %PREFIX -view %s - application/vnd.oasis.opendocument.text-web; %PREFIX -view %s - application/vnd.oasis.opendocument.text-master; %PREFIX -view %s - application/vnd.sun.xml.writer; %PREFIX -view %s -diff --git a/sysui/desktop/solaris/mime.types b/sysui/desktop/solaris/mime.types -index 4758d47..a5ee683 100755 ---- a/sysui/desktop/solaris/mime.types -+++ b/sysui/desktop/solaris/mime.types -@@ -32,6 +32,7 @@ application/vnd.oasis.opendocument.text-flat-xml fodt - application/vnd.oasis.opendocument.text-template ott - application/vnd.oasis.opendocument.text-web oth - application/vnd.oasis.opendocument.text-master odm -+application/vnd.oasis.opendocument.text-master-template otm - application/vnd.oasis.opendocument.graphics odg - application/vnd.oasis.opendocument.graphics-flat-xml fodg - application/vnd.oasis.opendocument.graphics-template otg --- -1.9.3 - diff --git a/0001-default-n-up-printing-of-notes-to-sensible-2-x-1-not.patch b/0001-default-n-up-printing-of-notes-to-sensible-2-x-1-not.patch deleted file mode 100644 index 70c3c70..0000000 --- a/0001-default-n-up-printing-of-notes-to-sensible-2-x-1-not.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 93c47f3f0310135c5d6216de9b4d25fd7c06e7dd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 18 Sep 2014 11:32:39 +0100 -Subject: [PATCH] default n-up printing of notes to sensible 2 x 1 not 1 x 2 - -i.e. throw away the maFirstPageSize cache based on the initial slide view which -is typically in landscape mode - -So that if we change to notes which are usually in portrait mode, and then -visit n-up print, we get a default layout based on the notes orientation and -not the slides orientation. - -I hate printing - -Change-Id: I8b7b81ce1eec0f9c5ecd7509b311cf4026958c2c ---- - vcl/source/window/printdlg.cxx | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx -index cf9642e..d9ebf7c 100644 ---- a/vcl/source/window/printdlg.cxx -+++ b/vcl/source/window/printdlg.cxx -@@ -1787,6 +1787,14 @@ IMPL_LINK( PrintDialog, UIOption_SelectHdl, ListBox*, i_pBox ) - sal_Int32 nVal( i_pBox->GetSelectEntryPos() ); - pVal->Value <<= nVal; - -+ //If we are in impress we start in print slides mode and get a -+ //maFirstPageSize for slides which are usually landscape mode, if we -+ //change to notes which are usually in portrait mode, and then visit -+ //n-up print, we will assume notes are in landscape unless we throw -+ //away maFirstPageSize when we change page content type -+ if (pVal->Name == "PageContentType") -+ maFirstPageSize = Size(); -+ - checkOptionalControlDependencies(); - - // update preview and page settings --- -1.9.3 - diff --git a/0001-drop-useless-test-for-ant-apache-regexp.patch b/0001-drop-useless-test-for-ant-apache-regexp.patch deleted file mode 100644 index 961915b..0000000 --- a/0001-drop-useless-test-for-ant-apache-regexp.patch +++ /dev/null @@ -1,71 +0,0 @@ -From cb6511354b500d1b1bd8ff140fdf0ea106b174d4 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Wed, 3 Sep 2014 16:20:40 +0200 -Subject: [PATCH] drop useless test for ant-apache-regexp - -It has not been needed since commit -1de48c417404464ca1e34e5c5d1c82a9342349bb 4 years ago. - -Change-Id: I53ceb5d8d6c02c7a13c86cdd884e4fc378a2c492 ---- - configure.ac | 44 -------------------------------------------- - 1 file changed, 44 deletions(-) - -diff --git a/configure.ac b/configure.ac -index f65ab66..897cb1e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -12311,50 +12311,6 @@ EOF - AC_MSG_ERROR([no, you need at least Ant >= $ant_minver]) - fi - -- if test "$ENABLE_MEDIAWIKI" = "TRUE"; then -- AC_MSG_CHECKING([whether Ant supports mapper type="regexp"]) -- rm -rf confdir -- mkdir confdir -- cat > conftest.java << EOF -- public class conftest { -- int testmethod(int a, int b) { -- return a + b; -- } -- } --EOF -- -- cat > conftest.xml << EOF -- -- -- -- -- -- -- -- -- -- -- -- -- --EOF -- -- if test "$JAVACISGCJ" = "yes"; then -- JAVA_HOME=; export JAVA_HOME -- ant_gcj="-Dbuild.compiler=gcj" -- fi -- AC_TRY_COMMAND("$ANT" $ant_gcj -buildfile conftest.xml 1>&2) -- if test $? = 0 -a -f ./conftest.class; then -- AC_MSG_RESULT([yes]) -- rm -rf confdir -- else -- echo "configure: Ant test failed" >&5 -- cat conftest.java >&5 -- cat conftest.xml >&5 -- rm -rf confdir -- AC_MSG_ERROR([no. Did you install ant-apache-regexp?]) -- fi -- fi - rm -f conftest* core core.* *.core - fi - --- -1.9.3 - diff --git a/0001-fdo-60712-Inherits-cell-styles-in-inserting-rows-col.patch b/0001-fdo-60712-Inherits-cell-styles-in-inserting-rows-col.patch deleted file mode 100644 index c1d879e..0000000 --- a/0001-fdo-60712-Inherits-cell-styles-in-inserting-rows-col.patch +++ /dev/null @@ -1,225 +0,0 @@ -From 9bfd1aced3da2aab9df3fc6f93543a5b6b1075b6 Mon Sep 17 00:00:00 2001 -From: Hideki Ikeda -Date: Thu, 17 Jul 2014 16:46:16 -0400 -Subject: [PATCH] fdo#60712 - Inherits cell styles in inserting rows/columns - -Add the code to copy cell styles from the caret row/column -to new rows/columns. The span is also copiedl. - -Change-Id: I39596a33141ed2159ea2d09e422892cbd68cd81a -Reviewed-on: https://gerrit.libreoffice.org/10373 -Reviewed-by: Kohei Yoshida -Tested-by: Kohei Yoshida ---- - svx/source/table/cell.cxx | 20 +++++ - svx/source/table/cell.hxx | 2 + - svx/source/table/tablecontroller.cxx | 142 +++++++++++++++++++++++++++++++++++ - 3 files changed, 164 insertions(+) - -diff --git a/svx/source/table/cell.cxx b/svx/source/table/cell.cxx -index ce7a6a9..5fd38f9 100644 ---- a/svx/source/table/cell.cxx -+++ b/svx/source/table/cell.cxx -@@ -525,6 +525,26 @@ void Cell::setMerged() - - - -+void Cell::copyFormatFrom( const CellRef& xSourceCell ) -+{ -+ if( xSourceCell.is() && mpProperties ) -+ { -+ mpProperties->SetMergedItemSet( xSourceCell->GetObjectItemSet() ); -+ -+ SdrTableObj& rTableObj = dynamic_cast< SdrTableObj& >( GetObject() ); -+ SdrTableObj& rSourceTableObj = dynamic_cast< SdrTableObj& >( xSourceCell->GetObject() ); -+ -+ if(rSourceTableObj.GetModel() != rTableObj.GetModel()) -+ { -+ SetStyleSheet( 0, true ); -+ } -+ -+ notifyModified(); -+ } -+} -+ -+ -+ - void Cell::notifyModified() - { - if( mxTable.is() ) -diff --git a/svx/source/table/cell.hxx b/svx/source/table/cell.hxx -index 65fdcd0..66cc5a7 100644 ---- a/svx/source/table/cell.hxx -+++ b/svx/source/table/cell.hxx -@@ -102,6 +102,8 @@ public: - - SVX_DLLPRIVATE void setMerged(); - -+ SVX_DLLPRIVATE void copyFormatFrom( const CellRef& xSourceCell ); -+ - // XInterface - SVX_DLLPRIVATE virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& Type ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; - SVX_DLLPRIVATE virtual void SAL_CALL acquire() throw () SAL_OVERRIDE; -diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx -index 514505c..c310cb2 100644 ---- a/svx/source/table/tablecontroller.cxx -+++ b/svx/source/table/tablecontroller.cxx -@@ -564,6 +564,77 @@ void SvxTableController::onInsert( sal_uInt16 nSId, const SfxItemSet* pArgs ) - getPropertyValue( sSize ) ); - } - -+ // Copy cell properties -+ sal_Int32 nPropSrcCol = (bInsertAfter ? aEnd.mnCol : aStart.mnCol + nNewColumns); -+ sal_Int32 nRowSpan = 0; -+ bool bNewSpan = false; -+ -+ for( sal_Int32 nRow = 0; nRow < mxTable->getRowCount(); ++nRow ) -+ { -+ CellRef xSourceCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nPropSrcCol, nRow ).get() ) ); -+ -+ // When we insert new COLUMNs, we want to copy ROW spans. -+ if( nRowSpan == 0 ) -+ { -+ // we are not in a span yet. Let's find out if the current cell is in a span. -+ sal_Int32 nColSpan; -+ sal_Int32 nSpanInfoCol; -+ -+ if( xSourceCell->getRowSpan() > 1 ) -+ { -+ // The current cell is the top-left cell in a span. -+ // Get the span info and propagate it to the target. -+ nRowSpan = xSourceCell->getRowSpan(); -+ nColSpan = xSourceCell->getColumnSpan(); -+ nSpanInfoCol = nPropSrcCol; -+ } -+ else if( xSourceCell->isMerged() ) -+ { -+ // The current cell is a middle cell in a 2D span. -+ // Look for the top-left cell in the span. -+ for( nSpanInfoCol = nPropSrcCol - 1; nSpanInfoCol >= 0; --nSpanInfoCol ) -+ { -+ CellRef xMergeInfoCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nSpanInfoCol, nRow ).get() ) ); -+ if( !xMergeInfoCell->isMerged() ) -+ { -+ nRowSpan = xMergeInfoCell->getRowSpan(); -+ nColSpan = xMergeInfoCell->getColumnSpan(); -+ break; -+ } -+ } -+ if( nRowSpan == 1 ) -+ nRowSpan = 0; -+ } -+ -+ // The target colomns are outside the span; Start a new span. -+ if( nRowSpan > 0 && ( nNewStartColumn < nSpanInfoCol || nSpanInfoCol + nColSpan <= nNewStartColumn ) ) -+ bNewSpan = true; -+ } -+ -+ // Now copy the properties from the source to the targets -+ for( sal_Int32 nOffset = 0; nOffset < nNewColumns; nOffset++ ) -+ { -+ CellRef xTargetCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nNewStartColumn + nOffset, nRow ).get() ) ); -+ if( xTargetCell.is() ) -+ { -+ if( nRowSpan > 0 ) -+ { -+ if( bNewSpan ) -+ xTargetCell->merge( 1, nRowSpan ); -+ else -+ xTargetCell->setMerged(); -+ } -+ xTargetCell->copyFormatFrom( xSourceCell ); -+ } -+ } -+ -+ if( nRowSpan > 0 ) -+ { -+ --nRowSpan; -+ bNewSpan = false; -+ } -+ } -+ - if( bUndo ) - mpModel->EndUndo(); - -@@ -597,6 +668,77 @@ void SvxTableController::onInsert( sal_uInt16 nSId, const SfxItemSet* pArgs ) - getPropertyValue( sSize ) ); - } - -+ // Copy the cell properties -+ sal_Int32 nPropSrcRow = (bInsertAfter ? aEnd.mnRow : aStart.mnRow + nNewRows); -+ sal_Int32 nColSpan = 0; -+ bool bNewSpan = false; -+ -+ for( sal_Int32 nCol = 0; nCol < mxTable->getColumnCount(); ++nCol ) -+ { -+ CellRef xSourceCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nCol, nPropSrcRow ).get() ) ); -+ -+ // When we insert new ROWs, we want to copy COLUMN spans. -+ if( nColSpan == 0 ) -+ { -+ // we are not in a span yet. Let's find out if the current cell is in a span. -+ sal_Int32 nRowSpan; -+ sal_Int32 nSpanInfoRow; -+ -+ if( xSourceCell->getColumnSpan() > 1 ) -+ { -+ // The current cell is the top-left cell in a span. -+ // Get the span info and propagate it to the target. -+ nColSpan = xSourceCell->getColumnSpan(); -+ nRowSpan = xSourceCell->getRowSpan(); -+ nSpanInfoRow = nPropSrcRow; -+ } -+ else if( xSourceCell->isMerged() ) -+ { -+ // The current cell is a middle cell in a 2D span. -+ // Look for the top-left cell in the span. -+ for( nSpanInfoRow = nPropSrcRow - 1; nSpanInfoRow >= 0; --nSpanInfoRow ) -+ { -+ CellRef xMergeInfoCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nCol, nSpanInfoRow ).get() ) ); -+ if( !xMergeInfoCell->isMerged() ) -+ { -+ nColSpan = xMergeInfoCell->getColumnSpan(); -+ nRowSpan = xMergeInfoCell->getRowSpan(); -+ break; -+ } -+ } -+ if( nColSpan == 1 ) -+ nColSpan = 0; -+ } -+ -+ // Inserted rows are outside the span; Start a new span. -+ if( nColSpan > 0 && ( nNewRowStart < nSpanInfoRow || nSpanInfoRow + nRowSpan <= nNewRowStart ) ) -+ bNewSpan = true; -+ } -+ -+ // Now copy the properties from the source to the targets -+ for( sal_Int32 nOffset = 0; nOffset < nNewRows; ++nOffset ) -+ { -+ CellRef xTargetCell( dynamic_cast< Cell* >( mxTable->getCellByPosition( nCol, nNewRowStart + nOffset ).get() ) ); -+ if( xTargetCell.is() ) -+ { -+ if( nColSpan > 0 ) -+ { -+ if( bNewSpan ) -+ xTargetCell->merge( nColSpan, 1 ); -+ else -+ xTargetCell->setMerged(); -+ } -+ xTargetCell->copyFormatFrom( xSourceCell ); -+ } -+ } -+ -+ if( nColSpan > 0 ) -+ { -+ --nColSpan; -+ bNewSpan = false; -+ } -+ } -+ - if( bUndo ) - mpModel->EndUndo(); - --- -1.9.3 - diff --git a/0001-fdo-82496-Change-picture-option-by-rightclicking.patch b/0001-fdo-82496-Change-picture-option-by-rightclicking.patch deleted file mode 100644 index 5cbab76..0000000 --- a/0001-fdo-82496-Change-picture-option-by-rightclicking.patch +++ /dev/null @@ -1,78 +0,0 @@ -From caa08b214542fdf1bed3912b9c4fac36e5d87eb2 Mon Sep 17 00:00:00 2001 -From: Jennifer Liebel -Date: Tue, 2 Sep 2014 12:40:20 +0000 -Subject: [PATCH] fdo#82496: Change picture option by rightclicking - -Change-Id: I31fb1a1f89030610a9d11b9236e8cde22dbc0ca5 ---- - sw/sdi/_grfsh.sdi | 12 ++++++++++++ - sw/source/ui/app/mn.src | 1 + - sw/source/uibase/shells/grfsh.cxx | 3 +-- - 3 files changed, 14 insertions(+), 2 deletions(-) - -diff --git a/sw/sdi/_grfsh.sdi b/sw/sdi/_grfsh.sdi -index 15c00cc..2eb2ab2 100644 ---- a/sw/sdi/_grfsh.sdi -+++ b/sw/sdi/_grfsh.sdi -@@ -62,6 +62,13 @@ interface BaseTextGraphic - DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; - ] - -+ SID_CHANGE_PICTURE -+ [ -+ ExecMethod = Execute ; -+ StateMethod = GetAttrState ; -+ DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; -+ ] -+ - SID_EXTERNAL_EDIT - [ - ExecMethod = Execute ; -@@ -224,6 +231,11 @@ interface BaseTextGraphic - StateMethod = GetAttrState ; - DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; - ] -+ SID_CHANGE_PICTURE -+ [ -+ ExecMethod = FuTemporary ; -+ StateMethod = GetMenuState ; -+ ] - SID_GRFFILTER_SOLARIZE // status(final|play|rec) - [ - ExecMethod = ExecAttr ; -diff --git a/sw/source/ui/app/mn.src b/sw/source/ui/app/mn.src -index f62c8da..79b797d 100644 ---- a/sw/source/ui/app/mn.src -+++ b/sw/source/ui/app/mn.src -@@ -1239,6 +1239,7 @@ Menu MN_GRF_POPUPMENU - MN_FRM_CAPTION_ITEM - SEPARATOR; - MenuItem { ITEM_SAVE_GRAPHIC }; -+ MenuItem { ITEM_CHANGE_PICTURE }; - MenuItem { ITEM_COMPRESS_GRAPHIC }; - MenuItem { ITEM_EXTERNAL_EDIT }; - -diff --git a/sw/source/uibase/shells/grfsh.cxx b/sw/source/uibase/shells/grfsh.cxx -index d5ecec5..0e13b38 100644 ---- a/sw/source/core/uibase/shells/grfsh.cxx -+++ b/sw/source/core/uibase/shells/grfsh.cxx -@@ -178,7 +178,6 @@ void SwGrfShell::Execute(SfxRequest &rReq) - } - } - break; -- - case SID_EXTERNAL_EDIT: - { - // When the graphic is selected to be opened via some external tool -@@ -191,7 +190,7 @@ void SwGrfShell::Execute(SfxRequest &rReq) - } - } - break; -- -+ case SID_CHANGE_PICTURE: - case SID_INSERT_GRAPHIC: - { - // #i123922# implement slot independent from the two below to --- -1.9.3 - diff --git a/0001-fdo-85247-copy-and-paste-of-a-slide-results-in-a-blu.patch b/0001-fdo-85247-copy-and-paste-of-a-slide-results-in-a-blu.patch deleted file mode 100644 index ee014aa..0000000 --- a/0001-fdo-85247-copy-and-paste-of-a-slide-results-in-a-blu.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0bab8aee77cfc2ffdbc6d3ef6a869284bc12dff4 Mon Sep 17 00:00:00 2001 -From: Muthu Subramanian -Date: Thu, 23 Oct 2014 20:30:26 +0530 -Subject: [PATCH] fdo#85247: copy and paste of a slide results in a blue slide - in presentation mode. - -Seems like "Default" is handled specially or probably -the copy-buffer is broken -This now checks for slide 'type' as well, before cosidering it a duplicate - -Change-Id: If8c472bcefb54cee72e7411f92a76b4e2db2b6ce ---- - sd/source/core/drawdoc3.cxx | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/sd/source/core/drawdoc3.cxx b/sd/source/core/drawdoc3.cxx -index e379ed0..d3e92f9 100644 ---- a/sd/source/core/drawdoc3.cxx -+++ b/sd/source/core/drawdoc3.cxx -@@ -106,9 +106,11 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc - - OUString aTest(aFullTest); - -- if (aTest == aLayout) -+ if (aTest == aLayout && pBMMPage->GetPageKind() == pTestPage->GetPageKind()) - { -- if( bRenameDuplicates && pTestPage->getHash() != pBMMPage->getHash() ) -+ // Ignore Layouts with "Default" these seem to be special - in the sense that there are lot of assumption all over Impress -+ // about this -+ if( bRenameDuplicates && aTest != OUString( SdResId( STR_LAYOUT_DEFAULT_NAME ) ) && pTestPage->getHash() != pBMMPage->getHash() ) - { - pBookmarkDoc->RenameLayoutTemplate( pBMMPage->GetLayoutName(), OUString(pBMMPage->GetName())+=OUString("_") ); - aLayout = pBMMPage->GetName(); --- -1.9.3 - diff --git a/0001-fix-KDE4-detection-on-aarch64.patch b/0001-fix-KDE4-detection-on-aarch64.patch deleted file mode 100644 index 18537e3..0000000 --- a/0001-fix-KDE4-detection-on-aarch64.patch +++ /dev/null @@ -1,31 +0,0 @@ -From fdb81f1a2012e558eaeb7fcf762736f1afcdeee9 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Wed, 3 Sep 2014 09:36:22 +0200 -Subject: [PATCH] fix KDE4 detection on aarch64 - -Change-Id: Iafe65564e8c2534cb03497d82d7dd3498abdf7c8 ---- - configure.ac | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index c0b5658..f65ab66 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -11045,9 +11045,12 @@ AC_SUBST(ENABLE_SCRIPTING_JAVASCRIPT) - AC_SUBST(SYSTEM_RHINO) - AC_SUBST(RHINO_JAR) - -+# This is only used in KDE3/KDE4/TDE checks to determine if /usr/lib64 -+# paths should be added to library search path. So lets put all 64-bit -+# platforms there. - supports_multilib= - case "$host_cpu" in --x86_64 | powerpc64 | s390x) -+x86_64 | powerpc64 | powerpc64le | s390x | aarch64) - if test "$SAL_TYPES_SIZEOFLONG" = "8"; then - supports_multilib="yes" - fi --- -1.9.3 - diff --git a/0001-have-a-stab-at-improving-impossible-question.patch b/0001-have-a-stab-at-improving-impossible-question.patch deleted file mode 100644 index 495923b..0000000 --- a/0001-have-a-stab-at-improving-impossible-question.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 204dc59286857174306615dad4b4a0bd8d0cfe82 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 11 Nov 2014 14:10:04 +0000 -Subject: [PATCH] have a stab at improving impossible question - -as to whether you want to "adapt" objects or not - -Change-Id: Ic4c00be480d1be632d84dfac71fe911d48eacc51 ---- - sd/source/ui/app/strings.src | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sd/source/ui/app/strings.src b/sd/source/ui/app/strings.src -index 2b363f6..06b0fcf 100644 ---- a/sd/source/ui/app/strings.src -+++ b/sd/source/ui/app/strings.src -@@ -397,7 +397,7 @@ String STR_READ_DATA_ERROR - }; - String STR_SCALE_OBJECTS - { -- Text [ en-US ] = "The format of the new pages will be adapted.\nDo you want to adapt the objects, too?" ; -+ Text [ en-US ] = "The page size of the target document is different than the source document.\n\nDo you want to scale the copied objects to fit the new page size?" ; - }; - String STR_CREATE_PAGES - { --- -1.9.3 - diff --git a/0001-if-_CALL_ELF-if-defined-_CALL_ELF-_CALL_ELF-2.patch b/0001-if-_CALL_ELF-if-defined-_CALL_ELF-_CALL_ELF-2.patch deleted file mode 100644 index b13277c..0000000 --- a/0001-if-_CALL_ELF-if-defined-_CALL_ELF-_CALL_ELF-2.patch +++ /dev/null @@ -1,103 +0,0 @@ -From af73a28e8538f5b2df6bbfd592d8987511520d4d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Fri, 22 Aug 2014 21:08:47 +0100 -Subject: [PATCH] if _CALL_ELF -> if defined(_CALL_ELF) && _CALL_ELF == 2 - -Change-Id: I34e9a98586b795a3fa31ae775aee7898b36e65d4 ---- - bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx | 10 +++++----- - bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx | 8 ++++---- - 2 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx -index 35cc16f..430999f 100644 ---- a/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx -+++ b/bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx -@@ -326,7 +326,7 @@ static typelib_TypeClass cpp2uno_call( - } - } - --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - # define PARAMSAVE 32 - #else - # define PARAMSAVE 48 -@@ -545,7 +545,7 @@ extern "C" void privateSnippetExecutor( ... ) - "mr %0, 1\n\t" - : "=r" (sp) : ); - --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - volatile long nRegReturn[2]; - #else - volatile long nRegReturn[1]; -@@ -592,7 +592,7 @@ extern "C" void privateSnippetExecutor( ... ) - default: - __asm__( "ld 3,%0\n\t" - : : "m" (nRegReturn[0]) ); --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - __asm__( "ld 4,%0\n\t" - : : "m" (nRegReturn[1]) ); - #endif -@@ -600,7 +600,7 @@ extern "C" void privateSnippetExecutor( ... ) - } - } - --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - const int codeSnippetSize = 32; - #else - const int codeSnippetSize = 24; -@@ -618,7 +618,7 @@ unsigned char * codeSnippet( unsigned char * code, sal_Int32 nFunctionIndex, sa - - if ( bHasHiddenParam ) - nOffsetAndIndex |= 0x80000000; --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - unsigned int *raw = (unsigned int *)&code[0]; - - raw[0] = 0xe96c0018; /* 0: ld 11,2f-0b(12) */ -diff --git a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx -index 391ef219..cfe720d 100644 ---- a/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx -+++ b/bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx -@@ -39,7 +39,7 @@ using namespace ::com::sun::star::uno; - - namespace ppc64 - { --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - bool is_complex_struct(const typelib_TypeDescription * type) - { - const typelib_CompoundTypeDescription * p -@@ -70,7 +70,7 @@ namespace ppc64 - { - if (bridges::cpp_uno::shared::isSimpleType(pTypeRef)) - return false; --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - else if (pTypeRef->eTypeClass == typelib_TypeClass_STRUCT || pTypeRef->eTypeClass == typelib_TypeClass_EXCEPTION) - { - typelib_TypeDescription * pTypeDescr = 0; -@@ -115,7 +115,7 @@ void MapReturn(long r3, long r4, double dret, typelib_TypeDescriptionReference* - case typelib_TypeClass_DOUBLE: - *reinterpret_cast( pRegisterReturn ) = dret; - break; --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - case typelib_TypeClass_STRUCT: - case typelib_TypeClass_EXCEPTION: - if (!ppc64::return_in_hidden_param(pReturnType)) -@@ -175,7 +175,7 @@ static void callVirtualMethod(void * pThis, sal_uInt32 nVtableIndex, - pMethod += 8 * nVtableIndex; - pMethod = *((sal_uInt64 *)pMethod); - --#if _CALL_ELF == 2 -+#if defined(_CALL_ELF) && _CALL_ELF == 2 - typedef void (* FunctionCall )(...); - #else - typedef void (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 ); --- -1.9.3 - diff --git a/0001-implement-toggling-off-removeable-master-elements-wi.patch b/0001-implement-toggling-off-removeable-master-elements-wi.patch deleted file mode 100644 index 0a5d8bc..0000000 --- a/0001-implement-toggling-off-removeable-master-elements-wi.patch +++ /dev/null @@ -1,205 +0,0 @@ -From ff0eba6c1cbf4a5816c5b9b48d4e29778f0e0869 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 6 Nov 2014 14:59:49 +0000 -Subject: [PATCH] implement toggling off removeable master elements with direct - delete - -i.e. selecting footers/headers/slidenumber/datetime previes placeholders in -master page view and pressing delete will toggle those master elements off. - -Change-Id: I91f745703e43cbb4fdd037da4eab7c8f6bf9fbf5 -(cherry picked from commit e36dae401fc8963c9a92cb2c11d9b650b943c6d3) ---- - sd/inc/sdpage.hxx | 1 + - sd/source/core/sdpage.cxx | 19 +++++++++ - sd/source/ui/dlg/masterlayoutdlg.cxx | 19 ++------- - sd/source/ui/inc/DrawViewShell.hxx | 1 + - sd/source/ui/view/drviewse.cxx | 74 ++++++++++++++++++++++++++++-------- - 5 files changed, 83 insertions(+), 31 deletions(-) - -diff --git a/sd/inc/sdpage.hxx b/sd/inc/sdpage.hxx -index 4cce906..0d3b138 100644 ---- a/sd/inc/sdpage.hxx -+++ b/sd/inc/sdpage.hxx -@@ -176,6 +176,7 @@ public: - void EnsureMasterPageDefaultBackground(); - SdrObject* CreatePresObj(PresObjKind eObjKind, bool bVertical, const Rectangle& rRect, bool bInsert=false); - SdrObject* CreateDefaultPresObj(PresObjKind eObjKind, bool bInsert); -+ void DestroyDefaultPresObj(PresObjKind eObjKind); - SdrObject* GetPresObj(PresObjKind eObjKind, int nIndex = 1, bool bFuzzySearch = false ); - PresObjKind GetPresObjKind(SdrObject* pObj) const; - OUString GetPresObjText(PresObjKind eObjKind) const; -diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx -index 477ea48..fccd7cf 100644 ---- a/sd/source/core/sdpage.cxx -+++ b/sd/source/core/sdpage.cxx -@@ -1018,6 +1018,25 @@ SdrObject* SdPage::CreateDefaultPresObj(PresObjKind eObjKind, bool bInsert) - } - } - -+void SdPage::DestroyDefaultPresObj(PresObjKind eObjKind) -+{ -+ SdrObject* pObject = GetPresObj( eObjKind ); -+ -+ if( pObject ) -+ { -+ SdDrawDocument *pDoc = static_cast(pModel); -+ -+ const bool bUndo = pDoc->IsUndoEnabled(); -+ if( bUndo ) -+ pDoc->AddUndo(pDoc->GetSdrUndoFactory().CreateUndoDeleteObject(*pObject)); -+ SdrObjList* pOL = pObject->GetObjList(); -+ pOL->RemoveObject(pObject->GetOrdNumDirect()); -+ -+ if( !bUndo ) -+ SdrObject::Free(pObject); -+ } -+} -+ - /************************************************************************* - |* - |* return title area -diff --git a/sd/source/ui/dlg/masterlayoutdlg.cxx b/sd/source/ui/dlg/masterlayoutdlg.cxx -index 21aa64b..acfd28a 100644 ---- a/sd/source/ui/dlg/masterlayoutdlg.cxx -+++ b/sd/source/ui/dlg/masterlayoutdlg.cxx -@@ -121,27 +121,14 @@ void MasterLayoutDialog::applyChanges() - mpDoc->EndUndo(); - } - --void MasterLayoutDialog::create( PresObjKind eKind ) -+void MasterLayoutDialog::create(PresObjKind eKind) - { -- mpCurrentPage->CreateDefaultPresObj( eKind, true ); -+ mpCurrentPage->CreateDefaultPresObj(eKind, true); - } - - void MasterLayoutDialog::remove( PresObjKind eKind ) - { -- SdrObject* pObject = mpCurrentPage->GetPresObj( eKind ); -- -- if( pObject ) -- { -- const bool bUndo = mpDoc->IsUndoEnabled(); -- if( bUndo ) -- mpDoc->AddUndo(mpDoc->GetSdrUndoFactory().CreateUndoDeleteObject(*pObject)); -- SdrObjList* pOL =pObject->GetObjList(); -- sal_uInt32 nOrdNum=pObject->GetOrdNumDirect(); -- pOL->RemoveObject(nOrdNum); -- -- if( !bUndo ) -- SdrObject::Free(pObject); -- } -+ mpCurrentPage->DestroyDefaultPresObj(eKind); - } - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx -index 96c5c9c..a6f5a13 100644 ---- a/sd/source/ui/inc/DrawViewShell.hxx -+++ b/sd/source/ui/inc/DrawViewShell.hxx -@@ -216,6 +216,7 @@ public: - void FuTemporary(SfxRequest& rReq); - void FuPermanent(SfxRequest& rReq); - void FuSupport(SfxRequest& rReq); -+ void FuDeleteSelectedObjects(); - void FuSupportRotate(SfxRequest& rReq); - void FuTable(SfxRequest& rReq); - -diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx -index cd643b0..6e7cb8d 100644 ---- a/sd/source/ui/view/drviewse.cxx -+++ b/sd/source/ui/view/drviewse.cxx -@@ -625,6 +625,64 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq) - } - } - -+void DrawViewShell::FuDeleteSelectedObjects() -+{ -+ bool bConsumed = false; -+ -+ //if any placeholders are selected -+ if (mpDrawView->IsPresObjSelected(false, true, false, false)) -+ { -+ //If there are placeholders in the list which can be toggled -+ //off in edit->master->master elements then do that here, -+ std::vector aPresMarksToRemove; -+ const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList(); -+ for (size_t i=0; i < rMarkList.GetMarkCount(); ++i) -+ { -+ SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj(); -+ SdPage* pPage = (SdPage*)pObj->GetPage(); -+ PresObjKind eKind = pPage->GetPresObjKind(pObj); -+ if (eKind == PRESOBJ_FOOTER || eKind == PRESOBJ_HEADER || -+ eKind == PRESOBJ_DATETIME || eKind == PRESOBJ_SLIDENUMBER) -+ { -+ aPresMarksToRemove.push_back(pObj); -+ } -+ } -+ -+ for (std::vector::iterator aI = aPresMarksToRemove.begin(); aI < aPresMarksToRemove.end(); ++aI) -+ { -+ //Unmark object -+ mpDrawView->MarkObj((*aI), mpDrawView->GetSdrPageView(), true); -+ SdPage* pPage = (SdPage*)(*aI)->GetPage(); -+ //remove placeholder from master page -+ pPage->DestroyDefaultPresObj(pPage->GetPresObjKind((*aI))); -+ } -+ -+ bConsumed = true; -+ } -+ -+ // placeholders which cannot be deleted selected -+ if (mpDrawView->IsPresObjSelected(false, true, false, true)) -+ { -+ ::sd::Window* pWindow = GetActiveWindow(); -+ InfoBox(pWindow, SD_RESSTR(STR_ACTION_NOTPOSSIBLE) ).Execute(); -+ bConsumed = true; -+ } -+ -+ if (!bConsumed) -+ { -+ KeyCode aKCode(KEY_DELETE); -+ KeyEvent aKEvt( 0, aKCode); -+ -+ bConsumed = mpDrawView && mpDrawView->getSmartTags().KeyInput( aKEvt ); -+ -+ if( !bConsumed && HasCurrentFunction() ) -+ bConsumed = GetCurrentFunction()->KeyInput(aKEvt); -+ -+ if( !bConsumed && mpDrawView ) -+ mpDrawView->DeleteMarked(); -+ } -+} -+ - void DrawViewShell::FuSupport(SfxRequest& rReq) - { - if( rReq.GetSlot() == SID_STYLE_FAMILY && rReq.GetArgs()) -@@ -873,23 +931,9 @@ void DrawViewShell::FuSupport(SfxRequest& rReq) - pOLV->PostKeyEvent(aKEvt); - } - } -- else if ( mpDrawView->IsPresObjSelected(false, true, false, true) ) -- { -- ::sd::Window* pWindow = GetActiveWindow(); -- InfoBox(pWindow, SD_RESSTR(STR_ACTION_NOTPOSSIBLE) ).Execute(); -- } - else - { -- KeyCode aKCode(KEY_DELETE); -- KeyEvent aKEvt( 0, aKCode); -- -- bool bConsumed = mpDrawView && mpDrawView->getSmartTags().KeyInput( aKEvt ); -- -- if( !bConsumed && HasCurrentFunction() ) -- bConsumed = GetCurrentFunction()->KeyInput(aKEvt); -- -- if( !bConsumed && mpDrawView ) -- mpDrawView->DeleteMarked(); -+ FuDeleteSelectedObjects(); - } - rReq.Ignore (); - } --- -1.9.3 - diff --git a/0001-impress-tables-are-not-interactively-growing.patch b/0001-impress-tables-are-not-interactively-growing.patch deleted file mode 100644 index 26cb866..0000000 --- a/0001-impress-tables-are-not-interactively-growing.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 5a958aa9d95f0c14e4980f6909550e657d87a3a9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 13 Nov 2014 14:31:09 +0000 -Subject: [PATCH] impress tables are not interactively growing - -the optimization here stops tables growing as their text -contents change in editing mode - -So, just recalculate if the table could grow and its -being interactively edited, which leaves the original -(dubious ?) load-time optimization in place - -Change-Id: I894acf47d34ec8b68aaf9076b5a0cb7e29c38a17 -(cherry picked from commit 22ef69b25fa60f4543dc72cb7a8d2f88b789ce43) ---- - svx/source/table/svdotable.cxx | 9 ++++----- - 1 file changed, 4 insertions(+), 5 deletions(-) - -diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx -index fbd532a..856a9e5 100644 ---- a/svx/source/table/svdotable.cxx -+++ b/svx/source/table/svdotable.cxx -@@ -689,16 +689,17 @@ sal_Int32 SdrTableObjImpl::getRowCount() const - return mxTable.is() ? mxTable->getRowCount() : 0; - } - -- -- - void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHeight ) - { - if( mpLayouter && mpTableObj->GetModel() ) - { - // Optimization: SdrTableObj::SetChanged() can call this very often, repeatedly - // with the same settings, noticeably increasing load time. Skip if already done. -+ bool bInteractiveMightGrowBecauseTextChanged = -+ mpTableObj->IsRealyEdited() && (mpTableObj->IsAutoGrowHeight() || mpTableObj->IsAutoGrowWidth()); - WritingMode writingMode = mpTableObj->GetWritingMode(); -- if( lastLayoutTable != this || lastLayoutInputRectangle != rArea -+ if( bInteractiveMightGrowBecauseTextChanged -+ || lastLayoutTable != this || lastLayoutInputRectangle != rArea - || lastLayoutFitWidth != bFitWidth || lastLayoutFitHeight != bFitHeight - || lastLayoutMode != writingMode - || lastRowCount != getRowCount() -@@ -722,8 +723,6 @@ void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHe - } - } - -- -- - void SdrTableObjImpl::UpdateCells( Rectangle& rArea ) - { - if( mpLayouter && mxTable.is() ) --- -1.9.3 - diff --git a/0001-just-use-ANSI-C-declarations.patch b/0001-just-use-ANSI-C-declarations.patch deleted file mode 100644 index e3acab2..0000000 --- a/0001-just-use-ANSI-C-declarations.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 4d687aec3c5ea0f18ab3f01f827cc544e677bae3 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Thu, 6 Nov 2014 10:20:00 +0100 -Subject: [PATCH] just use ANSI C declarations - -Change-Id: Iec50f3474b97497c50522eabb4435795b3ba3b56 ---- - vcl/source/filter/jpeg/transupp.h | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) - -diff --git a/vcl/source/filter/jpeg/transupp.h b/vcl/source/filter/jpeg/transupp.h -index 4448c9f..4dbbc2a 100644 ---- a/vcl/source/filter/jpeg/transupp.h -+++ b/vcl/source/filter/jpeg/transupp.h -@@ -164,27 +164,27 @@ typedef struct { - - /* Parse a crop specification (written in X11 geometry style) */ - EXTERN(boolean) jtransform_parse_crop_spec -- JPP((jpeg_transform_info *info, const char *spec)); -+ (jpeg_transform_info *info, const char *spec); - /* Request any required workspace */ - EXTERN(boolean) jtransform_request_workspace -- JPP((j_decompress_ptr srcinfo, jpeg_transform_info *info)); -+ (j_decompress_ptr srcinfo, jpeg_transform_info *info); - /* Adjust output image parameters */ - EXTERN(jvirt_barray_ptr *) jtransform_adjust_parameters -- JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo, -+ (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, -- jpeg_transform_info *info)); -+ jpeg_transform_info *info); - /* Execute the actual transformation, if any */ - EXTERN(void) jtransform_execute_transform -- JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo, -+ (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, - jvirt_barray_ptr *src_coef_arrays, -- jpeg_transform_info *info)); -+ jpeg_transform_info *info); - /* Determine whether lossless transformation is perfectly - * possible for a specified image and transformation. - */ - EXTERN(boolean) jtransform_perfect_transform -- JPP((JDIMENSION image_width, JDIMENSION image_height, -+ (JDIMENSION image_width, JDIMENSION image_height, - int MCU_width, int MCU_height, -- JXFORM_CODE transform)); -+ JXFORM_CODE transform); - - /* jtransform_execute_transform used to be called - * jtransform_execute_transformation, but some compilers complain about -@@ -209,8 +209,8 @@ typedef enum { - - /* Setup decompression object to save desired markers in memory */ - EXTERN(void) jcopy_markers_setup -- JPP((j_decompress_ptr srcinfo, JCOPY_OPTION option)); -+ (j_decompress_ptr srcinfo, JCOPY_OPTION option); - /* Copy markers saved in the given source object to the destination object */ - EXTERN(void) jcopy_markers_execute -- JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo, -- JCOPY_OPTION option)); -+ (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, -+ JCOPY_OPTION option); --- -2.1.0 - diff --git a/0001-libgcrypt-and-gnutls-are-only-used-by-our-internal-e.patch b/0001-libgcrypt-and-gnutls-are-only-used-by-our-internal-e.patch deleted file mode 100644 index 149e2b8..0000000 --- a/0001-libgcrypt-and-gnutls-are-only-used-by-our-internal-e.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 3cfc0933c38a9f5383042347ef659c3d982090a3 Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Wed, 8 Oct 2014 13:22:44 +0200 -Subject: [PATCH] libgcrypt and gnutls are only used by our internal - external/neon - -...so must not be checked for if --without-system-neon - -Change-Id: If598108f98d6f94f32650feba7044224a78a4c12 -(cherry picked from commit c592e7dea2e5ac326041b78b9512600c984ccced) ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 363eb2f..ed3da6c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -9463,7 +9463,7 @@ dnl =================================================================== - dnl Check for building gnutls - dnl =================================================================== - AC_MSG_CHECKING([whether to use gnutls]) --if test "$WITH_WEBDAV" = "neon" && test "$enable_openssl" = "no"; then -+if test "$WITH_WEBDAV" = "neon" -a "$with_system_neon" = no -a "$enable_openssl" = "no"; then - AC_MSG_RESULT([yes]) - AM_PATH_LIBGCRYPT() - PKG_CHECK_MODULES(GNUTLS, [gnutls],, --- -1.9.3 - diff --git a/0001-n-up-printing-done-by-vcl-brochures-by-draw-impress.patch b/0001-n-up-printing-done-by-vcl-brochures-by-draw-impress.patch deleted file mode 100644 index f9a04b8..0000000 --- a/0001-n-up-printing-done-by-vcl-brochures-by-draw-impress.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 2c37487470c7ea76d493eb0554cf2f9458ed5075 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 23 Sep 2014 10:20:06 +0100 -Subject: [PATCH] n-up printing done by vcl, brochures by draw/impress - -Change-Id: If38365d949ad91d50138798a0a386f9543eb4f22 ---- - sd/source/ui/view/DocumentRenderer.cxx | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx -index 723aa02e..1a903f7 100644 ---- a/sd/source/ui/view/DocumentRenderer.cxx -+++ b/sd/source/ui/view/DocumentRenderer.cxx -@@ -1362,7 +1362,7 @@ private: - SdDrawDocument* pDocument = mrBase.GetMainViewShell()->GetDoc(); - bool bIsDraw = pDocument->GetDocumentType() == DOCUMENT_TYPE_DRAW; - rInfo.meOrientation = ORIENTATION_PORTRAIT; -- bool bDoDodgyHeightWidthFit = !bIsDraw && !mpOptions->IsNotes(); -+ bool bDoDodgyHeightWidthFit = mpOptions->IsBooklet() || (!bIsDraw && !mpOptions->IsNotes()); - - if( ! mpOptions->IsBooklet()) - { -@@ -1371,7 +1371,8 @@ private: - else if (rInfo.maPageSize.Width() < rInfo.maPageSize.Height()) - rInfo.meOrientation = ORIENTATION_LANDSCAPE; - -- // Draw and Notes should abide by their specified paper size -+ // Draw and Notes should abide by their specified paper size, except -+ // for booklets - Size aPaperSize; - if (!bDoDodgyHeightWidthFit) - { -@@ -1448,8 +1449,8 @@ private: - if (mpOptions->IsTime()) - aInfo.msTimeDate += GetSdrGlobalData().GetLocaleData()->getTime( Time( Time::SYSTEM ), false, false ); - -- // Draw should use specified paper size when printing -- if (mrBase.GetDocShell()->GetDocumentType() == DOCUMENT_TYPE_DRAW) -+ // Draw should use specified paper size when printing, except for booklets -+ if (!mpOptions->IsBooklet() && mrBase.GetDocShell()->GetDocumentType() == DOCUMENT_TYPE_DRAW) - { - aInfo.maPrintSize = mrBase.GetDocument()->GetSdPage(0, PK_STANDARD)->GetSize(); - maPrintSize = awt::Size(aInfo.maPrintSize.Width(), --- -1.9.3 - diff --git a/0001-never-run-autogen.sh.patch b/0001-never-run-autogen.sh.patch index 3adc728..b65f8a7 100644 --- a/0001-never-run-autogen.sh.patch +++ b/0001-never-run-autogen.sh.patch @@ -12,7 +12,7 @@ index 206f5ed..14620da 100644 --- a/Makefile.in +++ b/Makefile.in @@ -14,7 +14,7 @@ MAKECMDGOALS?=all - SHELL=/usr/bin/env bash + SHELL := @SHELL_BASH@ SRCDIR := @SRC_ROOT@ BUILDDIR := @BUILDDIR@ -GIT_BUILD := $(if $(wildcard $(SRCDIR)/.git),T) diff --git a/0001-officecfg-set-VCL.WM.ShouldSwitchWorkspace-to-false.patch b/0001-officecfg-set-VCL.WM.ShouldSwitchWorkspace-to-false.patch deleted file mode 100644 index ddd5cde..0000000 --- a/0001-officecfg-set-VCL.WM.ShouldSwitchWorkspace-to-false.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 81fb045eca1e3bb8760f8b8c437d01a3e56c8ce9 Mon Sep 17 00:00:00 2001 -From: Michael Stahl -Date: Mon, 17 Nov 2014 15:46:23 +0100 -Subject: [PATCH] officecfg: set VCL.WM.ShouldSwitchWorkspace to false - -It's quite obnoxious of applications to switch virtual desktops, and -i#45160 / i#96684 indicate the main reason for this was to avoid crashes -9 years ago; let's see if we get any crash reports with it disabled. - -Change-Id: Ib020380c9ad3b386c7cf00fb2144cb766d1f6c83 -(cherry picked from commit d93c89ddf564d0445f28e0ba552ba94975d40f2a) ---- - officecfg/registry/data/org/openoffice/VCL.xcu | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/officecfg/registry/data/org/openoffice/VCL.xcu b/officecfg/registry/data/org/openoffice/VCL.xcu -index ec48498..e5b56e8 100644 ---- a/officecfg/registry/data/org/openoffice/VCL.xcu -+++ b/officecfg/registry/data/org/openoffice/VCL.xcu -@@ -51,7 +51,7 @@ - - - -- -+ false - - - --- -1.9.3 - diff --git a/0001-rhbz-1111216-allow-to-export-an-empty-sheet-to-PDF.patch b/0001-rhbz-1111216-allow-to-export-an-empty-sheet-to-PDF.patch deleted file mode 100644 index c3c6e86..0000000 --- a/0001-rhbz-1111216-allow-to-export-an-empty-sheet-to-PDF.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0b793116deaf35ce67245c1106e5ed5a722c7560 Mon Sep 17 00:00:00 2001 -From: David Tardon -Date: Thu, 19 Jun 2014 16:57:03 +0200 -Subject: [PATCH] rhbz#1111216 allow to export an empty sheet to PDF - -This is to consolidate Calc's behaviour with the other applications, -which always present at least one page for printing / PDF export. - -Change-Id: Iedf438618020c1e6d8ded5ac950c8ca2b12ad439 ---- - sc/source/ui/unoobj/docuno.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx -index 9aeceb7..75cabca 100644 ---- a/sc/source/ui/unoobj/docuno.cxx -+++ b/sc/source/ui/unoobj/docuno.cxx -@@ -958,7 +958,7 @@ sal_Int32 SAL_CALL ScModelObj::getRendererCount(const uno::Any& aSelection, - StringRangeEnumerator aRangeEnum( aPagesStr, 0, nPages-1 ); - nSelectCount = aRangeEnum.size(); - } -- return nSelectCount; -+ return (nSelectCount > 0) ? nSelectCount : 1; - } - - static sal_Int32 lcl_GetRendererNum( sal_Int32 nSelRenderer, const OUString& rPagesStr, sal_Int32 nTotalPages ) --- -1.9.3 - diff --git a/0001-scrolling-very-slow-in-calc.patch b/0001-scrolling-very-slow-in-calc.patch deleted file mode 100644 index 30143c3..0000000 --- a/0001-scrolling-very-slow-in-calc.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 52ac64848e41c6c3bba86c98361757aaf89ef3c6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 15 Jul 2014 16:42:42 +0100 -Subject: [PATCH] scrolling very slow in calc - -even on a short spreadsheet scrolling up and down leaves -the first/last row (depending on the direction of scroll) -unchanged until the scrolling stops. - -http://people.freedesktop.org/~mst/calc_4.2_scrolling.webm - -On larger document there are rendering artifacts during scrolling which go away -after scrolling for me and mstahl, but a bunch of people can show us piles of -horribly broken spreadsheets after scrolling, esp wheel scrolling - -Revert "fdo#75026: Sometimes we need to update grid view... - -while not being active." - -This reverts commit 52cc88d6191ba0c4b6477e5c4b9c5d0f0228030d. - -Revert "fdo#68961: Check visible range during scrolling, and re-paint if necessary." - -This reverts commit e36c8a674845ab19577fc06d44b780549757e1e7. - -Revert "Repaint grid view when the visible area changes." - -This reverts commit b54c1a53b4d400b1c2d282c186af1fa8f151894e. - -Conflicts: - sc/source/ui/app/scmod.cxx - -Revert "Update visible ranges when updating the scroll bars." - -This reverts commit 391a57ef65687f2e373bac8d410e551aafa780ec. - -Change-Id: Ie170308cba18a9a74c7c72daf07dfa0a4ef7bd13 ---- - sc/source/ui/inc/tabview.hxx | 6 ------ - sc/source/ui/view/gridwin4.cxx | 2 ++ - sc/source/ui/view/tabview.cxx | 4 ---- - sc/source/ui/view/tabview3.cxx | 10 ---------- - sc/source/ui/view/tabview4.cxx | 7 ++++++- - 5 files changed, 8 insertions(+), 21 deletions(-) - -diff --git a/sc/source/ui/inc/tabview.hxx b/sc/source/ui/inc/tabview.hxx -index a5d7392..891af9e 100644 ---- a/sc/source/ui/inc/tabview.hxx -+++ b/sc/source/ui/inc/tabview.hxx -@@ -204,12 +204,6 @@ private: - - void PaintRangeFinderEntry (ScRangeFindData* pData, SCTAB nTab); - -- /** -- * Check the visible grid area to see if the visible range has changed. If -- * so, update the stored visible range, and re-paint the grid area. -- */ -- void UpdateGrid(); -- - protected: - void UpdateHeaderWidth( const ScVSplitPos* pWhich = NULL, - const SCROW* pPosY = NULL ); -diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx -index fa697ee5..a60fb82 100644 ---- a/sc/source/ui/view/gridwin4.cxx -+++ b/sc/source/ui/view/gridwin4.cxx -@@ -390,6 +390,8 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod - - OSL_ENSURE( ValidCol(nX2) && ValidRow(nY2), "GridWin Draw Bereich zu gross" ); - -+ UpdateVisibleRange(); -+ - if (nX2 < maVisibleRange.mnCol1 || nY2 < maVisibleRange.mnRow1) - return; - // unsichtbar -diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx -index aafd114..02b99b9 100644 ---- a/sc/source/ui/view/tabview.cxx -+++ b/sc/source/ui/view/tabview.cxx -@@ -1198,8 +1198,6 @@ void ScTabView::ScrollX( long nDeltaX, ScHSplitPos eWhich, bool bUpdBars ) - if (pColOutline[eWhich]) pColOutline[eWhich]->ScrollPixel( nDiff ); - if (bUpdBars) - UpdateScrollBars(); -- else -- UpdateGrid(); - } - - if (nDeltaX==1 || nDeltaX==-1) -@@ -1285,8 +1283,6 @@ void ScTabView::ScrollY( long nDeltaY, ScVSplitPos eWhich, bool bUpdBars ) - if (pRowOutline[eWhich]) pRowOutline[eWhich]->ScrollPixel( nDiff ); - if (bUpdBars) - UpdateScrollBars(); -- else -- UpdateGrid(); - } - - if (nDeltaY==1 || nDeltaY==-1) -diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx -index 7053037..50066ba 100644 ---- a/sc/source/ui/view/tabview3.cxx -+++ b/sc/source/ui/view/tabview3.cxx -@@ -2089,16 +2089,6 @@ void ScTabView::PaintRangeFinderEntry (ScRangeFindData* pData, const SCTAB nTab) - } - } - --void ScTabView::UpdateGrid() --{ -- if (!UpdateVisibleRange()) -- // Visible range hasn't changed. No need to re-paint. -- return; -- -- SC_MOD()->AnythingChanged(); // if visible area has changed -- PaintGrid(); --} -- - void ScTabView::PaintRangeFinder( long nNumber ) - { - ScInputHandler* pHdl = SC_MOD()->GetInputHdl( aViewData.GetViewShell() ); -diff --git a/sc/source/ui/view/tabview4.cxx b/sc/source/ui/view/tabview4.cxx -index 2f72a20..8528431 100644 ---- a/sc/source/ui/view/tabview4.cxx -+++ b/sc/source/ui/view/tabview4.cxx -@@ -421,7 +421,12 @@ void ScTabView::UpdateScrollBars() - } - - // set visible area for online spelling -- UpdateGrid(); -+ -+ if ( aViewData.IsActive() ) -+ { -+ if (UpdateVisibleRange()) -+ SC_MOD()->AnythingChanged(); // if visible area has changed -+ } - } - - #ifndef HDR_SLIDERSIZE --- -1.9.3 - diff --git a/0001-strip-off-hard-coded-numbering-from-outliner-preview.patch b/0001-strip-off-hard-coded-numbering-from-outliner-preview.patch deleted file mode 100644 index 3937ee4..0000000 --- a/0001-strip-off-hard-coded-numbering-from-outliner-preview.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 0f1fc84029475565fda1bad43d99a114391afdc7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 11 Nov 2014 13:33:53 +0000 -Subject: [PATCH] strip off hard-coded numbering from outliner preview on load - -how to reproduce an outline which won't update wrt the numbering style - -file->new->presentation -view->master->slide master -select first entry of outliner, i.e. "Click to edit the outline text format" -make it underlined, save, reload -view->master->slide master -now use bullet and numbering -set level 1 to e.g. none, ok -nothing happens to the outliner. It remains "stuck" with its default numbering - -Change-Id: I95708b1f1c9cc74ae5129dbfad8ca0d37b00fa13 ---- - sd/source/filter/xml/sdxmlwrp.cxx | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -diff --git a/sd/source/filter/xml/sdxmlwrp.cxx b/sd/source/filter/xml/sdxmlwrp.cxx -index fd8cacc..ad1cd23 100644 ---- a/sd/source/filter/xml/sdxmlwrp.cxx -+++ b/sd/source/filter/xml/sdxmlwrp.cxx -@@ -55,6 +55,7 @@ - #include - #include - #include -+#include - #include - - // include necessary for XML progress bar at load time -@@ -444,6 +445,7 @@ void fixupOutlinePlaceholderNumberingDepths(SdDrawDocument* pDoc) - const sal_Int32 nParaCount = pOutliner->GetParagraphCount(); - for (sal_Int32 j = 0; j < nParaCount; ++j) - { -+ //Make sure the depth of the paragraph matches that of the outline style it previews - const sal_Int16 nExpectedDepth = j; - if (nExpectedDepth != pOutliner->GetDepth(j)) - { -@@ -451,10 +453,21 @@ void fixupOutlinePlaceholderNumberingDepths(SdDrawDocument* pDoc) - pOutliner->SetDepth(p, nExpectedDepth); - bInconsistent = true; - } -+ -+ //If the preview has hard-coded bullets/numbering then they must -+ //be stripped to reveal the true underlying styles attributes -+ SfxItemSet aAttrs(pOutliner->GetParaAttribs(j)); -+ if (aAttrs.GetItemState(EE_PARA_NUMBULLET) == SFX_ITEM_SET) -+ { -+ aAttrs.ClearItem(EE_PARA_NUMBULLET); -+ pOutliner->SetParaAttribs(j, aAttrs); -+ bInconsistent = true; -+ } -+ - } - if (bInconsistent) - { -- SAL_WARN("sd.filter", "Fixing inconsistent outline numbering placeholder preview depth"); -+ SAL_WARN("sd.filter", "Fixing inconsistent outline numbering placeholder preview"); - pMasterOutline->SetOutlinerParaObject(pOutliner->CreateParaObject(0, nParaCount)); - } - pOutliner->Clear(); --- -1.9.3 - diff --git a/0001-table-layout-cache-returns-wrong-rectangle.patch b/0001-table-layout-cache-returns-wrong-rectangle.patch deleted file mode 100644 index 628baec..0000000 --- a/0001-table-layout-cache-returns-wrong-rectangle.patch +++ /dev/null @@ -1,79 +0,0 @@ -From f79f3d1322b396f5f45ccd7742015749e93ac57b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 13 Nov 2014 13:32:35 +0000 -Subject: [PATCH] table layout cache returns wrong rectangle - -the layouter can modify its input rectangle to grow -it to the necessary size to contain the layout - -but we're returning the input rectangle when the inputs are the same as the -last call, not returning the output rectangle. - -cache the output rect for a given input and return that - -so now insert->table in impress and tab so extra cells are added and -then select the table and the blue border contains the whole -table, not just the first two rows - -Change-Id: I4f09594d82c1597204afbd059e175af9bf8e2527 -(cherry picked from commit 98cd2671f0a215ced6203372ac673e2380031ac0) ---- - svx/source/table/svdotable.cxx | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - -diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx -index d49cfb3..fbd532a 100644 ---- a/svx/source/table/svdotable.cxx -+++ b/svx/source/table/svdotable.cxx -@@ -244,7 +244,8 @@ public: - virtual bool isInUse() SAL_OVERRIDE; - private: - static SdrTableObjImpl* lastLayoutTable; -- static Rectangle lastLayoutRectangle; -+ static Rectangle lastLayoutInputRectangle; -+ static Rectangle lastLayoutResultRectangle; - static bool lastLayoutFitWidth; - static bool lastLayoutFitHeight; - static WritingMode lastLayoutMode; -@@ -253,7 +254,8 @@ private: - }; - - SdrTableObjImpl* SdrTableObjImpl::lastLayoutTable = NULL; --Rectangle SdrTableObjImpl::lastLayoutRectangle; -+Rectangle SdrTableObjImpl::lastLayoutInputRectangle; -+Rectangle SdrTableObjImpl::lastLayoutResultRectangle; - bool SdrTableObjImpl::lastLayoutFitWidth; - bool SdrTableObjImpl::lastLayoutFitHeight; - WritingMode SdrTableObjImpl::lastLayoutMode; -@@ -696,14 +698,14 @@ void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHe - // Optimization: SdrTableObj::SetChanged() can call this very often, repeatedly - // with the same settings, noticeably increasing load time. Skip if already done. - WritingMode writingMode = mpTableObj->GetWritingMode(); -- if( lastLayoutTable != this || lastLayoutRectangle != rArea -+ if( lastLayoutTable != this || lastLayoutInputRectangle != rArea - || lastLayoutFitWidth != bFitWidth || lastLayoutFitHeight != bFitHeight - || lastLayoutMode != writingMode - || lastRowCount != getRowCount() - || lastColCount != getColumnCount() ) - { - lastLayoutTable = this; -- lastLayoutRectangle = rArea; -+ lastLayoutInputRectangle = rArea; - lastLayoutFitWidth = bFitWidth; - lastLayoutFitHeight = bFitHeight; - lastLayoutMode = writingMode; -@@ -711,6 +713,11 @@ void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHe - lastColCount = getColumnCount(); - TableModelNotifyGuard aGuard( mxTable.get() ); - mpLayouter->LayoutTable( rArea, bFitWidth, bFitHeight ); -+ lastLayoutResultRectangle = rArea; -+ } -+ else -+ { -+ rArea = lastLayoutResultRectangle; - } - } - } --- -1.9.3 - diff --git a/0001-valgrind-check-return-of-convertDateTime-before-usin.patch b/0001-valgrind-check-return-of-convertDateTime-before-usin.patch deleted file mode 100644 index 5acad14..0000000 --- a/0001-valgrind-check-return-of-convertDateTime-before-usin.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 4224a7656915b20819d9eb712160565172567a04 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Thu, 13 Nov 2014 10:22:08 +0000 -Subject: [PATCH] valgrind: check return of convertDateTime before using fDate - -Change-Id: I8b95e95218beefe19e881c9d055323d0abec49c7 ---- - sc/source/filter/xml/xmlcelli.cxx | 18 ++++++++++-------- - 1 file changed, 10 insertions(+), 8 deletions(-) - -diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx -index 7c2c190..68fb1fe 100644 ---- a/sc/source/filter/xml/xmlcelli.cxx -+++ b/sc/source/filter/xml/xmlcelli.cxx -@@ -935,14 +935,16 @@ void ScXMLTableRowCellContext::SetAnnotation(const ScAddress& rPos) - if( pNote ) - { - double fDate; -- rXMLImport.GetMM100UnitConverter().convertDateTime( fDate, mxAnnotationData->maCreateDate ); -- SvNumberFormatter* pNumForm = pDoc->GetFormatTable(); -- sal_uInt32 nfIndex = pNumForm->GetFormatIndex( NF_DATE_SYS_DDMMYYYY, LANGUAGE_SYSTEM ); -- OUString aDate; -- Color* pColor = 0; -- Color** ppColor = &pColor; -- pNumForm->GetOutputString( fDate, nfIndex, aDate, ppColor ); -- pNote->SetDate( aDate ); -+ if (rXMLImport.GetMM100UnitConverter().convertDateTime(fDate, mxAnnotationData->maCreateDate)) -+ { -+ SvNumberFormatter* pNumForm = pDoc->GetFormatTable(); -+ sal_uInt32 nfIndex = pNumForm->GetFormatIndex( NF_DATE_SYS_DDMMYYYY, LANGUAGE_SYSTEM ); -+ OUString aDate; -+ Color* pColor = 0; -+ Color** ppColor = &pColor; -+ pNumForm->GetOutputString( fDate, nfIndex, aDate, ppColor ); -+ pNote->SetDate( aDate ); -+ } - pNote->SetAuthor( mxAnnotationData->maAuthor ); - } - --- -1.9.3 - diff --git a/0002-Linux-AArch64-port.patch b/0002-Linux-AArch64-port.patch deleted file mode 100644 index db7bfa6..0000000 --- a/0002-Linux-AArch64-port.patch +++ /dev/null @@ -1,1497 +0,0 @@ -From 09f49fc55104ee7b0fe18dbb5068a4cad7d9fc25 Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Fri, 29 Aug 2014 17:17:42 +0200 -Subject: [PATCH 2/2] Linux AArch64 port - -(cherry picked from commit 235fa0334e0b45c736b636ba1689e2f8c7458697) -Conflicts: - bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx - bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx - bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx - configure.ac - -Change-Id: I37044a37348b203944a8eb9d2204e619055f069d ---- - bridges/Library_cpp_uno.mk | 5 + - bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx | 310 ++++++++++++++ - bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx | 87 ++++ - .../gcc3_linux_aarch64/callvirtualfunction.cxx | 66 +++ - .../gcc3_linux_aarch64/callvirtualfunction.hxx | 33 ++ - .../source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx | 464 +++++++++++++++++++++ - .../source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx | 376 +++++++++++++++++ - configure.ac | 6 + - desktop/source/deployment/misc/dp_platform.cxx | 4 +- - jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx | 2 + - solenv/gbuild/platform/LINUX_AARCH64_GCC.mk | 14 + - 11 files changed, 1366 insertions(+), 1 deletion(-) - create mode 100644 bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx - create mode 100644 bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx - create mode 100644 bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.cxx - create mode 100644 bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.hxx - create mode 100644 bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx - create mode 100644 bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx - create mode 100644 solenv/gbuild/platform/LINUX_AARCH64_GCC.mk - -diff --git a/bridges/Library_cpp_uno.mk b/bridges/Library_cpp_uno.mk -index c6ab9a0..0fcaf6b 100644 ---- a/bridges/Library_cpp_uno.mk -+++ b/bridges/Library_cpp_uno.mk -@@ -35,6 +35,11 @@ $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,gcc3_uno)) : \ - EXTRAOBJECTLISTS += $(call gb_CustomTarget_get_workdir,bridges/source/cpp_uno/gcc3_linux_arm)/armhelper.objectlist - endif - -+else ifeq ($(OS)-$(CPUNAME),LINUX-AARCH64) -+ -+bridges_SELECTED_BRIDGE := gcc3_linux_aarch64 -+bridge_exception_objects := abi callvirtualfunction cpp2uno uno2cpp -+ - else ifeq ($(OS)-$(CPUNAME),LINUX-AXP) - - bridges_SELECTED_BRIDGE := gcc3_linux_alpha -diff --git a/bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx b/bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx -new file mode 100644 -index 0000000..c177b22 ---- /dev/null -+++ b/bridges/source/cpp_uno/gcc3_linux_aarch64/abi.cxx -@@ -0,0 +1,310 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+namespace { -+ -+OUString toUnoName(char const * name) { -+ assert(name != 0); -+ OUStringBuffer b; -+ bool scoped = *name == 'N'; -+ if (scoped) { -+ ++name; -+ } -+ for (;;) { -+ assert(*name >= '0' && *name <= '9'); -+ std::size_t n = *name++ - '0'; -+ while (*name >= '0' && *name <= '9') { -+ n = 10 * n + (*name++ - '0'); -+ } -+ b.appendAscii(name, n); -+ name += n; -+ if (!scoped) { -+ assert(*name == 0); -+ break; -+ } -+ if (*name == 'E') { -+ assert(name[1] == 0); -+ break; -+ } -+ b.append('.'); -+ } -+ return b.makeStringAndClear(); -+} -+ -+class Rtti { -+public: -+ Rtti(): app_(dlopen(0, RTLD_LAZY)) {} -+ -+ ~Rtti() { dlclose(app_); } -+ -+ std::type_info * getRtti(typelib_TypeDescription const & type); -+ -+private: -+ typedef boost::unordered_map Map; -+ -+ void * app_; -+ -+ osl::Mutex mutex_; -+ Map map_; -+}; -+ -+std::type_info * Rtti::getRtti(typelib_TypeDescription const & type) { -+ OUString unoName(type.pTypeName); -+ osl::MutexGuard g(mutex_); -+ Map::iterator i(map_.find(unoName)); -+ if (i == map_.end()) { -+ OStringBuffer b; -+ b.append("_ZTIN"); -+ for (sal_Int32 j = 0; j != -1;) { -+ OString t( -+ OUStringToOString( -+ unoName.getToken(0, '.', j), RTL_TEXTENCODING_ASCII_US)); -+ b.append(t.getLength()); -+ b.append(t); -+ } -+ b.append('E'); -+ OString sym(b.makeStringAndClear()); -+ std::type_info * rtti = static_cast( -+ dlsym(app_, sym.getStr())); -+ if (rtti == 0) { -+ char const * rttiName = sym.getStr() + std::strlen("_ZTI"); -+ assert(type.eTypeClass == typelib_TypeClass_EXCEPTION); -+ typelib_CompoundTypeDescription const & ctd -+ = reinterpret_cast( -+ type); -+ if (ctd.pBaseTypeDescription == 0) { -+ rtti = new __cxxabiv1::__class_type_info(strdup(rttiName)); -+ } else { -+ std::type_info * base = getRtti( -+ ctd.pBaseTypeDescription->aBase); -+ rtti = new __cxxabiv1::__si_class_type_info( -+ strdup(rttiName), -+ static_cast<__cxxabiv1::__class_type_info *>(base)); -+ } -+ } -+ i = map_.insert(Map::value_type(unoName, rtti)).first; -+ } -+ return i->second; -+} -+ -+struct theRttiFactory: public rtl::Static {}; -+ -+std::type_info * getRtti(typelib_TypeDescription const & type) { -+ return theRttiFactory::get().getRtti(type); -+} -+ -+extern "C" void _GLIBCXX_CDTOR_CALLABI deleteException(void * exception) { -+ abi_aarch64::__cxa_exception * header = -+ static_cast(exception) - 1; -+ OUString unoName(toUnoName(header->exceptionType->name())); -+ typelib_TypeDescription * td = 0; -+ typelib_typedescription_getByName(&td, unoName.pData); -+ assert(td != 0); -+ uno_destructData(exception, td, &css::uno::cpp_release); -+ typelib_typedescription_release(td); -+} -+ -+enum StructKind { -+ STRUCT_KIND_EMPTY, STRUCT_KIND_FLOAT, STRUCT_KIND_DOUBLE, STRUCT_KIND_POD, -+ STRUCT_KIND_DTOR -+}; -+ -+StructKind getStructKind(typelib_CompoundTypeDescription const * type) { -+ StructKind k = type->pBaseTypeDescription == 0 -+ ? STRUCT_KIND_EMPTY : getStructKind(type->pBaseTypeDescription); -+ for (sal_Int32 i = 0; i != type->nMembers; ++i) { -+ StructKind k2 = StructKind(); -+ switch (type->ppTypeRefs[i]->eTypeClass) { -+ case typelib_TypeClass_BOOLEAN: -+ case typelib_TypeClass_BYTE: -+ case typelib_TypeClass_SHORT: -+ case typelib_TypeClass_UNSIGNED_SHORT: -+ case typelib_TypeClass_LONG: -+ case typelib_TypeClass_UNSIGNED_LONG: -+ case typelib_TypeClass_HYPER: -+ case typelib_TypeClass_UNSIGNED_HYPER: -+ case typelib_TypeClass_CHAR: -+ case typelib_TypeClass_ENUM: -+ k2 = STRUCT_KIND_POD; -+ break; -+ case typelib_TypeClass_FLOAT: -+ k2 = STRUCT_KIND_FLOAT; -+ break; -+ case typelib_TypeClass_DOUBLE: -+ k2 = STRUCT_KIND_DOUBLE; -+ break; -+ case typelib_TypeClass_STRING: -+ case typelib_TypeClass_TYPE: -+ case typelib_TypeClass_ANY: -+ case typelib_TypeClass_SEQUENCE: -+ case typelib_TypeClass_INTERFACE: -+ k2 = STRUCT_KIND_DTOR; -+ break; -+ case typelib_TypeClass_STRUCT: -+ { -+ typelib_TypeDescription * td = 0; -+ TYPELIB_DANGER_GET(&td, type->ppTypeRefs[i]); -+ k2 = getStructKind( -+ reinterpret_cast( -+ td)); -+ TYPELIB_DANGER_RELEASE(td); -+ break; -+ } -+ default: -+ assert(false); -+ } -+ switch (k2) { -+ case STRUCT_KIND_EMPTY: -+ // this means an empty sub-object, which nevertheless obtains a byte -+ // of storage (TODO: does it?), so the full object cannot be a -+ // homogenous collection of float or double -+ case STRUCT_KIND_POD: -+ assert(k != STRUCT_KIND_DTOR); -+ k = STRUCT_KIND_POD; -+ break; -+ case STRUCT_KIND_FLOAT: -+ case STRUCT_KIND_DOUBLE: -+ if (k == STRUCT_KIND_EMPTY) { -+ k = k2; -+ } else if (k != k2) { -+ assert(k != STRUCT_KIND_DTOR); -+ k = STRUCT_KIND_POD; -+ } -+ break; -+ case STRUCT_KIND_DTOR: -+ return STRUCT_KIND_DTOR; -+ } -+ } -+ return k; -+} -+ -+} -+ -+namespace abi_aarch64 { -+ -+void mapException( -+ __cxa_exception * exception, uno_Any * any, uno_Mapping * mapping) -+{ -+ assert(exception != 0); -+ OUString unoName(toUnoName(exception->exceptionType->name())); -+ typelib_TypeDescription * td = 0; -+ typelib_typedescription_getByName(&td, unoName.pData); -+ if (td == 0) { -+ css::uno::RuntimeException e( -+ "exception type not found: " + unoName, -+ css::uno::Reference()); -+ uno_type_any_constructAndConvert( -+ any, &e, -+ cppu::UnoType::get().getTypeLibType(), -+ mapping); -+ } else { -+ uno_any_constructAndConvert(any, exception->adjustedPtr, td, mapping); -+ typelib_typedescription_release(td); -+ } -+} -+ -+void raiseException(uno_Any * any, uno_Mapping * mapping) { -+ typelib_TypeDescription * td = 0; -+ TYPELIB_DANGER_GET(&td, any->pType); -+ if (td == 0) { -+ throw css::uno::RuntimeException( -+ "no typedescription for " + OUString(any->pType->pTypeName), -+ css::uno::Reference()); -+ } -+ void * exc = __cxxabiv1::__cxa_allocate_exception(td->nSize); -+ uno_copyAndConvertData(exc, any->pData, td, mapping); -+ uno_any_destruct(any, 0); -+ std::type_info * rtti = getRtti(*td); -+ TYPELIB_DANGER_RELEASE(td); -+ __cxxabiv1::__cxa_throw(exc, rtti, deleteException); -+} -+ -+ReturnKind getReturnKind(typelib_TypeDescription const * type) { -+ switch (type->eTypeClass) { -+ default: -+ assert(false); -+ // fall through to avoid warnings -+ case typelib_TypeClass_VOID: -+ case typelib_TypeClass_BOOLEAN: -+ case typelib_TypeClass_BYTE: -+ case typelib_TypeClass_SHORT: -+ case typelib_TypeClass_UNSIGNED_SHORT: -+ case typelib_TypeClass_LONG: -+ case typelib_TypeClass_UNSIGNED_LONG: -+ case typelib_TypeClass_HYPER: -+ case typelib_TypeClass_UNSIGNED_HYPER: -+ case typelib_TypeClass_FLOAT: -+ case typelib_TypeClass_DOUBLE: -+ case typelib_TypeClass_CHAR: -+ case typelib_TypeClass_ENUM: -+ assert(type->nSize <= 16); -+ return RETURN_KIND_REG; -+ case typelib_TypeClass_STRING: -+ case typelib_TypeClass_TYPE: -+ case typelib_TypeClass_ANY: -+ case typelib_TypeClass_SEQUENCE: -+ case typelib_TypeClass_INTERFACE: -+ return RETURN_KIND_INDIRECT; -+ case typelib_TypeClass_STRUCT: -+ if (type->nSize > 16) { -+ return RETURN_KIND_INDIRECT; -+ } -+ switch (getStructKind( -+ reinterpret_cast( -+ type))) -+ { -+ case STRUCT_KIND_FLOAT: -+ return RETURN_KIND_HFA_FLOAT; -+ case STRUCT_KIND_DOUBLE: -+ return RETURN_KIND_HFA_DOUBLE; -+ case STRUCT_KIND_DTOR: -+ return RETURN_KIND_INDIRECT; -+ default: -+ return RETURN_KIND_REG; -+ } -+ } -+} -+ -+} -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx b/bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx -new file mode 100644 -index 0000000..2e3ce61 ---- /dev/null -+++ b/bridges/source/cpp_uno/gcc3_linux_aarch64/abi.hxx -@@ -0,0 +1,87 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#ifndef INCLUDED_BRIDGES_SOURCE_CPP_UNO_GCC3_LINUX_AARCH64_ABI_HXX -+#define INCLUDED_BRIDGES_SOURCE_CPP_UNO_GCC3_LINUX_AARCH64_ABI_HXX -+ -+#include -+ -+#include -+#include -+ -+#include -+#include -+#include -+ -+namespace abi_aarch64 { -+ -+// Following declarations from libstdc++-v3/libsupc++/unwind-cxx.h and -+// lib/gcc/*-*-*/*/include/unwind.h: -+ -+struct _Unwind_Exception -+{ -+ unsigned exception_class __attribute__((__mode__(__DI__))); -+ void * exception_cleanup; -+ unsigned private_1 __attribute__((__mode__(__word__))); -+ unsigned private_2 __attribute__((__mode__(__word__))); -+} __attribute__((__aligned__)); -+ -+struct __cxa_exception -+{ -+ std::type_info *exceptionType; -+ void (*exceptionDestructor)(void *); -+ -+ std::unexpected_handler unexpectedHandler; -+ std::terminate_handler terminateHandler; -+ -+ __cxa_exception *nextException; -+ -+ int handlerCount; -+ -+ int handlerSwitchValue; -+ const unsigned char *actionRecord; -+ const unsigned char *languageSpecificData; -+ void *catchTemp; -+ void *adjustedPtr; -+ -+ _Unwind_Exception unwindHeader; -+}; -+ -+struct __cxa_eh_globals -+{ -+ __cxa_exception *caughtExceptions; -+ unsigned int uncaughtExceptions; -+}; -+ -+void mapException( -+ __cxa_exception * exception, uno_Any * any, uno_Mapping * mapping); -+ -+void raiseException(uno_Any * any, uno_Mapping * mapping); -+ -+enum ReturnKind { -+ RETURN_KIND_REG, RETURN_KIND_HFA_FLOAT, RETURN_KIND_HFA_DOUBLE, -+ RETURN_KIND_INDIRECT }; -+ -+ReturnKind getReturnKind(typelib_TypeDescription const * type); -+ -+} -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.cxx b/bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.cxx -new file mode 100644 -index 0000000..09f7696 ---- /dev/null -+++ b/bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.cxx -@@ -0,0 +1,66 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#include -+ -+#include -+ -+#include -+#include -+ -+#include -+ -+void callVirtualFunction( -+ unsigned long function, unsigned long * gpr, unsigned long * fpr, -+ unsigned long * stack, sal_Int32 sp, void * ret) -+{ -+ void * stackargs; -+ if (sp != 0) { -+ stackargs = alloca(((sp + 1) >> 1) * 16); -+ std::memcpy(stackargs, stack, sp * 8); -+ } -+ asm volatile( -+ "ldp x0, x1, [%[gpr_]]\n\t" -+ "ldp x2, x3, [%[gpr_], #16]\n\t" -+ "ldp x4, x5, [%[gpr_], #32]\n\t" -+ "ldp x6, x7, [%[gpr_], #48]\n\t" -+ "ldr x8, %[ret_]\n\t" -+ "ldr x9, %[function_]\n\t" -+ "ldp d0, d1, [%[fpr_]]\n\t" -+ "ldp d2, d3, [%[fpr_], #16]\n\t" -+ "ldp d4, d5, [%[fpr_], #32]\n\t" -+ "ldp d6, d7, [%[fpr_], #48]\n\t" -+ "blr x9\n\t" -+ "stp x0, x1, [%[gpr_]]\n\t" -+ "stp d0, d1, [%[fpr_]]\n\t" -+ "stp d2, d3, [%[fpr_], #16]\n\t" -+ :: [gpr_]"r" (gpr), [fpr_]"r" (fpr), [function_]"m" (function), -+ [ret_]"m" (ret), -+ "m" (stackargs) // dummy input to prevent optimizing the alloca away -+ : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", -+ "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18"/*TODO?*/, "v0", -+ "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8", "v9", "v10", "v11", -+ "v12", "v13", "v14", "v15", "v16", "v17", "v18", "v19", "v20", "v21", -+ "v22", "v23", "v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31", -+ "memory" -+ // only the bottom 64 bits of v8--15 need to be preserved by callees -+ ); -+} -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.hxx b/bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.hxx -new file mode 100644 -index 0000000..b1b003f ---- /dev/null -+++ b/bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.hxx -@@ -0,0 +1,33 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#ifndef INCLUDED_BRIDGES_SOURCE_CPP_UNO_GCC3_LINUX_AARCH64_CALLVIRTUALFUNCTION_HXX -+#define INCLUDED_BRIDGES_SOURCE_CPP_UNO_GCC3_LINUX_AARCH64_CALLVIRTUALFUNCTION_HXX -+ -+#include -+ -+#include -+ -+void callVirtualFunction( -+ unsigned long function, unsigned long * gpr, unsigned long * fpr, -+ unsigned long * stack, sal_Int32 sp, void * ret); -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx -new file mode 100644 -index 0000000..a73d9be ---- /dev/null -+++ b/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx -@@ -0,0 +1,464 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include -+ -+extern "C" void vtableSlotCall_(); -+ -+namespace { -+ -+void call( -+ bridges::cpp_uno::shared::CppInterfaceProxy * proxy, -+ css::uno::TypeDescription const & description, -+ typelib_TypeDescriptionReference * returnType, sal_Int32 count, -+ typelib_MethodParameter * parameters, unsigned long * gpr, -+ unsigned long * fpr, unsigned long * stack, void * indirectRet) -+{ -+ typelib_TypeDescription * rtd = 0; -+ if (returnType != 0) { -+ TYPELIB_DANGER_GET(&rtd, returnType); -+ } -+ abi_aarch64::ReturnKind retKind = rtd == 0 -+ ? abi_aarch64::RETURN_KIND_REG : abi_aarch64::getReturnKind(rtd); -+ bool retConv = rtd != 0 -+ && bridges::cpp_uno::shared::relatesToInterfaceType(rtd); -+ void * retin = retKind == abi_aarch64::RETURN_KIND_INDIRECT && !retConv -+ ? indirectRet : rtd == 0 ? 0 : alloca(rtd->nSize); -+ void ** args = static_cast< void ** >(alloca(count * sizeof (void *))); -+ void ** cppArgs = static_cast< void ** >(alloca(count * sizeof (void *))); -+ typelib_TypeDescription ** argtds = static_cast( -+ alloca(count * sizeof (typelib_TypeDescription *))); -+ sal_Int32 ngpr = 1; -+ sal_Int32 nfpr = 0; -+ sal_Int32 sp = 0; -+ for (sal_Int32 i = 0; i != count; ++i) { -+ if (!parameters[i].bOut -+ && bridges::cpp_uno::shared::isSimpleType(parameters[i].pTypeRef)) -+ { -+ switch (parameters[i].pTypeRef->eTypeClass) { -+ case typelib_TypeClass_BOOLEAN: -+ case typelib_TypeClass_BYTE: -+ case typelib_TypeClass_SHORT: -+ case typelib_TypeClass_UNSIGNED_SHORT: -+ case typelib_TypeClass_LONG: -+ case typelib_TypeClass_UNSIGNED_LONG: -+ case typelib_TypeClass_HYPER: -+ case typelib_TypeClass_UNSIGNED_HYPER: -+ case typelib_TypeClass_CHAR: -+ case typelib_TypeClass_ENUM: -+ args[i] = ngpr == 8 ? stack + sp++ : gpr + ngpr++; -+ break; -+ case typelib_TypeClass_FLOAT: -+ case typelib_TypeClass_DOUBLE: -+ args[i] = nfpr == 8 ? stack + sp++ : fpr + nfpr++; -+ break; -+ default: -+ assert(false); -+ } -+ argtds[i] = 0; -+ } else { -+ cppArgs[i] = reinterpret_cast( -+ ngpr == 8 ? stack[sp++] : gpr[ngpr++]); -+ typelib_TypeDescription * ptd = 0; -+ TYPELIB_DANGER_GET(&ptd, parameters[i].pTypeRef); -+ if (!parameters[i].bIn) { -+ args[i] = alloca(ptd->nSize); -+ argtds[i] = ptd; -+ } else if (bridges::cpp_uno::shared::relatesToInterfaceType(ptd)) { -+ args[i] = alloca(ptd->nSize); -+ uno_copyAndConvertData( -+ args[i], cppArgs[i], ptd, proxy->getBridge()->getCpp2Uno()); -+ argtds[i] = ptd; -+ } else { -+ args[i] = cppArgs[i]; -+ argtds[i] = 0; -+ TYPELIB_DANGER_RELEASE(ptd); -+ } -+ } -+ } -+ uno_Any exc; -+ uno_Any * pexc = &exc; -+ proxy->getUnoI()->pDispatcher( -+ proxy->getUnoI(), description.get(), retin, args, &pexc); -+ if (pexc != 0) { -+ for (sal_Int32 i = 0; i != count; ++i) { -+ if (argtds[i] != 0) { -+ if (parameters[i].bIn) { -+ uno_destructData(args[i], argtds[i], 0); -+ } -+ TYPELIB_DANGER_RELEASE(argtds[i]); -+ } -+ } -+ if (rtd != 0) { -+ TYPELIB_DANGER_RELEASE(rtd); -+ } -+ abi_aarch64::raiseException(&exc, proxy->getBridge()->getUno2Cpp()); -+ } -+ for (sal_Int32 i = 0; i != count; ++i) { -+ if (argtds[i] != 0) { -+ if (parameters[i].bOut) { -+ uno_destructData( -+ cppArgs[i], argtds[i], -+ reinterpret_cast(css::uno::cpp_release)); -+ uno_copyAndConvertData( -+ cppArgs[i], args[i], argtds[i], -+ proxy->getBridge()->getUno2Cpp()); -+ } -+ uno_destructData(args[i], argtds[i], 0); -+ TYPELIB_DANGER_RELEASE(argtds[i]); -+ } -+ } -+ void * retout = 0; // avoid false -Werror=maybe-uninitialized -+ switch (retKind) { -+ case abi_aarch64::RETURN_KIND_REG: -+ switch (rtd == 0 ? typelib_TypeClass_VOID : rtd->eTypeClass) { -+ case typelib_TypeClass_VOID: -+ break; -+ case typelib_TypeClass_BOOLEAN: -+ case typelib_TypeClass_BYTE: -+ case typelib_TypeClass_SHORT: -+ case typelib_TypeClass_UNSIGNED_SHORT: -+ case typelib_TypeClass_LONG: -+ case typelib_TypeClass_UNSIGNED_LONG: -+ case typelib_TypeClass_HYPER: -+ case typelib_TypeClass_UNSIGNED_HYPER: -+ case typelib_TypeClass_CHAR: -+ case typelib_TypeClass_ENUM: -+ std::memcpy(gpr, retin, rtd->nSize); -+ assert(!retConv); -+ break; -+ case typelib_TypeClass_FLOAT: -+ case typelib_TypeClass_DOUBLE: -+ std::memcpy(fpr, retin, rtd->nSize); -+ assert(!retConv); -+ break; -+ case typelib_TypeClass_STRUCT: -+ if (retConv) { -+ retout = gpr; -+ } else { -+ std::memcpy(gpr, retin, rtd->nSize); -+ } -+ break; -+ default: -+ assert(false); -+ } -+ break; -+ case abi_aarch64::RETURN_KIND_HFA_FLOAT: -+ assert(rtd != 0); -+ switch (rtd->nSize) { -+ case 16: -+ std::memcpy(fpr + 3, static_cast(retin) + 12, 4); -+ // fall through -+ case 12: -+ std::memcpy(fpr + 2, static_cast(retin) + 8, 4); -+ // fall through -+ case 8: -+ std::memcpy(fpr + 1, static_cast(retin) + 4, 4); -+ // fall through -+ case 4: -+ std::memcpy(fpr, retin, 4); -+ break; -+ default: -+ assert(false); -+ } -+ assert(!retConv); -+ break; -+ case abi_aarch64::RETURN_KIND_HFA_DOUBLE: -+ assert(rtd != 0); -+ std::memcpy(fpr, retin, rtd->nSize); -+ assert(!retConv); -+ break; -+ case abi_aarch64::RETURN_KIND_INDIRECT: -+ retout = indirectRet; -+ break; -+ } -+ if (retConv) { -+ uno_copyAndConvertData( -+ retout, retin, rtd, proxy->getBridge()->getUno2Cpp()); -+ uno_destructData(retin, rtd, 0); -+ } -+ if (rtd != 0) { -+ TYPELIB_DANGER_RELEASE(rtd); -+ } -+} -+ -+extern "C" void vtableCall( -+ sal_Int32 functionIndex, sal_Int32 vtableOffset, -+ unsigned long * gpr, unsigned long * fpr, unsigned long * stack, -+ void * indirectRet) -+{ -+ bridges::cpp_uno::shared::CppInterfaceProxy * proxy -+ = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy( -+ reinterpret_cast(gpr[0]) - vtableOffset); -+ typelib_InterfaceTypeDescription * type = proxy->getTypeDescr(); -+ assert(functionIndex < type->nMapFunctionIndexToMemberIndex); -+ sal_Int32 pos = type->pMapFunctionIndexToMemberIndex[functionIndex]; -+ css::uno::TypeDescription desc(type->ppAllMembers[pos]); -+ switch (desc.get()->eTypeClass) { -+ case typelib_TypeClass_INTERFACE_ATTRIBUTE: -+ if (type->pMapMemberIndexToFunctionIndex[pos] == functionIndex) { -+ // Getter: -+ call( -+ proxy, desc, -+ reinterpret_cast( -+ desc.get())->pAttributeTypeRef, -+ 0, 0, gpr, fpr, stack, indirectRet); -+ } else { -+ // Setter: -+ typelib_MethodParameter param = { -+ 0, -+ reinterpret_cast( -+ desc.get())->pAttributeTypeRef, -+ true, false }; -+ call(proxy, desc, 0, 1, ¶m, gpr, fpr, stack, indirectRet); -+ } -+ break; -+ case typelib_TypeClass_INTERFACE_METHOD: -+ switch (functionIndex) { -+ case 1: -+ proxy->acquireProxy(); -+ break; -+ case 2: -+ proxy->releaseProxy(); -+ break; -+ case 0: -+ { -+ typelib_TypeDescription * td = 0; -+ TYPELIB_DANGER_GET( -+ &td, -+ (reinterpret_cast(gpr[1]) -+ ->getTypeLibType())); -+ if (td != 0 && td->eTypeClass == typelib_TypeClass_INTERFACE) { -+ css::uno::XInterface * ifc = 0; -+ proxy->getBridge()->getCppEnv()->getRegisteredInterface( -+ proxy->getBridge()->getCppEnv(), -+ reinterpret_cast(&ifc), proxy->getOid().pData, -+ reinterpret_cast( -+ td)); -+ if (ifc != 0) { -+ uno_any_construct( -+ reinterpret_cast(indirectRet), &ifc, td, -+ reinterpret_cast( -+ css::uno::cpp_acquire)); -+ ifc->release(); -+ TYPELIB_DANGER_RELEASE(td); -+ break; -+ } -+ TYPELIB_DANGER_RELEASE(td); -+ } -+ } -+ // fall through -+ default: -+ call( -+ proxy, desc, -+ reinterpret_cast( -+ desc.get())->pReturnTypeRef, -+ reinterpret_cast( -+ desc.get())->nParams, -+ reinterpret_cast( -+ desc.get())->pParams, -+ gpr, fpr, stack, indirectRet); -+ } -+ break; -+ default: -+ assert(false); -+ } -+} -+ -+struct aarch64_va_list { -+ void * stack; -+ void * gr_top; -+ void * vr_top; -+ int gr_offs; -+ int vr_offs; -+}; -+ -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wvolatile-register-var" -+extern "C" void vtableSlotCall( -+ unsigned long gpr0, unsigned long gpr1, unsigned long gpr2, -+ unsigned long gpr3, unsigned long gpr4, unsigned long gpr5, -+ unsigned long gpr6, unsigned long gpr7, double fpr0, double fpr1, -+ double fpr2, double fpr3, double fpr4, double fpr5, double fpr6, -+ double fpr7, ...) -+{ -+ register void * volatile indirectRet asm ("x8"); -+ register sal_Int32 volatile functionIndex asm ("x9"); -+ register sal_Int32 volatile vtableOffset asm ("x10"); -+ va_list ap; -+ va_start(ap, fpr7); -+ assert(sizeof (va_list) == sizeof (aarch64_va_list)); -+ unsigned long gpr[8]; -+ gpr[0] = gpr0; -+ gpr[1] = gpr1; -+ gpr[2] = gpr2; -+ gpr[3] = gpr3; -+ gpr[4] = gpr4; -+ gpr[5] = gpr5; -+ gpr[6] = gpr6; -+ gpr[7] = gpr7; -+ double fpr[8]; -+ fpr[0] = fpr0; -+ fpr[1] = fpr1; -+ fpr[2] = fpr2; -+ fpr[3] = fpr3; -+ fpr[4] = fpr4; -+ fpr[5] = fpr5; -+ fpr[6] = fpr6; -+ fpr[7] = fpr7; -+ vtableCall( -+ functionIndex, vtableOffset, gpr, -+ reinterpret_cast(fpr), -+ static_cast( -+ reinterpret_cast(&ap)->stack), -+ indirectRet); -+ asm volatile( -+ "ldp x0, x1, [%[gpr_]]\n\t" -+ "ldp d0, d1, [%[fpr_]]\n\t" -+ "ldp d2, d3, [%[fpr_], #16]\n\t" -+ :: [gpr_]"r" (gpr), [fpr_]"r" (fpr) -+ : "r0", "r1", "v0", "v1", "v2", "v3"); -+} -+#pragma GCC diagnostic pop -+ -+std::size_t const codeSnippetSize = 8 * 4; -+ -+unsigned char * generateCodeSnippet( -+ unsigned char * code, sal_Int32 functionIndex, sal_Int32 vtableOffset) -+{ -+ // movz x9, -+ reinterpret_cast(code)[0] = 0xD2800009 -+ | ((functionIndex & 0xFFFF) << 5); -+ // movk x9, , LSL #16 -+ reinterpret_cast(code)[1] = 0xF2A00009 -+ | ((functionIndex >> 16) << 5); -+ // movz x10, -+ reinterpret_cast(code)[2] = 0xD280000A -+ | ((vtableOffset & 0xFFFF) << 5); -+ // movk x10, , LSL #16 -+ reinterpret_cast(code)[3] = 0xF2A0000A -+ | ((vtableOffset >> 16) << 5); -+ // ldr x11, +2*4 -+ reinterpret_cast(code)[4] = 0x5800004B; -+ // br x11 -+ reinterpret_cast(code)[5] = 0xD61F0160; -+ reinterpret_cast(code)[3] -+ = reinterpret_cast(&vtableSlotCall); -+ return code + codeSnippetSize; -+} -+ -+} -+ -+struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; }; -+ -+bridges::cpp_uno::shared::VtableFactory::Slot * -+bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block) { -+ return static_cast(block) + 2; -+} -+ -+sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize( -+ sal_Int32 slotCount) -+{ -+ return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize; -+} -+ -+bridges::cpp_uno::shared::VtableFactory::Slot * -+bridges::cpp_uno::shared::VtableFactory::initializeBlock( -+ void * block, sal_Int32 slotCount) -+{ -+ Slot * slots = mapBlockToVtable(block); -+ slots[-2].fn = 0; -+ slots[-1].fn = 0; -+ return slots + slotCount; -+} -+ -+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( -+ Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, -+ typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset, -+ sal_Int32 functionCount, sal_Int32 vtableOffset) -+{ -+ (*slots) -= functionCount; -+ Slot * s = *slots; -+ for (sal_Int32 i = 0; i != type->nMembers; ++i) { -+ typelib_TypeDescription * td = 0; -+ TYPELIB_DANGER_GET(&td, type->ppMembers[i]); -+ assert(td != 0); -+ switch (td->eTypeClass) { -+ case typelib_TypeClass_INTERFACE_ATTRIBUTE: -+ { -+ typelib_InterfaceAttributeTypeDescription * atd -+ = reinterpret_cast< -+ typelib_InterfaceAttributeTypeDescription *>(td); -+ // Getter: -+ (s++)->fn = code + writetoexecdiff; -+ code = generateCodeSnippet( -+ code, functionOffset++, vtableOffset); -+ // Setter: -+ if (!atd->bReadOnly) { -+ (s++)->fn = code + writetoexecdiff; -+ code = generateCodeSnippet( -+ code, functionOffset++, vtableOffset); -+ } -+ break; -+ } -+ case typelib_TypeClass_INTERFACE_METHOD: -+ (s++)->fn = code + writetoexecdiff; -+ code = generateCodeSnippet(code, functionOffset++, vtableOffset); -+ break; -+ default: -+ assert(false); -+ } -+ TYPELIB_DANGER_RELEASE(td); -+ } -+ return code; -+} -+ -+void bridges::cpp_uno::shared::VtableFactory::flushCode( -+ unsigned char const * begin, unsigned char const * end) -+{ -+ static void (*clear_cache)(unsigned char const *, unsigned char const *) -+ = (void (*)(unsigned char const *, unsigned char const *)) dlsym( -+ RTLD_DEFAULT, "__clear_cache"); -+ (*clear_cache)(begin, end); -+} -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx -new file mode 100644 -index 0000000..9c9a24a ---- /dev/null -+++ b/bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx -@@ -0,0 +1,376 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ * -+ * This file incorporates work covered by the following license notice: -+ * -+ * Licensed to the Apache Software Foundation (ASF) under one or more -+ * contributor license agreements. See the NOTICE file distributed -+ * with this work for additional information regarding copyright -+ * ownership. The ASF licenses this file to you under the Apache -+ * License, Version 2.0 (the "License"); you may not use this file -+ * except in compliance with the License. You may obtain a copy of -+ * the License at http://www.apache.org/licenses/LICENSE-2.0 . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+namespace { -+ -+void pushArgument( -+ unsigned long value, unsigned long * stack, sal_Int32 * sp, -+ unsigned long * regs, sal_Int32 * nregs) -+{ -+ (*nregs != 8 ? regs[(*nregs)++] : stack[(*sp)++]) = value; -+} -+ -+void call( -+ bridges::cpp_uno::shared::UnoInterfaceProxy * proxy, -+ bridges::cpp_uno::shared::VtableSlot slot, -+ typelib_TypeDescriptionReference * returnType, sal_Int32 count, -+ typelib_MethodParameter * parameters, void * returnValue, void ** arguments, -+ uno_Any ** exception) -+{ -+ typelib_TypeDescription * rtd = 0; -+ TYPELIB_DANGER_GET(&rtd, returnType); -+ abi_aarch64::ReturnKind retKind = abi_aarch64::getReturnKind(rtd); -+ bool retConv = bridges::cpp_uno::shared::relatesToInterfaceType(rtd); -+ void * ret = retConv ? alloca(rtd->nSize) : returnValue; -+ unsigned long ** thisPtr -+ = reinterpret_cast(proxy->getCppI()) + slot.offset; -+ unsigned long * stack = static_cast( -+ alloca(count * sizeof (unsigned long))); -+ sal_Int32 sp = 0; -+ unsigned long gpr[8]; -+ sal_Int32 ngpr = 0; -+ unsigned long fpr[8]; -+ sal_Int32 nfpr = 0; -+ gpr[ngpr++] = reinterpret_cast(thisPtr); -+ void ** cppArgs = static_cast(alloca(count * sizeof (void *))); -+ typelib_TypeDescription ** ptds = -+ static_cast( -+ alloca(count * sizeof (typelib_TypeDescription *))); -+ for (sal_Int32 i = 0; i != count; ++i) { -+ if (!parameters[i].bOut && -+ bridges::cpp_uno::shared::isSimpleType(parameters[i].pTypeRef)) -+ { -+ cppArgs[i] = 0; -+ switch (parameters[i].pTypeRef->eTypeClass) { -+ case typelib_TypeClass_BOOLEAN: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ case typelib_TypeClass_BYTE: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ case typelib_TypeClass_SHORT: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ case typelib_TypeClass_UNSIGNED_SHORT: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ case typelib_TypeClass_LONG: -+ case typelib_TypeClass_ENUM: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ case typelib_TypeClass_UNSIGNED_LONG: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ case typelib_TypeClass_HYPER: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ case typelib_TypeClass_UNSIGNED_HYPER: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ case typelib_TypeClass_FLOAT: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, fpr, -+ &nfpr); -+ break; -+ case typelib_TypeClass_DOUBLE: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, -+ fpr, &nfpr); -+ break; -+ case typelib_TypeClass_CHAR: -+ pushArgument( -+ *static_cast(arguments[i]), stack, &sp, gpr, -+ &ngpr); -+ break; -+ default: -+ assert(false); -+ } -+ } else { -+ typelib_TypeDescription * ptd = 0; -+ TYPELIB_DANGER_GET(&ptd, parameters[i].pTypeRef); -+ if (!parameters[i].bIn) { -+ cppArgs[i] = alloca(ptd->nSize); -+ uno_constructData(cppArgs[i], ptd); -+ ptds[i] = ptd; -+ pushArgument( -+ reinterpret_cast(cppArgs[i]), stack, &sp, -+ gpr, &ngpr); -+ } else if (bridges::cpp_uno::shared::relatesToInterfaceType(ptd)) { -+ cppArgs[i] = alloca(ptd->nSize); -+ uno_copyAndConvertData( -+ cppArgs[i], arguments[i], ptd, -+ proxy->getBridge()->getUno2Cpp()); -+ ptds[i] = ptd; -+ pushArgument( -+ reinterpret_cast(cppArgs[i]), stack, &sp, -+ gpr, &ngpr); -+ } else { -+ cppArgs[i] = 0; -+ pushArgument( -+ reinterpret_cast(arguments[i]), stack, &sp, -+ gpr, &ngpr); -+ TYPELIB_DANGER_RELEASE(ptd); -+ } -+ } -+ } -+ try { -+ try { -+ callVirtualFunction( -+ (*thisPtr)[slot.index], gpr, fpr, stack, sp, ret); -+ } catch (css::uno::Exception &) { -+ throw; -+ } catch (std::exception & e) { -+ throw css::uno::RuntimeException( -+ ("C++ code threw " -+ + OStringToOUString(typeid(e).name(), RTL_TEXTENCODING_UTF8) -+ + ": " + OStringToOUString(e.what(), RTL_TEXTENCODING_UTF8)), -+ css::uno::Reference()); -+ } catch (...) { -+ throw css::uno::RuntimeException( -+ "C++ code threw unknown exception", -+ css::uno::Reference()); -+ } -+ } catch (css::uno::Exception &) { -+ abi_aarch64::mapException( -+ reinterpret_cast( -+ __cxxabiv1::__cxa_get_globals())->caughtExceptions, -+ *exception, proxy->getBridge()->getCpp2Uno()); -+ for (sal_Int32 i = 0; i != count; ++i) { -+ if (cppArgs[i] != 0) { -+ uno_destructData( -+ cppArgs[i], ptds[i], -+ reinterpret_cast(css::uno::cpp_release)); -+ TYPELIB_DANGER_RELEASE(ptds[i]); -+ } -+ } -+ TYPELIB_DANGER_RELEASE(rtd); -+ return; -+ } -+ *exception = 0; -+ for (sal_Int32 i = 0; i != count; ++i) { -+ if (cppArgs[i] != 0) { -+ if (parameters[i].bOut) { -+ if (parameters[i].bIn) { -+ uno_destructData(arguments[i], ptds[i], 0); -+ } -+ uno_copyAndConvertData( -+ arguments[i], cppArgs[i], ptds[i], -+ proxy->getBridge()->getCpp2Uno()); -+ } -+ uno_destructData( -+ cppArgs[i], ptds[i], -+ reinterpret_cast(css::uno::cpp_release)); -+ TYPELIB_DANGER_RELEASE(ptds[i]); -+ } -+ } -+ switch (retKind) { -+ case abi_aarch64::RETURN_KIND_REG: -+ switch (rtd->eTypeClass) { -+ case typelib_TypeClass_VOID: -+ break; -+ case typelib_TypeClass_BOOLEAN: -+ case typelib_TypeClass_BYTE: -+ case typelib_TypeClass_SHORT: -+ case typelib_TypeClass_UNSIGNED_SHORT: -+ case typelib_TypeClass_LONG: -+ case typelib_TypeClass_UNSIGNED_LONG: -+ case typelib_TypeClass_HYPER: -+ case typelib_TypeClass_UNSIGNED_HYPER: -+ case typelib_TypeClass_CHAR: -+ case typelib_TypeClass_ENUM: -+ case typelib_TypeClass_STRUCT: -+ std::memcpy(ret, gpr, rtd->nSize); -+ break; -+ case typelib_TypeClass_FLOAT: -+ case typelib_TypeClass_DOUBLE: -+ std::memcpy(ret, fpr, rtd->nSize); -+ break; -+ default: -+ assert(false); -+ } -+ break; -+ case abi_aarch64::RETURN_KIND_HFA_FLOAT: -+ switch (rtd->nSize) { -+ case 16: -+ std::memcpy(static_cast(ret) + 12, fpr + 3, 4); -+ // fall through -+ case 12: -+ std::memcpy(static_cast(ret) + 8, fpr + 2, 4); -+ // fall through -+ case 8: -+ std::memcpy(static_cast(ret) + 4, fpr + 1, 4); -+ // fall through -+ case 4: -+ std::memcpy(ret, fpr, 4); -+ break; -+ default: -+ assert(false); -+ } -+ break; -+ case abi_aarch64::RETURN_KIND_HFA_DOUBLE: -+ std::memcpy(ret, fpr, rtd->nSize); -+ break; -+ case abi_aarch64::RETURN_KIND_INDIRECT: -+ break; -+ } -+ if (retConv) { -+ uno_copyAndConvertData( -+ returnValue, ret, rtd, proxy->getBridge()->getCpp2Uno()); -+ uno_destructData( -+ ret, rtd, reinterpret_cast(css::uno::cpp_release)); -+ } -+ TYPELIB_DANGER_RELEASE(rtd); -+} -+ -+} -+ -+namespace bridges { namespace cpp_uno { namespace shared { -+ -+void unoInterfaceProxyDispatch( -+ uno_Interface * pUnoI, typelib_TypeDescription const * pMemberDescr, -+ void * pReturn, void ** pArgs, uno_Any ** ppException) -+{ -+ UnoInterfaceProxy * proxy = static_cast(pUnoI); -+ switch (pMemberDescr->eTypeClass) { -+ case typelib_TypeClass_INTERFACE_ATTRIBUTE: -+ { -+ typelib_InterfaceAttributeTypeDescription const * atd -+ = reinterpret_cast< -+ typelib_InterfaceAttributeTypeDescription const *>( -+ pMemberDescr); -+ VtableSlot slot(getVtableSlot(atd)); -+ if (pReturn != 0) { // getter -+ call( -+ proxy, slot, atd->pAttributeTypeRef, 0, 0, pReturn, pArgs, -+ ppException); -+ } else { // setter -+ typelib_MethodParameter param = { -+ 0, atd->pAttributeTypeRef, true, false }; -+ typelib_TypeDescriptionReference * rtd = 0; -+ typelib_typedescriptionreference_new( -+ &rtd, typelib_TypeClass_VOID, OUString("void").pData); -+ slot.index += 1; -+ call(proxy, slot, rtd, 1, ¶m, pReturn, pArgs, ppException); -+ typelib_typedescriptionreference_release(rtd); -+ } -+ break; -+ } -+ case typelib_TypeClass_INTERFACE_METHOD: -+ { -+ typelib_InterfaceMethodTypeDescription const * mtd -+ = reinterpret_cast< -+ typelib_InterfaceMethodTypeDescription const *>( -+ pMemberDescr); -+ VtableSlot slot(getVtableSlot(mtd)); -+ switch (slot.index) { -+ case 1: -+ pUnoI->acquire(pUnoI); -+ *ppException = 0; -+ break; -+ case 2: -+ pUnoI->release(pUnoI); -+ *ppException = 0; -+ break; -+ case 0: -+ { -+ typelib_TypeDescription * td = 0; -+ TYPELIB_DANGER_GET( -+ &td, -+ (reinterpret_cast(pArgs[0]) -+ ->getTypeLibType())); -+ if (td != 0) { -+ uno_Interface * ifc = 0; -+ proxy->pBridge->getUnoEnv()->getRegisteredInterface( -+ proxy->pBridge->getUnoEnv(), -+ reinterpret_cast(&ifc), proxy->oid.pData, -+ reinterpret_cast< -+ typelib_InterfaceTypeDescription *>(td)); -+ if (ifc != 0) { -+ uno_any_construct( -+ reinterpret_cast(pReturn), &ifc, td, -+ 0); -+ ifc->release(ifc); -+ TYPELIB_DANGER_RELEASE(td); -+ *ppException = 0; -+ break; -+ } -+ TYPELIB_DANGER_RELEASE(td); -+ } -+ } -+ // fall through -+ default: -+ call( -+ proxy, slot, mtd->pReturnTypeRef, mtd->nParams, -+ mtd->pParams, pReturn, pArgs, ppException); -+ break; -+ } -+ break; -+ } -+ default: -+ assert(false); -+ } -+} -+ -+} } } -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/configure.ac b/configure.ac -index 5ead2a0..826797f8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -4292,6 +4292,12 @@ linux-gnu*) - - case "$host_cpu" in - -+ aarch64) -+ CPUNAME=AARCH64 -+ PLATFORMID=linux_aarch64 -+ RTL_ARCH=AARCH64 -+ OUTPATH=unxlngaarch64 -+ ;; - alpha) - CPUNAME=AXP - RTL_ARCH=ALPHA -diff --git a/desktop/source/deployment/misc/dp_platform.cxx b/desktop/source/deployment/misc/dp_platform.cxx -index 09b3fcd..6b04004 100644 ---- a/desktop/source/deployment/misc/dp_platform.cxx -+++ b/desktop/source/deployment/misc/dp_platform.cxx -@@ -45,7 +45,7 @@ - #define PLATFORM_LINUX_S390x "linux_s390x" - #define PLATFORM_LINUX_HPPA "linux_hppa" - #define PLATFORM_LINUX_ALPHA "linux_alpha" -- -+#define PLATFORM_LINUX_AARCH64 "linux_aarch64" - - - #define PLATFORM_SOLARIS_SPARC "solaris_sparc" -@@ -149,6 +149,8 @@ namespace - ret = checkOSandCPU("Linux", "HPPA"); - else if (token == PLATFORM_LINUX_ALPHA) - ret = checkOSandCPU("Linux", "ALPHA"); -+ else if (token == PLATFORM_LINUX_AARCH64) -+ ret = checkOSandCPU("Linux", "AARCH64"); - else if (token == PLATFORM_SOLARIS_SPARC) - ret = checkOSandCPU("Solaris", "SPARC"); - else if (token == PLATFORM_SOLARIS_SPARC64) -diff --git a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx -index 25baaee5..29f2641 100644 ---- a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx -+++ b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx -@@ -65,6 +65,8 @@ OpenJDK at least, but probably not true for Lemotes JDK */ - #define JFW_PLUGIN_ARCH "parisc" - #elif defined AXP - #define JFW_PLUGIN_ARCH "alpha" -+#elif defined AARCH64 -+#define JFW_PLUGIN_ARCH "aarch64" - #else // SPARC, INTEL, POWERPC, MIPS, ARM, IA64, M68K, HPPA, ALPHA - #error unknown platform - #endif // SPARC, INTEL, POWERPC, MIPS, ARM, IA64, M68K, HPPA, ALPHA -diff --git a/solenv/gbuild/platform/LINUX_AARCH64_GCC.mk b/solenv/gbuild/platform/LINUX_AARCH64_GCC.mk -new file mode 100644 -index 0000000..682199e ---- /dev/null -+++ b/solenv/gbuild/platform/LINUX_AARCH64_GCC.mk -@@ -0,0 +1,14 @@ -+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -+# -+# This file is part of the LibreOffice project. -+# -+# This Source Code Form is subject to the terms of the Mozilla Public -+# License, v. 2.0. If a copy of the MPL was not distributed with this -+# file, You can obtain one at http://mozilla.org/MPL/2.0/. -+# -+ -+gb_COMPILERDEFAULTOPTFLAGS := -Os -+ -+include $(GBUILDDIR)/platform/linux.mk -+ -+# vim: set noet sw=4: --- -1.9.3 - diff --git a/0002-Resolves-fdo-86451-guard-all-the-tops-post-pop.patch b/0002-Resolves-fdo-86451-guard-all-the-tops-post-pop.patch deleted file mode 100644 index 131f31c..0000000 --- a/0002-Resolves-fdo-86451-guard-all-the-tops-post-pop.patch +++ /dev/null @@ -1,252 +0,0 @@ -From 566300ebd57e6ff07fdb014321e23a92c9bcf5ee Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 19 Nov 2014 12:14:08 +0000 -Subject: [PATCH 2/2] Resolves: fdo#86451 guard all the tops post pop - -Change-Id: I98be6f014893dfc7cee770c44cd9d0be32b39f5c -Reviewed-on: https://gerrit.libreoffice.org/12966 -Reviewed-by: Miklos Vajna -Tested-by: Miklos Vajna ---- - writerfilter/source/rtftok/rtfdocumentimpl.cxx | 177 ++++++++++++++----------- - 1 file changed, 97 insertions(+), 80 deletions(-) - -diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx -index be56161..7c5cbf1 100644 ---- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx -+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx -@@ -5637,7 +5637,7 @@ int RTFDocumentImpl::popState() - case DESTINATION_PARAGRAPHNUMBERING: - { - RTFValue::Pointer_t pIdValue = aState.aTableAttributes.find(NS_ooxml::LN_CT_AbstractNum_nsid); -- if (pIdValue.get()) -+ if (pIdValue.get() && !m_aStates.empty()) - { - // Abstract numbering - RTFSprms aLeveltextAttributes; -@@ -5706,85 +5706,96 @@ int RTFDocumentImpl::popState() - } - break; - case DESTINATION_PARAGRAPHNUMBERING_TEXTAFTER: -- { -- // FIXME: don't use pDestinationText, points to popped state -- RTFValue::Pointer_t pValue(new RTFValue(aState.aDestinationText.makeStringAndClear(), true)); -- m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_LevelSuffix_val, pValue); -- } -+ if (!m_aStates.empty()) -+ { -+ // FIXME: don't use pDestinationText, points to popped state -+ RTFValue::Pointer_t pValue(new RTFValue(aState.aDestinationText.makeStringAndClear(), true)); -+ m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_LevelSuffix_val, pValue); -+ } - break; - case DESTINATION_PARAGRAPHNUMBERING_TEXTBEFORE: -- { -- // FIXME: don't use pDestinationText, points to popped state -- RTFValue::Pointer_t pValue(new RTFValue(aState.aDestinationText.makeStringAndClear(), true)); -- m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_LevelText_val, pValue); -- } -+ if (!m_aStates.empty()) -+ { -+ // FIXME: don't use pDestinationText, points to popped state -+ RTFValue::Pointer_t pValue(new RTFValue(aState.aDestinationText.makeStringAndClear(), true)); -+ m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_LevelText_val, pValue); -+ } - break; - case DESTINATION_LISTLEVEL: -- { -- RTFValue::Pointer_t pInnerValue(new RTFValue(m_aStates.top().nListLevelNum++)); -- aState.aTableAttributes.set(NS_ooxml::LN_CT_Lvl_ilvl, pInnerValue); -+ if (!m_aStates.empty()) -+ { -+ RTFValue::Pointer_t pInnerValue(new RTFValue(m_aStates.top().nListLevelNum++)); -+ aState.aTableAttributes.set(NS_ooxml::LN_CT_Lvl_ilvl, pInnerValue); - -- RTFValue::Pointer_t pValue(new RTFValue(aState.aTableAttributes, aState.aTableSprms)); -- if (m_aStates.top().nDestinationState != DESTINATION_LFOLEVEL) -- m_aStates.top().aListLevelEntries.set(NS_ooxml::LN_CT_AbstractNum_lvl, pValue, OVERWRITE_NO_APPEND); -- else -- m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_NumLvl_lvl, pValue); -- } -+ RTFValue::Pointer_t pValue(new RTFValue(aState.aTableAttributes, aState.aTableSprms)); -+ if (m_aStates.top().nDestinationState != DESTINATION_LFOLEVEL) -+ m_aStates.top().aListLevelEntries.set(NS_ooxml::LN_CT_AbstractNum_lvl, pValue, OVERWRITE_NO_APPEND); -+ else -+ m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_NumLvl_lvl, pValue); -+ } - break; - case DESTINATION_LFOLEVEL: -- { -- RTFValue::Pointer_t pInnerValue(new RTFValue(m_aStates.top().nListLevelNum++)); -- aState.aTableAttributes.set(NS_ooxml::LN_CT_NumLvl_ilvl, pInnerValue); -+ if (!m_aStates.empty()) -+ { -+ RTFValue::Pointer_t pInnerValue(new RTFValue(m_aStates.top().nListLevelNum++)); -+ aState.aTableAttributes.set(NS_ooxml::LN_CT_NumLvl_ilvl, pInnerValue); - -- RTFValue::Pointer_t pValue(new RTFValue(aState.aTableAttributes, aState.aTableSprms)); -- m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_Num_lvlOverride, pValue); -- } -+ RTFValue::Pointer_t pValue(new RTFValue(aState.aTableAttributes, aState.aTableSprms)); -+ m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_Num_lvlOverride, pValue); -+ } - break; - // list override table - case DESTINATION_LISTOVERRIDEENTRY: -- { -- if (m_aStates.top().nDestinationState == DESTINATION_LISTOVERRIDEENTRY) -- { -- // copy properties upwards so upper popState inserts it -- m_aStates.top().aTableAttributes = aState.aTableAttributes; -- m_aStates.top().aTableSprms = aState.aTableSprms; -- } -- else -+ if (!m_aStates.empty()) - { -- RTFValue::Pointer_t pValue(new RTFValue( -- aState.aTableAttributes, aState.aTableSprms)); -- m_aListTableSprms.set(NS_ooxml::LN_CT_Numbering_num, pValue, OVERWRITE_NO_APPEND); -+ if (m_aStates.top().nDestinationState == DESTINATION_LISTOVERRIDEENTRY) -+ { -+ // copy properties upwards so upper popState inserts it -+ m_aStates.top().aTableAttributes = aState.aTableAttributes; -+ m_aStates.top().aTableSprms = aState.aTableSprms; -+ } -+ else -+ { -+ RTFValue::Pointer_t pValue(new RTFValue( -+ aState.aTableAttributes, aState.aTableSprms)); -+ m_aListTableSprms.set(NS_ooxml::LN_CT_Numbering_num, pValue, OVERWRITE_NO_APPEND); -+ } - } -- } - break; - case DESTINATION_LEVELTEXT: -- { -- RTFValue::Pointer_t pValue(new RTFValue(aState.aTableAttributes)); -- m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_Lvl_lvlText, pValue); -- } -+ if (!m_aStates.empty()) -+ { -+ RTFValue::Pointer_t pValue(new RTFValue(aState.aTableAttributes)); -+ m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_Lvl_lvlText, pValue); -+ } - break; - case DESTINATION_LEVELNUMBERS: -- m_aStates.top().aTableSprms = aState.aTableSprms; -+ if (!m_aStates.empty()) -+ m_aStates.top().aTableSprms = aState.aTableSprms; - break; - case DESTINATION_FIELDINSTRUCTION: -- m_aStates.top().nFieldStatus = FIELD_INSTRUCTION; -+ if (!m_aStates.empty()) -+ m_aStates.top().nFieldStatus = FIELD_INSTRUCTION; - break; - case DESTINATION_FIELDRESULT: -- m_aStates.top().nFieldStatus = FIELD_RESULT; -+ if (!m_aStates.empty()) -+ m_aStates.top().nFieldStatus = FIELD_RESULT; - break; - case DESTINATION_FIELD: - if (aState.nFieldStatus == FIELD_INSTRUCTION) - singleChar(0x15); - break; - case DESTINATION_SHAPEPROPERTYVALUEPICT: -- { -- m_aStates.top().aPicture = aState.aPicture; -- // both \sp and \sv are destinations, copy the text up-ward for later -- m_aStates.top().aDestinationText = aState.aDestinationText; -- } -+ if (!m_aStates.empty()) -+ { -+ m_aStates.top().aPicture = aState.aPicture; -+ // both \sp and \sv are destinations, copy the text up-ward for later -+ m_aStates.top().aDestinationText = aState.aDestinationText; -+ } - break; - case DESTINATION_FALT: -- m_aStates.top().aTableSprms = aState.aTableSprms; -+ if (!m_aStates.empty()) -+ m_aStates.top().aTableSprms = aState.aTableSprms; - break; - case DESTINATION_SHAPEPROPERTYNAME: - case DESTINATION_SHAPEPROPERTYVALUE: -@@ -5799,40 +5810,46 @@ int RTFDocumentImpl::popState() - case DESTINATION_FLYMAINCONTENT: - case DESTINATION_SHPPICT: - case DESTINATION_SHAPE: -- m_aStates.top().aFrame = aState.aFrame; -- if (aState.nDestinationState == DESTINATION_SHPPICT && !m_aStates.empty() && m_aStates.top().nDestinationState == DESTINATION_LISTPICTURE) -+ if (!m_aStates.empty()) - { -- RTFSprms aAttributes; -- aAttributes.set(NS_ooxml::LN_CT_NumPicBullet_numPicBulletId, RTFValue::Pointer_t(new RTFValue(m_nListPictureId++))); -- RTFSprms aSprms; -- // Dummy value, real picture is already sent to dmapper. -- aSprms.set(NS_ooxml::LN_CT_NumPicBullet_pict, RTFValue::Pointer_t(new RTFValue(0))); -- RTFValue::Pointer_t pValue(new RTFValue(aAttributes, aSprms)); -- m_aListTableSprms.set(NS_ooxml::LN_CT_Numbering_numPicBullet, pValue, OVERWRITE_NO_APPEND); -+ m_aStates.top().aFrame = aState.aFrame; -+ if (aState.nDestinationState == DESTINATION_SHPPICT && m_aStates.top().nDestinationState == DESTINATION_LISTPICTURE) -+ { -+ RTFSprms aAttributes; -+ aAttributes.set(NS_ooxml::LN_CT_NumPicBullet_numPicBulletId, RTFValue::Pointer_t(new RTFValue(m_nListPictureId++))); -+ RTFSprms aSprms; -+ // Dummy value, real picture is already sent to dmapper. -+ aSprms.set(NS_ooxml::LN_CT_NumPicBullet_pict, RTFValue::Pointer_t(new RTFValue(0))); -+ RTFValue::Pointer_t pValue(new RTFValue(aAttributes, aSprms)); -+ m_aListTableSprms.set(NS_ooxml::LN_CT_Numbering_numPicBullet, pValue, OVERWRITE_NO_APPEND); -+ } - } - break; - case DESTINATION_SHAPETEXT: -- // If we're leaving the shapetext group (it may have nested ones) and this is a shape, not an old drawingobject. -- if (m_aStates.top().nDestinationState != DESTINATION_SHAPETEXT && !m_aStates.top().aDrawingObject.bHadShapeText) -+ if (!m_aStates.empty()) - { -- m_aStates.top().bHadShapeText = true; -- if (!m_aStates.top().pCurrentBuffer) -- m_pSdrImport->close(); -- else -- m_aStates.top().pCurrentBuffer->push_back( -- Buf_t(BUFFER_ENDSHAPE)); -- } -- -- // It's allowed to declare these inside the the shape text, and they -- // are expected to have an effect for the whole shape. -- if (aState.aDrawingObject.nLeft) -- m_aStates.top().aDrawingObject.nLeft = aState.aDrawingObject.nLeft; -- if (aState.aDrawingObject.nTop) -- m_aStates.top().aDrawingObject.nTop = aState.aDrawingObject.nTop; -- if (aState.aDrawingObject.nRight) -- m_aStates.top().aDrawingObject.nRight = aState.aDrawingObject.nRight; -- if (aState.aDrawingObject.nBottom) -- m_aStates.top().aDrawingObject.nBottom = aState.aDrawingObject.nBottom; -+ // If we're leaving the shapetext group (it may have nested ones) and this is a shape, not an old drawingobject. -+ if (m_aStates.top().nDestinationState != DESTINATION_SHAPETEXT && !m_aStates.top().aDrawingObject.bHadShapeText) -+ { -+ m_aStates.top().bHadShapeText = true; -+ if (!m_aStates.top().pCurrentBuffer) -+ m_pSdrImport->close(); -+ else -+ m_aStates.top().pCurrentBuffer->push_back( -+ Buf_t(BUFFER_ENDSHAPE)); -+ } -+ -+ // It's allowed to declare these inside the the shape text, and they -+ // are expected to have an effect for the whole shape. -+ if (aState.aDrawingObject.nLeft) -+ m_aStates.top().aDrawingObject.nLeft = aState.aDrawingObject.nLeft; -+ if (aState.aDrawingObject.nTop) -+ m_aStates.top().aDrawingObject.nTop = aState.aDrawingObject.nTop; -+ if (aState.aDrawingObject.nRight) -+ m_aStates.top().aDrawingObject.nRight = aState.aDrawingObject.nRight; -+ if (aState.aDrawingObject.nBottom) -+ m_aStates.top().aDrawingObject.nBottom = aState.aDrawingObject.nBottom; -+ } - break; - default: - { --- -1.9.3 - diff --git a/libreoffice.spec b/libreoffice.spec index e9448da..8e95c7c 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -1,9 +1,9 @@ # download path contains version without the last (fourth) digit -%define libo_version 4.3.4 +%define libo_version 4.4.0 # Should contain .alphaX / .betaX, if this is pre-release (actually # pre-RC) version. The pre-release string is part of tarball file names, # so we need a way to define it easily at one place. -%define libo_prerelease %{nil} +%define libo_prerelease .beta1 # rhbz#715152 state vendor %if 0%{?rhel} %define vendoroption --with-vendor="Red Hat, Inc." @@ -45,8 +45,8 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 -Version: %{libo_version}.1 -Release: 6%{?libo_prerelease}%{?dist} +Version: %{libo_version}.0 +Release: 1%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0 and CC0 Group: Applications/Productivity URL: http://www.libreoffice.org/ @@ -102,17 +102,18 @@ Source30: %{external_url}/libwps-0.3.0.tar.bz2 Source31: %{external_url}/libvisio-0.1.0.tar.bz2 Source32: %{external_url}/libmspub-0.1.1.tar.bz2 Source33: %{external_url}/libodfgen-0.1.1.tar.bz2 -Source34: %{external_url}/libmwaw-0.3.1.tar.bz2 +Source34: %{external_url}/libmwaw-0.3.3.tar.bz2 Source35: %{external_url}/libetonyek-0.1.1.tar.bz2 Source36: %{external_url}/libfreehand-0.1.0.tar.bz2 Source37: %{external_url}/libabw-0.1.0.tar.bz2 Source38: %{external_url}/librevenge-0.0.1.tar.bz2 Source39: %{external_url}/libgltf-0.0.2.tar.bz2 Source40: %{external_url}/OpenCOLLADA-master-6509aa13af.tar.bz2 -%global bundling_options %{?bundling_options} --without-system-libcdr --without-system-libwpg --without-system-libwpd --without-system-libwps --without-system-libvisio --without-system-libmspub --without-system-libodfgen --without-system-libmwaw --without-system-libetonyek --without-system-libfreehand --without-system-libabw --without-system-librevenge --without-system-libgltf --without-system-opencollada +Source41: %{external_url}/libpagemaker-0.0.1.tar.bz2 +%global bundling_options %{?bundling_options} --without-system-libcdr --without-system-libwpg --without-system-libwpd --without-system-libwps --without-system-libvisio --without-system-libmspub --without-system-libodfgen --without-system-libmwaw --without-system-libetonyek --without-system-libfreehand --without-system-libabw --without-system-librevenge --without-system-libgltf --without-system-opencollada --without-system-libpagemaker %endif -Source41: %{external_url}/4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2 +Source42: %{external_url}/4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2 # build tools BuildRequires: autoconf @@ -189,6 +190,7 @@ BuildRequires: pkgconfig(libmspub-0.1) BuildRequires: pkgconfig(libmwaw-0.3) BuildRequires: pkgconfig(libodfgen-0.1) BuildRequires: pkgconfig(liborcus-0.8) +BuildRequires: pkgconfig(libpagemaker-0.0) BuildRequires: pkgconfig(librevenge-0.0) BuildRequires: pkgconfig(libvisio-0.1) BuildRequires: pkgconfig(libwpd-0.10) @@ -312,43 +314,8 @@ Patch14: 0001-never-run-autogen.sh.patch Patch15: 0001-add-X-TryExec-entries-to-desktop-files.patch # not upstreamed Patch16: 0001-disable-PSD-import-test-which-deadlocks-on-ARM.patch -Patch17: 0001-rhbz-1111216-allow-to-export-an-empty-sheet-to-PDF.patch -Patch18: 0001-avoid-problems-detecting-HTML-files-with-.xls-ext.patch -Patch19: 0001-scrolling-very-slow-in-calc.patch -Patch20: 0001-Related-rhbz-1117853-nStartPara-of-EE_PARA_NOT_FOUND.patch -Patch21: 0001-Resolves-fdo-81487-pasting-into-outline-view-crashes.patch -Patch22: 0001-Related-rhbz-1130264-plausible-fix-for-reported-cras.patch -Patch23: 0001-if-_CALL_ELF-if-defined-_CALL_ELF-_CALL_ELF-2.patch -Patch24: 0002-Linux-AArch64-port.patch -Patch25: 0001-fix-KDE4-detection-on-aarch64.patch -Patch26: 0001-drop-useless-test-for-ant-apache-regexp.patch -Patch27: 0001-No-fstack-protect-strong-for-gcc3_linux_aarch64-cpp2.patch -Patch28: 0001-fdo-82496-Change-picture-option-by-rightclicking.patch -Patch29: 0001-create-a-master-document-template-type.patch -Patch30: 0001-Resolves-fdo-80911-don-t-swap-notes-page-width-heigh.patch -Patch31: 0001-default-n-up-printing-of-notes-to-sensible-2-x-1-not.patch -Patch32: 0001-n-up-printing-done-by-vcl-brochures-by-draw-impress.patch -Patch33: 0001-Resolves-fdo-68967-looping-layout.patch -Patch34: 0001-Remove-smb-from-X-KDE-Protocols-lines.patch -Patch35: 0001-libgcrypt-and-gnutls-are-only-used-by-our-internal-e.patch -Patch36: 0001-allow-to-build-with-system-opencollada.patch -Patch37: 0001-Resolves-fdo-37559-revert-adding-extra-dummy-polygon.patch -Patch38: 0001-Resolves-fdo-76581-copy-and-paste-slideshow-crash-in.patch -Patch39: 0001-fdo-85247-copy-and-paste-of-a-slide-results-in-a-blu.patch -Patch40: 0001-fdo-60712-Inherits-cell-styles-in-inserting-rows-col.patch -Patch41: 0001-implement-toggling-off-removeable-master-elements-wi.patch -Patch42: 0001-Resolves-fdo-78151-change-style-on-toggling-bullets-.patch -Patch43: 0001-Resolves-rhbz-1161238-sync-PRESOBJ_OUTLINE-para-dept.patch -Patch44: 0001-strip-off-hard-coded-numbering-from-outliner-preview.patch -Patch45: 0001-have-a-stab-at-improving-impossible-question.patch -Patch46: 0001-just-use-ANSI-C-declarations.patch -Patch47: 0001-valgrind-check-return-of-convertDateTime-before-usin.patch -Patch48: 0001-table-layout-cache-returns-wrong-rectangle.patch -Patch49: 0001-impress-tables-are-not-interactively-growing.patch -Patch50: 0001-officecfg-set-VCL.WM.ShouldSwitchWorkspace-to-false.patch -Patch51: 0001-Resolves-fdo-86449-backport-rtf-fixes.patch -Patch52: 0002-Resolves-fdo-86451-guard-all-the-tops-post-pop.patch -Patch53: 0001-Resolves-fdo-86466-Wrong-background-color-shown-in-f.patch +Patch17: 0001-Resolves-fdo-37559-revert-adding-extra-dummy-polygon.patch +Patch18: 0001-Resolves-fdo-86466-Wrong-background-color-shown-in-f.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -1076,7 +1043,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %langpack -l kk -n Kazakh -F -H %endif %langpack -l kn -n Kannada -F -H -Y -o kn_IN -w ka_IN -%langpack -l ko -n Korean -F -H -A -s cjk -T -c korea -X -o ko_KR -V -w ko_KR +%langpack -l ko -n Korean -F -H -A -s cjk -T -X -o ko_KR -V -w ko_KR %langpack -l lt -n Lithuanian -F -H -Y -A -o lt_LT -V -w lt_LT -X %if 0%{?fedora} || 0%{?rhel} >= 7 %langpack -l lv -n Latvian -F -H -Y -M @@ -1323,6 +1290,7 @@ export DESTDIR=../output export KDEMAINDIR=/usr export GNOMEDIR=/usr export GNOME_MIME_THEME=hicolor +export PREFIXDIR=/usr # TODO use empty variables? Should make the renaming hacks in %%install # unnecessary. . ./bin/get_config_variables PRODUCTVERSIONSHORT PRODUCTVERSION WORKDIR @@ -1648,7 +1616,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/gengal %{baseinstdir}/program/gengal.bin %{baseinstdir}/program/gnome-open-url -%{baseinstdir}/program/gnome-open-url.bin %{baseinstdir}/program/kde-open-url %{baseinstdir}/program/libi18nsearchlo.so %{baseinstdir}/program/libldapbe2lo.so @@ -1721,6 +1688,8 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libhelplinkerlo.so %{baseinstdir}/program/libhyphenlo.so %{baseinstdir}/program/libjdbclo.so +# TODO: move elsewhere? +%{baseinstdir}/program/liblibreofficekitgtk.so %{baseinstdir}/program/liblnglo.so %{baseinstdir}/program/libloglo.so %{baseinstdir}/program/liblocaledata_en.so @@ -1794,7 +1763,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libmigrationoo2lo.so %{baseinstdir}/program/libmigrationoo3lo.so %{baseinstdir}/program/libmsformslo.so -%{baseinstdir}/program/nsplugin %{baseinstdir}/program/open-url %{baseinstdir}/program/types/offapi.rdb %{baseinstdir}/program/libpasswordcontainerlo.so @@ -1853,7 +1821,7 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libucpexpand1lo.so %{baseinstdir}/program/libucpextlo.so %{baseinstdir}/program/libucptdoc1lo.so -%{baseinstdir}/program/unorc +%{baseinstdir}/program/lounorc %{baseinstdir}/program/libupdatefeedlo.so %{baseinstdir}/ure-link %{baseinstdir}/program/uri-encode @@ -1868,7 +1836,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/share/autotext/en-US %{baseinstdir}/share/basic %dir %{baseinstdir}/share/config -%{baseinstdir}/share/config/images.zip %{baseinstdir}/share/config/images_crystal.zip %{baseinstdir}/share/config/images_galaxy.zip %{baseinstdir}/share/config/images_hicontrast.zip @@ -1958,7 +1925,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libucpfile1.so %{baseinstdir}/program/libutllo.so %{baseinstdir}/program/libvcllo.so -%{baseinstdir}/program/libvclopengllo.so %{baseinstdir}/program/libwriterperfectlo.so %{baseinstdir}/program/libxmlscriptlo.so %{baseinstdir}/program/libxolo.so @@ -1985,7 +1951,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/soffice.bin %{baseinstdir}/program/sofficerc %{baseinstdir}/program/unoinfo -%{baseinstdir}/program/libnpsoplugin.so %{baseinstdir}/program/oosplash %{baseinstdir}/program/shell/ %dir %{baseinstdir}/share/filter @@ -2128,7 +2093,6 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %{baseinstdir}/program/libsclo.so %{baseinstdir}/program/libscdlo.so %{baseinstdir}/program/libscfiltlo.so -%{baseinstdir}/program/libscopencllo.so %{baseinstdir}/program/libscuilo.so %{baseinstdir}/program/libsolverlo.so %{baseinstdir}/program/libwpftcalclo.so diff --git a/sources b/sources index ae442c6..606a11d 100644 --- a/sources +++ b/sources @@ -7,6 +7,6 @@ a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2. 0168229624cfac409e766913506961a8 0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz 12fb8b5b0d5132726e57b9b9fc7e22c4 libreoffice-multiliblauncher.sh 4b87018f7fff1d054939d19920b751a0 4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2 -98312fcb1e1ab37321f29f64f312160a libreoffice-4.3.4.1.tar.xz -71ed47d8148dd66275bd87699b31c242 libreoffice-help-4.3.4.1.tar.xz -6e405e2b499ce28bce1e926bcb7268da libreoffice-translations-4.3.4.1.tar.xz +80061ad2bb160ab3afae214f7c67c182 libreoffice-4.4.0.0.beta1.tar.xz +3a1a6b149ded6126b87f370d95c8210d libreoffice-help-4.4.0.0.beta1.tar.xz +2753b040b5bb7155f8e7e5ec8c34ed49 libreoffice-translations-4.4.0.0.beta1.tar.xz