sw/CppunitTest_sw_rtfexport8.mk                   |    4 
 sw/qa/extras/rtfexport/data/text-with-comment.rtf |  232 ++++++++++++++++++++++
 sw/qa/extras/rtfexport/rtfexport8.cxx             |   27 ++
 sw/source/filter/ww8/rtfattributeoutput.cxx       |   27 +-
 sw/source/filter/ww8/rtfattributeoutput.hxx       |    4 
 5 files changed, 288 insertions(+), 6 deletions(-)

New commits:
commit 16c7a6f77e59c475bbb580ef1fd85428907a00f2
Author:     Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
AuthorDate: Mon Jun 17 08:46:14 2024 +0200
Commit:     Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
CommitDate: Thu Jun 20 09:22:11 2024 +0200

    rtf: Don't export notes author/date when in privacy mode
    
    Change-Id: I6dd318fcae9470bb8fc911a8b4d7ff7c7d8f9636
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168984
    Tested-by: Jenkins
    Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>

diff --git a/sw/CppunitTest_sw_rtfexport8.mk b/sw/CppunitTest_sw_rtfexport8.mk
index 94e535c0fbe2..2fabe631acda 100644
--- a/sw/CppunitTest_sw_rtfexport8.mk
+++ b/sw/CppunitTest_sw_rtfexport8.mk
@@ -15,4 +15,8 @@ ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),)
 $(eval $(call gb_CppunitTest_set_non_application_font_use,sw_rtfexport8,abort))
 endif
 
+$(eval $(call gb_CppunitTest_use_custom_headers,sw_rtfexport8,\
+    officecfg/registry \
+))
+
 # vim: set noet sw=4 ts=4:
