sw/qa/extras/ooxmlexport/data/tdf158044.odt |binary sw/qa/extras/ooxmlexport/ooxmlexport20.cxx | 34 ++ sw/qa/extras/ooxmlimport/data/tdf154370.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport2.cxx | 77 +++++ sw/qa/extras/rtfexport/data/tdf158762.rtf | 335 ++++++++++++++++++++++ sw/qa/extras/rtfexport/rtfexport7.cxx | 11 sw/source/filter/ww8/wrtw8nds.cxx | 152 ++++++++- sw/source/filter/ww8/wrtww8.hxx | 2 writerfilter/source/dmapper/DomainMapper.cxx | 1 writerfilter/source/dmapper/DomainMapper_Impl.cxx | 160 ++++++++++ writerfilter/source/dmapper/DomainMapper_Impl.hxx | 4 11 files changed, 750 insertions(+), 26 deletions(-)
New commits: commit feb5b8b559bd46f2bdc9dfd85125d28cdd05dd37 Author: Oliver Specht <oliver.spe...@cib.de> AuthorDate: Tue Dec 19 07:38:02 2023 +0100 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Thu Dec 21 16:02:59 2023 +0100 tdf#158762 RTF writerfilter: fix list import While importing the properties NumberingRules and NumberingStyleName interfere with each other. Avoid overwriting NumberingRules with an invalid NumberingStyleName. Regression from 588ff9a228f4894142264c68392ed1e9800a4d7d Change-Id: I706ea514da43faae0fdb9a2c0d4f5b1928ef55f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160967 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behr...@allotropia.de> (cherry picked from commit fad76223d1cff3746a5d2e4ce56b93ecd1c80f61) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161092 diff --git a/sw/qa/extras/rtfexport/data/tdf158762.rtf b/sw/qa/extras/rtfexport/data/tdf158762.rtf new file mode 100755 index 000000000000..2953c2acf29a --- /dev/null +++ b/sw/qa/extras/rtfexport/data/tdf158762.rtf @@ -0,0 +1,335 @@ +{ tf1deflang1025nsinsicpg1252\uc1deff0\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang3079\deflangfe3079 hemelang3079 hemelangfe0 hemelangcs0{onttbl{0bidi roman charset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Times New Roman};} +{34bidi romancharset0prq2{\*\panose 02040503050406030204}Cambria Math;}{ 40bidi swisscharset0prq2{\*\panose 00000000000000000000}Tahoma{\*alt Times New Roman};} +{lomajor31500bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Times New Roman};}{dbmajor31501bidi romancharset0 prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Times New Roman};} +{himajor31502bidi romancharset0prq2{\*\panose 02040503050406030204}Cambria;}{bimajor31503bidi romancharset0 prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Times New Roman};} +{lominor31504bidi romancharset0prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Times New Roman};}{dbminor31505bidi romancharset0 prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Times New Roman};} +{himinor31506bidi swisscharset0prq2{\*\panose 020f0502020204030204}Calibri;}{biminor31507bidi romancharset0 prq2{\*\panose 02020603050405020304}Times New Roman{\*alt Times New Roman};} +{43bidi romancharset238prq2 Times New Roman CE{\*alt Times New Roman};}{ 44bidi romancharset204prq2 Times New Roman Cyr{\*alt Times New Roman};}{ 46bidi romancharset161prq2 Times New Roman Greek{\*alt Times New Roman};} +{47bidi romancharset162prq2 Times New Roman Tur{\*alt Times New Roman};}{48bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Times New Roman};} +{49bidi romancharset178prq2 Times New Roman (Arabic){\*alt Times New Roman};}{50bidi romancharset186prq2 Times New Roman Baltic{\*alt Times New Roman};} +{51bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Times New Roman};}{383bidi romancharset238prq2 Cambria Math CE;}{384bidi roman charset204prq2 Cambria Math Cyr;} +{386bidi romancharset161prq2 Cambria Math Greek;}{387bidi roman charset162prq2 Cambria Math Tur;}{390bidi romancharset186prq2 Cambria Math Baltic;}{391bidi romancharset163prq2 Cambria Math (Vietnamese);} +{443bidi swisscharset238prq2 Tahoma CE{\*alt Times New Roman};}{444 bidi swisscharset204prq2 Tahoma Cyr{\*alt Times New Roman};}{446bidi swisscharset161prq2 Tahoma Greek{\*alt Times New Roman};} +{447bidi swisscharset162prq2 Tahoma Tur{\*alt Times New Roman};}{448 bidi swisscharset177prq2 Tahoma (Hebrew){\*alt Times New Roman};}{449bidi swisscharset178prq2 Tahoma (Arabic){\*alt Times New Roman};} +{450bidi swisscharset186prq2 Tahoma Baltic{\*alt Times New Roman};}{451 bidi swisscharset163prq2 Tahoma (Vietnamese){\*alt Times New Roman};}{452 bidi swisscharset222prq2 Tahoma (Thai){\*alt Times New Roman};} +{lomajor31508bidi romancharset238prq2 Times New Roman CE{\*alt Times New Roman};}{lomajor31509bidi romancharset204prq2 Times New Roman Cyr{\* alt Times New Roman};} +{lomajor31511bidi romancharset161prq2 Times New Roman Greek{\*alt Times New Roman};}{lomajor31512bidi romancharset162prq2 Times New Roman Tur{\* alt Times New Roman};} +{lomajor31513bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Times New Roman};}{lomajor31514bidi romancharset178prq2 Times New Roman (Arabic){\*alt Times New Roman};} +{lomajor31515bidi romancharset186prq2 Times New Roman Baltic{\*alt Times New Roman};}{lomajor31516bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Times New Roman};} +{dbmajor31518bidi romancharset238prq2 Times New Roman CE{\*alt Times New Roman};}{dbmajor31519bidi romancharset204prq2 Times New Roman Cyr{\* alt Times New Roman};} +{dbmajor31521bidi romancharset161prq2 Times New Roman Greek{\*alt Times New Roman};}{dbmajor31522bidi romancharset162prq2 Times New Roman Tur{\* alt Times New Roman};} +{dbmajor31523bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Times New Roman};}{dbmajor31524bidi romancharset178prq2 Times New Roman (Arabic){\*alt Times New Roman};} +{dbmajor31525bidi romancharset186prq2 Times New Roman Baltic{\*alt Times New Roman};}{dbmajor31526bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Times New Roman};} +{himajor31528bidi romancharset238prq2 Cambria CE;}{himajor31529bidi romancharset204prq2 Cambria Cyr;}{himajor31531bidi romancharset161prq2 Cambria Greek;}{himajor31532bidi romancharset162prq2 Cambria Tur;} +{himajor31535bidi romancharset186prq2 Cambria Baltic;}{himajor31536 bidi romancharset163prq2 Cambria (Vietnamese);}{bimajor31538bidi roman charset238prq2 Times New Roman CE{\*alt Times New Roman};} +{bimajor31539bidi romancharset204prq2 Times New Roman Cyr{\*alt Times New Roman};}{bimajor31541bidi romancharset161prq2 Times New Roman Greek{\*alt Times New Roman};} +{bimajor31542bidi romancharset162prq2 Times New Roman Tur{\*alt Times New Roman};}{bimajor31543bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Times New Roman};} +{bimajor31544bidi romancharset178prq2 Times New Roman (Arabic){\*alt Times New Roman};}{bimajor31545bidi romancharset186prq2 Times New Roman Baltic{\*alt Times New Roman};} +{bimajor31546bidi romancharset163prq2 Times New Roman (Vietnamese){\* alt Times New Roman};}{lominor31548bidi romancharset238prq2 Times New Roman CE{\*alt Times New Roman};} +{lominor31549bidi romancharset204prq2 Times New Roman Cyr{\*alt Times New Roman};}{lominor31551bidi romancharset161prq2 Times New Roman Greek{\*alt Times New Roman};} +{lominor31552bidi romancharset162prq2 Times New Roman Tur{\*alt Times New Roman};}{lominor31553bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Times New Roman};} +{lominor31554bidi romancharset178prq2 Times New Roman (Arabic){\*alt Times New Roman};}{lominor31555bidi romancharset186prq2 Times New Roman Baltic{\*alt Times New Roman};} +{lominor31556bidi romancharset163prq2 Times New Roman (Vietnamese){\* alt Times New Roman};}{dbminor31558bidi romancharset238prq2 Times New Roman CE{\*alt Times New Roman};} +{dbminor31559bidi romancharset204prq2 Times New Roman Cyr{\*alt Times New Roman};}{dbminor31561bidi romancharset161prq2 Times New Roman Greek{\*alt Times New Roman};} +{dbminor31562bidi romancharset162prq2 Times New Roman Tur{\*alt Times New Roman};}{dbminor31563bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Times New Roman};} +{dbminor31564bidi romancharset178prq2 Times New Roman (Arabic){\*alt Times New Roman};}{dbminor31565bidi romancharset186prq2 Times New Roman Baltic{\*alt Times New Roman};} +{dbminor31566bidi romancharset163prq2 Times New Roman (Vietnamese){\* alt Times New Roman};}{himinor31568bidi swisscharset238prq2 Calibri CE;}{ himinor31569bidi swisscharset204prq2 Calibri Cyr;} +{himinor31571bidi swisscharset161prq2 Calibri Greek;}{himinor31572 bidi swisscharset162prq2 Calibri Tur;}{himinor31573bidi swisscharset177 prq2 Calibri (Hebrew);} +{himinor31574bidi swisscharset178prq2 Calibri (Arabic);}{himinor31575 bidi swisscharset186prq2 Calibri Baltic;}{himinor31576bidi swiss charset163prq2 Calibri (Vietnamese);} +{biminor31578bidi romancharset238prq2 Times New Roman CE{\*alt Times New Roman};}{biminor31579bidi romancharset204prq2 Times New Roman Cyr{\* alt Times New Roman};} +{biminor31581bidi romancharset161prq2 Times New Roman Greek{\*alt Times New Roman};}{biminor31582bidi romancharset162prq2 Times New Roman Tur{\* alt Times New Roman};} +{biminor31583bidi romancharset177prq2 Times New Roman (Hebrew){\*alt Times New Roman};}{biminor31584bidi romancharset178prq2 Times New Roman (Arabic){\*alt Times New Roman};} +{biminor31585bidi romancharset186prq2 Times New Roman Baltic{\*alt Times New Roman};}{biminor31586bidi romancharset163prq2 Times New Roman (Vietnamese){\*alt Times New Roman};}}{+ ed0\green0lue255; ed0\green255lue255; ed0\green255lue0; ed255\green0lue255; ed255\green0lue0; ed255\green255lue0; ed255\green255lue255; ed0\green0lue128; ed0\green128lue128; ed0\green128lue0; ed128\green0lue128; + ed128\green0lue0; ed128\green128lue0; ed128\green128lue128; ed192\green192lue192; ed255\green255lue255;}{\*\defchp s22 }{\*\defpap \ql \li0 i0\sa200\sl276\slmult1\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0 +} oqfpromote {\stylesheet{\ql \li0 i0\widctlpar\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\s1\ql \li0 i0\keepn\widctlpar\wrapdefaultaauto\outlinelevel0djustright in0\lin0\itap0 tlchcs1 bf0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\s3\ql i-720\li1080 i0\keepn\widctlpar\jclisttab x1080\wrapdefault aauto\ls1\outlinelevel2djustright in0\lin1080\itap0 tlchcs1 bf0fs24lang1025 \ltrchcs0 s24\ul\lang1031\langfe3079+\sbasedon0 \snext0 \slink16 \sqformat heading 3;}{\s5\ql \li0 i0\keepn\widctlpar\wrapdefaultaauto\outlinelevel4djustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24+\sbasedon0 \snext0 \slink17 \sqformat heading 5;}{\*+ s11 srowd rftsWidthB3 rpaddl108 rpaddr108 rpaddfl3 rpaddft3 rpaddfb3 rpaddfr3 blind0 blindtype3 svertalt sbrdrt sbrdrl sbrdrb sbrdrr sbrdrdgl sbrdrdgr sbrdrh sbrdrv \ql \li0 i0\sa200\sl276\slmult1 +\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0 tlchcs1 f0fs22lang1025 \ltrchcs0 s22\lang3079\langfe3079+bf0fs32 \ltrchcs0 s32\lang1031\langfe0\kerning32\loch 31502\hichf31502\dbchf31501\langnp1031\langfenp0 \sbasedon10 \slink1 \slocked \spriority9 \'dcberschrift 1 Zchn;}{\*+s26\lang1031\langfe0\loch 31502\hichf31502\dbchf31501\langnp1031\langfenp0 \sbasedon10 \slink3 \slocked \ssemihidden \spriority9 \'dcberschrift 3 Zchn;}{\*+\i s26\lang1031\langfe0\loch31506\hichf31506\dbchf31505\langnp1031\langfenp0 \sbasedon10 \slink5 \slocked \ssemihidden \spriority9 \'dcberschrift 5 Zchn;}{\s18\ql \li0 i0\widctlpar + qc x4536 qr x9072\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\ltrchcs0 s24\lang1031\langfe0\langnp1031\langfenp0 \sbasedon10 \slink18 \slocked \ssemihidden Kopfzeile Zchn;}{\s20\ql \li0 i0\widctlpar qc x4536 qr x9072\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 +\ltrchcs0 s24\lang1031\langfe3079+Fu\'dfzeile Zchn;}{\s22\qc \li0 i0\widctlpar x-1629\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+dditive tlchcs1 f0fs24 \ltrchcs0 s24\lang1031\langfe0\langnp1031\langfenp0 \sbasedon10 \slink22 \slocked \ssemihidden Textk\'f6rper 2 Zchn;}{\s24\qj \li0 i0 owidctlpar\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 +f0fs24lang1025 \ltrchcs0 s24\lang3079\langfe3079+\ltrchcs0 s16 \sbasedon10 \ssemihidden annotation reference;}{\s27\ql \li0 i0\widctlpar\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs20lang1025 \ltrchcs0 s20\lang1031\langfe3079+\sbasedon0 \snext27 \slink28 \ssemihidden annotation text;}{\*+\s29\ql \li0 i0\widctlpar\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f40fs16lang1025 \ltrchcs0 40s16\lang1031\langfe3079+ tlchcs1 f40fs16 \ltrchcs0 40s16\lang1031\langfe0\langnp1031\langfenp0 \sbasedon10 \slink29 \slocked \ssemihidden Sprechblasentext Zchn;}{\*+\s32\ql \li284 i28\widctlpar\wrapdefaultaautodjustright in28\lin284\itap0 tlchcs1 f0fs18lang1025 \ltrchcs0 s18\lang1031\langfe3079+ tlchcs1 f0 \ltrchcs0 + rftsWidthB3 rpaddl108 rpaddr108 rpaddfl3 rpaddft3 rpaddfb3 rpaddfr3 blind0 blindtype3 svertalt sbrdrt sbrdrl sbrdrb sbrdrr sbrdrdgl sbrdrdgr sbrdrh sbrdrv +\ql \li0 i0\widctlpar\wrapdefaultspalphaspnumaautodjustright in0\lin0\itap0 tlchcs1 f0fs22lang1025 \ltrchcs0 s22\lang3079\langfe3079+{\*\listtable{\list\listtemplateid-374154644{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 bias0 i-720\li1080 +\jclisttab x1080\lin1080 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'01.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 bias0 i-360\li1440\jclisttab x1440\lin1440 } +{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'02.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 i-180\li2160\jclisttab x2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0 +\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'03.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 i-360\li2880\jclisttab x2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'04.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 i-360\li3600\jclisttab x3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0 +{\leveltext\'02\'05.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 i-180\li4320\jclisttab x4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'06.;}{\levelnumbers +\'01;} tlchcs1 f0 \ltrchcs0 i-360\li5040\jclisttab x5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'07.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 +i-360\li5760\jclisttab x5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'08.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 i-180\li6480\jclisttab x6480\lin6480 +}{\listname ;}\listid773479173}{\list\listtemplateid-974212600\listhybrid{\listlevel\levelnfc1\levelnfcn1\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid1499918394\'02\'00.;}{\levelnumbers\'01;} + tlchcs1 f0 \ltrchcs0 \ulnonebias0 i-720\li862\jclisttab x862\lin862 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201785369\'02\'01.;}{\levelnumbers\'01;} + tlchcs1 f0 \ltrchcs0 i-360\li1440\jclisttab x1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201785371\'02\'02.;}{\levelnumbers\'01;} tlchcs1 +f0 \ltrchcs0 i-180\li2160\jclisttab x2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201785359\'02\'03.;}{\levelnumbers\'01;} tlchcs1 f0 +\ltrchcs0 i-360\li2880\jclisttab x2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201785369\'02\'04.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 +i-360\li3600\jclisttab x3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201785371\'02\'05.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 +i-180\li4320\jclisttab x4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201785359\'02\'06.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 +i-360\li5040\jclisttab x5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201785369\'02\'07.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 +i-360\li5760\jclisttab x5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid201785371\'02\'08.;}{\levelnumbers\'01;} tlchcs1 f0 \ltrchcs0 +i-180\li6480\jclisttab x6480\lin6480 }{\listname ;}\listid1692488064}}{\*\listoverridetable{\listoverride\listid773479173\listoverridecount0\ls1}{\listoverride\listid1692488064\listoverridecount0\ls2}}{\*\pgptbl {\pgp\ipgp0\itap0\li0 i0\sb0\sa0}} +{\* sidtbl sid14051 sid18665 sid26612 sid75025 sid83538 sid143435 sid145605 sid148597 sid152609 sid160846 sid328541 sid335698 sid353072 sid359962 sid471430 sid528124 sid542531 sid660973 sid679954 sid739212 sid816336 sid865811 + sid1009746 sid1061574 sid1118833 sid1143161 sid1188422 sid1194076 sid1247743 sid1247809 sid1264041 sid1264312 sid1334493 sid1336510 sid1381982 sid1392694 sid1406672 sid1514289 sid1594203 sid1719048 sid1774056 sid1780448 sid1794768 + sid1799610 sid1845757 sid1854867 sid1968889 sid1983523 sid2035889 sid2046487 sid2061303 sid2117615 sid2184762 sid2190541 sid2231579 sid2294085 sid2385680 sid2385874 sid2386006 sid2454767 sid2492710 sid2507353 sid2522310 sid2564008 + sid2572107 sid2629668 sid2631820 sid2651112 sid2771182 sid2844074 sid2897227 sid2900738 sid2949360 sid2962477 sid2970998 sid3032757 sid3100259 sid3154703 sid3155278 sid3160219 sid3161356 sid3169508 sid3211745 sid3289132 sid3353357 + sid3426611 sid3434061 sid3617301 sid3621954 sid3683513 sid3687650 sid3687822 sid3753965 sid3762299 sid3811861 sid3819153 sid3880536 sid3887202 sid3943641 sid3950864 sid4013759 sid4017974 sid4026049 sid4077595 sid4088703 sid4159455 + sid4268661 sid4270245 sid4461211 sid4524173 sid4533623 sid4616804 sid4662110 sid4680986 sid4866711 sid4941575 sid4941830 sid4945845 sid4981831 sid4995438 sid5114915 sid5120311 sid5133746 sid5135446 sid5260093 sid5380063 sid5526795 + sid5532507 sid5571395 sid5601870 sid5662328 sid5717158 sid5724874 sid5728511 sid5779188 sid5836660 sid5842945 sid5927482 sid5930387 sid5978227 sid6098765 sid6117152 sid6239496 sid6306694 sid6319929 sid6358248 sid6366501 sid6380711 + sid6428237 sid6437007 sid6496683 sid6500052 sid6512804 sid6579064 sid6621357 sid6629681 sid6686131 sid6692964 sid6754046 sid6842264 sid6887333 sid6896277 sid6968771 sid7014448 sid7028216 sid7033634 sid7034731 sid7109859 sid7163962 + sid7168244 sid7214917 sid7224171 sid7224313 sid7227094 sid7288684 sid7345803 sid7358792 sid7497719 sid7542729 sid7691537 sid7744813 sid7758314 sid7877517 sid7887464 sid7889907 sid7947261 sid8003709 sid8076932 sid8147896 sid8150026 + sid8213765 sid8218993 sid8416371 sid8466701 sid8477796 sid8541622 sid8722154 sid8737343 sid8800885 sid8804518 sid8814167 sid8853451 sid8869496 sid8979435 sid8988171 sid8991147 sid9111345 sid9112378 sid9118274 sid9134303 sid9207289 + sid9391209 sid9446780 sid9519460 sid9569330 sid9596602 sid9653517 sid9699442 sid9722886 sid9730940 sid9778049 sid9778597 sid9786114 sid9789632 sid9898947 sid9902095 sid9918123 sid9925141 sid10170050 sid10177565 sid10236595 + sid10240892 sid10241701 sid10297680 sid10302769 sid10308785 sid10310435 sid10364391 sid10422541 sid10493261 sid10494857 sid10580259 sid10625170 sid10632048 sid10640629 sid10644807 sid10711632 sid10776109 sid10842037 sid10845333 + sid10903792 sid10905642 sid10945967 sid10957167 sid10966191 sid11092120 sid11158540 sid11162517 sid11409537 sid11418547 sid11490292 sid11500018 sid11538614 sid11547153 sid11552788 sid11616542 sid11623010 sid11629614 sid11673433 + sid11680280 sid11801545 sid11806692 sid11811331 sid11867024 sid11956285 sid12013976 sid12019642 sid12060810 sid12070991 sid12075995 sid12078207 sid12209677 sid12216755 sid12261343 sid12267572 sid12276623 sid12324070 sid12325086 + sid12332266 sid12387668 sid12402985 sid12472658 sid12484474 sid12548840 sid12585418 sid12589290 sid12602778 sid12668755 sid12730308 sid12809791 sid12852657 sid12863420 sid12870008 sid12915603 sid12933952 sid12938194 sid12942794 + sid12984722 sid13058992 sid13129919 sid13175106 sid13200754 sid13314575 sid13317381 sid13398041 sid13398412 sid13445602 sid13459605 sid13507345 sid13523214 sid13531750 sid13636287 sid13662049 sid13713202 sid13784212 sid13831354 + sid13908029 sid13912266 sid13972887 sid13972901 sid13980260 sid14034374 sid14046291 sid14047632 sid14237121 sid14237683 sid14248530 sid14250288 sid14294101 sid14365891 sid14384755 sid14557773 sid14562154 sid14567836 sid14572646 + sid14578018 sid14623845 sid14632107 sid14750637 sid14753921 sid14830059 sid14954656 sid14960966 sid15010454 sid15024543 sid15032290 sid15084887 sid15146322 sid15149667 sid15166303 sid15168204 sid15170614 sid15170694 sid15219411 + sid15274868 sid15301058 sid15352453 sid15419795 sid15477924 sid15485144 sid15495554 sid15534050 sid15545167 sid15554266 sid15562021 sid15625378 sid15627722 sid15681956 sid15743409 sid15747713 sid15890011 sid15926165 sid15949549 + sid15953255 sid15999705 sid16000997 sid16013636 sid16063391 sid16066710 sid16067309 sid16080145 sid16145963 sid16213284 sid16259113 sid16262700 sid16266753 sid16334768 sid16390301 sid16411309 sid16451773 sid16452934 sid16467473 + sid16524130 sid16581383 sid16598609 sid16651060 sid16651265 sid16654600}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{ itle Genehmigungsklausel} +{\subject GF-Anregung auf amtwegige Befreiung vom Pr\'e4senzdienst}{\keywords Genehmigungsklausel}{\doccomm Anpassung aufgrund LVId und Gegenstandsbezeichnung neu}{\operator xmwd}{+{\printim\yr2003\mo6\dy24\hr10\min5}{ersion33}{dmins0}{ ofpages2}{ ofwords214}{ ofchars1355}{\*+vom}\proptype30{\staticval 6.7.2018}{\propname KPH_Used}\proptype30{\staticval 2}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw11906\paperh16838\margl1418\margr1418\margt426\margb284\gutter0\ltrsect +\deftab709\widowctrltnbjenddoc\hyphhotz425 rackmoves0 rackformatting1\donotembedsysfont0 elyonvml0\donotembedlingdata1\grfdocevents0 alidatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0 +\showxmlerrors0 oxlattoyenxpshrtn oultrlspc\dntblnsbdb ospaceforul\hyphcaps0 ormshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress iewkind1iewscale70\pgbrdrhead\pgbrdrfoot olnhtadjtbl sidroot15890011 +et0{\*\wgrffmtfilter 013f}\ilfomacatclnup0{\* emplate C:\Users\xe7n\AppData\Roaming\Microsoft\Templates\kis.3.0.dot}{\*\docvar {GOB_SIGNPROFILE}{IGNORE}}{\*\docvar {KPH_Abgabestelle}{ }}{\*\docvar {KPH_AkadTitel}{ }} +{\*\docvar {KPH_AkadTitel2}{ }}{\*\docvar {KPH_AktDringend}{ }}{\*\docvar {KPH_AktErltermin}{ }}{\*\docvar {KPH_AktErstDatum}{12.10.2022}}{\*\docvar {KPH_Akttyp}{P}}{\*\docvar {KPH_AktUrgent}{ }}{\*\docvar {KPH_Anrede}{ }}{\*\docvar {KPH_Anrede_DR}{ }} +{\*\docvar {KPH_Anrede_WR}{ }}{\*\docvar {KPH_AnredeText}{ }}{\*\docvar {KPH_AnzBeilagen}{2}}{\*\docvar {KPH_BeilageBetreff}{ }}{\*\docvar {KPH_BeilageLfdNr}{ }}{\*\docvar {KPH_Beilagen}{Eingangsst\'fcckschreibendAnregung}} +{\*\docvar {KPH_Beilagen2}{Eingangsst\'fcckschreibendAnregungd}}{\*\docvar {KPH_Berufstitel}{ }}{\*\docvar {KPH_Berufstitel2}{ }}{\*\docvar {KPH_Bezug}{ohne Fremdzahld}}{\*\docvar {KPH_Classification}{ }}{\*\docvar {KPH_Dienstgrad}{ }} +{\*\docvar {KPH_done}{true}}{\*\docvar {KPH_doneat}{12.10.2022 07:52:48}}{\*\docvar {KPH_Dringend}{ }}{\*\docvar {KPH_EinbringerAbgabestelle}{ }}{\*\docvar {KPH_EinbringerAkadTitel}{ }}{\*\docvar {KPH_EinbringerAkadTitel2}{ }} +{\*\docvar {KPH_EinbringerAnrede}{ }}{\*\docvar {KPH_EinbringerAnredeText}{Sehr geehrte Damen und Herren}}{\*\docvar {KPH_EinbringerBerufstitel}{ }}{\*\docvar {KPH_EinbringerBerufstitel2}{ }}{\*\docvar {KPH_EinbringerGBNr}{ }} +{\*\docvar {KPH_EinbringerGebDatum}{ }}{\*\docvar {KPH_EinbringerKurz}{"Silvia Robinig" <s.robi...@egger-installationen.at>}}{\*\docvar {KPH_EinbringerLang}{"Silvia Robinig" <s.robi...@egger-installationen.at>}}{\*\docvar {KPH_EinbringerLVId}{ }} +{\*\docvar {KPH_EinbringerMiltitel}{ }}{\*\docvar {KPH_EinbringerOEBez}{ }}{\*\docvar {KPH_EinbringerOEDvr}{ }}{\*\docvar {KPH_EinbringerOEKurzBez}{ }}{\*\docvar {KPH_EinbringerOELiegenschaft}{ }}{\*\docvar {KPH_EinbringerOETruppennr}{ }} +{\*\docvar {KPH_EinbringerOrt}{ }}{\*\docvar {KPH_EinbringerPlz}{ }}{\*\docvar {KPH_EinbringerSVNR}{ }}{\*\docvar {KPH_EinbringerVorname}{ }}{\*\docvar {KPH_EinbringerZuname}{"Silvia Robinig" <s.robi...@egger-installationen.at>}} +{\*\docvar {KPH_Eingangsdatum}{11.10.2022}}{\*\docvar {KPH_EinkaufsGZ}{ }}{\*\docvar {KPH_eMail}{ }}{\*\docvar {KPH_Empf\'e4ngerkurz}{PS}}{\*\docvar {KPH_Empf\'e4ngerLang}{GOB PS StandardOE}}{\*\docvar {KPH_Empf\'e4ngerLang2}{GOB PS StandardOE}} +{\*\docvar {KPH_Empf\'e4ngerNr}{1}}{\*\docvar {KPH_EmpfAnm}{ }}{\*\docvar {KPH_EmpfErltermin}{ }}{\*\docvar {KPH_EmpfKennzeichen}{0}}{\*\docvar {KPH_ErledigungNr}{1}}{\*\docvar {KPH_Erltermin}{ }}{\*\docvar {KPH_EStkNr}{2275010/2022}} +{\*\docvar {KPH_EVAbgabestelle}{ }}{\*\docvar {KPH_EVArt}{ }}{\*\docvar {KPH_EVOEBez}{ }}{\*\docvar {KPH_EVOEDVR}{ }}{\*\docvar {KPH_EVOEKurzBez}{ }}{\*\docvar {KPH_EVOELiegenschaft}{ }}{\*\docvar {KPH_EVOETruppennr}{ }}{\*\docvar {KPH_EVOrt}{ }} +{\*\docvar {KPH_EVPlz}{ }}{\*\docvar {KPH_Fertigungsklausel}{ }}{\*\docvar {KPH_Fremdzahlen}{ohne Fremdzahld}}{\*\docvar {KPH_Fremdzahlen2}{ohne Fremdzahl}}{\*\docvar {KPH_Fremdzahlen2ErlNr}{ohne Fremdzahl}} +{\*\docvar {KPH_FremdzahlenErlNr}{ohne Fremdzahld}}{\*\docvar {KPH_GBNr}{ }}{\*\docvar {KPH_Gegenstand}{DOBERLLUKA Adil, 13 08 99dAntrag auf vor\'fcbergehende Befreiung}} +{\*\docvar {KPH_GegenstandErl}{DOBERLLUKA Adil,ageb. 13.08.1999, LVId QJ59-6595dAnregung auf befristete Befreiung von der Verpflichtungazur Leistung des Grundwehrdienstesagem\'e4\'df \'a7 26 Abs. 1 Ziffer 1 WG 2001 -aWeiterleitung}} +{\*\docvar {KPH_GegenstandPers}{DOBERLLUKA Adildgeb. 13.08.1999, LVId QJ59-6595, }}{\*\docvar {KPH_GenAkadTitel}{Obst}}{\*\docvar {KPH_GenAkadTitel2}{MSD}}{\*\docvar {KPH_GenBerufstitel}{ }}{\*\docvar {KPH_GenDatum}{12.10.2022}} +{\*\docvar {KPH_GenDatumLang}{12.\'a0Oktober\'a02022}}{\*\docvar {KPH_Genehmiger}{MUSTERMANN}}{\*\docvar {KPH_GenehmigerLang}{Obst Alexander KRASZNITZER, MSD}}{\*\docvar {KPH_GeneMail}{bundeshee...@bmlv.gv.at}}{\*\docvar {KPH_GenFAX}{ }} +{\*\docvar {KPH_GenIFMIN}{ }}{\*\docvar {KPH_GenMiltitel}{ }}{\*\docvar {KPH_GenTelefon}{807041000}}{\*\docvar {KPH_GenUserID}{xm3l}}{\*\docvar {KPH_GenVorname}{Alexander}}{\*\docvar {KPH_GenZuname}{KRASZNITZER}} +{\*\docvar {KPH_Gesch\'e4ftszahl}{P1512473/4-MilKdo K/Kdo/ErgAbt/2022}}{\*\docvar {KPH_Gesch\'e4ftszahlErlNr}{X123456/0-MilKdo A/Kdo/ZauberAbt/2022}}{\*\docvar {KPH_GPAkadTitel}{ }}{\*\docvar {KPH_GPAkadTitel2}{ }}{\*\docvar {KPH_GPBerufstitel}{ }} +{\*\docvar {KPH_GPBerufstitel2}{ }}{\*\docvar {KPH_GPDienststelle}{ }}{\*\docvar {KPH_GPGBNr}{K /99/10/00/14}}{\*\docvar {KPH_GPGebDatum}{13.08.1999}}{\*\docvar {KPH_GPLVId}{QJ59-6595}}{\*\docvar {KPH_GPMiltitel}{ }}{\*\docvar {KPH_GPSVNr}{13.08.1999}} +{\*\docvar {KPH_GPVorname}{Adil}}{\*\docvar {KPH_GPZuname}{DOBERLLUKA}}{\*\docvar {KPH_Grundzahl}{1512473}}{\*\docvar {KPH_inVertretung}{ }}{\*\docvar {KPH_Jahr}{2022}}{\*\docvar {KPH_Kl.stufe}{ }}{\*\docvar {KPH_LAND}{\'d6sterreich}} +{\*\docvar {KPH_LVId}{ }}{\*\docvar {KPH_Miltitel}{ }}{\*\docvar {KPH_Miterledigt}{ }}{\*\docvar {KPH_OEBez}{GOB PS StandardOE}}{\*\docvar {KPH_OEDVR}{ }}{\*\docvar {KPH_OEKurzBez}{PS}}{\*\docvar {KPH_OELiegenschaft}{ }}{\*\docvar {KPH_OETruppennr}{ }} +{\*\docvar {KPH_Ordnungszahl}{4}}{\*\docvar {KPH_ORT}{ }}{\*\docvar {KPH_PersBezug}{Adil DOBERLLUKAd}}{\*\docvar {KPH_PLZ}{ }}{\*\docvar {KPH_Poststempeldatum}{ }}{\*\docvar {KPH_Sachbearbeiter}{Obst Max MUSTERMANN}}{\*\docvar {KPH_Sachgebiet}{ }} +{\*\docvar {KPH_SBAkadTitel}{Obst}}{\*\docvar {KPH_SBAkadTitel2}{ }}{\*\docvar {KPH_SBBerufstitel}{ }}{\*\docvar {KPH_SBeMail}{bundeshee...@bmlv.gv.at}}{\*\docvar {KPH_SBFax}{0123456}}{\*\docvar {KPH_SBIFMIN}{ }}{\*\docvar {KPH_SBMiltitel}{ }} +{\*\docvar {KPH_SBTelefon}{01234567}}{\*\docvar {KPH_SBUserID}{xxxx}}{\*\docvar {KPH_SBVorname}{G\'fcnter}}{\*\docvar {KPH_SBZuname}{TSCHEPPE}}{\*\docvar {KPH_Schreibendatum}{ }}{\*\docvar {KPH_Skartierung}{30}}{\*\docvar {KPH_SVNr}{ }} +{\*\docvar {KPH_Urgent}{ }}{\*\docvar {KPH_VerantwOEAbgabestelle}{Rosenbergstrasse 1-3}}{\*\docvar {KPH_VerantwOEBez}{Milit\'e4rkommando K\'e4rntendErg\'e4nzungsabteilung}}{\*\docvar {KPH_VerantwOEDVR}{ }} +{\*\docvar {KPH_VerantwOEKurzbez}{MilKdo K/Kdo/ErgAbt}}{\*\docvar {KPH_VerantwOELiegenschaft}{WINDISCH Kaserne}}{\*\docvar {KPH_VerantwOEOrt}{KLAGENFURT}}{\*\docvar {KPH_VerantwOEPLZ}{9020}}{\*\docvar {KPH_VerantwOETruppennr}{ }} +{\*\docvar {KPH_Verteiler}{ }}{\*\docvar {KPH_Verteiler2}{ }}{\*\docvar {KPH_Verteiler3}{ }}{\*\docvar {KPH_Verteiler4}{ }}{\*\docvar {KPH_VerwBez}{ }}{\*\docvar {KPH_VorgangsNr}{-1}}{\*\docvar {KPH_Vorname}{ }}{\*\docvar {KPH_VSx}{ }} +{\*\docvar {KPH_ZIVTITEL_1}{ }}{\*\docvar {KPH_ZIVTITEL_2}{ }}{\*\docvar {KPH_ZIVTITEL_3}{ }}{\*\docvar {KPH_ZIVTITEL_4}{ }}{\*\docvar {KPH_zuHanden}{ }}{\*\docvar {KPH_Zuname}{ }}{\*\docvar {MERGEPARMS}{--prefix-delimiter=.}} +{\*\docvar {PPH_Abgabestelle}{Marktstra\'dfe 7/1}}{\*\docvar {PPH_AkadTitel}{ }}{\*\docvar {PPH_Empfaenger}{ }}{\*\docvar {PPH_EmpfAnm}{13.08.1999}}{\*\docvar {PPH_GBNr}{K /99/10/00/14}}{\*\docvar {PPH_GegenstandErl}{ }} +{\*\docvar {PPH_KuvID}{676694674701475}}{\*\docvar {PPH_LAND}{\'d6sterreich}}{\*\docvar {PPH_ORT}{Klein St. Paul}}{\*\docvar {PPH_PLZ}{9373}}{\*\docvar {PPH_Vorname}{Adil}}{\*\docvar {PPH_Zuname}{DOBERLLUKA}}{\*tnsep \ltrpar \pard\plain \ltrpar +\ql \li0 i0\widctlpar\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\par }}{\* tnsepc \ltrpar \pard\plain \ltrpar\ql \li0 i0\widctlpar\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\insrsid1594203 +\par }}{\*ftnsep \ltrpar \pard\plain \ltrpar\ql \li0 i0\widctlpar\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\insrsid1594203 +\par }}{\*ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0 i0\widctlpar\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\insrsid1594203 +\par }}\ltrpar \sectd \ltrsect\psz9\sbknone\linex0\headery709ootery709+ qc x4536 qr x9072\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\par }}{\headerr \ltrpar \pard\plain \ltrpar\s29\qc \li0 i0\widctlpar qc x4536 qr x9072\wra pdefaultaautodjustright in0\lin0\itap0 tlchcs1 f40fs16lang1025 \ltrchcs0 40s16\lang1031\langfe3079+f0fs26 \ltrchcs0 +\sectd \ltrsect\linex0ndnhere\sectdefaultcl\sftnbj { tlchcs1 f0fs26 \ltrchcs0 +\par }}{ooterl \ltrpar \pard\plain \ltrpar\s20\ql \li0 i0\widctlpar qc x4536 qr x9072\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\ltrchcs0 \insrsid6842264 +\par }}{ooterr \ltrpar \pard\plain \ltrpar\s20\ql \li0 i0\widctlpar qc x4536 qr x9072\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\ltrchcs0 \insrsid6842264 +\par }}{\headerf \ltrpar \pard\plain \ltrpar\s18\ql \li0 i0\widctlpar qc x4536 qr x9072\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\ltrchcs0 \insrsid6842264 +\par }}{ooterf \ltrpar \pard\plain \ltrpar\s20\ql \li0 i0\widctlpar qc x4536 qr x9072\wrapdefaultaautodjustright in0\lin0\itap0 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+\ltrchcs0 \insrsid6842264 +\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}} +{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}} + +{ tlchcs1 f0 \ltrchcs0 \insrsid11162517+\pard\plain \ltrpar\s3\ql \li0 i0 owidctlpar\wrapdefaultaauto\outlinelevel2djustright in0\lin0\itap0 tlchcs1 bf0fs24lang1025 \ltrchcs0 s24\ul\lang1031\langfe3079+\ltrchcs0 0s16\insrsid11162517+\par {\*kmkstart Dropdown3} +{\listtext\pard\plain\ltrpar \s3 tlchcs1 f0 \ltrchcs0 \lang1031\langfe3079\langnp1031\insrsid15010454+\jclisttab x426\jclisttab x862\wrapdefaultaauto\ls2\outlinelevel2djustright in0\lin426\itap0\pararsid15010454 { tlchcs1 b0f0 \ltrchcs0 0\insrsid15010454+ +{ tlchcs1 b0f0 \ltrchcs0 +0\insrsid15010454 +\par } + +{ +{\listtext\pard\plain\ltrpar \s3 tlchcs1 f0 \ltrchcs0 \lang1031\langfe3079\langnp1031\insrsid15010454+\pard\plain \ltrpar\s3\ql i-426\li426 i0 owidctlpar +\jclisttab x426\wrapdefaultaauto\ls2\outlinelevel2djustright in0\lin426\itap0\pararsid12602778 tlchcs1 bf0fs24lang1025 \ltrchcs0 s24\ul\lang1031\langfe3079+{ tlchcs1 b0f0 \ltrchcs0 +0\insrsid15010454+{ tlchcs1 b0f0 \ltrchcs0 0\insrsid15010454 +\par } +{ + tlchcs1 b0f0 \ltrchcs0 0\insrsid1854867+\par }\pard\plain \ltrpar\ql \li0 i0\widctlpar\wrapdefaultaautodjustright in0\lin0\itap0\pararsid4616804 tlchcs1 f0fs24lang1025 \ltrchcs0 s24\lang1031\langfe3079+ s8\insrsid4616804+\par \ltrrow} + +{ tlchcs1 f0 \ltrchcs0 \insrsid11162517 Remarks{\*kmkstart Dropdown4}}{ield ldpriv{\*ldinst { tlchcs1 f0 \ltrchcs0 \insrsid11162517+{\*\datafield 66800000000000000944726f70646f776e340000000000000000000000000009000200020000000a0004000600012002656e}{\* ormfield{ftype2fres25ftypetxt0fhaslistbox{\*fname Dropdown4}fdefres0{\* fl }{\*fl en}}}}}{ldrslt }}\sectd \ltrsect +\psz9\sbknone\linex0\headery709ootery709+\par }{ tlchcs1 f0 \ltrchcs0 \insrsid11162517+\par }{\* hemedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210060ffbff5a4060000a21b0000160000007468656d652f7468656d652f +7468656d65312e786d6cec594f6f1b4514bf23f11d467b6f6327761a4775aad8b11b6852a2d82dea71bc3bde9d66766735334eea1b6a8f484888823850891b07 +04546a252ee5d3048aa048fd0abc99d95defc46b92b411ada039b4f6ec6fdefff79b37ebabd7eec50c1d1221294fda5efd72cd4324f1794093b0eddd1af62fad +79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607f22d771db8b944ad79796a40fcb585ee62949e0d9988b182bf82ac2a540e023901bb3a5e55a6d +7529c634f150826310bb830595127b1bb9dc1e03e189927ac16762a0a5920a707050d71039955d26d021666d0f7404fc6848ee290f312c153c687b35f3e72d6d +5c5dc2ebd926a616ec2dedeb9bbf6c5fb6213858363a45382a94d6fb8dd695ad42be0130358febf57add5ebd906700d8f7c1556b4b5966a3bf56efe4324b20fb +715e76b7d6ac355c7c49feca9ccdad4ea7d36c65b658a106643f36e6f06bb5d5c6e6b28337208b6fcee11b9dcd6e77d5c11b90c5afcee1fb575aab0d176f4011 +a3c9c11c5a27b4dfcfa417903167db95f03580afd532f80c05d55094975631e6895a586c31becb451f101ac9b0a20952d3948cb10f25dcc5f14850ac35e07582 +4b4fec922fe796b432247d4153d5f63e4c31b4c34cdecb673fbc7cf6041ddf7f7a7cffe7e3070f8eefff640539bbb671129677bdf8eef3bf1e7d82fe7cf2ed8b +875f56e36519ffdb8f9ffefacb17d540e89f9939cfbf7afcfbd3c7cfbffeec8fef1f56c037051e95e1431a13896e9223b4cf6370cc44c5b59c8cc4f9760c234c +cb3b369350e2046b2d15f27b2a72d037a79865d971ece8103782b705f04715f0fae4ae63f0201213452b34df886207b8cb39eb705119851b5a5729ccc3491256 +2b1793326e1fe3c32add5d9c38f9ed4d5260cebc2c1dc7bb1171ccdc63385138240951483fe30784547877875227aebbd4175cf2b1427728ea605a1992211d39 +d534dbb44d63c8cbb4ca67c8b7139bdddba8c35995d75be4d0454257605661fc9030278cd7f144e1b84ae410c7ac1cf01daca22a230753e197713da920d32161 +1cf502a2cfb4f9d2ff4880bfa5a4dfc040599569df65d3d8450a450faa64ee60cecbc82d7ed08d709c5661073489cad80fe4019428467b5c55c177b9db21fa3b +e401270bd37d9b1227dda7b3c12d1a3a26cd0a443f99888a285e27dca9dfc1948d31315403acee70754c937f226e4681b9ad868b236ea0cae7df3caab0fb6da5 +ec4d38bdaa7a66fb04512fc29da4e72e17017dfbd9790b4f923d020d31dfa7efc8f91d397bff79725ed4cf174fc933160682d6b3889db4cddc1d2f1ebbc794b1 +819a32b223cde42de1f009fab0a8379afb2629ee6169041f752b830607170a6cf620c1d5c754458308a730b5d73d2d249499e850a2944bb82e9ae54ad91a0f93 +bfb297cda6be8658ea9058edf2c02eafe8e5fcb65188315685e64e9b2b5ad102ceaa6ce54a26147c7b1565756dd499b5d58d6986151d6d85cb3ac4e65e0e212f +5c83c5229a30d520988520caab70e3d7aae1b683190974dc6d8ef2b4982c5c648a64840392e548fb3d9fa3ba49525e2b738e683f6c31e8abe329512b696b69b1 +afa1ed2c492aab6b2c509767ef75b29457f02c4b20ed643bb2a4dc9c2c41476dafd55c6e7ac8c769db1bc345193ec629645dea4112b3105e35f94ad8b23fb599 +4d97cfb2d9ca1d739ba00e2f3f6cdce71c76782015526d6119d9d2308fb2126089d664ed5f6e42582fca810a363a9b152b6b500c6fcc0a88a39b5a321e135f95 +935d5ad1b1b35f332ae51345c4200a8ed0884dc43e86f4eb52057f022ae17d876104fd05decee9689b472e39674d577e276670761db334c219ddea16cd3bd9c2 +0d211536986f25f3c0b74adb8d73e777c5b4fc05b9522ee3ff992bfa3c81d70f2b81ce800f2f860546ba53da1e172ae2c0426944fdbe80c9c17007540bbce185 +c75054f07adafc2fc8a1fedff69c9561da1a6e916a9f864850388f542408d9035a32d5778ab07a767659912c13642aaa64ae4cadd9237248d85073e0aa3edb3d +1441a91b36c968c0e04ed69ffb3deba051a8879c72bf394c569cbdb607feedc9c7363338e5f2b01968f2f8172616e3c1ec54b5fbcdf6fcec2d3ba21fccc6ac46 +de15a0ac7414b4b2b67f4513ce79d45ac69af378b9991b07599cf718168b812885974848ff03e71f153e23a68cf5813ae4fbc0ad087ebed0c2a06ca0aa2fd9c1 +036982b48b23189ceca22d262dca86361b9d74d4f2c3fa8227dd42ef89606bcbce92ef7306bb18ce5c754e2f5e64b0b3083bb1b66b0b430d993dd9a2b034ce6f +322631e647b2f28f597c741712bd053f1a4c9892a698e0972a8161861e983e80e6b71acdd68dbf010000ffff0300504b0304140006000800000021000dd1909f +b60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f +6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b0 +60828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509a +ffb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000 +001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c000 +0000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c +00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210060ffbf +f5a4060000a21b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021 +000dd1909fb60000001b0100002700000000000000000000000000ae0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000a90a00000000} +{\*+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;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\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 \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 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdpriority59 \lsdlocked0 Table Grid;\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 +4d73786d6c322e534158584d4c5265616465722e362e30000000000000000000000e0000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdffffff04000000feffffff05000000fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff010000000c6ad98892f1d411a65f0040963251e50000000000000000000000006050 +089dd715d90103000000c0020000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff0200000000000000000000000000000000000000000000006050089dd715d901 +6050089dd715d90100000000000000000000000053004b00dc00d0004300d100d600ce003100c40053005900c800d900cf00430043004a00ce004b004d00d0003d003d000000000000000000000000000000000032000101ffffffffffffffff0300000000000000000000000000000000000000000000006050089dd715 +d9016050089dd715d9010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000 +00000000000000000000000000000000320100000000000001000000020000000300000004000000feffffff060000000700000008000000090000000a000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e3c623a536f757263657320786d6c6e733a623d22687474703a2f2f736368656d61732e6f70656e78 +6d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f6772617068792220786d6c6e733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222053656c +65637465645374796c653d225c415041536978746845646974696f6e4f66666963654f6e6c696e652e78736c22205374796c654e616d653d22415041222056657273696f6e3d2236223e3c2f623a536f75726365733e00000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f6469 +6e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b30423330414634382d414531442d343436452d393841332d3942433230383942384133337d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70 +656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000 +0000000000000000000000000000000000000000000000000000000000000500000055010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746f6d586d6c223e3c64733a736368656d61526566733e3c64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f7267 +2f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f72654974656d3e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/sw/qa/extras/rtfexport/rtfexport7.cxx b/sw/qa/extras/rtfexport/rtfexport7.cxx index 8abc76ff35a0..4a0a4ac27c39 100644 --- a/sw/qa/extras/rtfexport/rtfexport7.cxx +++ b/sw/qa/extras/rtfexport/rtfexport7.cxx @@ -769,6 +769,17 @@ DECLARE_RTFEXPORT_TEST(testTdf153195, "tdf153195.rtf") getProperty<sal_Int32>(xTables->getByIndex(1), "LeftMargin"), 10); } +DECLARE_RTFEXPORT_TEST(testTdf158762, "tdf158762.rtf") +{ + for (int paragraph = 3; paragraph < 6; ++paragraph) + { + uno::Reference<text::XTextRange> xPara(getParagraph(paragraph)); + uno::Reference<beans::XPropertySet> properties(xPara, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xLevels( + properties->getPropertyValue("NumberingRules"), uno::UNO_QUERY); + CPPUNIT_ASSERT(xLevels.is()); + } +} CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 98d763b709b6..e18819401417 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1537,6 +1537,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext ) { uno::Any aRules( pList->GetNumberingRules( ) ); rContext->Insert( PROP_NUMBERING_RULES, aRules ); + rContext->Erase( PROP_NUMBERING_STYLE_NAME); PropertyMapPtr pContext = m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH); if (pContext) { commit b6c4dd27acdd08fa63f8d75dd09212828e28844f Author: Oliver Specht <oliver.spe...@cib.de> AuthorDate: Tue Dec 5 13:28:36 2023 +0100 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Thu Dec 21 16:02:48 2023 +0100 tdf#158044 writerfilter: handle toggle properties in import/export DOCX has some odd properties (bold, italic, shadowed, hidden ...), which switch on/off if they are applied multiple times, e.g. with paragraph and character styles. To fix that, a hard attribute has to switch off the attribute in that occasion on import and on export a hard attribute switches it on in Word. Includes partial fix for tdf#154370. Change-Id: Ie4c317cf9b7d02efd89b9d6a9996143585d7e937 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160343 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behr...@allotropia.de> (cherry picked from commit 9e127010a86b3521c803ac86c0b5f58dc8e2966b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161018 diff --git a/sw/qa/extras/ooxmlexport/data/tdf158044.odt b/sw/qa/extras/ooxmlexport/data/tdf158044.odt new file mode 100755 index 000000000000..ca17b6625674 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf158044.odt differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport20.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport20.cxx index 263e769297d7..4a4e6e087b68 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport20.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport20.cxx @@ -988,6 +988,40 @@ CPPUNIT_TEST_FIXTURE(Test, testSvgExtensionsSupport) assertXPath(pXmlDocContent, aPath + "/a:extLst/a:ext/asvg:svgBlip"_ostr, "embed"_ostr, "rId3"); } +CPPUNIT_TEST_FIXTURE(Test, testtdf158044) +{ + loadAndSave("tdf158044.odt"); + // write hard attributes to prevent multiple toggle attributes from vanishing + xmlDocUniquePtr pXmlDoc = parseExport("word/document.xml"); + + assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[2]/w:rPr[1]/w:rStyle[1]"_ostr, "val"_ostr, + "BoldItalicCapsEmbossedStrike"); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[2]/w:rPr[1]/w:b[1]"_ostr); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[2]/w:rPr[1]/w:bCs[1]"_ostr); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[2]/w:rPr[1]/w:i[1]"_ostr); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[2]/w:rPr[1]/w:iCs[1]"_ostr); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[2]/w:rPr[1]/w:strike[1]"_ostr); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[2]/w:r[2]/w:rPr[1]/w:emboss[1]"_ostr); + + assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[4]/w:rPr[1]/w:rStyle[1]"_ostr, "val"_ostr, + "SmallcapsImprint"); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[4]/w:rPr[1]/w:imprint[1]"_ostr); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[4]/w:rPr[1]/w:smallCaps[1]"_ostr); + + assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[2]/w:rPr[1]/w:rStyle[1]"_ostr, "val"_ostr, + "AllCaps"); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[4]/w:r[2]/w:rPr[1]/w:caps[1]"_ostr); + + assertXPath(pXmlDoc, "/w:document/w:body/w:p[6]/w:r[2]/w:rPr[1]/w:rStyle[1]"_ostr, "val"_ostr, + "Hidden"); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[6]/w:r[2]/w:rPr[1]/w:vanish[1]"_ostr); + + assertXPath(pXmlDoc, "/w:document/w:body/w:p[8]/w:r[4]/w:rPr[1]/w:rStyle[1]"_ostr, "val"_ostr, + "OutlineShadow"); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[8]/w:r[4]/w:rPr[1]/w:outline[1]"_ostr); + assertXPath(pXmlDoc, "/w:document/w:body/w:p[8]/w:r[4]/w:rPr[1]/w:shadow[1]"_ostr); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/qa/extras/ooxmlimport/data/tdf154370.docx b/sw/qa/extras/ooxmlimport/data/tdf154370.docx new file mode 100755 index 000000000000..ba72724593b2 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf154370.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx index 553fbebbc6e3..0c29484d765e 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx @@ -1188,6 +1188,83 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf141969) CPPUNIT_ASSERT_EQUAL(8.0f, getProperty<float>(xRun, "CharHeight")); } +CPPUNIT_TEST_FIXTURE(Test, testTdf154370) +{ + // Import a file with pargraph and character styles containing toggle properties applied to the end of + // the paragraphs. Should result in hard attributes resetting the properties + createSwDoc("tdf154370.docx"); + { + auto xPara(getParagraph(2)); + auto xRun = getRun(xPara, 2); + + OUString rangeText = xRun->getString(); + CPPUNIT_ASSERT_EQUAL(OUString("CharStyle BoldItalicCapsEmbossedStrike"), rangeText); + + const uno::Reference<beans::XPropertyState> xRangePropState(xRun, uno::UNO_QUERY_THROW); + beans::PropertyState ePropertyState = xRangePropState->getPropertyState("CharWeight"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharWeightComplex"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharWeightAsian"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharPosture"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharPostureAsian"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharCaseMap"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharRelief"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharStrikeout"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + } + { + auto xPara(getParagraph(3)); + auto xRun = getRun(xPara, 2); + + OUString rangeText = xRun->getString(); + CPPUNIT_ASSERT_EQUAL(OUString("CharStyle SmallcapsImprint"), rangeText); + + const uno::Reference<beans::XPropertyState> xRangePropState(xRun, uno::UNO_QUERY_THROW); + beans::PropertyState ePropertyState = xRangePropState->getPropertyState("CharCaseMap"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharRelief"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + } + { + auto xPara(getParagraph(5)); + auto xRun = getRun(xPara, 2); + + OUString rangeText = xRun->getString(); + CPPUNIT_ASSERT_EQUAL(OUString("CharStyle Hidden"), rangeText); + + const uno::Reference<beans::XPropertyState> xRangePropState(xRun, uno::UNO_QUERY_THROW); + beans::PropertyState ePropertyState = xRangePropState->getPropertyState("CharHidden"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + } + { + auto xPara(getParagraph(7)); + auto xRun = getRun(xPara, 2); + + OUString rangeText = xRun->getString(); + CPPUNIT_ASSERT_EQUAL(OUString("OutlineShadow"), rangeText); + + const uno::Reference<beans::XPropertyState> xRangePropState(xRun, uno::UNO_QUERY_THROW); + beans::PropertyState ePropertyState = xRangePropState->getPropertyState("CharContoured"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + + ePropertyState = xRangePropState->getPropertyState("CharShadowed"); + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState); + } +} // tests should only be added to ooxmlIMPORT *if* they fail round-tripping in ooxmlEXPORT CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index 74e53d2fec0b..c70c78121b8b 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -33,12 +33,18 @@ #include <editeng/svxfont.hxx> #include <editeng/lrspitem.hxx> #include <editeng/brushitem.hxx> +#include <editeng/charhiddenitem.hxx> +#include <editeng/charreliefitem.hxx> +#include <editeng/contouritem.hxx> +#include <editeng/crossedoutitem.hxx> #include <editeng/fontitem.hxx> #include <editeng/keepitem.hxx> #include <editeng/fhgtitem.hxx> #include <editeng/ulspitem.hxx> #include <editeng/formatbreakitem.hxx> #include <editeng/frmdiritem.hxx> +#include <editeng/postitem.hxx> +#include <editeng/shdditem.hxx> #include <editeng/tstpitem.hxx> #include <editeng/wghtitem.hxx> #include <svl/grabbagitem.hxx> @@ -77,11 +83,14 @@ #include <txtatr.hxx> #include <cellatr.hxx> #include <fmtrowsplt.hxx> +#include <com/sun/star/awt/FontRelief.hpp> +#include <com/sun/star/awt/FontStrikeout.hpp> #include <com/sun/star/drawing/XShape.hpp> #include <com/sun/star/i18n/BreakIterator.hpp> #include <com/sun/star/i18n/ScriptType.hpp> #include <com/sun/star/i18n/WordType.hpp> #include <com/sun/star/text/RubyPosition.hpp> +#include <com/sun/star/style/CaseMap.hpp> #include <oox/export/vmlexport.hxx> #include <sal/log.hxx> #include <comphelper/propertysequence.hxx> @@ -479,9 +488,9 @@ void SwWW8AttrIter::OutAttr(sal_Int32 nSwPos, bool bWriteCombChars) ClearOverridesFromSet( *pCharFormatItem, aExportSet ); // check toggle properties in DOCX output + if (pCharFormatItem) { - SvxWeightItem aBoldProperty(WEIGHT_BOLD, RES_CHRATR_WEIGHT); - handleToggleProperty(aExportSet, pCharFormatItem, RES_CHRATR_WEIGHT, &aBoldProperty); + handleToggleProperty(aExportSet, *pCharFormatItem); } // tdf#113790: AutoFormat style overwrites char style, so remove all @@ -558,29 +567,82 @@ void SwWW8AttrIter::OutAttr(sal_Int32 nSwPos, bool bWriteCombChars) // i.e., the effective value to be applied to the content shall be true if its effective value is true for // an odd number of levels of the style hierarchy. // -// To prevent such logic inside output, it is required to write inline w:b token on content level. -void SwWW8AttrIter::handleToggleProperty(SfxItemSet& rExportSet, const SwFormatCharFormat* pCharFormatItem, - sal_uInt16 nWhich, const SfxPoolItem* pValue) -{ - if (rExportSet.HasItem(nWhich) || !pValue) +// To prevent such logic inside output, it is required to write inline attribute tokens on content level. +void SwWW8AttrIter::handleToggleProperty(SfxItemSet& rExportSet, const SwFormatCharFormat& rCharFormatItem) +{ + if (rExportSet.HasItem(RES_CHRATR_WEIGHT) || rExportSet.HasItem(RES_CHRATR_POSTURE) || + rExportSet.HasItem(RES_CHRATR_CTL_WEIGHT) || rExportSet.HasItem(RES_CHRATR_CTL_POSTURE) || + rExportSet.HasItem(RES_CHRATR_CONTOUR) || rExportSet.HasItem(RES_CHRATR_CASEMAP) || + rExportSet.HasItem(RES_CHRATR_RELIEF) || rExportSet.HasItem(RES_CHRATR_SHADOWED) || + rExportSet.HasItem(RES_CHRATR_CROSSEDOUT) || rExportSet.HasItem(RES_CHRATR_HIDDEN)) return; - bool hasPropertyInCharStyle = false; - bool hasPropertyInParaStyle = false; + SvxWeightItem aBoldProperty(WEIGHT_BOLD, RES_CHRATR_WEIGHT); + SvxPostureItem aPostureProperty(ITALIC_NORMAL, RES_CHRATR_POSTURE); + SvxContourItem aContouredProperty(true, RES_CHRATR_CONTOUR); + SvxCaseMapItem aCaseMapCapsProperty(SvxCaseMap::Uppercase, RES_CHRATR_CASEMAP); + SvxCaseMapItem aCaseMapSmallProperty(SvxCaseMap::SmallCaps, RES_CHRATR_CASEMAP); + SvxCharReliefItem aEmbossedProperty(FontRelief::Embossed, RES_CHRATR_RELIEF); + SvxCharReliefItem aImprintProperty(FontRelief::Engraved, RES_CHRATR_RELIEF); + SvxShadowedItem aShadowedProperty(true, RES_CHRATR_SHADOWED); + SvxCrossedOutItem aStrikeoutProperty(STRIKEOUT_SINGLE, RES_CHRATR_CROSSEDOUT); + SvxCharHiddenItem aHiddenProperty(true, RES_CHRATR_HIDDEN); - // get bold flag from specified character style - if (pCharFormatItem) + bool hasWeightPropertyInCharStyle = false; + bool hasWeightComplexPropertyInCharStyle = false; + bool hasPosturePropertyInCharStyle = false; + bool hasPostureComplexPropertyInCharStyle = false; + bool bHasCapsPropertyInCharStyle = false; + bool bHasSmallCapsPropertyInCharStyle = false; + bool bHasEmbossedPropertyInCharStyle = false; + bool bHasImprintPropertyInCharStyle = false; + bool hasContouredPropertyInCharStyle = false; + bool hasShadowedPropertyInCharStyle = false; + bool hasStrikeoutPropertyInCharStyle = false; + bool hasHiddenPropertyInCharStyle = false; + + + // get attribute flags from specified character style + if (const SwCharFormat* pCharFormat = rCharFormatItem.GetCharFormat()) { - if (const SwCharFormat* pCharFormat = pCharFormatItem->GetCharFormat()) + if (const SfxPoolItem* pWeightItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_WEIGHT)) + hasWeightPropertyInCharStyle = (*pWeightItem == aBoldProperty); + + if (const SfxPoolItem* pWeightComplexItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_CTL_WEIGHT)) + hasWeightComplexPropertyInCharStyle = (*pWeightComplexItem == aBoldProperty); + + if (const SfxPoolItem* pPostureItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_POSTURE)) + hasPosturePropertyInCharStyle = (*pPostureItem == aPostureProperty); + + if (const SfxPoolItem* pPostureComplexItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_CTL_POSTURE)) + hasPostureComplexPropertyInCharStyle = (*pPostureComplexItem == aPostureProperty); + + if (const SfxPoolItem* pContouredItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_CONTOUR)) + hasContouredPropertyInCharStyle = (*pContouredItem == aContouredProperty); + + if (const SfxPoolItem* pShadowedItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_SHADOWED)) + hasShadowedPropertyInCharStyle = (*pShadowedItem == aShadowedProperty); + + if (const SfxPoolItem* pStrikeoutItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_CROSSEDOUT)) + hasStrikeoutPropertyInCharStyle = (*pStrikeoutItem == aStrikeoutProperty); + + if (const SfxPoolItem* pHiddenItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_HIDDEN)) + hasHiddenPropertyInCharStyle = (*pHiddenItem == aHiddenProperty); + + if (const SfxPoolItem* pCaseMapItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_CASEMAP)) { - if (const SfxPoolItem* pItem = pCharFormat->GetAttrSet().GetItem(nWhich)) - { - hasPropertyInCharStyle = (*pItem == *pValue); - } + bHasCapsPropertyInCharStyle = (*pCaseMapItem == aCaseMapCapsProperty); + bHasSmallCapsPropertyInCharStyle = (*pCaseMapItem == aCaseMapSmallProperty); + } + + if (const SfxPoolItem* pReliefItem = pCharFormat->GetAttrSet().GetItem(RES_CHRATR_RELIEF)) + { + bHasEmbossedPropertyInCharStyle = (*pReliefItem == aEmbossedProperty); + bHasImprintPropertyInCharStyle = (*pReliefItem == aImprintProperty); } } - // get bold flag from specified paragraph style + // get attribute flags from specified paragraph style and apply properties if they are set in character and paragraph style { SwTextFormatColl& rTextColl = static_cast<SwTextFormatColl&>( m_rNode.GetAnyFormatColl() ); sal_uInt16 nStyle = m_rExport.m_pStyles->GetSlot( &rTextColl ); @@ -588,17 +650,59 @@ void SwWW8AttrIter::handleToggleProperty(SfxItemSet& rExportSet, const SwFormatC const SwFormat* pFormat = m_rExport.m_pStyles->GetSwFormat(nStyle); if (pFormat) { - if (const SfxPoolItem* pItem = pFormat->GetAttrSet().GetItem(nWhich)) + const SfxPoolItem* pItem; + if (hasWeightPropertyInCharStyle && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_WEIGHT)) && + (*pItem == aBoldProperty)) + rExportSet.Put(aBoldProperty); + + if (hasWeightComplexPropertyInCharStyle && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_CTL_WEIGHT)) && + *pItem == aBoldProperty) + { + rExportSet.Put(aBoldProperty, RES_CHRATR_CTL_WEIGHT); + } + + if (hasPosturePropertyInCharStyle && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_POSTURE)) && + *pItem == aPostureProperty) + rExportSet.Put(aPostureProperty); + + if (hasPostureComplexPropertyInCharStyle && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_CTL_POSTURE)) && + *pItem == aPostureProperty) { - hasPropertyInParaStyle = (*pItem == *pValue); + rExportSet.Put(aPostureProperty, RES_CHRATR_CTL_POSTURE); + } + + if (hasContouredPropertyInCharStyle && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_CONTOUR)) && *pItem == aContouredProperty) + rExportSet.Put(aContouredProperty); + + if (hasShadowedPropertyInCharStyle && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_SHADOWED)) && + *pItem == aShadowedProperty) + rExportSet.Put(aShadowedProperty); + + if (hasStrikeoutPropertyInCharStyle && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_CROSSEDOUT)) && + *pItem == aStrikeoutProperty) + rExportSet.Put(aStrikeoutProperty); + + if (hasHiddenPropertyInCharStyle && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_HIDDEN)) && + (*pItem == aHiddenProperty)) + rExportSet.Put(aHiddenProperty); + + if ((bHasCapsPropertyInCharStyle||bHasSmallCapsPropertyInCharStyle) && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_CASEMAP))) + { + if (bHasCapsPropertyInCharStyle && *pItem == aCaseMapCapsProperty) + rExportSet.Put(aCaseMapCapsProperty); + else if (bHasSmallCapsPropertyInCharStyle && *pItem == aCaseMapSmallProperty) + rExportSet.Put(aCaseMapSmallProperty); + } + + if ((bHasEmbossedPropertyInCharStyle||bHasImprintPropertyInCharStyle) && (pItem = pFormat->GetAttrSet().GetItem(RES_CHRATR_RELIEF))) + { + if (bHasEmbossedPropertyInCharStyle && *pItem == aEmbossedProperty) + rExportSet.Put(aEmbossedProperty); + else if (bHasImprintPropertyInCharStyle && *pItem == aImprintProperty) + rExportSet.Put(aImprintProperty); } } - } - // add inline property - if (hasPropertyInCharStyle && hasPropertyInParaStyle) - { - rExportSet.Put(*pValue); } } diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx index 04737fb21410..fcc39c44aab4 100644 --- a/sw/source/filter/ww8/wrtww8.hxx +++ b/sw/source/filter/ww8/wrtww8.hxx @@ -1551,7 +1551,7 @@ private: SwWW8AttrIter(const SwWW8AttrIter&) = delete; SwWW8AttrIter& operator=(const SwWW8AttrIter&) = delete; - void handleToggleProperty(SfxItemSet& rExportSet, const SwFormatCharFormat* pCharFormatItem, sal_uInt16 nWhich, const SfxPoolItem* pValue); + void handleToggleProperty(SfxItemSet& rExportSet, const SwFormatCharFormat& rCharFormatItem); public: SwWW8AttrIter( MSWordExportBase& rWr, const SwTextNode& rNd ); diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 0ae745eec97a..29de4e1b73af 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -37,6 +37,7 @@ #include <com/sun/star/i18n/NumberFormatMapper.hpp> #include <com/sun/star/i18n/NumberFormatIndex.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/style/CaseMap.hpp> #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> #include <com/sun/star/style/LineNumberPosition.hpp> #include <com/sun/star/style/LineSpacing.hpp> @@ -79,6 +80,10 @@ #include <com/sun/star/text/ControlCharacter.hpp> #include <com/sun/star/text/XTextColumns.hpp> #include <com/sun/star/awt/CharSet.hpp> +#include <com/sun/star/awt/FontRelief.hpp> +#include <com/sun/star/awt/FontSlant.hpp> +#include <com/sun/star/awt/FontStrikeout.hpp> +#include <com/sun/star/awt/FontWeight.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/embed/XHierarchicalStorageAccess.hpp> #include <com/sun/star/embed/ElementModes.hpp> @@ -517,6 +522,17 @@ uno::Reference< container::XNameContainer > const & DomainMapper_Impl::GetChara return m_xCharacterStyles; } +uno::Reference<container::XNameContainer> const& DomainMapper_Impl::GetParagraphStyles() +{ + if (!m_xParagraphStyles.is()) + { + uno::Reference<style::XStyleFamiliesSupplier> xSupplier(m_xTextDocument, uno::UNO_QUERY); + if (xSupplier.is()) + xSupplier->getStyleFamilies()->getByName("ParagraphStyles") >>= m_xParagraphStyles; + } + return m_xParagraphStyles; +} + OUString DomainMapper_Impl::GetUnusedCharacterStyleName() { static const char cListLabel[] = "ListLabel "; @@ -3017,7 +3033,148 @@ void DomainMapper_Impl::finishParagraph( const PropertyMapPtr& pPropertyMap, con } -void DomainMapper_Impl::appendTextPortion( const OUString& rString, const PropertyMapPtr& pPropertyMap ) +void DomainMapper_Impl::applyToggleAttributes(const PropertyMapPtr& pPropertyMap) +{ + std::optional<PropertyMap::Property> charStyleProperty = pPropertyMap->getProperty(PROP_CHAR_STYLE_NAME); + if (charStyleProperty.has_value()) + { + OUString sCharStyleName; + charStyleProperty->second >>= sCharStyleName; + float fCharStyleBold = css::awt::FontWeight::NORMAL; + float fCharStyleBoldComplex = css::awt::FontWeight::NORMAL; + css::awt::FontSlant eCharStylePosture = css::awt::FontSlant_NONE; + css::awt::FontSlant eCharStylePostureComplex = css::awt::FontSlant_NONE; + sal_Int16 nCharStyleCaseMap = css::style::CaseMap::NONE; + sal_Int16 nCharStyleRelief = css::awt::FontRelief::NONE; + bool bCharStyleContoured = false;//Outline; + bool bCharStyleShadowed = false; + sal_Int16 nCharStyleStrikeThrough = awt::FontStrikeout::NONE; + bool bCharStyleHidden = false; + + uno::Reference<beans::XPropertySet> xCharStylePropertySet = GetCharacterStyles()->getByName(sCharStyleName).get<uno::Reference<beans::XPropertySet>>(); + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_WEIGHT)) >>= fCharStyleBold; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_WEIGHT_COMPLEX)) >>= fCharStyleBoldComplex; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_POSTURE)) >>= eCharStylePosture; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_POSTURE_COMPLEX)) >>= eCharStylePostureComplex; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_CASE_MAP)) >>= nCharStyleCaseMap; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_RELIEF)) >>= nCharStyleRelief; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_CONTOURED)) >>= bCharStyleContoured; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_SHADOWED)) >>= bCharStyleShadowed; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_STRIKEOUT)) >>= nCharStyleStrikeThrough; + xCharStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_HIDDEN)) >>= bCharStyleHidden; + if (fCharStyleBold > css::awt::FontWeight::NORMAL || eCharStylePosture != css::awt::FontSlant_NONE|| nCharStyleCaseMap != css::style::CaseMap::NONE || + nCharStyleRelief != css::awt::FontRelief::NONE || bCharStyleContoured || bCharStyleShadowed || + nCharStyleStrikeThrough == awt::FontStrikeout::SINGLE || bCharStyleHidden) + { + uno::Reference<beans::XPropertySet> xParaStylePropertySet = GetParagraphStyles()->getByName(m_sCurrentParaStyleName).get<uno::Reference<beans::XPropertySet>>(); + float fParaStyleBold = css::awt::FontWeight::NORMAL; + float fParaStyleBoldComplex = css::awt::FontWeight::NORMAL; + css::awt::FontSlant eParaStylePosture = css::awt::FontSlant_NONE; + css::awt::FontSlant eParaStylePostureComplex = css::awt::FontSlant_NONE; + sal_Int16 nParaStyleCaseMap = css::style::CaseMap::NONE; + sal_Int16 nParaStyleRelief = css::awt::FontRelief::NONE; + bool bParaStyleContoured = false; + bool bParaStyleShadowed = false; + sal_Int16 nParaStyleStrikeThrough = awt::FontStrikeout::NONE; + bool bParaStyleHidden = false; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_WEIGHT)) >>= fParaStyleBold; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_WEIGHT_COMPLEX)) >>= fParaStyleBoldComplex; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_POSTURE)) >>= eParaStylePosture; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_POSTURE_COMPLEX)) >>= eParaStylePostureComplex; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_CASE_MAP)) >>= nParaStyleCaseMap; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_RELIEF)) >>= nParaStyleRelief; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_SHADOWED)) >>= bParaStyleShadowed; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_CONTOURED)) >>= bParaStyleContoured; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_STRIKEOUT)) >>= nParaStyleStrikeThrough; + xParaStylePropertySet->getPropertyValue(getPropertyName(PROP_CHAR_HIDDEN)) >>= bParaStyleHidden; + if (fCharStyleBold > css::awt::FontWeight::NORMAL && fParaStyleBold > css::awt::FontWeight::NORMAL) + { + std::optional<PropertyMap::Property> charBoldProperty = pPropertyMap->getProperty(PROP_CHAR_WEIGHT); + if (!charBoldProperty.has_value()) + { + pPropertyMap->Insert(PROP_CHAR_WEIGHT, uno::Any(css::awt::FontWeight::NORMAL)); + } + } + if (fCharStyleBoldComplex > css::awt::FontWeight::NORMAL && fParaStyleBoldComplex > css::awt::FontWeight::NORMAL) + { + std::optional<PropertyMap::Property> charBoldPropertyComplex = pPropertyMap->getProperty(PROP_CHAR_WEIGHT_COMPLEX); + if (!charBoldPropertyComplex.has_value()) + { + pPropertyMap->Insert(PROP_CHAR_WEIGHT_COMPLEX, uno::Any(css::awt::FontWeight::NORMAL)); + pPropertyMap->Insert(PROP_CHAR_WEIGHT_ASIAN, uno::Any(css::awt::FontWeight::NORMAL)); + } + } + if (eCharStylePosture != css::awt::FontSlant_NONE && eParaStylePosture != css::awt::FontSlant_NONE) + { + std::optional<PropertyMap::Property> charItalicProperty = pPropertyMap->getProperty(PROP_CHAR_POSTURE); + if (!charItalicProperty.has_value()) + { + pPropertyMap->Insert(PROP_CHAR_POSTURE, uno::Any(css::awt::FontSlant_NONE)); + } + } + if (eCharStylePostureComplex != css::awt::FontSlant_NONE && eParaStylePostureComplex != css::awt::FontSlant_NONE) + { + std::optional<PropertyMap::Property> charItalicPropertyComplex = pPropertyMap->getProperty(PROP_CHAR_POSTURE_COMPLEX); + if (!charItalicPropertyComplex.has_value()) + { + pPropertyMap->Insert(PROP_CHAR_POSTURE_COMPLEX, uno::Any(css::awt::FontSlant_NONE)); + pPropertyMap->Insert(PROP_CHAR_POSTURE_ASIAN, uno::Any(css::awt::FontSlant_NONE)); + } + } + if (nCharStyleCaseMap == nParaStyleCaseMap && nCharStyleCaseMap != css::style::CaseMap::NONE) + { + std::optional<PropertyMap::Property> charCaseMap = pPropertyMap->getProperty(PROP_CHAR_CASE_MAP); + if (!charCaseMap.has_value()) + { + pPropertyMap->Insert(PROP_CHAR_CASE_MAP, uno::Any(css::style::CaseMap::NONE)); + } + } + if (nParaStyleRelief != css::awt::FontRelief::NONE && nCharStyleRelief == nParaStyleRelief) + { + std::optional<PropertyMap::Property> charRelief = pPropertyMap->getProperty(PROP_CHAR_RELIEF); + if (!charRelief.has_value()) + { + pPropertyMap->Insert(PROP_CHAR_RELIEF, uno::Any(css::awt::FontRelief::NONE)); + } + } + if (bParaStyleContoured && bCharStyleContoured) + { -e ... etc. - the rest is truncated