diff --git a/sw/qa/extras/rtfexport/data/text-with-comment.rtf 
b/sw/qa/extras/rtfexport/data/text-with-comment.rtf
new file mode 100644
index 000000000000..f05c3f3ca28f
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/text-with-comment.rtf
@@ -0,0 +1,232 @@
+{ 
tf1deflang1025nsinsicpg1252\uc1deff43\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1031\deflangfe1031
  hemelang1031    hemelangfe0     hemelangcs0{onttbl{0bidi romancharset0
prq2{\*\panose 02020603050405020304}Times New Roman;}{1bidi swisscharset0
prq2{\*\panose 020b0604020202020204}Arial;}
+{24bidi romancharset1prq2{\*\panose 00000400000000000000}Mangal{\*alt 
Courier New};}{34bidi nilcharset0prq2{\*\panose 
00000000000000000000}Cambria Math;}{40bidi romancharset0prq2 Liberation 
Serif{\*alt Times New Roman};}
+{41bidi swisscharset0prq2 Liberation Sans{\*alt Arial};}{42bidi swiss
charset128prq2 Noto Sans CJK SC;}{43bidi swisscharset0prq2 Noto Sans;}{
1525bidi swisscharset128prq2 @Noto Sans CJK SC;}
+{lomajor31500bidi romancharset0prq2{\*\panose 02020603050405020304}Times 
New Roman;}{dbmajor31501bidi romancharset0prq2{\*\panose 
02020603050405020304}Times New Roman;}{himajor31502bidi swisscharset0prq2 
Calibri Light;}
+{bimajor31503bidi romancharset0prq2{\*\panose 02020603050405020304}Times 
New Roman;}{lominor31504bidi romancharset0prq2{\*\panose 
02020603050405020304}Times New Roman;}
+{dbminor31505bidi romancharset0prq2{\*\panose 02020603050405020304}Times 
New Roman;}{himinor31506bidi swisscharset0prq2 Calibri{\*alt Arial};}
+{biminor31507bidi romancharset0prq2{\*\panose 02020603050405020304}Times 
New Roman;}{1542bidi romancharset238prq2 Times New Roman CE;}{1543bidi 
romancharset204prq2 Times New Roman Cyr;}
+{1545bidi romancharset161prq2 Times New Roman Greek;}{1546bidi roman
charset162prq2 Times New Roman Tur;}{1547bidi romancharset177prq2 Times 
New Roman (Hebrew);}
+{1548bidi romancharset178prq2 Times New Roman (Arabic);}{1549bidi 
romancharset186prq2 Times New Roman Baltic;}{1550bidi romancharset163
prq2 Times New Roman (Vietnamese);}{1552bidi swisscharset238prq2 Arial CE;}
+{1553bidi swisscharset204prq2 Arial Cyr;}{1555bidi swisscharset161
prq2 Arial Greek;}{1556bidi swisscharset162prq2 Arial Tur;}{1557bidi 
swisscharset177prq2 Arial (Hebrew);}
+{1558bidi swisscharset178prq2 Arial (Arabic);}{1559bidi swiss
charset186prq2 Arial Baltic;}{1560bidi swisscharset163prq2 Arial 
(Vietnamese);}{1885bidi nilcharset161prq2 Cambria Math Greek;}
+{1942bidi romancharset238prq2 Liberation Serif CE{\*alt Times New 
Roman};}{1943bidi romancharset204prq2 Liberation Serif Cyr{\*alt Times 
New Roman};}
+{1945bidi romancharset161prq2 Liberation Serif Greek{\*alt Times New 
Roman};}{1946bidi romancharset162prq2 Liberation Serif Tur{\*alt Times 
New Roman};}
+{1947bidi romancharset177prq2 Liberation Serif (Hebrew){\*alt Times New 
Roman};}{1949bidi romancharset186prq2 Liberation Serif Baltic{\*alt Times 
New Roman};}
+{1950bidi romancharset163prq2 Liberation Serif (Vietnamese){\*alt Times 
New Roman};}{1952bidi swisscharset238prq2 Liberation Sans CE{\*alt 
Arial};}{1953bidi swisscharset204prq2 Liberation Sans Cyr{\*alt Arial};}
+{1955bidi swisscharset161prq2 Liberation Sans Greek{\*alt Arial};}{1956
bidi swisscharset162prq2 Liberation Sans Tur{\*alt Arial};}{1957bidi 
swisscharset177prq2 Liberation Sans (Hebrew){\*alt Arial};}
+{1959bidi swisscharset186prq2 Liberation Sans Baltic{\*alt Arial};}{
1960bidi swisscharset163prq2 Liberation Sans (Vietnamese){\*alt Arial};}{
1964bidi swisscharset0prq2 Noto Sans CJK SC Western;}
+{1962bidi swisscharset238prq2 Noto Sans CJK SC CE;}{1963bidi swiss
charset204prq2 Noto Sans CJK SC Cyr;}{1970bidi swisscharset163prq2 Noto 
Sans CJK SC (Vietnamese);}{1972bidi swisscharset238prq2 Noto Sans CE;}
+{1973bidi swisscharset204prq2 Noto Sans Cyr;}{1975bidi swiss
charset161prq2 Noto Sans Greek;}{1976bidi swisscharset162prq2 Noto Sans 
Tur;}{1979bidi swisscharset186prq2 Noto Sans Baltic;}
+{1980bidi swisscharset163prq2 Noto Sans (Vietnamese);}{16794bidi swiss
charset0prq2 @Noto Sans CJK SC Western;}{16792bidi swisscharset238prq2 
@Noto Sans CJK SC CE;}
+{16793bidi swisscharset204prq2 @Noto Sans CJK SC Cyr;}{16800bidi swiss
charset163prq2 @Noto Sans CJK SC (Vietnamese);}{lomajor31508bidi roman
charset238prq2 Times New Roman CE;}
+{lomajor31509bidi romancharset204prq2 Times New Roman Cyr;}{lomajor
31511bidi romancharset161prq2 Times New Roman Greek;}{lomajor31512bidi 
romancharset162prq2 Times New Roman Tur;}
+{lomajor31513bidi romancharset177prq2 Times New Roman (Hebrew);}{
lomajor31514bidi romancharset178prq2 Times New Roman (Arabic);}{lomajor
31515bidi romancharset186prq2 Times New Roman Baltic;}
+{lomajor31516bidi romancharset163prq2 Times New Roman (Vietnamese);}{
dbmajor31518bidi romancharset238prq2 Times New Roman CE;}{dbmajor31519
bidi romancharset204prq2 Times New Roman Cyr;}
+{dbmajor31521bidi romancharset161prq2 Times New Roman Greek;}{dbmajor
31522bidi romancharset162prq2 Times New Roman Tur;}{dbmajor31523bidi 
romancharset177prq2 Times New Roman (Hebrew);}
+{dbmajor31524bidi romancharset178prq2 Times New Roman (Arabic);}{
dbmajor31525bidi romancharset186prq2 Times New Roman Baltic;}{dbmajor
31526bidi romancharset163prq2 Times New Roman (Vietnamese);}
+{himajor31528bidi swisscharset238prq2 Calibri Light CE;}{himajor31529
bidi swisscharset204prq2 Calibri Light Cyr;}{himajor31531bidi swiss
charset161prq2 Calibri Light Greek;}
+{himajor31532bidi swisscharset162prq2 Calibri Light Tur;}{himajor31535
bidi swisscharset186prq2 Calibri Light Baltic;}{himajor31536bidi swiss
charset163prq2 Calibri Light (Vietnamese);}
+{bimajor31538bidi romancharset238prq2 Times New Roman CE;}{bimajor
31539bidi romancharset204prq2 Times New Roman Cyr;}{bimajor31541bidi 
romancharset161prq2 Times New Roman Greek;}
+{bimajor31542bidi romancharset162prq2 Times New Roman Tur;}{bimajor
31543bidi romancharset177prq2 Times New Roman (Hebrew);}{bimajor31544
bidi romancharset178prq2 Times New Roman (Arabic);}
+{bimajor31545bidi romancharset186prq2 Times New Roman Baltic;}{bimajor
31546bidi romancharset163prq2 Times New Roman (Vietnamese);}{lominor31548
bidi romancharset238prq2 Times New Roman CE;}
+{lominor31549bidi romancharset204prq2 Times New Roman Cyr;}{lominor
31551bidi romancharset161prq2 Times New Roman Greek;}{lominor31552bidi 
romancharset162prq2 Times New Roman Tur;}
+{lominor31553bidi romancharset177prq2 Times New Roman (Hebrew);}{
lominor31554bidi romancharset178prq2 Times New Roman (Arabic);}{lominor
31555bidi romancharset186prq2 Times New Roman Baltic;}
+{lominor31556bidi romancharset163prq2 Times New Roman (Vietnamese);}{
dbminor31558bidi romancharset238prq2 Times New Roman CE;}{dbminor31559
bidi romancharset204prq2 Times New Roman Cyr;}
+{dbminor31561bidi romancharset161prq2 Times New Roman Greek;}{dbminor
31562bidi romancharset162prq2 Times New Roman Tur;}{dbminor31563bidi 
romancharset177prq2 Times New Roman (Hebrew);}
+{dbminor31564bidi romancharset178prq2 Times New Roman (Arabic);}{
dbminor31565bidi romancharset186prq2 Times New Roman Baltic;}{dbminor
31566bidi romancharset163prq2 Times New Roman (Vietnamese);}
+{himinor31568bidi swisscharset238prq2 Calibri CE{\*alt Arial};}{
himinor31569bidi swisscharset204prq2 Calibri Cyr{\*alt Arial};}{himinor
31571bidi swisscharset161prq2 Calibri Greek{\*alt Arial};}
+{himinor31572bidi swisscharset162prq2 Calibri Tur{\*alt Arial};}{
himinor31575bidi swisscharset186prq2 Calibri Baltic{\*alt Arial};}{
himinor31576bidi swisscharset163prq2 Calibri (Vietnamese){\*alt Arial};}
+{biminor31578bidi romancharset238prq2 Times New Roman CE;}{biminor
31579bidi romancharset204prq2 Times New Roman Cyr;}{biminor31581bidi 
romancharset161prq2 Times New Roman Greek;}
+{biminor31582bidi romancharset162prq2 Times New Roman Tur;}{biminor
31583bidi romancharset177prq2 Times New Roman (Hebrew);}{biminor31584
bidi romancharset178prq2 Times New Roman (Arabic);}
+{biminor31585bidi romancharset186prq2 Times New Roman Baltic;}{biminor
31586bidi romancharset163prq2 Times New Roman (Vietnamese);}}{+ 
ed255\green0lue255; ed255\green0lue0; ed255\green255lue0; 
ed255\green255lue255; ed0\green0lue128; ed0\green128lue128; 
ed0\green128lue0; ed128\green0lue128; ed128\green0lue0; ed128\green128lue0; 
ed128\green128lue128;
+ ed192\green192lue192;}{\*\defchp s22\lochf31506\hichf31506\dbchf31505 
}{\*\defpap \ql \li0 i0\sa160\sl259\slmult1\widctlpar\wrapdefaultspalphaspnum
aautodjustright in0\lin0\itap0 }
oqfpromote {\stylesheet{
+\ql \li0 i0\widctlpar\wrapdefault\hyphpar0spalphaaauto in0\lin0\itap0  tlch
cs1 f43fs24lang1081 \ltrchcs0 40
s24\lang1031\langfe2052\kerning1+\ssemihidden \sunhideused \spriority1 Default 
Paragraph Font;}{\*
+       s11     srowd   rftsWidthB3     rpaddl108       rpaddr108       
rpaddfl3        rpaddft3        rpaddfb3        rpaddfr3        rcbpat1 rcfpat1 
blind0  blindtype3      svertalt        sbrdrt  sbrdrl  sbrdrb  sbrdrr  
sbrdrdgl        sbrdrdgr        sbrdrh  sbrdrv \ql \li0 i0\sa160\sl259\slmult1
+\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0  tlchcs1 
f31507fs22lang1025 \ltrchcs0 s22\lang1031\langfe1031\loch
31506\hichf31506\dbchf31505+Normal Table;}{\s15\ql \li0 i0\sb240\sa120\keepn
owidctlpar\wrapdefaultaauto in0\lin0\itap0  tlchcs1 f43fs28lang1025 \ltrch
cs0 s28\lang1031\langfe1031\loch41\hichf41\dbchf42+Heading;}{\s16\ql \li0 
i0\sa140\sl276\slmult1
owidctlpar\wrapdefaultaauto in0\lin0\itap0  tlchcs1 f0fs24lang1025 \ltrch
cs0 s24\lang1031\langfe1031\loch40\hichf40\dbchf31505+\sbasedon0 \snext16 
\slink17 Body Text;}{\*+
owidctlpar\wrapdefaultaauto in0\lin0\itap0  tlchcs1 f43fs24lang1025 \ltrch
cs0 s24\lang1031\langfe1031\loch43\hichf40\dbchf31505+\s19\ql \li0 
i0\sb120\sa120
owidctlpar
oline\wrapdefaultaauto in0\lin0\itap0  tlchcs1 if43fs24lang1025 \ltrch
cs0 \is24\lang1031\langfe1031\loch43\hichf40\dbchf31505+caption;}{\s20\ql 
\li0 i0
owidctlpar
oline\wrapdefaultaauto in0\lin0\itap0  tlchcs1 f43fs24lang1025 \ltrchcs0 
s24\lang1031\langfe1031\loch43\hichf40\dbchf31505+\s21\ql \li56 i56\sb56
owidctlpar\wrapdefaultaauto in56\lin56\itap0  tlchcs1 f0fs20lang1025 
\ltrchcs0 s20\lang1031\langfe1031\loch40\hichf40\dbchf31505+\s22\ql \li0 
i0\widctlpar\wrapdefault\hyphpar0spalphaaauto in0\lin0\itap0  tlchcs1 
f24fs16lang1081 \ltrchcs0 1s18\lang1031\langfe2052\kerning1+\sbasedon0 
\snext22 \slink23 \ssemihidden \sunhideused \styrsid3037080 Balloon 
Text;}{\*+\sbasedon10 \slink22 \slocked \ssemihidden \styrsid3037080 Balloon 
Text Char;}}{\* sidtbl  sid3037080 
sid4796436}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info
+{\operator 
crossover}{+\paperw11906\paperh16838\margl1134\margr1134\margt1134\margb1134\gutter0\ltrsect
 
+\deftab709\widowctrltnbjenddoc\hyphhotz425   rackmoves0      
rackformatting1\donotembedsysfont0 elyonvml0\donotembedlingdata1\grfdocevents0
alidatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0
+\showxmlerrors0\hyphauto1
ormshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress
iewkind1iewscale100
obrkwrptbl sidroot3037080 et0{\*\wgrffmtfilter 2450}\ilfomacatclnup0{\*tnsep 
\ltrpar 
+\pard\plain \ltrpar\ql \li0 i0\widctlpar\wrapdefault\hyphpar0spalphaaauto 
in0\lin0\itap0  tlchcs1 f43fs24lang1081 \ltrchcs0 40
s24\lang1031\langfe2052\kerning1+\lang1031\langfe1031\kerning0\dbchf31505\langfenp1031\insrsid4796436
 +\par }}{\*tnsepc \ltrpar \pard\plain \ltrpar\ql \li0 
i0\widctlpar\wrapdefault\hyphpar0spalphaaauto in0\lin0\itap0  tlchcs1 
f43fs24lang1081 \ltrchcs0 40s24\lang1031\langfe2052\kerning1+\ltrchcs0 
\insrsid4796436 +\par }}{\*ftnsep \ltrpar \pard\plain \ltrpar\ql \li0 
i0\widctlpar\wrapdefault\hyphpar0spalphaaauto in0\lin0\itap0  tlchcs1 
f43fs24lang1081 \ltrchcs0 40s24\lang1031\langfe2052\kerning1+\ltrchcs0 
\insrsid4796436 +\par }}{\*ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0 
i0\widctlpar\wrapdefault\hyphpar0spalphaaauto in0\lin0\itap0  tlchcs1 
f43fs24lang1081 \ltrchcs0 40s24\lang1031\langfe2052\kerning1+\ltrchcs0 
\insrsid4796436 +\par }}\ltrpar \sectd 
\ltrsect\sbknone\linex0\sectunlocked1\sectdefaultcl\sftnbj {\*\pnsecl
 vl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta 
.}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta 
.}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang 
+{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta 
)}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta 
)}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta 
)}}{\*\pnseclvl7
+\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta 
)}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta 
)}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta 
)}}\pard\plain \ltrpar
+\ql \li0 i0\widctlpar\wrapdefault\hyphpar0spalphaaauto in0\lin0\itap0  tlch
cs1 f43fs24lang1081 \ltrchcs0 40
s24\lang1031\langfe2052\kerning1+\lang1033\langfe2052\langnp1033\insrsid4796436+{\*nnotation{\*tnref
 706390807}{\*tndate 667322855}\ltrpar \pard\plain \ltrpar\ql \li0 i0
owidctlpar\wrapdefaultaauto in0\lin0\itap0  tlchcs1 f43fs24lang1081 \ltrch
cs0 
+40
s24\lang1031\langfe2052\kerning1+\lang1033\langfe2052\langnp1033\insrsid3037080 
 behind him.}{ tlchcs1 f43 \ltrchcs0 \insrsid4796436 
+\par }{\*      hemedata 
504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
+9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
+5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
+b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
+0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
+a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
+c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
+0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
+a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
+6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
+4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
+4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210007b740aaca0600008f1a0000160000007468656d652f7468656d652f
+7468656d65312e786d6cec595b8bdb46147e2ff43f08bd3bbe49be2cf1065bb69336bb49889d943cceda636bb2238dd18c776342a0244f7d2914d2d28706fad6
+87521a68a0a12ffd310b1bdaf447f4cc489667ec71f6420aa1640d8b34face996fce39face48ba7aed51449d239c70c2e2965bbe52721d1c8fd898c4d3967b6f
+d82f345c870b148f1165316eb90bccdd6bbb9f7e7215ed881047d801fb98efa0961b0a31db2916f9088611bfc26638866b13964448c069322d8e13740c7e235a
+ac944ab5628448ec3a318ac0ededc9848cb033942edddda5f31e85d358703930a2c940bac68685c28e0fcb12c1173ca089738468cb8579c6ec78881f09d7a188
+0bb8d0724beacf2dee5e2da29dcc888a2db69a5d5ffd657699c1f8b0a2e64ca607f9a49ee77bb576ee5f01a8d8c4f5eabd5aaf96fb5300341ac14a532eba4fbf
+d3ec74fd0cab81d2438bef6ebd5b2d1b78cd7f758373db973f03af40a97f6f03dfef07104503af4029dedfc07b5ebd1278065e81527c6d035f2fb5bb5eddc02b
+5048497cb8812ef9b56ab05c6d0e99307ac30a6ffa5ebf5ec99caf50500d7975c929262c16db6a2d420f59d2078004522448ec88c50c4fd008aa3840941c24c4
+d923d3100a6f8662c661b85429f54b55f82f7f9e3a5211413b1869d6921730e11b43928fc34709998996fb39787535c8e9ebd7274f5f9d3cfdfde4d9b393a7bf
+66732b5786dd0d144f75bbb73f7df3cf8b2f9dbf7ffbf1edf36fd3a9d7f15cc7bff9e5ab377ffcf92ef7b0e255284ebf7bf9e6d5cbd3efbffeebe7e716efed04
+1de8f0218930776ee163e72e8b608116fef820b998c5304444b768c7538e622467b1f8ef89d040df5a208a2cb80e36e3783f01a9b101afcf1f1a8407613217c4
+e2f1661819c07dc6688725d628dc947369611ecee3a97df264aee3ee2274649b3b40b191e5de7c061a4b6c2e83101b34ef50140b34c531168ebcc60e31b6acee
+0121465cf7c928619c4d84f380381d44ac21199203a39a56463748047959d80842be8dd8ecdf773a8cda56ddc5472612ee0d442de487981a61bc8ee602453697
+4314513de07b48843692834532d2713d2e20d3534c99d31b63ce6d36b71358af96f49b2033f6b4efd345642213410e6d3ef710633ab2cb0e831045331b7640e2
+50c77ec60fa144917387091b7c9f9977883c873ca0786bbaef136ca4fb6c35b8070aab535a1588bc324f2cb9bc8e9951bf83059d20aca4061a80a1eb1189cf14
+f93579f7ff3b7907113dfde1856545ef47d2ed8e8d7c5c50ccdb09b1de4d37d6247c1b6e5db803968cc987afdb5d348fef60b855369bd747d9fe28dbeeff5eb6
+b7ddcfef5fac57fa0cd22db7ade9765d6ddea3ad7bf709a174201614ef71b57de7d095c67d189476eab915e7cf72b3100ee59d0c1318b86982948d9330f10511
+e1204433d8e3975de964ca33d753eecc1887adbf1ab6fa96783a8ff6d9387d642d97e5e3692a1e1c89d578c9cfc7e17143a4e85a7df51896bb576ca7ea717949
+40da5e8484369949a26a21515f0eca20a98773089a85845ad97b61d1b4b06848f7cb546db0006a795660dbe4c066abe5fa1e9880113c55218ac7324f69aa97d9
+55c97c9f99de164ca302600fb1ac8055a69b92ebd6e5c9d5a5a5768e4c1b24b4723349a8c8a81ec64334c65975cad1f3d0b868ae9bab941af46428d47c505a2b
+1af5c6bb585c36d760b7ae0d34d69582c6ce71cbad557d2899119ab5dc093cfac3613483dae172bb8be814de9f8d4492def097519659c24517f1300db8129d54
+0d222270e25012b55cb9fc3c0d34561aa2b8952b20081f2cb926c8ca87460e926e26194f267824f4b46b2332d2e929287caa15d6abcafcf26069c9e690ee4138
+3e760ee83cb98ba0c4fc7a5906704c38bc012aa7d11c1378a5990bd9aafed61a5326bbfa3b455543e938a2b310651d4517f314aea43ca7a3cef2186867d99a21
+a05a48b2467830950d560faad14df3ae9172d8da75cf369291d34473d5330d55915dd3ae62c60ccb36b016cbcb35798dd532c4a0697a874fa57b5d729b4bad5b
+db27e45d02029ec7cfd275cfd110346aabc90c6a92f1a60c4bcdce46cddeb15ce019d4ced32434d5af2dddaec52def11d6e960f0529d1fecd6ab168626cb7da5
+8ab4faf6a17f9e60070f413cbaf022784e0557a9848f0f09820dd140ed4952d9805be491c86e0d3872e60969b98f4b7edb0b2a7e502835fc5ec1ab7aa542c36f
+570b6ddfaf967b7eb9d4ed549e4063116154f6d3ef2e7d780d4517d9d71735bef105265abe69bb32625191a92f2c45455c7d812957b67f81710888cee35aa5df
+ac363bb542b3daee17bc6ea7516806b54ea15b0beadd7e37f01bcdfe13d7395260af5d0dbc5aaf51a89583a0e0d54a927ea359a87b954adbabb71b3daffd24db
+c6c0ca53f9c86201e155bc76ff050000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72
+656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c08
+2e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd0
+8a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa
+4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f
+6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72
+656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f746865
+6d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210007b740aaca0600008f1a00001600000000000000000000000000d60200
+007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000
+00d40900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cf0a00000000}
+{\*+617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
+6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
+656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
+{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept
 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 
\lsdlocked0 heading 1;
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 
2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 
heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 
\lsdlocked0 heading 4;
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 
5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 
heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 
\lsdlocked0 heading 7;
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 
8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 
heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 
index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 
index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 
1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 
2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 
4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 
5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
+\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 
7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 
8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 
9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdqformat1 
\lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of 
figures;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 annotation reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 
line number;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 endnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of 
authorities;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdlocked0 
List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 List Number;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 
List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 List Bullet 3;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 
Bullet 5;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 List Number 3;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 
Number 5;
+\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Closing;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 
Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default 
Paragraph Font;
+\lsdsemihidden1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Body Text Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 
Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 List Continue 4;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message 
Header;
+\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Salutation;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First 
Indent;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 
2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Body Text 3;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Body Text Indent 3;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 
\lsdpriority22 \lsdlocked0 Strong;\lsdqformat1 \lsdpriority20 \lsdlocked0 
Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 E-mail Signature;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML 
Bottom of Form;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 HTML Acronym;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 HTML Definition;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML 
Preformatted;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 HTML Typewriter;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal 
Table;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 
Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table Simple 1;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 
Simple 3;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table Classic 2;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 
Classic 4;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table Colorful 2;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 
Columns 1;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table Columns 3;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 
Columns 5;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table Grid 2;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 
4;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table Grid 6;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 
8;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table List 2;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 
4;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table List 6;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 
8;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table 3D effects 2;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 
Table Contemporary;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table Professional;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 
Subtle 2;
+\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 
\lsdunhideused1 \lsdlocked0 Table Web 2;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon 
Text;
+\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 
\lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder 
Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 
\lsdlocked0 Light Shading;
+\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light 
Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 
Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 
\lsdlocked0 Medium List 2;
+\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium 
Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark 
List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 
Colorful List;
+\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light 
Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 
\lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 
Accent 1;
+\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 
\lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 
Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 
\lsdpriority29 \lsdlocked0 Quote;
+\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 
\lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 
Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 
\lsdlocked0 Medium Grid 3 Accent 1;
+\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 
Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 
1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 
Light Shading Accent 2;
+\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 
Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 
2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 
\lsdlocked0 Medium List 1 Accent 2;
+\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 
Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 
2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 
Dark List Accent 2;
+\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 
\lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid 
Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 
\lsdlocked0 Light List Accent 3;
+\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 
Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 
3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 
Medium List 2 Accent 3;
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 
Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 
3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 
Colorful Shading Accent 3;
+\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 
Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 
4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 
Light Grid Accent 4;
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 
\lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 
Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 
Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 
4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 
Colorful Shading Accent 4;
+\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 
Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 
5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 
Light Grid Accent 5;
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 
\lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 
Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 
Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 
5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 
Colorful Shading Accent 5;
+\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 
Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 
6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 
Light Grid Accent 6;
+\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 
\lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 
Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
+\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 
Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 
6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 
Colorful Shading Accent 6;
+\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 
Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle 
Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
+\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 
\lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 
\lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 
\lsdlocked0 Bibliography;
+\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC 
Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 
Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 
\lsdlocked0 Plain Table 4;
+\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table 
Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 
Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 
Grid Table 4;
+\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid 
Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 
Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 
\lsdlocked0 Grid Table 2 Accent 1;
+\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 
Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 
1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
+\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 
\lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 
Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
+\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 
Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful 
Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
+\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 
\lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 
Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
+\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 
\lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid 
Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 
4;
+\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 
Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 
4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
+\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 
\lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid 
Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
+\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 
Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 
5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
+\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 
\lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 
Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
+\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 
Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful 
Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
+\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List 
Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List 
Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
+\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 
List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 
1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 
List Table 3 Accent 1;
+\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 
List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful 
Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
+\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 
\lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 
Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
+\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 
\lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List 
Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 
3;
+\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 
List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 
3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
+\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 
\lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List 
Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
+\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 
List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 
4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
+\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 
\lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 
Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
+\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 
List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful 
Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
+\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 
\lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 
Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
+\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 
\lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List 
Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000
+4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
+d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000000000
+000000000000feffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000105000000000000}}
\ No newline at end of file
diff --git a/sw/qa/extras/rtfexport/rtfexport8.cxx 
b/sw/qa/extras/rtfexport/rtfexport8.cxx
index 13431ca2ee4c..1ed6eee0ded4 100644
--- a/sw/qa/extras/rtfexport/rtfexport8.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport8.cxx
@@ -28,6 +28,7 @@
 #include <docmodel/uno/UnoGradientTools.hxx>
 #include <tools/UnitConversion.hxx>
 #include <comphelper/propertyvalue.hxx>
+#include <officecfg/Office/Common.hxx>
 
 #include <unotxdoc.hxx>
 #include <docsh.hxx>
@@ -455,6 +456,32 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf158978)
     verify();
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testNotesAuthorDate)
+{
+    createSwDoc("text-with-comment.rtf");
+
+    auto pBatch(comphelper::ConfigurationChanges::create());
+    // Remove all personal info
+    
officecfg::Office::Common::Security::Scripting::RemovePersonalInfoOnSaving::set(true,
 pBatch);
+    pBatch->commit();
+    saveAndReload(mpFilter);
+
+    SvStream* pStream = maTempFile.GetStream(StreamMode::READ);
+    CPPUNIT_ASSERT(pStream);
+    OString aRtfContent(read_uInt8s_ToOString(*pStream, pStream->TellEnd()));
+
+    // Make sure user name was anonymized
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), aRtfContent.indexOf("\atnauthor Max 
Mustermann", 0));
+    CPPUNIT_ASSERT(aRtfContent.indexOf("\atnauthor Author1", 0) >= 0);
+
+    // Make sure user initials were anonymized
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), aRtfContent.indexOf("\atnid MM", 0));
+    CPPUNIT_ASSERT(aRtfContent.indexOf("\atnid A1", 0) >= 0);
+
+    // Make sure no date is set
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(-1), aRtfContent.indexOf("\atndate", 0));
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf158982)
 {
     auto verify = [this]() {
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx 
b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 8320e9e637b9..22a76de4a109 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -68,6 +68,7 @@
 #include <filter/msfilter/rtfutil.hxx>
 #include <svx/xfillit0.hxx>
 #include <svx/xflgrit.hxx>
+#include <unotools/securityoptions.hxx>
 #include <docufld.hxx>
 #include <fmtclds.hxx>
 #include <fmtrowsplt.hxx>
@@ -4074,6 +4075,11 @@ void RtfAttributeOutput::SetField(const SwField& 
/*rField*/, ww::eField /*eType*
 
 void RtfAttributeOutput::PostitField(const SwField* pField)
 {
+    bool bRemoveCommentAuthorDates
+        = 
SvtSecurityOptions::IsOptionSet(SvtSecurityOptions::EOption::DocWarnRemovePersonalInfo)
+          && !SvtSecurityOptions::IsOptionSet(
+                 SvtSecurityOptions::EOption::DocWarnKeepNoteAuthorDateInfo);
+
     const SwPostItField& rPField = *static_cast<const SwPostItField*>(pField);
 
     OString aName = OUStringToOString(rPField.GetName(), 
RTL_TEXTENCODING_UTF8);
@@ -4085,12 +4091,17 @@ void RtfAttributeOutput::PostitField(const SwField* 
pField)
         m_aPostitFields[it->second] = &rPField;
         return;
     }
-
+    OUString sAuthor(bRemoveCommentAuthorDates
+                         ? "Author" + 
OUString::number(mpAuthorIDs->GetInfoID(rPField.GetPar1()))
+                         : rPField.GetPar1());
+    OUString sInitials(bRemoveCommentAuthorDates
+                           ? "A" + 
OUString::number(mpAuthorIDs->GetInfoID(rPField.GetPar1()))
+                           : rPField.GetInitials());
     m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE 
OOO_STRING_SVTOOLS_RTF_ATNID " ");
-    m_aRunText->append(OUStringToOString(rPField.GetInitials(), 
m_rExport.GetCurrentEncoding()));
+    m_aRunText->append(OUStringToOString(sInitials, 
m_rExport.GetCurrentEncoding()));
     m_aRunText->append("}");
     m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE 
OOO_STRING_SVTOOLS_RTF_ATNAUTHOR " ");
-    m_aRunText->append(OUStringToOString(rPField.GetPar1(), 
m_rExport.GetCurrentEncoding()));
+    m_aRunText->append(OUStringToOString(sAuthor, 
m_rExport.GetCurrentEncoding()));
     m_aRunText->append("}");
     m_aRunText->append(OOO_STRING_SVTOOLS_RTF_CHATN);
 
@@ -4102,9 +4113,12 @@ void RtfAttributeOutput::PostitField(const SwField* 
pField)
         m_aRunText->append(m_nCurrentAnnotationMarkId);
         m_aRunText->append('}');
     }
-    m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE 
OOO_STRING_SVTOOLS_RTF_ATNDATE " ");
-    
m_aRunText->append(static_cast<sal_Int32>(sw::ms::DateTime2DTTM(rPField.GetDateTime())));
-    m_aRunText->append('}');
+    if (!bRemoveCommentAuthorDates)
+    {
+        m_aRunText->append("{" OOO_STRING_SVTOOLS_RTF_IGNORE 
OOO_STRING_SVTOOLS_RTF_ATNDATE " ");
+        
m_aRunText->append(static_cast<sal_Int32>(sw::ms::DateTime2DTTM(rPField.GetDateTime())));
+        m_aRunText->append('}');
+    }
     if (const OutlinerParaObject* pObject = rPField.GetTextObject())
         m_rExport.SdrExporter().WriteOutliner(*pObject, TXT_ATN);
     m_aRunText->append('}');
@@ -4155,6 +4169,7 @@ RtfAttributeOutput::RtfAttributeOutput(RtfExport& rExport)
     , m_nParaBeforeSpacing(0)
     , m_bParaAfterAutoSpacing(false)
     , m_nParaAfterSpacing(0)
+    , mpAuthorIDs(new SvtSecurityMapPersonalInfo)
 {
 }
 
diff --git a/sw/source/filter/ww8/rtfattributeoutput.hxx 
b/sw/source/filter/ww8/rtfattributeoutput.hxx
index 4309e1f213f3..7642918332ff 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.hxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.hxx
@@ -30,6 +30,7 @@
 
 #include <rtl/strbuf.hxx>
 #include <editeng/boxitem.hxx>
+#include <unotools/securityoptions.hxx>
 
 #include <optional>
 
@@ -665,6 +666,9 @@ private:
 
     editeng::WordPageMargins m_aPageMargins;
 
+    /// map authors to remove personal info
+    std::unique_ptr<SvtSecurityMapPersonalInfo> mpAuthorIDs;
+
 public:
     explicit RtfAttributeOutput(RtfExport& rExport);
 

Reply via email to