summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenning Brinkmann <hbrinkm@openoffice.org>2006-10-24 08:27:54 +0000
committerHenning Brinkmann <hbrinkm@openoffice.org>2006-10-24 08:27:54 +0000
commit5398d00863db3303cb4f3683ea1af98ff9d46a2a (patch)
tree90c4fa0aacc5cffb7fa4b5d23167b4c8184194b3
parentee309d277e83fdd10d93cadbf65bbc460efe67c3 (diff)
initial check in
-rw-r--r--writerfilter/documentation/AddingTable.cxx56
-rw-r--r--writerfilter/documentation/doxygen/Doxyfile1237
-rw-r--r--writerfilter/documentation/doxygen/images/doctok.pngbin0 -> 7291 bytes
-rw-r--r--writerfilter/documentation/sprms.txt10
-rw-r--r--writerfilter/documentation/tablesInDoc.txt135
-rw-r--r--writerfilter/inc/WriterFilterDllApi.hxx50
-rw-r--r--writerfilter/inc/dmapper/DomainMapper.hxx66
-rw-r--r--writerfilter/inc/doctok/WW8Document.hxx411
-rw-r--r--writerfilter/inc/rtftok/RTFInputSource.hxx19
-rw-r--r--writerfilter/inc/rtftok/RTFParseException.hxx19
-rw-r--r--writerfilter/inc/rtftok/RTFScanner.hxx42
-rw-r--r--writerfilter/inc/rtftok/RTFScannerHandler.hxx27
-rw-r--r--writerfilter/qa/cppunittests/doctok/doctok.job1
-rw-r--r--writerfilter/qa/cppunittests/doctok/export.map7
-rw-r--r--writerfilter/qa/cppunittests/doctok/makefile.mk79
-rw-r--r--writerfilter/qa/cppunittests/doctok/testdoctok.cxx228
-rw-r--r--writerfilter/source/dmapper/ConversionHelper.cxx417
-rw-r--r--writerfilter/source/dmapper/ConversionHelper.hxx31
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx1394
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.cxx114
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.hxx61
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx1545
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx224
-rw-r--r--writerfilter/source/dmapper/FontTable.cxx601
-rw-r--r--writerfilter/source/dmapper/FontTable.hxx79
-rw-r--r--writerfilter/source/dmapper/LFOTable.cxx564
-rw-r--r--writerfilter/source/dmapper/LFOTable.hxx38
-rw-r--r--writerfilter/source/dmapper/ListTable.cxx809
-rw-r--r--writerfilter/source/dmapper/ListTable.hxx57
-rw-r--r--writerfilter/source/dmapper/PropertyIds.cxx176
-rw-r--r--writerfilter/source/dmapper/PropertyIds.hxx120
-rw-r--r--writerfilter/source/dmapper/PropertyMap.cxx179
-rw-r--r--writerfilter/source/dmapper/PropertyMap.hxx115
-rw-r--r--writerfilter/source/dmapper/StyleSheetTable.cxx779
-rw-r--r--writerfilter/source/dmapper/StyleSheetTable.hxx70
-rw-r--r--writerfilter/source/dmapper/makefile.mk31
-rw-r--r--writerfilter/source/doctok/Dff.cxx350
-rw-r--r--writerfilter/source/doctok/Dff.hxx124
-rw-r--r--writerfilter/source/doctok/DffImpl.cxx352
-rw-r--r--writerfilter/source/doctok/PLCF.hxx169
-rw-r--r--writerfilter/source/doctok/WW8Annotation.cxx9
-rw-r--r--writerfilter/source/doctok/WW8BinTable.hxx63
-rw-r--r--writerfilter/source/doctok/WW8BinTableImpl.cxx78
-rw-r--r--writerfilter/source/doctok/WW8BinTableImpl.hxx74
-rw-r--r--writerfilter/source/doctok/WW8Clx.cxx56
-rw-r--r--writerfilter/source/doctok/WW8Clx.hxx67
-rw-r--r--writerfilter/source/doctok/WW8CpAndFc.cxx96
-rw-r--r--writerfilter/source/doctok/WW8CpAndFc.hxx336
-rw-r--r--writerfilter/source/doctok/WW8DocumentImpl.cxx1930
-rw-r--r--writerfilter/source/doctok/WW8DocumentImpl.hxx714
-rw-r--r--writerfilter/source/doctok/WW8FKP.hxx105
-rw-r--r--writerfilter/source/doctok/WW8FKPImpl.cxx213
-rw-r--r--writerfilter/source/doctok/WW8FKPImpl.hxx188
-rw-r--r--writerfilter/source/doctok/WW8FontTable.cxx90
-rw-r--r--writerfilter/source/doctok/WW8LFOLevel.cxx24
-rw-r--r--writerfilter/source/doctok/WW8LFOTable.cxx108
-rw-r--r--writerfilter/source/doctok/WW8ListTable.cxx125
-rw-r--r--writerfilter/source/doctok/WW8OutputWithDepth.cxx18
-rw-r--r--writerfilter/source/doctok/WW8OutputWithDepth.hxx25
-rw-r--r--writerfilter/source/doctok/WW8Picture.cxx20
-rw-r--r--writerfilter/source/doctok/WW8PieceTable.hxx128
-rw-r--r--writerfilter/source/doctok/WW8PieceTableImpl.cxx263
-rw-r--r--writerfilter/source/doctok/WW8PieceTableImpl.hxx47
-rw-r--r--writerfilter/source/doctok/WW8PropertySetImpl.cxx382
-rw-r--r--writerfilter/source/doctok/WW8PropertySetImpl.hxx147
-rw-r--r--writerfilter/source/doctok/WW8ResourceModelImpl.cxx761
-rw-r--r--writerfilter/source/doctok/WW8ResourceModelImpl.hxx319
-rw-r--r--writerfilter/source/doctok/WW8StreamImpl.cxx144
-rw-r--r--writerfilter/source/doctok/WW8StreamImpl.hxx40
-rw-r--r--writerfilter/source/doctok/WW8StructBase.cxx148
-rw-r--r--writerfilter/source/doctok/WW8StructBase.hxx287
-rw-r--r--writerfilter/source/doctok/WW8Sttbf.cxx61
-rw-r--r--writerfilter/source/doctok/WW8Sttbf.hxx77
-rw-r--r--writerfilter/source/doctok/WW8StyleSheet.cxx182
-rw-r--r--writerfilter/source/doctok/WW8Table.cxx176
-rw-r--r--writerfilter/source/doctok/WW8Text.cxx42
-rw-r--r--writerfilter/source/doctok/WW8inc.xsl79
-rw-r--r--writerfilter/source/doctok/WW8sprms.xsl39
-rw-r--r--writerfilter/source/doctok/WW8xmi.xsl155
-rw-r--r--writerfilter/source/doctok/XNoteHelper.hxx118
-rw-r--r--writerfilter/source/doctok/XNoteHelperImpl.hxx136
-rw-r--r--writerfilter/source/doctok/doctokutil.cxx26
-rw-r--r--writerfilter/source/doctok/escher.html207
-rw-r--r--writerfilter/source/doctok/escherdoc.xsl118
-rw-r--r--writerfilter/source/doctok/makefile.mk68
-rw-r--r--writerfilter/source/doctok/resourceidmapper.xsl101
-rw-r--r--writerfilter/source/doctok/resourceidmapperback.xsl101
-rw-r--r--writerfilter/source/doctok/resourceids.xsl97
-rw-r--r--writerfilter/source/doctok/resources.xmi50823
-rw-r--r--writerfilter/source/doctok/resources.xsl838
-rw-r--r--writerfilter/source/doctok/resourcesimpl.xsl817
-rw-r--r--writerfilter/source/doctok/tidyxmi.xsl89
-rw-r--r--writerfilter/source/doctok/util.hxx29
-rw-r--r--writerfilter/source/doctok/xmigen.el119
-rw-r--r--writerfilter/source/doctok/xmistat.xsl10
-rwxr-xr-xwriterfilter/source/doctok/xmitocpp7
-rw-r--r--writerfilter/source/filter/ImportFilter.cxx160
-rw-r--r--writerfilter/source/filter/WriterFilter.cxx39
-rw-r--r--writerfilter/source/filter/WriterFilter.hxx94
-rw-r--r--writerfilter/source/filter/makefile.mk24
-rw-r--r--writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/wordnetaux.xsdbin0 -> 48598 bytes
-rw-r--r--writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/xsdlib.xsdbin0 -> 7918 bytes
-rw-r--r--writerfilter/source/odiapi/qname/resource/rdfxml.rng453
-rw-r--r--writerfilter/source/odiapi/qname/resource/rng.rng331
-rw-r--r--writerfilter/source/odiapi/qname/resource/rtf.rtfs1385
-rw-r--r--writerfilter/source/rtftok/FlexLexer.h128
-rw-r--r--writerfilter/source/rtftok/RTFParseException.cxx10
-rw-r--r--writerfilter/source/rtftok/RTFScanner.lex311
-rw-r--r--writerfilter/source/rtftok/RTFScanner.skl1542
-rw-r--r--writerfilter/source/rtftok/makefile.mk48
-rw-r--r--writerfilter/unocomponent/component.cxx85
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx245
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.hxx55
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx126
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/DocTokTestService.hxx55
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/makefile.mk21
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx431
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.hxx55
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx308
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/XMLScanner.hxx55
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/makefile.mk22
-rw-r--r--writerfilter/unocomponent/exports.dxp3
-rw-r--r--writerfilter/unocomponent/makefile.mk60
-rw-r--r--writerfilter/util/exports.map9
-rw-r--r--writerfilter/util/makefile.mk72
125 files changed, 78433 insertions, 0 deletions
diff --git a/writerfilter/documentation/AddingTable.cxx b/writerfilter/documentation/AddingTable.cxx
new file mode 100644
index 000000000000..faa898a62350
--- /dev/null
+++ b/writerfilter/documentation/AddingTable.cxx
@@ -0,0 +1,56 @@
+void test()
+{
+ portion = appendPortion("text");
+ tableContext = new TableContext();
+ {
+ tableStack.push(tableContext);
+ portion = appendPortion("A1");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ portion = appendPortion("B1");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ portion = appendPortion("C1");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ tableContext.endRow(rowProperties);
+ portion = appendPortion("A2");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ tableContext = new TableContext();
+ {
+ tableStack.push(tableContext);
+ portion = appendPortion("B2A1");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ portion = appendPortion("B2B1");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ tableContext.endRow(rowProperties);
+ portion = appendPortion("B2A2");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ portion = appendPortion("B2B2");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ tableContext.endRow(rowProperties);
+ }
+ portion = createTable(tableContext);
+ tableContext = tableStack.pop();
+ tableContext.addPortion(portion);
+ portion = appendPortion("B2");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ portion = appendPortion("C2");
+ tableContext.addPortion(portion);
+ tableContext.endCell();
+ tableContext.endRow(rowProperties);
+ }
+ portion = createTable(tableContext);
+ portion = appendPortion("text");
+}
+
+/*
+ tableContext.endCell:
+ merge text ranges of portions to one and add this range to ranges of row.
+ */
diff --git a/writerfilter/documentation/doxygen/Doxyfile b/writerfilter/documentation/doxygen/Doxyfile
new file mode 100644
index 000000000000..45255d578bfb
--- /dev/null
+++ b/writerfilter/documentation/doxygen/Doxyfile
@@ -0,0 +1,1237 @@
+# Doxyfile 1.4.6
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = writerfilter
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = $(WORKSTAMP)
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY =
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
+# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
+# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
+# Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+# include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = ../../inc ../../source ../../java
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS = *.cxx *.hxx *.java
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE = CVS
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH = images
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH = $(SOLARINC)
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS =
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 512
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that a graph may be further truncated if the graph's
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 4
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+
+DOT_TRANSPARENT = YES
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = NO
diff --git a/writerfilter/documentation/doxygen/images/doctok.png b/writerfilter/documentation/doxygen/images/doctok.png
new file mode 100644
index 000000000000..15adb9670109
--- /dev/null
+++ b/writerfilter/documentation/doxygen/images/doctok.png
Binary files differ
diff --git a/writerfilter/documentation/sprms.txt b/writerfilter/documentation/sprms.txt
new file mode 100644
index 000000000000..ccb50df7cbf6
--- /dev/null
+++ b/writerfilter/documentation/sprms.txt
@@ -0,0 +1,10 @@
+0x2461: extra alignment:
+
+ 4: distributed
+ 8: justify low
+ 5: justify middle
+ 7: justify high
+ 9: Thai Distribute
+
+
+ \ No newline at end of file
diff --git a/writerfilter/documentation/tablesInDoc.txt b/writerfilter/documentation/tablesInDoc.txt
new file mode 100644
index 000000000000..629e68d75590
--- /dev/null
+++ b/writerfilter/documentation/tablesInDoc.txt
@@ -0,0 +1,135 @@
+All paragraphs in tables:
+
+ sprms:
+ 0x2416 (sprmPFInTable) indicates a paragraph is in a table
+ 0x6649 (sprmPTableDepth) demarks the nesting depth of the paragraph
+
+paragraph at nesting depth 1:
+
+ end of cell: 0x7
+ end of row: 0x7 + sprm 0x2417(sprmFTtp)
+
+ the end of a row has its own 0x7
+
+paragraphs at nesting depth > 1;
+
+ end of cell: 0xd + sprm 0x244b(sprmPCell)
+ end of row 0xd + sprm 0x244b(sprmPCell) + sprm 0x244c(sprmPRow)
+
+ the end of a row has its own 0xd
+
+Algorithm to detect table structure:
+
+Datastructures:
+
+RowData<Handle>:
+ int getCellCount()
+ // return number of cells in row
+ Handle getStart(i)
+ // get handle for start of cell i
+ Handle getEnd(i)
+ // get handle for end off cell i
+ Properties getProperties()
+ // return properties of row
+
+TableData<Handle>:
+ void addCell(Handle start, Handle end)
+ // insert cell starting at start and ending at end into the
+ // current row
+ void endRow(properties)
+ // end current row and save properties for that row, begin new row
+ int getRowCount
+ // return number of rows in table
+ RowData<Handle> getRow(i)
+ // get data for row i
+
+prevTableDepth
+ depth in table hierarchy of previous paragraph
+
+curTableDepth
+ depth in table hierarchy of current paragraph
+
+bInCell
+ true if current paragraph is in a cell
+
+bEndCell
+ true if current paragraph if the last paragraph of a cell
+
+bEndRow
+ true if current paragraph is the end of a row
+
+paragraphHandle
+ handle for current paragraph
+
+initial:
+ create stack of TableData<Handle>
+
+final:
+ handle remaining TableData<Handle> on stack
+
+creating StreamHandler:
+ push new TableData<Handle> on stack
+
+destroying StreamHandler:
+ handle TableData<Handle> on top of stack
+ pop TableData<Handle> from stack
+
+StreamHandler::substream:
+ push new TableData<Handle> on stack
+ handle TableData<Handle> on top of stack
+ pop TableData<Handle> from stack
+
+starting paragraph group:
+ paragraphHandle = currentHandle;
+ bInCell = false;
+ bCellEnd = false;
+ bRowEnd = false;
+
+ending paragraph group:
+ difference = curTableDepth - prevTableDepth
+
+ if (difference > 0)
+ push difference new TableData<Handle> onto stack
+ else if (difference < 0)
+ {
+ repeat difference times
+ {
+ handle top of stack
+ pop stack
+ }
+ }
+ precTableDepth = curTableDepth
+
+ if (bInCell)
+ {
+ if (handleStart is null)
+ handleStart = paragraphHandle;
+
+ if (bCellEnd)
+ {
+ stack.top().addCell(handleStart, paragraphHandle);
+ clear handleStart
+ }
+
+ if (bRowEnd)
+ {
+ stack.top().endRow(properties)
+ }
+
+
+in StreamHandler::props:
+ save properties
+
+PropertiesHandler::sprm:
+ sprm 0x6649:
+ save value in curTableDepth
+ sprm 0x2416:
+ bInCell = true
+ sprm 0x244b:
+ bCellEnd = true
+ sprm 0x2417:
+ bRowEnd = true
+
+text:
+ 0x7:
+ bCellEnd = true
diff --git a/writerfilter/inc/WriterFilterDllApi.hxx b/writerfilter/inc/WriterFilterDllApi.hxx
new file mode 100644
index 000000000000..750e12338ad6
--- /dev/null
+++ b/writerfilter/inc/WriterFilterDllApi.hxx
@@ -0,0 +1,50 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: WriterFilterDllApi.hxx,v $
+ *
+ * $Revision: 1.3 $
+ *
+ * last change: $Author: hbrinkm $ $Date: 2006-10-24 09:27:07 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+#ifndef INCLUDED_WRITERFILTERDLLAPI_H
+#define INCLUDED_WRITERFILTERDLLAPI_H
+
+#ifndef _SAL_TYPES_H_
+#include "sal/types.h"
+#endif
+
+#if defined(WRITERFILTER_DLLIMPLEMENTATION)
+#define WRITERFILTER_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
+#else
+#define WRITERFILTER_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
+#endif
+#define WRITERFILTER_DLLPRIVATE SAL_DLLPRIVATE
+
+#endif /* INCLUDED_WRITERFILTERDLLAPI_H */
diff --git a/writerfilter/inc/dmapper/DomainMapper.hxx b/writerfilter/inc/dmapper/DomainMapper.hxx
new file mode 100644
index 000000000000..a702c1eaed8d
--- /dev/null
+++ b/writerfilter/inc/dmapper/DomainMapper.hxx
@@ -0,0 +1,66 @@
+#ifndef INCLUDED_DOMAINMAPPER_HXX
+#define INCLUDED_DOMAINMAPPER_HXX
+
+#ifndef INCLUDED_WRITERFILTERDLLAPI_H
+#include <WriterFilterDllApi.hxx>
+#endif
+#include <doctok/WW8ResourceModel.hxx>
+#include <com/sun/star/lang/XComponent.hpp>
+
+namespace dmapper
+{
+using namespace std;
+
+class PropertyMap;
+class FontTable;
+class ListTable;
+
+class DomainMapper_Impl;
+
+// different context types require different sprm handling (e.g. names)
+enum SprmType
+{
+ SPRM_DEFAULT,
+ SPRM_LIST
+};
+class WRITERFILTER_DLLPUBLIC DomainMapper : public doctok::Properties, public doctok::Table,
+ public doctok::BinaryObj, public doctok::Stream
+{
+ DomainMapper_Impl *m_pImpl;
+
+public:
+ DomainMapper(::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > xModel);
+ virtual ~DomainMapper();
+
+ // Properties
+ virtual void attribute(doctok::Id Name, doctok::Value & val);
+ virtual void sprm(doctok::Sprm & sprm);
+
+ // Table
+ virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref);
+
+ // BinaryObj
+ virtual void data(const sal_uInt8* buf, size_t len,
+ doctok::Reference<Properties>::Pointer_t ref);
+
+ // Stream
+ virtual void startSectionGroup();
+ virtual void endSectionGroup();
+ virtual void startParagraphGroup();
+ virtual void endParagraphGroup();
+ virtual void startCharacterGroup();
+ virtual void endCharacterGroup();
+ virtual void text(const sal_uInt8 * data, size_t len);
+ virtual void utext(const sal_uInt8 * data, size_t len);
+ virtual void props(doctok::Reference<Properties>::Pointer_t ref);
+ virtual void table(doctok::Id name,
+ doctok::Reference<Table>::Pointer_t ref);
+ virtual void substream(doctok::Id name,
+ ::doctok::Reference<Stream>::Pointer_t ref);
+ virtual void info(const string & info);
+
+ void sprm( doctok::Sprm& sprm, ::boost::shared_ptr<PropertyMap> pContext, SprmType = SPRM_DEFAULT );
+};
+}
+
+#endif //
diff --git a/writerfilter/inc/doctok/WW8Document.hxx b/writerfilter/inc/doctok/WW8Document.hxx
new file mode 100644
index 000000000000..64e310c4d383
--- /dev/null
+++ b/writerfilter/inc/doctok/WW8Document.hxx
@@ -0,0 +1,411 @@
+#ifndef INCLUDED_WW8_DOCUMENT_HXX
+#define INCLUDED_WW8_DOCUMENT_HXX
+
+#include <boost/shared_ptr.hpp>
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif // _SAL_TYPES_H_
+#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
+#include <com/sun/star/uno/Reference.hxx>
+#endif
+#ifndef INCLUDED_SUB_SEQUENCE_HXX
+#include <doctok/SubSequence.hxx>
+#endif
+#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
+#include <com/sun/star/io/XInputStream.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEX_HPP_
+#include <com/sun/star/uno/XComponentContext.hpp>
+#endif
+
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX
+#include <doctok/WW8ResourceModel.hxx>
+#endif
+
+#ifndef INCLUDED_OUTPUT_WITH_DEPTH
+#include <OutputWithDepth.hxx>
+#endif
+
+#include <WriterFilterDllApi.hxx>
+
+namespace doctok {
+
+using namespace ::com::sun::star;
+
+/**
+ A stream containing a WW8 document.
+
+ The content of the stream is a sequence of unsigned bytes. The
+ stream consists of substreams that are identified by string
+ identifiers.
+*/
+class WRITERFILTER_DLLPUBLIC WW8Stream
+{
+public:
+ /**
+ Pointer to a WW8Stream.
+ */
+ typedef boost::shared_ptr<WW8Stream> Pointer_t;
+
+ /**
+ Type for the content of the stream
+ */
+ typedef SubSequence<sal_uInt8> Sequence;
+
+ /**
+ Returns pointer to a substream.
+
+ @param rSid identifier of substream to return
+
+ @return the substream
+ */
+ virtual Pointer_t getSubStream(const ::rtl::OUString & rSid) = 0;
+
+ /**
+ Return a continious part of the stream.
+
+ @param nOffset offset in the stream where the part starts
+ @param nCount length of the part (number of bytes)
+
+ @return sequence of unsigned bytes
+ */
+ virtual Sequence get(sal_uInt32 nOffset, sal_uInt32 nCount)
+ const = 0;
+
+ // Returns the names of substreams contained in the stream
+ virtual string getSubStreamNames() const = 0;
+
+ virtual uno::Sequence<rtl::OUString> getSubStreamUNames() const = 0;
+
+ //virtual bool put(sal_uInt32 nOffset, const Sequence & rSeq) = 0;
+};
+
+/**
+ A property.
+
+*/
+class WRITERFILTER_DLLPUBLIC WW8Property
+{
+public:
+ /**
+ Ponter to a property.
+ */
+ typedef boost::shared_ptr<WW8Property> Pointer_t;
+
+ virtual ~WW8Property();
+
+ virtual sal_uInt32 getId() const = 0;
+ virtual sal_uInt32 getParam() const = 0;
+ virtual WW8Stream::Sequence getParams() const = 0;
+
+ virtual string toString() const = 0;
+
+ /**
+ Dumps this object to an output.
+
+ */
+ virtual void dump(OutputWithDepth<string> & o) const = 0;
+};
+
+/**
+ An iterator for traversal of a set of properties.
+
+ Sample code for use of iterator:
+
+ \code
+ Return_t function(WW8PropertySet::tPointer pSet)
+ {
+ do_something;
+
+ WW8PropertySetIterator::tPointer pIt = pSet->begin();
+ WW8PropertySetIterator::tPointer pItEnd = pSet->end();
+
+ while ((*pIt) != (*pItEnd))
+ {
+ do_something();
+
+ ++(*pIt);
+ }
+
+ do_something;
+ }
+ \endcode
+*/
+class WRITERFILTER_DLLPUBLIC WW8PropertySetIterator
+{
+public:
+ typedef boost::shared_ptr<WW8PropertySetIterator> Pointer_t;
+
+ virtual ~WW8PropertySetIterator();
+
+ /**
+ Advance iterator to the next property.
+ */
+ virtual WW8PropertySetIterator & operator++() = 0;
+
+ /**
+ Returns a pointer to the property the iterator references.
+ */
+ virtual WW8Property::Pointer_t get() const = 0;
+
+ /**
+ Checks if the iterator is equal to another one.
+ */
+ virtual bool equal(const WW8PropertySetIterator & rIt) const = 0;
+
+ /**
+ Returns string representation of iterator.
+ */
+ virtual string toString() const = 0;
+};
+
+/**
+ Checks if two property set iterators are not equal.
+*/
+bool operator != (const WW8PropertySetIterator & rA,
+ const WW8PropertySetIterator & rB);
+
+/**
+ A set of properties.
+*/
+class WRITERFILTER_DLLPUBLIC WW8PropertySet
+{
+public:
+ typedef boost::shared_ptr<WW8PropertySet> Pointer_t;
+
+ virtual ~WW8PropertySet();
+
+ /**
+ Returns iterator to the start of the set.
+ */
+ virtual WW8PropertySetIterator::Pointer_t begin() = 0;
+
+ /**
+ Returns iterator to the end of the set.
+ */
+ virtual WW8PropertySetIterator::Pointer_t end() = 0;
+
+ /**
+ Dumps property set to output stream.
+
+ @param o output stream to dump property set to
+ */
+ virtual void dump(OutputWithDepth<string> & o) const = 0;
+
+ /**
+ Iterate through property set and for each element dump a dot
+ output stream.
+
+ @param o output stream to dump dots to
+ */
+ virtual void dots(ostream & o) = 0;
+
+ virtual bool isPap() const = 0;
+ virtual sal_uInt32 get_istd() const = 0;
+
+ /**
+ Insert another property set into this property set.
+
+ @param pSet the set to insert
+ */
+ virtual void insert(const WW8PropertySet::Pointer_t pSet) = 0;
+};
+
+enum PropertyType {
+ /** Auxiliary type for character positions defined in piece table */
+ PROP_DOC,
+
+ /** properties are section properies */
+ PROP_SEC,
+
+ /** properties are paragraph properties */
+ PROP_PAP,
+
+ /** properties are character properties */
+ PROP_CHP,
+
+ /** a footnote reference */
+ PROP_FOOTNOTE,
+
+ /** an endnote reference */
+ PROP_ENDNOTE,
+
+ /** an annotaion reference */
+ PROP_ANNOTATION,
+
+ /** the start of a bookmark */
+ PROP_BOOKMARKSTART,
+
+ /** the end of a bookmark */
+ PROP_BOOKMARKEND,
+
+ /** a field character (start, separator or end) */
+ PROP_FLD,
+
+ /** a shape character */
+ PROP_SHP
+};
+
+/**
+ An iterator for traversal of the character positions of a Word
+ document.
+
+ The use of the iterator is analogous to WW8PropertySetIterator.
+*/
+class WRITERFILTER_DLLPUBLIC WW8DocumentIterator
+{
+public:
+ typedef boost::shared_ptr<WW8DocumentIterator> Pointer_t;
+
+ virtual ~WW8DocumentIterator();
+
+ /**
+ Advance iterator to next character position of the document.
+ */
+ virtual WW8DocumentIterator & operator++() = 0;
+
+ /**
+ Recedes iterator to previous character postion of the document.
+ */
+ virtual WW8DocumentIterator & operator--() = 0;
+
+ /**
+ Returns properties set at the character position the iterator
+ points to.
+
+ @return pointer to set of properties
+ */
+ virtual doctok::Reference<Properties>::Pointer_t getProperties() const = 0;
+
+ virtual doctok::Reference<Stream>::Pointer_t getSubDocument() const = 0;
+
+ /**
+ Returns text run at the character position the iterator points
+ to.
+ */
+ virtual WW8Stream::Sequence getText() = 0;
+
+ /**
+ Return pointer to the shape at character position the iterator
+ is pointing to.
+ */
+ virtual doctok::Reference<Properties>::Pointer_t getShape() const = 0;
+
+ /**
+ Checks if the characters of the entity the iterator points to
+ are complex.
+
+ Complex characters in a Word document are byte size
+ characters. Non-complex characters are word size characters.
+
+ @retval true The characters are complex.
+ @retval false The characters are non-complex.
+ */
+ virtual bool isComplex() const = 0;
+
+ /**
+ Returns the property type of the entity the iterator points to.
+ */
+ virtual PropertyType getPropertyType() const = 0;
+
+ /**
+ Checks is the iterator is equal to another one.
+
+ @param rIt iterator to check against
+
+ @retval true the iterators are equal
+ @retval false else
+ */
+ virtual bool equal(const WW8DocumentIterator & rIt) const = 0;
+
+ /**
+ Returns string representation of the iterator.
+ */
+ virtual string toString() const = 0;
+
+ /**
+ Dumps the iterator to an output stream.
+
+ @param o the output stream to dump the iterator to
+ */
+ virtual void dump(ostream & o) const = 0;
+};
+
+/**
+ Checks if two document iterators are equal.
+
+ @param rA first iterator
+ @param rB second iterator
+
+ @retval true the document iterators are equal
+ @retval false else
+ */
+bool operator == (const WW8DocumentIterator & rA,
+ const WW8DocumentIterator & rB);
+
+class WRITERFILTER_DLLPUBLIC SubDocumentId
+{
+public:
+ enum eType { FOOTNOTES, HEADERS, FOOTERS };
+
+private:
+ eType mnType;
+ sal_uInt8 mnIndex;
+
+public:
+ SubDocumentId(eType nType, sal_uInt8 nIndex)
+ : mnType(nType), mnIndex(nIndex)
+ {
+ }
+
+ eType getType() const { return mnType; }
+ sal_uInt8 getIndex() const { return mnIndex; }
+};
+
+/**
+ A Word 8 document.
+*/
+class WRITERFILTER_DLLPUBLIC WW8Document : public doctok::Reference<Stream>
+{
+public:
+ typedef boost::shared_ptr<WW8Document> Pointer_t;
+
+ virtual ~WW8Document();
+
+ /**
+ Get a subdocument.
+
+ A subdocument can be
+
+ - a header
+ - a footer
+ - a footnode
+
+ @param nId identifier of the subdocumen
+ */
+ virtual Pointer_t getSubDocument(SubDocumentId nId) = 0;
+
+ /**
+ Returns iterator to beginning of document.
+ */
+ virtual WW8DocumentIterator::Pointer_t begin() = 0;
+
+ /**
+ Returns iterator to end of document.
+ */
+ virtual WW8DocumentIterator::Pointer_t end() = 0;
+};
+
+class WRITERFILTER_DLLPUBLIC WW8DocumentFactory
+{
+public:
+ static WW8Stream::Pointer_t
+ createStream(uno::Reference<uno::XComponentContext> rContext,
+ uno::Reference<io::XInputStream> rStream);
+
+ static WW8Document::Pointer_t
+ createDocument(WW8Stream::Pointer_t rpStream);
+};
+}
+
+#endif // INCLUDED_WW8_DOCUMENT_HXX
diff --git a/writerfilter/inc/rtftok/RTFInputSource.hxx b/writerfilter/inc/rtftok/RTFInputSource.hxx
new file mode 100644
index 000000000000..54cf7c84d068
--- /dev/null
+++ b/writerfilter/inc/rtftok/RTFInputSource.hxx
@@ -0,0 +1,19 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+*/
+
+#ifndef INCLUDED_RTFINPUTSOURCE_HXX
+#define INCLUDED_RTFINPUTSOURCE_HXX
+
+namespace writerfilter { namespace rtftok {
+
+class RTFInputSource
+{
+public:
+ virtual int read(void *buffer, int maxLen) = 0;
+};
+
+} } /* end namespace writerfilter::rtftok */
+
+
+#endif /* INCLUDED_RTFINPUTSOURCE_HXX */
diff --git a/writerfilter/inc/rtftok/RTFParseException.hxx b/writerfilter/inc/rtftok/RTFParseException.hxx
new file mode 100644
index 000000000000..df5fef6c06fa
--- /dev/null
+++ b/writerfilter/inc/rtftok/RTFParseException.hxx
@@ -0,0 +1,19 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+*/
+
+#ifndef INCLUDED_RTFPARSEEXCEPTION_HXX
+#define INCLUDED_RTFPARSEEXCEPTION_HXX
+
+namespace writerfilter { namespace rtftok {
+
+class RTFParseException
+{
+public:
+ RTFParseException(char *message);
+};
+
+} } /* end namespace writerfilter::rtftok */
+
+
+#endif /* INCLUDED_RTFPARSEEXCEPTION_HXX */
diff --git a/writerfilter/inc/rtftok/RTFScanner.hxx b/writerfilter/inc/rtftok/RTFScanner.hxx
new file mode 100644
index 000000000000..7610aca41853
--- /dev/null
+++ b/writerfilter/inc/rtftok/RTFScanner.hxx
@@ -0,0 +1,42 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+*/
+
+#ifndef INCLUDED_RTFSCANNER_HXX
+#define INCLUDED_RTFSCANNER_HXX
+
+#include <WriterFilterDllApi.hxx>
+#include <vector>
+#include <rtftok/RTFInputSource.hxx>
+#include <rtftok/RTFScannerHandler.hxx>
+
+namespace writerfilter { namespace rtftok {
+
+class WRITERFILTER_DLLPUBLIC RTFScanner {
+public:
+ RTFScanner(RTFScannerHandler &eventHandler_) : eventHandler(eventHandler_) {};
+ virtual ~RTFScanner() { }
+
+ const char* YYText() { return yytext; }
+ int YYLeng() { return yyleng; }
+
+ virtual int yylex() = 0;
+
+ int lineno() const { return yylineno; }
+
+protected:
+ char* yytext;
+ int yyleng;
+ int yylineno; // only maintained if you use %option yylineno
+ int yy_flex_debug; // only has effect with -d or "%option debug"
+ RTFScannerHandler &eventHandler;
+
+
+public:
+ static writerfilter::rtftok::RTFScanner* createRTFScanner(writerfilter::rtftok::RTFInputSource& inputSource, writerfilter::rtftok::RTFScannerHandler &eventHandler);
+};
+
+} } /* end namespace writerfilter::rtftok */
+
+
+#endif /* INCLUDED_RTFSCANNER_HXX */
diff --git a/writerfilter/inc/rtftok/RTFScannerHandler.hxx b/writerfilter/inc/rtftok/RTFScannerHandler.hxx
new file mode 100644
index 000000000000..c27a7bf1c3a0
--- /dev/null
+++ b/writerfilter/inc/rtftok/RTFScannerHandler.hxx
@@ -0,0 +1,27 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#ifndef INCLUDED_RTFSCANNERHANDLER_HXX
+#define INCLUDED_RTFSCANNERHANDLER_HXX
+
+namespace writerfilter { namespace rtftok {
+
+class RTFScannerHandler
+{
+public:
+ virtual void dest(char*token, char*value)=0;
+ virtual void ctrl(char*token, char*value)=0;
+ virtual void lbrace(void)=0;
+ virtual void rbrace(void)=0;
+ virtual void addSpaces(int count)=0;
+ virtual void addBinData(unsigned char data)=0;
+ virtual void addChar(char ch) =0;
+ virtual void addCharU(sal_Unicode ch) =0;
+ virtual void addHexChar(char* hexch) =0;
+
+};
+
+} } /* end namespace writerfilter::rtftok */
+
+#endif /* INCLUDED_RTFSCANNERHANDLER_HXX */
diff --git a/writerfilter/qa/cppunittests/doctok/doctok.job b/writerfilter/qa/cppunittests/doctok/doctok.job
new file mode 100644
index 000000000000..c99341dd55d9
--- /dev/null
+++ b/writerfilter/qa/cppunittests/doctok/doctok.job
@@ -0,0 +1 @@
+doctok.test.openFile \ No newline at end of file
diff --git a/writerfilter/qa/cppunittests/doctok/export.map b/writerfilter/qa/cppunittests/doctok/export.map
new file mode 100644
index 000000000000..4ca70fa85463
--- /dev/null
+++ b/writerfilter/qa/cppunittests/doctok/export.map
@@ -0,0 +1,7 @@
+UDK_3.0 {
+ global:
+ registerAllTestFunction;
+
+ local:
+ *;
+};
diff --git a/writerfilter/qa/cppunittests/doctok/makefile.mk b/writerfilter/qa/cppunittests/doctok/makefile.mk
new file mode 100644
index 000000000000..459ae167b495
--- /dev/null
+++ b/writerfilter/qa/cppunittests/doctok/makefile.mk
@@ -0,0 +1,79 @@
+#*************************************************************************
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1 $
+#
+# last change: $Author: hbrinkm $ $Date: 2006-10-24 09:27:12 $
+#
+# The Contents of this file are made available subject to
+# the terms of GNU Lesser General Public License Version 2.1.
+#
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2005 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#*************************************************************************
+PRJ=..$/..$/..
+
+PRJNAME=writerfilter
+TARGET=test-doctok
+# this is removed at the moment because we need some enhancements
+# TESTDIR=TRUE
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+
+# BEGIN ----------------------------------------------------------------
+# auto generated Target:doctok by codegen.pl
+SHL1OBJS= \
+ $(SLO)$/testdoctok.obj
+
+SHL1TARGET= testdoctok
+SHL1STDLIBS=\
+ $(SALLIB) \
+ $(UCBHELPERLIB) \
+ $(CPPUHELPERLIB) \
+ $(CPPULIB) \
+ $(CPPUNITLIB)
+
+SHL1LIBS=\
+ $(SLB)$/doctok.lib
+SHL1DEPS= \
+ $(SHL1LIBS)
+
+SHL1IMPLIB= i$(SHL1TARGET)
+# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+
+DEF1NAME =$(SHL1TARGET)
+# DEF1EXPORTFILE= export.exp
+SHL1VERSIONMAP= export.map
+# auto generated Target:doctok
+# END ------------------------------------------------------------------
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+.INCLUDE : _cppunit.mk
diff --git a/writerfilter/qa/cppunittests/doctok/testdoctok.cxx b/writerfilter/qa/cppunittests/doctok/testdoctok.cxx
new file mode 100644
index 000000000000..12674d3f1086
--- /dev/null
+++ b/writerfilter/qa/cppunittests/doctok/testdoctok.cxx
@@ -0,0 +1,228 @@
+// autogenerated file with codegen.pl
+
+#include <cppunit/simpleheader.hxx>
+
+#include <osl/process.h>
+#include <ucbhelper/contentbroker.hxx>
+#include <cppuhelper/bootstrap.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/container/XNameContainer.hpp>
+
+#include <doctok/exceptions.hxx>
+#include <doctok/WW8Document.hxx>
+#include <doctok/WW8ResourceModel.hxx>
+
+#include <iostream>
+
+namespace testdoctok
+{
+ using namespace ::std;
+ using namespace ::com::sun::star;
+ using namespace doctok;
+
+ uno::Reference<io::XInputStream> xStream;
+ uno::Reference<uno::XComponentContext> xContext;
+ WW8Document::Pointer_t pDocument;
+ uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > xSimpleFileAccess;
+
+ class test : public CppUnit::TestFixture
+ {
+
+ public:
+ // initialise your test code values here.
+ void setUp()
+ {
+ }
+
+ void tearDown()
+ {
+ }
+
+ void testInitUno()
+ {
+ bool bResult = false;
+
+ // initialise UCB-Broker
+ uno::Reference<uno::XComponentContext>
+ xComponentContext
+ (::cppu::defaultBootstrap_InitialComponentContext());
+ OSL_ASSERT( xComponentContext.is() );
+
+ xContext = xComponentContext;
+
+ uno::Reference<lang::XMultiComponentFactory>
+ xFactory(xComponentContext->getServiceManager() );
+ OSL_ASSERT(xFactory.is());
+
+ uno::Sequence<uno::Any> aUcbInitSequence(2);
+ aUcbInitSequence[0] <<=
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+ aUcbInitSequence[1] <<=
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+
+ uno::Reference<lang::XMultiServiceFactory>
+ xServiceFactory(xFactory, uno::UNO_QUERY);
+ OSL_ASSERT( xServiceFactory.is() );
+
+ if (xServiceFactory.is())
+ {
+ sal_Bool bRet =
+ ::ucb::ContentBroker::initialize(xServiceFactory,
+ aUcbInitSequence);
+
+ OSL_ASSERT(bRet);
+ if (bRet)
+ {
+ uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess >
+ xNameContainer(xFactory->createInstanceWithContext
+ (::rtl::OUString::createFromAscii
+ ("com.sun.star.ucb.SimpleFileAccess" ),
+ xComponentContext), uno::UNO_QUERY );
+
+ if (xNameContainer.is())
+ {
+ xSimpleFileAccess = xNameContainer;
+
+ bResult = true;
+ }
+ }
+ }
+
+ CPPUNIT_ASSERT_MESSAGE("UNO initialization failed",
+ bResult);
+ }
+
+ // insert your test code here.
+ void testOpenFile()
+ {
+ try
+ {
+ rtl_uString *dir=NULL;
+ osl_getProcessWorkingDir(&dir);
+ rtl_uString *fname=NULL;
+ //rtl_uString_newFromAscii(&fname, "/OpenDocument-v1.doc");
+ rtl_uString_newFromAscii(&fname, "/test.doc");
+ //rtl_uString_newFromAscii(&fname, "/numbers.doc");
+ rtl_uString *absfile=NULL;
+ rtl_uString_newConcat(&absfile, dir, fname);
+
+ rtl::OUString sInputFileURL( absfile );
+
+ for (sal_uInt32 n = 0; n < sInputFileURL.getLength(); ++n)
+ {
+ sal_uChar nC = sInputFileURL[n];
+
+ if (nC < 0xff && isprint(nC))
+ clog << static_cast<char>(nC);
+ else
+ clog << ".";
+ }
+
+ clog << endl;
+
+ xStream = xSimpleFileAccess->openFileRead(sInputFileURL);
+
+ WW8Stream::Pointer_t pStream =
+ WW8DocumentFactory::createStream(xContext, xStream);
+
+ pDocument = WW8DocumentFactory::createDocument(pStream);
+ }
+ catch (doctok::Exception e)
+ {
+ clog << "Exception!!" << endl;
+ }
+
+ CPPUNIT_ASSERT_MESSAGE("creating document failed",
+ pDocument != NULL);
+
+#if 1
+ }
+
+ void testTraversal()
+ {
+#endif
+ sal_uInt32 nResult = 0;
+
+ try
+ {
+ WW8DocumentIterator::Pointer_t pIt = pDocument->begin();
+ WW8DocumentIterator::Pointer_t pItEnd = pDocument->end();
+
+ while (! pIt->equal(*pItEnd))
+ {
+ pIt->dump(clog);
+
+ clog << endl;
+
+ WW8PropertySet::Pointer_t pAttrs = pIt->getProperties();
+
+ if (pAttrs != NULL)
+ {
+ pAttrs->dump(clog);
+ }
+
+ pIt->getText().dump(clog);
+ ++(*pIt);
+ ++nResult;
+ }
+ }
+ catch (doctok::Exception e)
+ {
+ clog << "Exception!!" << endl;
+ }
+
+ char sBuffer[256];
+ snprintf(sBuffer, 255, "%d", nResult);
+ clog << "Iterator steps:" << sBuffer << endl;
+
+ CPPUNIT_ASSERT_MESSAGE("traversing document failed",
+ nResult > 0);
+ }
+
+ void testEvents()
+ {
+ try
+ {
+ Stream::Pointer_t pStream = doctok::createStreamHandler();
+
+ pDocument->resolve(*pStream);
+ }
+ catch (doctok::Exception e)
+ {
+ clog << "Exception!!" << endl;
+ }
+ }
+
+ void testEnd()
+ {
+ ::ucb::ContentBroker::deinitialize();
+ }
+
+ // Change the following lines only, if you add, remove or rename
+ // member functions of the current class,
+ // because these macros are need by auto register mechanism.
+
+ CPPUNIT_TEST_SUITE(test);
+ CPPUNIT_TEST(testInitUno);
+ CPPUNIT_TEST(testOpenFile);
+ //CPPUNIT_TEST(testTraversal);
+ CPPUNIT_TEST(testEvents);
+ CPPUNIT_TEST(testEnd);
+ CPPUNIT_TEST_SUITE_END();
+ }; // class test
+
+ // -----------------------------------------------------------------------------
+ CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(testdoctok::test, "doctok");
+} // namespace doctok
+
+
+// -----------------------------------------------------------------------------
+
+// this macro creates an empty function, which will called by the RegisterAllFunctions()
+// to let the user the possibility to also register some functions by hand.
+NOADDITIONAL;
+
diff --git a/writerfilter/source/dmapper/ConversionHelper.cxx b/writerfilter/source/dmapper/ConversionHelper.cxx
new file mode 100644
index 000000000000..8d6d70577dea
--- /dev/null
+++ b/writerfilter/source/dmapper/ConversionHelper.cxx
@@ -0,0 +1,417 @@
+#ifndef INCLUDED_DMAPPER_CONVERSIONHELPER_HXX
+#include <ConversionHelper.hxx>
+#endif
+#ifndef _COM_SUN_STAR_TABLE_BORDERLINE_HPP_
+#include <com/sun/star/table/BorderLine.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
+#include <com/sun/star/lang/Locale.hpp>
+#endif
+#ifndef _TOOLS_COLOR_HXX
+#include <tools/color.hxx>
+#endif
+#ifndef _RTL_USTRBUF_HXX_
+#include <rtl/ustrbuf.hxx>
+#endif
+
+using namespace com::sun::star;
+
+namespace dmapper{
+
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+
+//line definitions in 1/100 mm
+#define LINE_WIDTH_0 2
+#define LINE_WIDTH_1 36
+#define LINE_WIDTH_2 89
+#define LINE_WIDTH_3 142
+#define LINE_WIDTH_4 177
+#define LINE_WIDTH_5 18
+
+#define DOUBLE_LINE0_OUT LINE_WIDTH_0
+#define DOUBLE_LINE0_IN LINE_WIDTH_0
+#define DOUBLE_LINE0_DIST LINE_WIDTH_1
+
+#define DOUBLE_LINE1_OUT LINE_WIDTH_1
+#define DOUBLE_LINE1_IN LINE_WIDTH_1
+#define DOUBLE_LINE1_DIST LINE_WIDTH_1
+
+#define DOUBLE_LINE2_OUT LINE_WIDTH_2
+#define DOUBLE_LINE2_IN LINE_WIDTH_2
+#define DOUBLE_LINE2_DIST LINE_WIDTH_2
+
+#define DOUBLE_LINE3_OUT LINE_WIDTH_2
+#define DOUBLE_LINE3_IN LINE_WIDTH_1
+#define DOUBLE_LINE3_DIST LINE_WIDTH_2
+
+#define DOUBLE_LINE4_OUT LINE_WIDTH_1
+#define DOUBLE_LINE4_IN LINE_WIDTH_2
+#define DOUBLE_LINE4_DIST LINE_WIDTH_1
+
+#define DOUBLE_LINE5_OUT LINE_WIDTH_3
+#define DOUBLE_LINE5_IN LINE_WIDTH_2
+#define DOUBLE_LINE5_DIST LINE_WIDTH_2
+
+#define DOUBLE_LINE6_OUT LINE_WIDTH_2
+#define DOUBLE_LINE6_IN LINE_WIDTH_3
+#define DOUBLE_LINE6_DIST LINE_WIDTH_2
+
+#define DOUBLE_LINE7_OUT LINE_WIDTH_0
+#define DOUBLE_LINE7_IN LINE_WIDTH_0
+#define DOUBLE_LINE7_DIST LINE_WIDTH_2
+
+#define DOUBLE_LINE8_OUT LINE_WIDTH_1
+#define DOUBLE_LINE8_IN LINE_WIDTH_0
+#define DOUBLE_LINE8_DIST LINE_WIDTH_2
+
+#define DOUBLE_LINE9_OUT LINE_WIDTH_2
+#define DOUBLE_LINE9_IN LINE_WIDTH_0
+#define DOUBLE_LINE9_DIST LINE_WIDTH_2
+
+#define DOUBLE_LINE10_OUT LINE_WIDTH_3
+#define DOUBLE_LINE10_IN LINE_WIDTH_0
+#define DOUBLE_LINE10_DIST LINE_WIDTH_2
+
+sal_Int32 ConversionHelper::MakeBorderLine( sal_Int32 nSprmValue, table::BorderLine& rToFill )
+{
+ //Border
+ //borders are defined as:
+ // 0x XX XX XX XX
+ // || || || ||
+ // || || || ---- Line width in 1/8 pt
+ // || || ||
+ // || || ------- Line type: 0 - none 1 - single ... 25 - engrave 3D and 64 - 230 page borders
+ // || ||
+ // || ---------- Line color
+ // ||
+ // ------------- seven bits line space
+ // -------------- first bit: with shading
+ sal_Int16 nLineThicknessTwip = (sal_Int16)((nSprmValue & 0xff) * 20)/8L ;
+ sal_Int32 nLineType = ((nSprmValue & 0xff00) >> 8);
+ sal_Int32 nLineColor = (nSprmValue & 0xff0000)>>16;
+ sal_Int32 nLineDistance = (((nSprmValue & 0x3f000000)>>24) * 2540 + 36)/72L;
+ sal_Int32 nLineThickness = TWIP_TO_MM100(nLineThicknessTwip);
+
+ static const sal_Int32 aBorderDefColor[] =
+ {
+ COL_AUTO, COL_BLACK, COL_LIGHTBLUE, COL_LIGHTCYAN, COL_LIGHTGREEN,
+ COL_LIGHTMAGENTA, COL_LIGHTRED, COL_YELLOW, COL_WHITE, COL_BLUE,
+ COL_CYAN, COL_GREEN, COL_MAGENTA, COL_RED, COL_BROWN, COL_GRAY,
+ COL_LIGHTGRAY
+ };
+ //no auto color for borders
+ if(!nLineColor)
+ ++nLineColor;
+ if(sal::static_int_cast<sal_uInt32>(nLineColor) <
+ sizeof(aBorderDefColor) / sizeof(nLineColor))
+ nLineColor = aBorderDefColor[nLineColor];
+
+ enum eBorderCode
+ {
+ single0, single1, single2, single3, single4, single5,
+ double0, double1, double2, double3, double4, double5, double6,
+ double7, double8, double9, double10,
+ none
+ } eCodeIdx = none;
+
+ // Map to our border types, we should use of one equal line
+ // thickness, or one of smaller thickness. If too small we
+ // can make the defecit up in additional white space or
+ // object size
+ switch(nLineType)
+ {
+ // First the single lines
+ case 1:
+ case 2:
+ case 5:
+ // and the unsupported special cases which we map to a single line
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 22:
+ // or if in necessary by a double line
+ case 24:
+ case 25:
+ if( nLineThickness < 10)
+ eCodeIdx = single0;// 1 Twip for us
+ else if( nLineThickness < 20)
+ eCodeIdx = single5;// 10 Twips for us
+ else if (nLineThickness < 50)
+ eCodeIdx = single1;// 20 Twips
+ else if (nLineThickness < 80)
+ eCodeIdx = single2;// 50
+ else if (nLineThickness < 100)
+ eCodeIdx = single3;// 80
+ else if (nLineThickness < 150)
+ eCodeIdx = single4;// 100
+ // Hack: for the quite thick lines we must paint double lines,
+ // because our singles lines don't come thicker than 5 points.
+ else if (nLineThickness < 180)
+ eCodeIdx = double2;// 150
+ else
+ eCodeIdx = double5;// 180
+ break;
+ // then the shading beams which we represent by a double line
+ case 23:
+ eCodeIdx = double1;
+ break;
+ // then the double lines, for which we have good matches
+ case 3:
+ case 10: //Don't have tripple so use double
+ if (nLineThickness < 60)
+ eCodeIdx = double0;// 22 Twips for us
+ else if (nLineThickness < 135)
+ eCodeIdx = double7;// some more space
+ else if (nLineThickness < 180)
+ eCodeIdx = double1;// 60
+ else
+ eCodeIdx = double2;// 150
+ break;
+ case 11:
+ eCodeIdx = double4;// 90 Twips for us
+ break;
+ case 12:
+ case 13: //Don't have thin thick thin, so use thick thin
+ if (nLineThickness < 87)
+ eCodeIdx = double8;// 71 Twips for us
+ else if (nLineThickness < 117)
+ eCodeIdx = double9;// 101
+ else if (nLineThickness < 166)
+ eCodeIdx = double10;// 131
+ else
+ eCodeIdx = double5;// 180
+ break;
+ case 14:
+ if (nLineThickness < 46)
+ eCodeIdx = double0;// 22 Twips for us
+ else if (nLineThickness < 76)
+ eCodeIdx = double1;// 60
+ else if (nLineThickness < 121)
+ eCodeIdx = double4;// 90
+ else if (nLineThickness < 166)
+ eCodeIdx = double2;// 150
+ else
+ eCodeIdx = double6;// 180
+ break;
+ case 15:
+ case 16: //Don't have thin thick thin, so use thick thin
+ if (nLineThickness < 46)
+ eCodeIdx = double0;// 22 Twips for us
+ else if (nLineThickness < 76)
+ eCodeIdx = double1;// 60
+ else if (nLineThickness < 121)
+ eCodeIdx = double3;// 90
+ else if (nLineThickness < 166)
+ eCodeIdx = double2;// 150
+ else
+ eCodeIdx = double5;// 180
+ break;
+ case 17:
+ if (nLineThickness < 46)
+ eCodeIdx = double0;// 22 Twips for us
+ else if (nLineThickness < 72)
+ eCodeIdx = double7;// 52
+ else if (nLineThickness < 137)
+ eCodeIdx = double4;// 90
+ else
+ eCodeIdx = double6;// 180
+ break;
+ case 18:
+ case 19: //Don't have thin thick thin, so use thick thin
+ if (nLineThickness < 46)
+ eCodeIdx = double0;// 22 Twips for us
+ else if (nLineThickness < 62)
+ eCodeIdx = double7;// 52
+ else if (nLineThickness < 87)
+ eCodeIdx = double8;// 71
+ else if (nLineThickness < 117)
+ eCodeIdx = double9;// 101
+ else if (nLineThickness < 156)
+ eCodeIdx = double10;// 131
+ else
+ eCodeIdx = double5;// 180
+ break;
+ case 20:
+ if (nLineThickness < 46)
+ eCodeIdx = single1; // 20 Twips for us
+ else
+ eCodeIdx = double1;// 60
+ break;
+ case 21:
+ eCodeIdx = double1;// 60 Twips for us
+ break;
+ default:
+ eCodeIdx = single0;
+ break;
+ }
+ struct BorderDefinition
+ {
+ sal_Int16 nOut;
+ sal_Int16 nIn;
+ sal_Int16 nDist;
+ };
+
+
+ static const BorderDefinition aLineTab[] =
+ {
+ /* 0*/ { LINE_WIDTH_0, 0, 0 },
+ /* 1*/ { LINE_WIDTH_1, 0, 0 },
+ /* 2*/ { LINE_WIDTH_2, 0, 0 },
+ /* 3*/ { LINE_WIDTH_3, 0, 0 },
+ /* 4*/ { LINE_WIDTH_4, 0, 0 },
+ /* 5*/ { LINE_WIDTH_5, 0, 0 },
+ /* 6*/ { DOUBLE_LINE0_OUT, DOUBLE_LINE0_IN, DOUBLE_LINE0_DIST },
+ /* 7*/ { DOUBLE_LINE1_OUT, DOUBLE_LINE1_IN, DOUBLE_LINE1_DIST },
+ /* 8*/ { DOUBLE_LINE2_OUT, DOUBLE_LINE2_IN, DOUBLE_LINE2_DIST },
+ /* 9*/ { DOUBLE_LINE3_OUT, DOUBLE_LINE3_IN, DOUBLE_LINE3_DIST },
+ /*10*/ { DOUBLE_LINE4_OUT, DOUBLE_LINE4_IN, DOUBLE_LINE4_DIST },
+ /*11*/ { DOUBLE_LINE5_OUT, DOUBLE_LINE5_IN, DOUBLE_LINE5_DIST },
+ /*12*/ { DOUBLE_LINE6_OUT, DOUBLE_LINE6_IN, DOUBLE_LINE6_DIST },
+ /*13*/ { DOUBLE_LINE7_OUT, DOUBLE_LINE7_IN, DOUBLE_LINE7_DIST },
+ /*14*/ { DOUBLE_LINE8_OUT, DOUBLE_LINE8_IN, DOUBLE_LINE8_DIST },
+ /*15*/ { DOUBLE_LINE9_OUT, DOUBLE_LINE9_IN, DOUBLE_LINE9_DIST },
+ /*16*/ { DOUBLE_LINE10_OUT,DOUBLE_LINE10_IN,DOUBLE_LINE10_DIST}
+ };
+
+ rToFill.Color = nLineColor;
+ rToFill.InnerLineWidth = aLineTab[eCodeIdx].nIn;
+ rToFill.OuterLineWidth = aLineTab[eCodeIdx].nOut;
+ rToFill.LineDistance = aLineTab[eCodeIdx].nDist;
+ return nLineDistance;
+}
+
+void lcl_SwapQuotesInField(::rtl::OUString &rFmt)
+{
+ //Swap unescaped " and ' with ' and "
+ sal_Int32 nLen = rFmt.getLength();
+ ::rtl::OUStringBuffer aBuffer( rFmt.getStr() );
+ const sal_Unicode* pFmt = rFmt.getStr();
+ for (sal_Int32 nI = 0; nI < nLen; ++nI)
+ {
+ if ((pFmt[nI] == '\"') && (!nI || pFmt[nI-1] != '\\'))
+ aBuffer.setCharAt(nI, '\'');
+ else if ((pFmt[nI] == '\'') && (!nI || pFmt[nI-1] != '\\'))
+ aBuffer.setCharAt(nI, '\"');
+ }
+ rFmt = aBuffer.makeStringAndClear();
+}
+bool lcl_IsNotAM(::rtl::OUString& rFmt, sal_Int32 nPos)
+{
+ return (
+ (nPos == rFmt.getLength() - 1) ||
+ (
+ (rFmt.getStr()[nPos+1] != 'M') &&
+ (rFmt.getStr()[nPos+1] != 'm')
+ )
+ );
+}
+
+::rtl::OUString ConversionHelper::ConvertMSFormatStringToSO(
+ const ::rtl::OUString& rFormat, lang::Locale& rLocale, bool bHijri)
+{
+ ::rtl::OUString sFormat(rFormat);
+ lcl_SwapQuotesInField(sFormat);
+
+ //#102782#, #102815#, #108341# & #111944# have to work at the same time :-)
+ bool bForceJapanese(false);
+ bool bForceNatNum(false);
+ sal_Int32 nLen = sFormat.getLength();
+ sal_Int32 nI = 0;
+// const sal_Unicode* pFormat = sFormat.getStr();
+ ::rtl::OUStringBuffer aNewFormat( sFormat.getStr() );
+ while (nI < nLen)
+ {
+ if (aNewFormat.charAt(nI) == '\\')
+ nI++;
+ else if (aNewFormat.charAt(nI) == '\"')
+ {
+ ++nI;
+ //While not at the end and not at an unescaped end quote
+ while ((nI < nLen) && (!(aNewFormat.charAt(nI) == '\"') && (aNewFormat.charAt(nI-1) != '\\')))
+ ++nI;
+ }
+ else //normal unquoted section
+ {
+ sal_Unicode nChar = aNewFormat.charAt(nI);
+ if (nChar == 'O')
+ {
+ aNewFormat.setCharAt(nI, 'M');
+ bForceNatNum = true;
+ }
+ else if (nChar == 'o')
+ {
+ aNewFormat.setCharAt(nI, 'm');
+ bForceNatNum = true;
+ }
+ else if ((nChar == 'A') && lcl_IsNotAM(sFormat, nI))
+ {
+ aNewFormat.setCharAt(nI, 'D');
+ bForceNatNum = true;
+ }
+ else if ((nChar == 'g') || (nChar == 'G'))
+ bForceJapanese = true;
+ else if ((nChar == 'a') && lcl_IsNotAM(sFormat, nI))
+ bForceJapanese = true;
+ else if (nChar == 'E')
+ {
+ if ((nI != nLen-1) && (aNewFormat.charAt(nI+1) == 'E'))
+ {
+ //todo: this cannot be the right way to replace a part of the string!
+ aNewFormat.setCharAt( nI, 'Y' );
+ aNewFormat.setCharAt( nI + 1, 'Y' );
+ aNewFormat.insert(nI + 2, ::rtl::OUString::createFromAscii("YY"));
+ nLen+=2;
+ nI+=3;
+ }
+ bForceJapanese = true;
+ }
+ else if (nChar == 'e')
+ {
+ if ((nI != nLen-1) && (aNewFormat.charAt(nI+1) == 'e'))
+ {
+ //todo: this cannot be the right way to replace a part of the string!
+ aNewFormat.setCharAt( nI, 'y' );
+ aNewFormat.setCharAt( nI + 1, 'y' );
+ aNewFormat.insert(nI + 2, ::rtl::OUString::createFromAscii("yy"));
+ nLen+=2;
+ nI+=3;
+ }
+ bForceJapanese = true;
+ }
+ else if (nChar == '/')
+ {
+ // MM We have to escape '/' in case it's used as a char
+ //todo: this cannot be the right way to replace a part of the string!
+ aNewFormat.setCharAt( nI, '\\' );
+ aNewFormat.insert(nI + 1, ::rtl::OUString::createFromAscii("/"));
+ nI++;
+ nLen++;
+ }
+ }
+ ++nI;
+ }
+
+ if (bForceNatNum)
+ bForceJapanese = true;
+
+ if (bForceJapanese)
+ {
+ rLocale.Language = ::rtl::OUString::createFromAscii("ja");
+ rLocale.Country = ::rtl::OUString::createFromAscii("JP");
+ }
+
+ if (bForceNatNum)
+ {
+ aNewFormat.insert( 0, ::rtl::OUString::createFromAscii("[NatNum1][$-411]"));
+ }
+
+ if (bHijri)
+ {
+ aNewFormat.insert( 0, ::rtl::OUString::createFromAscii("[~hijri]"));
+ }
+ return aNewFormat.makeStringAndClear();
+
+}
+
+} //namespace dmapper
diff --git a/writerfilter/source/dmapper/ConversionHelper.hxx b/writerfilter/source/dmapper/ConversionHelper.hxx
new file mode 100644
index 000000000000..1c6709d2b597
--- /dev/null
+++ b/writerfilter/source/dmapper/ConversionHelper.hxx
@@ -0,0 +1,31 @@
+#ifndef INCLUDED_DMAPPER_CONVERSIONHELPER_HXX
+#define INCLUDED_DMAPPER_CONVERSIONHELPER_HXX
+
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif
+#ifndef _RTL_USTRING_HXX_
+#include <rtl/ustring.hxx>
+#endif
+
+namespace com{ namespace sun{ namespace star{
+ namespace lang{
+ struct Locale;
+ }
+ namespace table{
+ struct BorderLine;
+}}}}
+
+
+namespace dmapper{
+namespace ConversionHelper{
+
+ // create a border line and return the distance value
+ sal_Int32 MakeBorderLine( sal_Int32 nSprmValue, ::com::sun::star::table::BorderLine& rToFill );
+ //convert the number format string form MS format to SO format
+ ::rtl::OUString ConvertMSFormatStringToSO(
+ const ::rtl::OUString& rFormat, ::com::sun::star::lang::Locale& rLocale, bool bHijri);
+
+} // namespace ConversionHelper
+} //namespace dmapper
+#endif
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
new file mode 100644
index 000000000000..da8cf42efe7a
--- /dev/null
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -0,0 +1,1394 @@
+#ifndef INCLUDED_DOMAINMAPPER_HXX
+#include <dmapper/DomainMapper.hxx>
+#endif
+#ifndef INCLUDED_DMAPPER_DOMAINMAPPER_IMPL_HXX
+#include <DomainMapper_Impl.hxx>
+#endif
+#ifndef INCLUDED_DMAPPER_CONVERSIONHELPER_HXX
+#include <ConversionHelper.hxx>
+#endif
+#ifndef INCLUDED_I18NPOOL_MSLANGID_HXX
+#include <i18npool/mslangid.hxx>
+#endif
+#include <com/sun/star/text/XTextDocument.hpp>
+#include <com/sun/star/text/XTextCursor.hpp>
+#include <com/sun/star/text/XTextPortionAppend.hpp>
+#include <com/sun/star/text/XParagraphAppend.hpp>
+#ifndef _COM_SUN_STAR_AWT_FONTRELIEF_HPP_
+#include <com/sun/star/awt/FontRelief.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTWEIGHT_HPP_
+#include <com/sun/star/awt/FontWeight.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTUNDERLINE_HPP_
+#include <com/sun/star/awt/FontUnderline.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTSTRIKEOUT_HPP_
+#include <com/sun/star/awt/FontStrikeout.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTSLANT_HPP_
+#include <com/sun/star/awt/FontSlant.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXREPLACE_HPP_
+#include <com/sun/star/container/XIndexReplace.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_PARAGRAPHADJUST_HPP_
+#include <com/sun/star/style/ParagraphAdjust.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_CASEMAP_HPP_
+#include <com/sun/star/style/CaseMap.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_LINESPACING_HPP_
+#include <com/sun/star/style/LineSpacing.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_LINESPACINGMODE_HPP_
+#include <com/sun/star/style/LineSpacingMode.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TABLE_BORDERLINE_HPP_
+#include <com/sun/star/table/BorderLine.hpp>
+#endif
+#include <comphelper/types.hxx>
+
+#include <rtl/ustrbuf.hxx>
+#include <boost/shared_ptr.hpp>
+#include <com/sun/star/uno/Any.hxx>
+#ifndef _TOOLS_COLOR_HXX
+#include <tools/color.hxx>
+#endif
+#include <vector>
+#include <iostream>
+
+using namespace ::com::sun::star;
+using namespace ::rtl;
+using namespace ::writerfilter;
+namespace dmapper{
+sal_Int32 lcl_ConvertColor(sal_Int32 nIntValue)
+{
+
+ sal_uInt8
+ r(static_cast<sal_uInt8>(nIntValue&0xFF)),
+ g(static_cast<sal_uInt8>(((nIntValue)>>8)&0xFF)),
+ b(static_cast<sal_uInt8>((nIntValue>>16)&0xFF)),
+ t(static_cast<sal_uInt8>((nIntValue>>24)&0xFF));
+ sal_Int32 nRet = (t<<24) + (r<<16) + (g<<8) + b;
+ return nRet;
+}
+
+/*-- 09.06.2006 09:52:11---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+DomainMapper::DomainMapper(uno::Reference< lang::XComponent > xModel) :
+ m_pImpl( new DomainMapper_Impl( *this, xModel ))
+{
+}
+/*-- 09.06.2006 09:52:12---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+DomainMapper::~DomainMapper()
+{
+}
+/*-- 09.06.2006 09:52:12---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::attribute(doctok::Id Name, doctok::Value & val)
+{
+ sal_Int32 nIntValue = val.getInt();
+ if( Name >= NS_rtf::LN_WIDENT && Name <= NS_rtf::LN_LCBSTTBFUSSR )
+ m_pImpl->GetFIB().SetData( Name, nIntValue );
+ else
+ {
+ switch( Name )
+ {
+ case NS_rtf::LN_ISTD: //index of applied style
+ {
+ //search for the style with the given id and apply it
+ //as CharStyleName or ParaStyleName
+ const StyleSheetEntry* pEntry = m_pImpl->GetStyleSheetTable()->FindStyleSheetByISTD(nIntValue);
+ if(pEntry)
+ {
+ bool bParaStyle = pEntry->nPropertyCalls > 1;
+ if(bParaStyle)
+ m_pImpl->SetCurrentParaStyleId(nIntValue);
+ m_pImpl->GetTopContext()->Insert(
+ bParaStyle ?
+ PROP_PARA_STYLE_NAME : PROP_CHAR_STYLE_NAME,
+ uno::makeAny( pEntry->sStyleName ) );
+ }
+ }
+ break;
+ // case NS_rtf::LN_ISTARTAT: break;
+ // case NS_rtf::LN_NFC: break;
+ // case NS_rtf::LN_FLEGAL: break;
+ // case NS_rtf::LN_FNORESTART: break;
+ // case NS_rtf::LN_FPREV: break;
+ // case NS_rtf::LN_FPREVSPACE: break;
+ // case NS_rtf::LN_FWORD6: break;
+ // case NS_rtf::LN_UNUSED5_7: break;
+ // case NS_rtf::LN_RGBXCHNUMS: break;
+ // case NS_rtf::LN_IXCHFOLLOW: break;
+ // case NS_rtf::LN_DXASPACE: break;
+ // case NS_rtf::LN_DXAINDENT: break;
+ // case NS_rtf::LN_CBGRPPRLCHPX: break;
+ // case NS_rtf::LN_CBGRPPRLPAPX: break;
+ // case NS_rtf::LN_LSID: break;
+ // case NS_rtf::LN_TPLC: break;
+ // case NS_rtf::LN_RGISTD: break;
+ // case NS_rtf::LN_FSIMPLELIST: break;
+ // case NS_rtf::LN_FRESTARTHDN: break;
+ // case NS_rtf::LN_UNSIGNED26_2: break;
+ // case NS_rtf::LN_ILVL: break;
+ // case NS_rtf::LN_FSTARTAT: break;
+ // case NS_rtf::LN_FFORMATTING: break;
+ // case NS_rtf::LN_UNSIGNED4_6: break;
+ // case NS_rtf::LN_UNUSED4: break;
+ // case NS_rtf::LN_UNUSED8: break;
+ // case NS_rtf::LN_CLFOLVL: break;
+ // case NS_rtf::LN_CBFFNM1: break;
+ // case NS_rtf::LN_PRQ: break;
+ // case NS_rtf::LN_FTRUETYPE: break;
+ // case NS_rtf::LN_UNUSED1_3: break;
+ // case NS_rtf::LN_FF: break;
+ // case NS_rtf::LN_UNUSED1_7: break;
+ // case NS_rtf::LN_WWEIGHT: break;
+ case NS_rtf::LN_CHS:
+ {
+ m_pImpl->GetFIB().SetLNCHS( nIntValue );
+ }
+ break;
+ break;
+ // case NS_rtf::LN_IXCHSZALT: break;
+ // case NS_rtf::LN_PANOSE: break;
+ // case NS_rtf::LN_FS: break;
+ // case NS_rtf::LN_STI: break;
+ // case NS_rtf::LN_FSCRATCH: break;
+ // case NS_rtf::LN_FINVALHEIGHT: break;
+ // case NS_rtf::LN_FHASUPE: break;
+ // case NS_rtf::LN_FMASSCOPY: break;
+ // case NS_rtf::LN_SGC: break;
+ // case NS_rtf::LN_ISTDBASE: break;
+ // case NS_rtf::LN_CUPX: break;
+ // case NS_rtf::LN_ISTDNEXT: break;
+ // case NS_rtf::LN_BCHUPE: break;
+ // case NS_rtf::LN_FAUTOREDEF: break;
+ // case NS_rtf::LN_FHIDDEN: break;
+ // case NS_rtf::LN_UNUSED8_3: break;
+ // case NS_rtf::LN_CSTD: break;
+ // case NS_rtf::LN_CBSTDBASEINFILE: break;
+ // case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
+ // case NS_rtf::LN_UNUSED4_2: break;
+ // case NS_rtf::LN_STIMAXWHENSAVED: break;
+ // case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
+ // case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
+ // case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
+ /* case NS_rtf::LN_WIDENT: case NS_rtf::LN_NFIB: case NS_rtf::LN_NPRODUCT: case NS_rtf::LN_LID: case NS_rtf::LN_PNNEXT: case NS_rtf::LN_FDOT: case NS_rtf::LN_FGLSY: case NS_rtf::LN_FCOMPLEX: case NS_rtf::LN_FHASPIC:
+ case NS_rtf::LN_CQUICKSAVES: case NS_rtf::LN_FENCRYPTED: case NS_rtf::LN_FWHICHTBLSTM: case NS_rtf::LN_FREADONLYRECOMMENDED: case NS_rtf::LN_FWRITERESERVATION: case NS_rtf::LN_FEXTCHAR: case NS_rtf::LN_FLOADOVERRIDE: case NS_rtf::LN_FFAREAST:
+ case NS_rtf::LN_FCRYPTO: case NS_rtf::LN_NFIBBACK: case NS_rtf::LN_LKEY: case NS_rtf::LN_ENVR: case NS_rtf::LN_FMAC: case NS_rtf::LN_FEMPTYSPECIAL: case NS_rtf::LN_FLOADOVERRIDEPAGE: case NS_rtf::LN_FFUTURESAVEDUNDO:
+ case NS_rtf::LN_FWORD97SAVED: case NS_rtf::LN_FSPARE0: case NS_rtf::LN_CHSTABLES: case NS_rtf::LN_FCMIN: case NS_rtf::LN_FCMAC: case NS_rtf::LN_CSW: case NS_rtf::LN_WMAGICCREATED: case NS_rtf::LN_WMAGICREVISED: case NS_rtf::LN_WMAGICCREATEDPRIVATE:
+ case NS_rtf::LN_WMAGICREVISEDPRIVATE: case NS_rtf::LN_PNFBPCHPFIRST_W6: case NS_rtf::LN_PNCHPFIRST_W6: case NS_rtf::LN_CPNBTECHP_W6: case NS_rtf::LN_PNFBPPAPFIRST_W6: case NS_rtf::LN_PNPAPFIRST_W6: case NS_rtf::LN_CPNBTEPAP_W6: case NS_rtf::LN_PNFBPLVCFIRST_W6:
+ case NS_rtf::LN_PNLVCFIRST_W6: case NS_rtf::LN_CPNBTELVC_W6: case NS_rtf::LN_LIDFE: case NS_rtf::LN_CLW: case NS_rtf::LN_CBMAC: case NS_rtf::LN_LPRODUCTCREATED: case NS_rtf::LN_LPRODUCTREVISED: case NS_rtf::LN_CCPTEXT:
+ case NS_rtf::LN_CCPFTN: case NS_rtf::LN_CCPHDD: case NS_rtf::LN_CCPMCR: case NS_rtf::LN_CCPATN: case NS_rtf::LN_CCPEDN: case NS_rtf::LN_CCPTXBX: case NS_rtf::LN_CCPHDRTXBX: case NS_rtf::LN_PNFBPCHPFIRST: case NS_rtf::LN_PNCHPFIRST: case NS_rtf::LN_CPNBTECHP:
+ case NS_rtf::LN_PNFBPPAPFIRST: case NS_rtf::LN_PNPAPFIRST: case NS_rtf::LN_CPNBTEPAP: case NS_rtf::LN_PNFBPLVCFIRST: case NS_rtf::LN_PNLVCFIRST: case NS_rtf::LN_CPNBTELVC: case NS_rtf::LN_FCISLANDFIRST: case NS_rtf::LN_FCISLANDLIM: case NS_rtf::LN_CFCLCB: case NS_rtf::LN_FCSTSHFORIG:
+ case NS_rtf::LN_LCBSTSHFORIG: case NS_rtf::LN_FCSTSHF: case NS_rtf::LN_LCBSTSHF: case NS_rtf::LN_FCPLCFFNDREF: case NS_rtf::LN_LCBPLCFFNDREF: case NS_rtf::LN_FCPLCFFNDTXT: case NS_rtf::LN_LCBPLCFFNDTXT: case NS_rtf::LN_FCPLCFANDREF: case NS_rtf::LN_LCBPLCFANDREF: case NS_rtf::LN_FCPLCFANDTXT: case NS_rtf::LN_LCBPLCFANDTXT: case NS_rtf::LN_FCPLCFSED: case NS_rtf::LN_LCBPLCFSED:
+ case NS_rtf::LN_FCPLCFPAD: case NS_rtf::LN_LCBPLCFPAD: case NS_rtf::LN_FCPLCFPHE: case NS_rtf::LN_LCBPLCFPHE: case NS_rtf::LN_FCSTTBFGLSY: case NS_rtf::LN_LCBSTTBFGLSY: case NS_rtf::LN_FCPLCFGLSY: case NS_rtf::LN_LCBPLCFGLSY: case NS_rtf::LN_FCPLCFHDD: case NS_rtf::LN_LCBPLCFHDD: case NS_rtf::LN_FCPLCFBTECHPX: case NS_rtf::LN_LCBPLCFBTECHPX:
+ case NS_rtf::LN_FCPLCFBTEPAPX: case NS_rtf::LN_LCBPLCFBTEPAPX: case NS_rtf::LN_FCPLCFSEA: case NS_rtf::LN_LCBPLCFSEA: case NS_rtf::LN_FCSTTBFFFN: case NS_rtf::LN_LCBSTTBFFFN: case NS_rtf::LN_FCPLCFFLDMOM: case NS_rtf::LN_LCBPLCFFLDMOM: case NS_rtf::LN_FCPLCFFLDHDR: case NS_rtf::LN_LCBPLCFFLDHDR:
+ case NS_rtf::LN_FCPLCFFLDFTN: case NS_rtf::LN_LCBPLCFFLDFTN: case NS_rtf::LN_FCPLCFFLDATN: case NS_rtf::LN_LCBPLCFFLDATN: case NS_rtf::LN_FCPLCFFLDMCR: case NS_rtf::LN_LCBPLCFFLDMCR: case NS_rtf::LN_FCSTTBFBKMK: case NS_rtf::LN_LCBSTTBFBKMK: case NS_rtf::LN_FCPLCFBKF: case NS_rtf::LN_LCBPLCFBKF: case NS_rtf::LN_FCPLCFBKL: case NS_rtf::LN_LCBPLCFBKL:
+ case NS_rtf::LN_FCCMDS: case NS_rtf::LN_LCBCMDS: case NS_rtf::LN_FCPLCMCR: case NS_rtf::LN_LCBPLCMCR: case NS_rtf::LN_FCSTTBFMCR: case NS_rtf::LN_LCBSTTBFMCR: case NS_rtf::LN_FCPRDRVR: case NS_rtf::LN_LCBPRDRVR: case NS_rtf::LN_FCPRENVPORT: case NS_rtf::LN_LCBPRENVPORT: case NS_rtf::LN_FCPRENVLAND: case NS_rtf::LN_LCBPRENVLAND:
+ case NS_rtf::LN_FCWSS: case NS_rtf::LN_LCBWSS: case NS_rtf::LN_FCDOP: case NS_rtf::LN_LCBDOP: case NS_rtf::LN_FCSTTBFASSOC: case NS_rtf::LN_LCBSTTBFASSOC: case NS_rtf::LN_FCCLX: case NS_rtf::LN_LCBCLX: case NS_rtf::LN_FCPLCFPGDFTN: case NS_rtf::LN_LCBPLCFPGDFTN: case NS_rtf::LN_FCAUTOSAVESOURCE:
+ case NS_rtf::LN_LCBAUTOSAVESOURCE: case NS_rtf::LN_FCGRPXSTATNOWNERS: case NS_rtf::LN_LCBGRPXSTATNOWNERS: case NS_rtf::LN_FCSTTBFATNBKMK: case NS_rtf::LN_LCBSTTBFATNBKMK: case NS_rtf::LN_FCPLCDOAMOM: case NS_rtf::LN_LCBPLCDOAMOM: case NS_rtf::LN_FCPLCDOAHDR: case NS_rtf::LN_LCBPLCDOAHDR: case NS_rtf::LN_FCPLCSPAMOM: case NS_rtf::LN_LCBPLCSPAMOM: case NS_rtf::LN_FCPLCSPAHDR:
+ case NS_rtf::LN_LCBPLCSPAHDR: case NS_rtf::LN_FCPLCFATNBKF: case NS_rtf::LN_LCBPLCFATNBKF: case NS_rtf::LN_FCPLCFATNBKL: case NS_rtf::LN_LCBPLCFATNBKL: case NS_rtf::LN_FCPMS: case NS_rtf::LN_LCBPMS: case NS_rtf::LN_FCFORMFLDSTTBF: case NS_rtf::LN_LCBFORMFLDSTTBF: case NS_rtf::LN_FCPLCFENDREF:
+ case NS_rtf::LN_LCBPLCFENDREF: case NS_rtf::LN_FCPLCFENDTXT: case NS_rtf::LN_LCBPLCFENDTXT: case NS_rtf::LN_FCPLCFFLDEDN: case NS_rtf::LN_LCBPLCFFLDEDN: case NS_rtf::LN_FCPLCFPGDEDN: case NS_rtf::LN_LCBPLCFPGDEDN: case NS_rtf::LN_FCDGGINFO: case NS_rtf::LN_LCBDGGINFO: case NS_rtf::LN_FCSTTBFRMARK:
+ case NS_rtf::LN_LCBSTTBFRMARK: case NS_rtf::LN_FCSTTBFCAPTION: case NS_rtf::LN_LCBSTTBFCAPTION: case NS_rtf::LN_FCSTTBFAUTOCAPTION: case NS_rtf::LN_LCBSTTBFAUTOCAPTION: case NS_rtf::LN_FCPLCFWKB: case NS_rtf::LN_LCBPLCFWKB: case NS_rtf::LN_FCPLCFSPL: case NS_rtf::LN_LCBPLCFSPL: case NS_rtf::LN_FCPLCFTXBXTXT: case NS_rtf::LN_LCBPLCFTXBXTXT:
+ case NS_rtf::LN_FCPLCFFLDTXBX: case NS_rtf::LN_LCBPLCFFLDTXBX: case NS_rtf::LN_FCPLCFHDRTXBXTXT: case NS_rtf::LN_LCBPLCFHDRTXBXTXT: case NS_rtf::LN_FCPLCFFLDHDRTXBX: case NS_rtf::LN_LCBPLCFFLDHDRTXBX: case NS_rtf::LN_FCSTWUSER: case NS_rtf::LN_LCBSTWUSER: case NS_rtf::LN_FCSTTBTTMBD: case NS_rtf::LN_LCBSTTBTTMBD:
+ case NS_rtf::LN_FCUNUSED: case NS_rtf::LN_LCBUNUSED: case NS_rtf::LN_FCPGDMOTHER: case NS_rtf::LN_LCBPGDMOTHER: case NS_rtf::LN_FCBKDMOTHER: case NS_rtf::LN_LCBBKDMOTHER: case NS_rtf::LN_FCPGDFTN: case NS_rtf::LN_LCBPGDFTN: case NS_rtf::LN_FCBKDFTN: case NS_rtf::LN_LCBBKDFTN: case NS_rtf::LN_FCPGDEDN: case NS_rtf::LN_LCBPGDEDN:
+ case NS_rtf::LN_FCBKDEDN: case NS_rtf::LN_LCBBKDEDN: case NS_rtf::LN_FCSTTBFINTLFLD: case NS_rtf::LN_LCBSTTBFINTLFLD: case NS_rtf::LN_FCROUTESLIP: case NS_rtf::LN_LCBROUTESLIP: case NS_rtf::LN_FCSTTBSAVEDBY: case NS_rtf::LN_LCBSTTBSAVEDBY: case NS_rtf::LN_FCSTTBFNM: case NS_rtf::LN_LCBSTTBFNM: case NS_rtf::LN_FCPLCFLST:
+ case NS_rtf::LN_LCBPLCFLST: case NS_rtf::LN_FCPLFLFO: case NS_rtf::LN_LCBPLFLFO: case NS_rtf::LN_FCPLCFTXBXBKD: case NS_rtf::LN_LCBPLCFTXBXBKD: case NS_rtf::LN_FCPLCFTXBXHDRBKD: case NS_rtf::LN_LCBPLCFTXBXHDRBKD: case NS_rtf::LN_FCDOCUNDO: case NS_rtf::LN_LCBDOCUNDO: case NS_rtf::LN_FCRGBUSE: case NS_rtf::LN_LCBRGBUSE:
+ case NS_rtf::LN_FCUSP: case NS_rtf::LN_LCBUSP: case NS_rtf::LN_FCUSKF: case NS_rtf::LN_LCBUSKF: case NS_rtf::LN_FCPLCUPCRGBUSE: case NS_rtf::LN_LCBPLCUPCRGBUSE: case NS_rtf::LN_FCPLCUPCUSP: case NS_rtf::LN_LCBPLCUPCUSP: case NS_rtf::LN_FCSTTBGLSYSTYLE:
+ case NS_rtf::LN_LCBSTTBGLSYSTYLE: case NS_rtf::LN_FCPLGOSL: case NS_rtf::LN_LCBPLGOSL: case NS_rtf::LN_FCPLCOCX: case NS_rtf::LN_LCBPLCOCX: case NS_rtf::LN_FCPLCFBTELVC: case NS_rtf::LN_LCBPLCFBTELVC: case NS_rtf::LN_DWLOWDATETIME: case NS_rtf::LN_DWHIGHDATETIME: case NS_rtf::LN_FCPLCFLVC: case NS_rtf::LN_LCBPLCFLVC: case NS_rtf::LN_FCPLCASUMY:
+ case NS_rtf::LN_LCBPLCASUMY: case NS_rtf::LN_FCPLCFGRAM: case NS_rtf::LN_LCBPLCFGRAM: case NS_rtf::LN_FCSTTBLISTNAMES: case NS_rtf::LN_LCBSTTBLISTNAMES: case NS_rtf::LN_FCSTTBFUSSR:
+ case NS_rtf::LN_LCBSTTBFUSSR: {
+ m_pImpl->GetFIB().SetData( Name, nIntValue );
+ }
+ break;*/
+ case NS_rtf::LN_FN:
+ case NS_rtf::LN_FCSEPX:
+ case NS_rtf::LN_FNMPR:
+ case NS_rtf::LN_FCMPR:
+ //section descriptor, unused or internally used
+ break;
+ // case NS_rtf::LN_ICOFORE: break;
+ // case NS_rtf::LN_ICOBACK: break;
+ // case NS_rtf::LN_IPAT: break;
+ // case NS_rtf::LN_SHDFORECOLOR: break;
+ // case NS_rtf::LN_SHDBACKCOLOR: break;
+ // case NS_rtf::LN_SHDPATTERN: break;
+ // case NS_rtf::LN_DPTLINEWIDTH: break;
+ // case NS_rtf::LN_BRCTYPE: break;
+ // case NS_rtf::LN_ICO: break;
+ // case NS_rtf::LN_DPTSPACE: break;
+ // case NS_rtf::LN_FSHADOW: break;
+ // case NS_rtf::LN_FFRAME: break;
+ // case NS_rtf::LN_UNUSED2_15: break;
+ // case NS_rtf::LN_FFIRSTMERGED: break;
+ // case NS_rtf::LN_FMERGED: break;
+ // case NS_rtf::LN_FVERTICAL: break;
+ // case NS_rtf::LN_FBACKWARD: break;
+ // case NS_rtf::LN_FROTATEFONT: break;
+ // case NS_rtf::LN_FVERTMERGE: break;
+ // case NS_rtf::LN_FVERTRESTART: break;
+ // case NS_rtf::LN_VERTALIGN: break;
+ // case NS_rtf::LN_FUNUSED: break;
+ // case NS_rtf::LN_WUNUSED: break;
+ // case NS_rtf::LN_BRCTOP: break;
+ // case NS_rtf::LN_BRCLEFT: break;
+ // case NS_rtf::LN_BRCBOTTOM: break;
+ // case NS_rtf::LN_BRCRIGHT: break;
+ // case NS_rtf::LN_IBKL: break;
+ // case NS_rtf::LN_ITCFIRST: break;
+ // case NS_rtf::LN_FPUB: break;
+ // case NS_rtf::LN_ITCLIM: break;
+ // case NS_rtf::LN_FCOL: break;
+ // case NS_rtf::LN_LINECOLOR: break;
+ // case NS_rtf::LN_LINEWIDTH: break;
+ // case NS_rtf::LN_LINETYPE: break;
+ // case NS_rtf::LN_MM: break;
+ // case NS_rtf::LN_XEXT: break;
+ // case NS_rtf::LN_YEXT: break;
+ // case NS_rtf::LN_HMF: break;
+ // case NS_rtf::LN_LCB: break;
+ // case NS_rtf::LN_CBHEADER: break;
+ // case NS_rtf::LN_MFP: break;
+ // case NS_rtf::LN_BM_RCWINMF: break;
+ // case NS_rtf::LN_DXAGOAL: break;
+ // case NS_rtf::LN_DYAGOAL: break;
+ // case NS_rtf::LN_MX: break;
+ // case NS_rtf::LN_MY: break;
+ // case NS_rtf::LN_DXACROPLEFT: break;
+ // case NS_rtf::LN_DYACROPTOP: break;
+ // case NS_rtf::LN_DXACROPRIGHT: break;
+ // case NS_rtf::LN_DYACROPBOTTOM: break;
+ // case NS_rtf::LN_BRCL: break;
+ // case NS_rtf::LN_FFRAMEEMPTY: break;
+ // case NS_rtf::LN_FBITMAP: break;
+ // case NS_rtf::LN_FDRAWHATCH: break;
+ // case NS_rtf::LN_FERROR: break;
+ // case NS_rtf::LN_BPP: break;
+ // case NS_rtf::LN_DXAORIGIN: break;
+ // case NS_rtf::LN_DYAORIGIN: break;
+ // case NS_rtf::LN_CPROPS: break;
+ // case NS_rtf::LN_LINEPROPSTOP: break;
+ // case NS_rtf::LN_LINEPROPSLEFT: break;
+ // case NS_rtf::LN_LINEPROPSBOTTOM: break;
+ // case NS_rtf::LN_LINEPROPSRIGHT: break;
+ // case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
+ // case NS_rtf::LN_LINEPROPSVERTICAL: break;
+ // case NS_rtf::LN_headerr: break;
+ // case NS_rtf::LN_footerr: break;
+ // case NS_rtf::LN_endnote: break;
+ // case NS_rtf::LN_BOOKMARKNAME: break;
+
+ // case NS_rtf::LN_LISTLEVEL: break;
+ // case NS_rtf::LN_LFO: break;
+ // case NS_rtf::LN_F: break;
+ // case NS_rtf::LN_ALTFONTNAME: break;
+ // case NS_rtf::LN_XSZFFN: break;
+ // case NS_rtf::LN_XSTZNAME: break;
+ // case NS_rtf::LN_XSTZNAME1: break;
+ // case NS_rtf::LN_UPXSTART: break;
+ // case NS_rtf::LN_UPX: break;
+ case NS_rtf::LN_sed:
+ {
+ //section properties
+ doctok::Reference<Properties>::Pointer_t pProperties = val.getProperties();
+ if( pProperties.get())
+ {
+ pProperties->resolve(*this);
+ }
+ }
+ break;
+ case NS_rtf::LN_tbdAdd: //
+ {
+ doctok::Reference<Properties>::Pointer_t pProperties = val.getProperties();
+ if( pProperties.get())
+ {
+ pProperties->resolve(*this);
+ //increment to the next tab stop
+ m_pImpl->NextTabStop();
+ }
+ }
+ break;
+ case NS_rtf::LN_dxaDel: //deleted tab
+ case NS_rtf::LN_dxaAdd: //set tab
+ case NS_rtf::LN_TLC: //tab leading characters - for decimal tabs
+ case NS_rtf::LN_JC: //tab justification
+ m_pImpl->ModifyCurrentTabStop(Name, nIntValue);
+ break;
+ case NS_rtf::LN_UNUSED0_6: // really unused
+ break;
+ // case NS_rtf::LN_picf: break;
+ // case NS_rtf::LN_rgbrc: break;
+ // case NS_rtf::LN_shd: break;
+ // case NS_rtf::LN_cellShd: break;
+ // case NS_rtf::LN_cellTopColor: break;
+ // case NS_rtf::LN_cellLeftColor: break;
+ // case NS_rtf::LN_cellBottomColor: break;
+ // case NS_rtf::LN_cellRightColor: break;
+
+ // case NS_rtf::LN_LISTTABLE: break;
+ // case NS_rtf::LN_LFOTABLE: break;
+ // case NS_rtf::LN_FONTTABLE: break;
+ // case NS_rtf::LN_STYLESHEET: break;
+ default:
+ {
+ //int nVal = val.getInt();
+ }
+ }
+ }
+}
+/*-- 09.06.2006 09:52:12---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::sprm(doctok::Sprm & sprm_)
+{
+ m_pImpl->getTableManager().sprm(sprm_);
+
+ DomainMapper::sprm( sprm_, m_pImpl->GetTopContext() );
+}
+/*-- 20.06.2006 09:58:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::sprm( doctok::Sprm& sprm_, PropertyMapPtr rContext, SprmType eSprmType )
+{
+ OSL_ENSURE(rContext.get(), "PropertyMap has to be valid!");
+ if(!rContext.get())
+ return ;
+ sal_uInt32 nId = sprm_.getId();
+
+ //TODO: In rtl-paragraphs the meaning of left/right are to be exchanged
+ bool bExchangeLeftRight = false;
+ // if( nId == 0x2461 && AlreadyInRTLPara() )
+ // bExchangeLeftRight = true;
+ doctok::Value::Pointer_t pValue = sprm_.getValue();
+ sal_Int32 nIntValue = pValue->getInt();
+ /* WRITERFILTERSTATUS: table: sprmdata */
+ switch(nId)
+ {
+// case 2: // sprmPIstd
+// case 0x4600: break; // sprmPIstd - style code
+// case 3: // "sprmPIstdPermute
+// case 0xC601: break; // sprmPIstdPermute
+// case 0x2602: break; // sprmPIncLvl
+ case 0x2461: // sprmPJc Asian (undocumented)
+ case 0x2403: // sprmPJc
+ {
+ sal_Int16 nAdjust = 0;
+ sal_Int16 nLastLineAdjust = 0;
+ switch(nIntValue)
+ {
+ case 0: nAdjust = static_cast< sal_Int16 > (
+ bExchangeLeftRight ? style::ParagraphAdjust_RIGHT : style::ParagraphAdjust_LEFT);
+ break;
+ case 1: nAdjust = style::ParagraphAdjust_CENTER; break;
+ case 2: nAdjust = static_cast< sal_Int16 > (
+ bExchangeLeftRight ? style::ParagraphAdjust_LEFT : style::ParagraphAdjust_RIGHT);
+ break;
+ case 4:
+ nLastLineAdjust = style::ParagraphAdjust_BLOCK;
+ //no break;
+ case 3: nAdjust = style::ParagraphAdjust_BLOCK; break;
+ }
+ rContext->Insert( PROP_PARA_ADJUST, uno::makeAny( nAdjust ) );
+ rContext->Insert( PROP_PARA_LAST_LINE_ADJUST, uno::makeAny( nLastLineAdjust ) );
+ }
+ break;
+// case 0x2404: break; // sprmPFSideBySide
+ case 0x2405: // sprmPFKeep
+ {
+ }
+ break;
+ case 0x2406: // sprmPFKeepFollow
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 1 */
+ /* WRITERFILTERSTATUS: comment: */
+ rContext->Insert(PROP_PARA_KEEP_TOGETHER, uno::makeAny( nIntValue ? true : false) );
+ break;
+// case 0x2407: break; // sprmPFPageBreakBefore
+// case 0x2408: break; // sprmPBrcl
+// case 0x2409: break; // sprmPBrcp
+ case 0x260A: // sprmPIlvl
+ rContext->Insert( PROP_NUMBERING_LEVEL, uno::makeAny( (sal_Int16)nIntValue ));
+ break;
+ case 0x460B: // sprmPIlfo
+ {
+ //convert the ListTable entry to a NumberingRules propery and apply it
+ sal_Int32 nListId = m_pImpl->GetLFOTable()->GetListID( nIntValue );
+ if(nListId >= 0)
+ {
+ ListTablePtr pListTable = m_pImpl->GetListTable();
+ rContext->Insert( PROP_NUMBERING_RULES,
+ uno::makeAny(pListTable->GetNumberingRules(nListId)));
+ //TODO: Merge overwrittern numbering levels from LFO table
+ }
+ }
+ break;
+ case 0x240C: // sprmPFNoLineNumb
+ rContext->Insert(PROP_PARA_LINE_NUMBER_COUNT, uno::makeAny( nIntValue ? false : true) );
+ break;
+ case 0xC60D: // sprmPChgTabsPapx
+ {
+ /* WRITERFILTERSTATUS: done: 90, planned: 8, spent: 8 */
+ /* WRITERFILTERSTATUS: comment: bar tab stops a unavailable */
+ doctok::Reference<Properties>::Pointer_t pProperties = sprm_.getProps();
+ // Initialize tab stop vector from style sheet
+ uno::Any aValue = m_pImpl->GetPropertyFromStyleSheet(PROP_PARA_TAB_STOPS);
+ uno::Sequence< style::TabStop > aStyleTabStops;
+ if(aValue >>= aStyleTabStops)
+ {
+ m_pImpl->InitTabStopFromStyle( aStyleTabStops );
+ }
+
+ //create a new tab stop property - this is done with the contained properties
+ if( pProperties.get())
+ pProperties->resolve(*this);
+ //add this property
+ rContext->Insert(PROP_PARA_TAB_STOPS, uno::makeAny( m_pImpl->GetCurrentTabStopAndClear()));
+ }
+ break;
+ case 0x845d: //right margin Asian - undocumented
+ case 0x845e: //left margin Asian - undocumented
+ case 16: // sprmPDxaRight - right margin
+ case 0x840E: // sprmPDxaRight - right margin
+ case 17:
+ case 0x840F: // sprmPDxaLeft
+ if( 0x840e == nId || 0x17 == nId|| (bExchangeLeftRight && nId == 0x845d) || ( !bExchangeLeftRight && nId == 0x845e))
+ rContext->Insert(
+ eSprmType == SPRM_DEFAULT ? PROP_PARA_LEFT_MARGIN : PROP_LEFT_MARGIN,
+
+ uno::makeAny( lcl_convertToMM100(nIntValue ) ));
+ else if(eSprmType == SPRM_DEFAULT)
+ rContext->Insert(
+ PROP_PARA_RIGHT_MARGIN,
+ uno::makeAny( lcl_convertToMM100(nIntValue ) ));
+ //TODO: what happens to the right margins in numberings?
+ break;
+ case 18: // sprmPNest
+ case 0x4610: // sprmPNest
+ //not handled in the old WW8 filter
+ break;
+ case 0x8460: //first line indent Asian - undocumented
+ case 19:
+ case 0x8411: // sprmPDxaLeft1
+ rContext->Insert(
+ eSprmType == SPRM_DEFAULT ? PROP_PARA_FIRST_LINE_INDENT : PROP_FIRST_LINE_OFFSET,
+ uno::makeAny( lcl_convertToMM100(nIntValue ) ));
+ break;
+ case 20 : // sprmPDyaLine
+ case 0x6412: // sprmPDyaLine
+ {
+ style::LineSpacing aSpacing;
+ sal_Int16 nDistance = sal_Int16(nIntValue & 0xffff);
+ if(nIntValue & 0xffff0000)
+ {
+ // single line in Writer is 100, in Word it is 240
+ aSpacing.Mode = style::LineSpacingMode::PROP;
+ aSpacing.Height = sal_Int16(sal_Int32(nDistance) * 100 /240);
+ }
+ else
+ {
+ if(nDistance < 0)
+ {
+ aSpacing.Mode = style::LineSpacingMode::FIX;
+ aSpacing.Height = sal_Int16(lcl_convertToMM100(-nDistance));
+ }
+ else if(nDistance >0)
+ {
+ aSpacing.Mode = style::LineSpacingMode::MINIMUM;
+ aSpacing.Height = sal_Int16(lcl_convertToMM100(nDistance));
+ }
+ }
+ rContext->Insert(PROP_PARA_LINE_SPACING, uno::makeAny( aSpacing ));
+ }
+ break;
+ case 21 : // legacy version
+ case 0xA413: // sprmPDyaBefore
+ rContext->Insert(PROP_PARA_TOP_MARGIN, uno::makeAny( lcl_convertToMM100( nIntValue ) ));
+ break;
+ case 22 :
+ case 0xA414: // sprmPDyaAfter
+ rContext->Insert(PROP_PARA_BOTTOM_MARGIN, uno::makeAny( lcl_convertToMM100( nIntValue ) ));
+ break;
+
+ case 23: //sprmPChgTabs
+ case 0xC615: // sprmPChgTabs
+ OSL_ASSERT("unhandled");
+ //tabs of list level?
+ break;
+// case 24: // "sprmPFInTable"
+// case 0x2416: break; // sprmPFInTable
+// case 25: // "sprmPTtp" pap.fTtp
+// case 0x2417: // sprmPFTtp
+// was: Read_TabRowEnd
+// break;
+// case 26: // "sprmPDxaAbs
+// case 0x8418: break; // sprmPDxaAbs
+// case 27: //sprmPDyaAbs
+// case 0x8419: break; // sprmPDyaAbs
+// case 0x841A: break; // sprmPDxaWidth
+// case 0x261B: break; // sprmPPc
+// case 0x461C: break; // sprmPBrcTop10
+// case 0x461D: break; // sprmPBrcLeft10
+// case 0x461E: break; // sprmPBrcBottom10
+// case 0x461F: break; // sprmPBrcRight10
+// case 0x4620: break; // sprmPBrcBetween10
+// case 0x4621: break; // sprmPBrcBar10
+// case 0x4622: break; // sprmPDxaFromText10
+// case 0x2423: break; // sprmPWr
+
+ case 0x6424: // sprmPBrcTop
+ /* WRITERFILTERSTATUS: done: 50, planned: 8, spent: 4 */
+ /* WRITERFILTERSTATUS: comment: page borders are no handled yet, conversion incomplete */
+ case 0x6425: // sprmPBrcLeft
+ /* WRITERFILTERSTATUS: done: 50, planned: 8, spent: 4 */
+ /* WRITERFILTERSTATUS: comment: page borders are no handled yet, conversion incomplete */
+ case 0x6426: // sprmPBrcBottom
+ /* WRITERFILTERSTATUS: done: 50, planned: 8, spent: 4 */
+ /* WRITERFILTERSTATUS: comment: page borders are no handled yet, conversion incomplete */
+ case 0x6427: // sprmPBrcRight
+ /* WRITERFILTERSTATUS: done: 50, planned: 8, spent: 4 */
+ /* WRITERFILTERSTATUS: comment: page borders are no handled yet, conversion incomplete */
+ case 0x6428: // sprmPBrcBetween
+ /* WRITERFILTERSTATUS: done: 0, planned: 8, spent: 0 */
+ /* WRITERFILTERSTATUS: comment: */
+ {
+ table::BorderLine aBorderLine;
+ sal_Int32 nLineDistance = ConversionHelper::MakeBorderLine( nIntValue, aBorderLine );
+ PropertyIds eBorderId = PROP_LEFT_BORDER;
+ PropertyIds eBorderDistId = PROP_LEFT_BORDER_DISTANCE ;
+ switch( nId )
+ {
+ case 0x6428: // sprmPBrcBetween
+ OSL_ASSERT("TODO: inner border is not handled");
+ break;
+ case 0x6425: // sprmPBrcLeft
+ eBorderId = PROP_LEFT_BORDER;
+ eBorderDistId = PROP_LEFT_BORDER_DISTANCE ;
+ break;
+ case 0x6427: // sprmPBrcRight
+ eBorderId = PROP_RIGHT_BORDER ;
+ eBorderDistId = PROP_RIGHT_BORDER_DISTANCE ;
+ break;
+ case 0x6424: // sprmPBrcTop
+ eBorderId = PROP_TOP_BORDER ;
+ eBorderDistId = PROP_TOP_BORDER_DISTANCE;
+ break;
+ case 0x6426: // sprmPBrcBottom
+ default:
+ eBorderId = PROP_BOTTOM_BORDER ;
+ eBorderDistId = PROP_BOTTOM_BORDER_DISTANCE;
+ }
+ rContext->Insert(eBorderId, uno::makeAny( aBorderLine ));
+ rContext->Insert(eBorderDistId, uno::makeAny( nLineDistance ));
+ }
+ break;
+ case 0xc64e:
+ /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
+ /* WRITERFILTERSTATUS: comment: probably _real_ border colors, unhandled */
+ case 0xc64f:
+ /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
+ /* WRITERFILTERSTATUS: comment: probably _real_ border colors, unhandled */
+ case 0xc650:
+ /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
+ /* WRITERFILTERSTATUS: comment: probably _real_ border colors, unhandled */
+ case 0xc651:
+ /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
+ /* WRITERFILTERSTATUS: comment: probably _real_ border colors, unhandled */
+ OSL_ASSERT("TODO: border color definition");
+ break;
+// case 0x6629: break; // sprmPBrcBar
+ case 0x242A: // sprmPFNoAutoHyph
+ rContext->Insert(PROP_PARA_IS_HYPHENATION, uno::makeAny( nIntValue ? false : true ));
+ break;
+// case 0x442B: break; // sprmPWHeightAbs
+// case 0x442C: break; // sprmPDcs
+
+ case 0x442D: // sprmPShd
+ OSL_ASSERT("not handled");
+ //contains fore color, back color and shadow percentage, results in a brush
+ break;
+
+// case 0x842E: break; // sprmPDyaFromText
+// case 0x842F: break; // sprmPDxaFromText
+// case 0x2430: break; // sprmPFLocked
+// case 0x2431: break; // sprmPFWidowControl
+// case 0xC632: break; // sprmPRuler
+// case 0x2433: break; // sprmPFKinsoku
+// case 0x2434: break; // sprmPFWordWrap
+ case 0x2435: ; // sprmPFOverflowPunct - hanging punctuation
+ rContext->Insert(PROP_PARA_IS_HANGING_PUNCTUATION, uno::makeAny( nIntValue ? false : true ));
+ break;
+// case 0x2436: break; // sprmPFTopLinePunct
+// case 0x2437: break; // sprmPFAutoSpaceDE
+// case 0x2438: break; // sprmPFAutoSpaceDN
+// case 0x4439: break; // sprmPWAlignFont
+// case 0x443A: break; // sprmPFrameTextFlow
+// case 0x243B: break; // sprmPISnapBaseLine
+// case 0xC63E: break; // sprmPAnld
+// case 0xC63F: break; // sprmPPropRMark
+// case 0x2640: break; // sprmPOutLvl
+// case 0x2441: break; // sprmPFBiDi
+// case 0x2443: break; // sprmPFNumRMIns
+// case 0x2444: break; // sprmPCrLf
+// case 0xC645: break; // sprmPNumRM
+// case 0x6645: break; // sprmPHugePapx
+// case 0x2447: break; // sprmPFUsePgsuSettings
+// case 0x2448: break; // sprmPFAdjustRight
+// case 0x0800: break; // sprmCFRMarkDel
+// case 0x0801: break; // sprmCFRMark
+// case 0x0802: break; // sprmCFFldVanish
+ case 0x0855: // sprmCFSpec
+ break;
+ case 0x6A03: // sprmCPicLocation
+ {
+ //is being resolved on the tokenizer side
+/*
+ doctok::Reference<Properties>::Pointer_t pProperties = sprm_.getProps();
+ if( pProperties.get())
+ {
+ pProperties->resolve(*this);
+ }
+*/ }
+ break;
+// case 0x4804: break; // sprmCIbstRMark
+// case 0x6805: break; // sprmCDttmRMark
+// case 0x0806: break; // sprmCFData
+// case 0x4807: break; // sprmCIdslRMark
+// case 0xEA08: break; // sprmCChs
+// case 0x6A09: break; // sprmCSymbol
+// case 0x080A: break; // sprmCFOle2
+// case 0x480B: break; // sprmCIdCharType
+// case 0x2A0C: break; // sprmCHighlight
+// case 0x680E: break; // sprmCObjLocation
+// case 0x2A10: break; // sprmCFFtcAsciSymb
+// case 0x4A30: break; // sprmCIstd
+// case 0xCA31: break; // sprmCIstdPermute
+// case 0x2A32: break; // sprmCDefault
+// case 0x2A33: break; // sprmCPlain
+// case 0x2A34: break; // sprmCKcd
+ case 0x0858:// sprmCFEmboss
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 060:// sprmCFBold
+ case 0x085C:// sprmCFBoldBi (offset 0x27 to normal bold)
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x085D:// sprmCFItalicBi (offset 0x27 to normal italic)
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x835: //sprmCFBold
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x836: //sprmCFItalic
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x837: //sprmCFStrike
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5*/
+ case 0x838: //sprmCFOutline
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x839: //sprmCFShadow
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x83a: //sprmCFSmallCaps
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x83b: //sprmCFCaps
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x83c: //sprmCFVanish
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ case 0x2A53: // sprmCFDStrike
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
+ {
+ PropertyIds ePropertyId = PROP_CHAR_WEIGHT; //initialized to prevent warning!
+ switch( nId )
+ {
+ case 060:// sprmCFBold
+ case 0x085C: // sprmCFBoldBi
+ case 0x835: /*sprmCFBold*/
+ ePropertyId = nId != 0x085C ? PROP_CHAR_WEIGHT : PROP_CHAR_WEIGHT_COMPLEX;
+ break;
+ case 0x085D: // sprmCFItalicBi
+ case 0x836: /*sprmCFItalic*/
+ ePropertyId = nId == 0x836 ? PROP_CHAR_POSTURE : PROP_CHAR_POSTURE_COMPLEX;
+ break;
+ case 0x837: /*sprmCFStrike*/
+ case 0x2A53 : /*sprmCFDStrike double strike through*/
+ ePropertyId = PROP_CHAR_STRIKEOUT;
+ break;
+ case 0x838: /*sprmCFOutline*/
+ ePropertyId = PROP_CHAR_CONTOURED;
+ break;
+ case 0x839: /*sprmCFShadow*/
+ ePropertyId = PROP_CHAR_SHADOWED;
+ break;
+ case 0x83a: /*sprmCFSmallCaps*/
+ case 0x83b: /*sprmCFCaps*/
+ ePropertyId = PROP_CHAR_CASEMAP;
+ break;
+ case 0x83c: /*sprmCFVanish*/
+ ePropertyId = PROP_CHAR_HIDDEN;
+ break;
+ case 0x0858: /*sprmCFEmboss*/
+ ePropertyId = PROP_CHAR_RELIEF;
+ break;
+ }
+ //expected: 0,1,128,129
+ if(nIntValue != 128) //inherited from paragraph - ignore
+ {
+ if( nIntValue == 129) //inverted style sheet value
+ {
+ //get value from style sheet and invert it
+ sal_Int16 nStyleValue;
+ double fDoubleValue;
+ uno::Any aStyleVal = m_pImpl->GetPropertyFromStyleSheet(ePropertyId);
+ if( !aStyleVal.hasValue() )
+ {
+ nIntValue = 0x83a == nId ?
+ 4 : 1;
+ }
+ else if(aStyleVal.getValueTypeClass() == uno::TypeClass_FLOAT )
+ {
+ //only in case of awt::FontWeight
+ aStyleVal >>= fDoubleValue;
+ nIntValue = fDoubleValue > 100. ? 0 : 1;
+ }
+ else if((aStyleVal >>= nStyleValue) ||
+ (nStyleValue = (sal_Int16)comphelper::getEnumAsINT32(aStyleVal)) >= 0 )
+ {
+ nIntValue = 0x83a == nId ?
+ nStyleValue ? 0 : 4 :
+ nStyleValue ? 0 : 1;
+ }
+ else
+ {
+ OSL_ASSERT("what type was it");
+ }
+ }
+ sal_uInt16 nPropertyNameId = 0;
+ switch( nId )
+ {
+ case 060:/*sprmCFBold*/
+ case 0x085C: // sprmCFBoldBi
+ case 0x835: /*sprmCFBold*/
+ rContext->Insert(ePropertyId,
+ uno::makeAny( nIntValue ? awt::FontWeight::BOLD : awt::FontWeight::NORMAL ) );
+ break;
+ case 0x085D: // sprmCFItalicBi
+ case 0x836: /*sprmCFItalic*/
+ rContext->Insert(ePropertyId,
+ uno::makeAny( nIntValue ? awt::FontSlant_ITALIC : awt::FontSlant_NONE ) );
+ break;
+ case 0x837: /*sprmCFStrike*/
+ rContext->Insert(ePropertyId,
+ uno::makeAny( nIntValue ? awt::FontStrikeout::SINGLE : awt::FontStrikeout::NONE ) );
+ break;
+ case 0x2A53 : /*sprmCFDStrike double strike through*/
+ rContext->Insert(ePropertyId,
+ uno::makeAny( awt::FontStrikeout::DOUBLE ) );
+ break;
+ case 0x838: /*sprmCFOutline*/
+ nPropertyNameId = static_cast<sal_uInt16>( ePropertyId );
+ break;
+ case 0x83a: /*sprmCFSmallCaps*/
+ rContext->Insert(ePropertyId,
+ uno::makeAny( nIntValue ? style::CaseMap::SMALLCAPS : style::CaseMap::NONE));
+ break;
+ case 0x83b: /*sprmCFCaps*/
+ rContext->Insert(ePropertyId,
+ uno::makeAny( nIntValue ? style::CaseMap::UPPERCASE : style::CaseMap::NONE));
+ break;
+ case 0x83c: /*sprmCFVanish*/
+ break;
+ case 0x0858: /*sprmCFEmboss*/
+ rContext->Insert(ePropertyId,
+ uno::makeAny( nIntValue ? awt::FontRelief::EMBOSSED : awt::FontRelief::NONE ));
+ break;
+
+ }
+ if(nPropertyNameId)
+ rContext->Insert((PropertyIds)nPropertyNameId, uno::makeAny( nIntValue ? true : false ) );
+ }
+ }
+ break;
+// case 0x4A3D: break; // sprmCFtcDefault
+ case 0x2A3E: // sprmCKul
+ {
+ // Parameter: 0 = none, 1 = single, 2 = by Word,
+ // 3 = double, 4 = dotted, 5 = hidden
+ // 6 = thick, 7 = dash, 8 = dot(not used)
+ // 9 = dotdash 10 = dotdotdash 11 = wave
+ sal_Int16 eUnderline = awt::FontUnderline::NONE;
+ switch(nIntValue)
+ {
+ case 0: eUnderline = awt::FontUnderline::NONE; break;
+ case 2: rContext->Insert(PROP_CHAR_WORD_MODE, uno::makeAny( true ) ); // TODO: how to get rid of it?
+ case 1: eUnderline = awt::FontUnderline::SINGLE; break;
+ case 3: eUnderline = awt::FontUnderline::DOUBLE; break;
+ case 4: eUnderline = awt::FontUnderline::DOTTED; break;
+ case 7: eUnderline = awt::FontUnderline::DASH; break;
+ case 9: eUnderline = awt::FontUnderline::DASHDOT; break;
+ case 10:eUnderline = awt::FontUnderline::DASHDOTDOT; break;
+ case 6: eUnderline = awt::FontUnderline::BOLD; break;
+ case 11:eUnderline = awt::FontUnderline::WAVE; break;
+ case 20:eUnderline = awt::FontUnderline::BOLDDOTTED; break;
+ case 23:eUnderline = awt::FontUnderline::BOLDDASH; break;
+ case 39:eUnderline = awt::FontUnderline::LONGDASH; break;
+ case 55:eUnderline = awt::FontUnderline::BOLDLONGDASH; break;
+ case 25:eUnderline = awt::FontUnderline::BOLDDASHDOT; break;
+ case 26:eUnderline = awt::FontUnderline::BOLDDASHDOTDOT;break;
+ case 27:eUnderline = awt::FontUnderline::BOLDWAVE; break;
+ case 43:eUnderline = awt::FontUnderline::DOUBLEWAVE; break;
+ default: ;
+ }
+ rContext->Insert(PROP_CHAR_UNDERLINE, uno::makeAny( eUnderline ) );
+ }
+ break;
+// case 0xEA3F: break; // sprmCSizePos
+// case 0x4A41: break; // sprmCLid
+ case 0x2A42: /*compat - old text color*/break; // sprmCIco
+ case 0x4A61: // sprmCHpsBi
+ case 0x4A43: // sprmCHps
+ {
+ //multiples of half points (12pt == 24)
+ double fVal = double(nIntValue) / 2.;
+ rContext->Insert(
+ 0x4A61 == nId ? PROP_CHAR_HEIGHT_COMPLEX : PROP_CHAR_HEIGHT, uno::makeAny( fVal ) );
+ }
+ break;
+// case 0x2A44: break; // sprmCHpsInc
+// case 0x4845: break; // sprmCHpsPos
+// case 0x2A46: break; // sprmCHpsPosAdj
+// case 0xCA47: break; // sprmCMajority
+ case 0x2A48: // sprmCIss
+ {
+ //sub/super script 1: super, 2: sub, 0: normal
+ sal_Int16 nEscapement = 0;
+ sal_Int8 nProp = 58;
+ switch(nIntValue)
+ {
+ case 1: //super
+ nEscapement = 101;
+ break;
+ case 2: //sub
+ nEscapement = -101;
+ break;
+ case 0: nProp = 0;break; //none
+ }
+ rContext->Insert(PROP_CHAR_ESCAPEMENT, uno::makeAny( nEscapement ) );
+ rContext->Insert(PROP_CHAR_ESCAPEMENT_HEIGHT, uno::makeAny( nProp ) );
+ }
+ break;
+// case 0xCA49: break; // sprmCHpsNew50
+// case 0xCA4A: break; // sprmCHpsInc1
+ case 0x71 : //"sprmCDxaSpace"
+ case 0x96 : //"sprmCDxaSpace"
+ case 0x8840: // sprmCDxaSpace
+ //Kerning half point values
+ //TODO: there are two kerning values -
+ // in ww8par6.cxx 0x484b is used as boolean AutoKerning
+ rContext->Insert(PROP_CHAR_CHAR_KERNING, uno::makeAny( sal_Int16(lcl_convertToMM100(sal_Int16(nIntValue))) ) );
+ break;
+ case 0x484B: // sprmCHpsKern auto kerning is bound to a minimum font size in Word - but not in Writer :-(
+ rContext->Insert(PROP_CHAR_AUTO_KERNING, uno::makeAny( true ) );
+ break;
+// case 0xCA4C: break; // sprmCMajority50
+// case 0x4A4D: break; // sprmCHpsMul
+// case 0x484E: break; // sprmCYsri
+ case 0x4A4F: // sprmCRgFtc0 //ascii font index
+ case 0x4A50: // sprmCRgFtc1 //Asian font index
+ case 0x4A51: // sprmCRgFtc2 //CTL font index
+ case 0x4A5E: // sprmCFtcBi //font index of a CTL font
+ {
+ FontTablePtr pFontTable = m_pImpl->GetFontTable();
+ if(nIntValue >= 0 && pFontTable->size() > sal_uInt32(nIntValue))
+ {
+ PropertyIds eFontName = PROP_CHAR_FONT_NAME;
+ PropertyIds eFontStyle = PROP_CHAR_FONT_STYLE;
+ PropertyIds eFontFamily = PROP_CHAR_FONT_FAMILY;
+ PropertyIds eFontCharSet = PROP_CHAR_FONT_CHAR_SET;
+ PropertyIds eFontPitch = PROP_CHAR_FONT_PITCH;
+ switch(nId)
+ {
+ case 0x4A4F:
+ //already initialized
+ break;
+ case 0x4A50:
+ eFontName = PROP_CHAR_FONT_NAME_ASIAN;
+ eFontStyle = PROP_CHAR_FONT_STYLE_ASIAN;
+ eFontFamily = PROP_CHAR_FONT_FAMILY_ASIAN;
+ eFontCharSet = PROP_CHAR_FONT_CHAR_SET_ASIAN;
+ eFontPitch = PROP_CHAR_FONT_PITCH_ASIAN;
+ break;
+ case 0x4A51:
+ case 0x4A5E:
+ eFontName = PROP_CHAR_FONT_NAME_COMPLEX;
+ eFontStyle = PROP_CHAR_FONT_STYLE_COMPLEX;
+ eFontFamily = PROP_CHAR_FONT_FAMILY_COMPLEX;
+ eFontCharSet = PROP_CHAR_FONT_CHAR_SET_COMPLEX;
+ eFontPitch = PROP_CHAR_FONT_PITCH_COMPLEX;
+ break;
+ }
+ const FontEntry* pFontEntry = pFontTable->getFontEntry(sal_uInt32(nIntValue));
+ rContext->Insert(eFontName, uno::makeAny( pFontEntry->sFontName ));
+// rContext->Insert(eFontStyle, uno::makeAny( pFontEntry-> ));
+// rContext->Insert(eFontFamily, uno::makeAny( pFontEntry-> ));
+ rContext->Insert(eFontCharSet, uno::makeAny( (sal_Int16)pFontEntry->nTextEncoding ));
+ rContext->Insert(eFontPitch, uno::makeAny( pFontEntry->nPitchRequest ));
+ }
+ }
+ break;
+ case 0x4852: // sprmCCharScale
+ rContext->Insert(PROP_CHAR_SCALE_WIDTH,
+ uno::makeAny( sal_Int16(nIntValue) ));
+
+ break;
+ case 0x0854: // sprmCFImprint 1 or 0
+ // FontRelief: NONE, EMBOSSED, ENGRAVED
+ rContext->Insert(PROP_CHAR_RELIEF,
+ uno::makeAny( nIntValue ? awt::FontRelief::ENGRAVED : awt::FontRelief::NONE ));
+ break;
+// case 0x0856: break; // sprmCFObj
+// case 0xCA57: break; // sprmCPropRMark
+// case 0x2859: break; // sprmCSfxText
+// case 0x085A: break; // sprmCFBiDi
+// case 0x085B: break; // sprmCFDiacColor
+// case 0x4A60: break; // sprmCIcoBi
+// case 0xCA62: break; // sprmCDispFldRMark
+// case 0x4863: break; // sprmCIbstRMarkDel
+// case 0x6864: break; // sprmCDttmRMarkDel
+// case 0x6865: break; // sprmCBrc
+// case 0x4866: break; // sprmCShd
+// case 0x4867: break; // sprmCIdslRMarkDel
+// case 0x0868: break; // sprmCFUsePgsuSettings
+// case 0x486B: break; // sprmCCpg
+ case 0x485F: // sprmCLidBi language complex
+ case 0x486D: // sprmCRgLid0 language Western
+ case 0x486E: // sprmCRgLid1 language Asian
+ {
+ lang::Locale aLocale;
+ MsLangId::convertLanguageToLocale( (LanguageType)nIntValue, aLocale );
+ rContext->Insert(0x486D == nId ? PROP_CHAR_LOCALE :
+ 0x486E == nId ? PROP_CHAR_LOCALE_ASIAN : PROP_CHAR_LOCALE_COMPLEX,
+ uno::makeAny( aLocale ) );
+ }
+ break;
+
+ case 0x286F: // sprmCIdctHint
+ //list table - text offset???
+ break;
+// case 0x2E00: break; // sprmPicBrcl
+// case 0xCE01: break; // sprmPicScale
+// case 0x6C02: break; // sprmPicBrcTop
+// case 0x6C03: break; // sprmPicBrcLeft
+// case 0x6C04: break; // sprmPicBrcBottom
+// case 0x6C05: break; // sprmPicBrcRight
+// case 0x3000: break; // sprmScnsPgn
+// case 0x3001: break; // sprmSiHeadingPgn
+// case 0xD202: break; // sprmSOlstAnm
+// case 0xF203: break; // sprmSDxaColWidth
+// case 0xF204: break; // sprmSDxaColSpacing
+// case 0x3005: break; // sprmSFEvenlySpaced
+// case 0x3006: break; // sprmSFProtected
+// case 0x5007: break; // sprmSDmBinFirst
+// case 0x5008: break; // sprmSDmBinOther
+ case 0x3009: // sprmSBkc
+ //break type
+ /*
+ 0 - No break
+ 1 - New Colunn
+ 2 - New page
+ 3 - Even page
+ 4 - odd page
+ ->get the related page style name and apply it at the current paragraph
+ */
+ OSL_ASSERT("TODO: not handled yet");
+ break;
+ case 0x300A: // sprmSFTitlePage
+ OSL_ASSERT("TODO: not handled yet"); //section has title page
+ break;
+// case 0x500B: break; // sprmSCcolumns
+ case 0x900C: // sprmSDxaColumns
+ OSL_ASSERT("TODO: not handled yet"); //column distance? 0x2c4
+ break;
+// case 0x300D: break; // sprmSFAutoPgn
+// case 0x300E: break; // sprmSNfcPgn
+// case 0xB00F: break; // sprmSDyaPgn
+// case 0xB010: break; // sprmSDxaPgn
+// case 0x3011: break; // sprmSFPgnRestart
+// case 0x3012: break; // sprmSFEndnote
+// case 0x3013: break; // sprmSLnc
+// case 0x3014: break; // sprmSGprfIhdt
+// case 0x5015: break; // sprmSNLnnMod
+// case 0x9016: break; // sprmSDxaLnn
+ case 0xB017: // sprmSDyaHdrTop
+ case 0xB018: // sprmSDyaHdrBottom
+ OSL_ASSERT("TODO: not handled yet"); //header top/bottom distance 0x2c5 == 0,5in
+ break;
+// case 0x3019: break; // sprmSLBetween
+// case 0x301A: break; // sprmSVjc
+// case 0x501B: break; // sprmSLnnMin
+// case 0x501C: break; // sprmSPgnStart
+// case 0x301D: break; // sprmSBOrientation
+// case 0x301E: break; // sprmSBCustomize
+ case 0xB020: // sprmSYaPage
+ case 0xB01F: // sprmSXaPage
+ OSL_ASSERT("TODO: not handled yet"); //paper width 0x2fd0 =0 8,5 in, height 3de0 == 11 in
+
+ break;
+ case 0xB021: // sprmSDxaLeft
+ case 0xB022: // sprmSDxaRight
+ case 0x9023: // sprmSDyaTop
+ case 0x9024: // sprmSDyaBottom
+ OSL_ASSERT("TODO: not handled yet"); //page margins 0x705/0x705 == 1,25 in and 0x5a0 == 1 in
+ break;
+ case 0xB025: // sprmSDzaGutter
+ OSL_ASSERT("TODO: not handled yet"); // gutter is added to one of the margins of a section depending on RTL, can be placed on top either
+ break;
+ case 0x5026: // sprmSDmPaperReq
+ OSL_ASSERT("TODO: not handled yet"); //paper code
+ break;
+// case 0xD227: break; // sprmSPropRMark
+// case 0x3228: break; // sprmSFBiDi
+// case 0x3229: break; // sprmSFFacingCol
+// case 0x322A: break; // sprmSFRTLGutter
+ case 0x702B: // sprmSBrcTop
+ case 0x702C: // sprmSBrcLeft
+ case 0x702D: // sprmSBrcBottom
+ case 0x702E: // sprmSBrcRight
+ {
+ table::BorderLine aBorderLine;
+ sal_Int32 nLineDistance = ConversionHelper::MakeBorderLine( nIntValue, aBorderLine );
+ PropertyMapPtr pContext = m_pImpl->GetTopContextOfType(CONTEXT_SECTION);
+ SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() );
+ if(pSectionContext)
+ {
+ static const SectionPropertyMap::BorderPosition aPositions[4] =
+ {
+ SectionPropertyMap::BORDER_TOP,
+ SectionPropertyMap::BORDER_LEFT,
+ SectionPropertyMap::BORDER_BOTTOM,
+ SectionPropertyMap::BORDER_RIGHT
+ };
+ pSectionContext->SetBorder( aPositions[nId - 0x702B], nLineDistance, aBorderLine );
+ }
+ }
+ break;
+
+ case 0x522F: // sprmSPgbProp
+ {
+ PropertyMapPtr pContext = m_pImpl->GetTopContextOfType(CONTEXT_SECTION);
+ SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() );
+ if(pSectionContext)
+ {
+ pSectionContext->ApplyBorderToPageStyles( m_pImpl->GetPageStyles(), nIntValue );
+ }
+ }
+ break;
+// case 0x7030: break; // sprmSDxtCharSpace
+ case 0x9031: // sprmSDyaLinePitch
+ OSL_ASSERT("TODO: not handled yet"); //line pitch of grid
+ break;
+ case 0x703a: //undocumented, grid related?
+ OSL_ASSERT("TODO: not handled yet"); //nIntValue like 0x008a2373 ?
+ break;
+// case 0x5032: break; // sprmSClm
+// case 0x5033: break; // sprmSTextFlow
+// case 0x5400: break; // sprmTJc
+// case 0x9601: break; // sprmTDxaLeft
+// case 0x9602: break; // sprmTDxaGapHalf
+// case 0x3403: break; // sprmTFCantSplit
+// case 0x3404: break; // sprmTTableHeader
+// case 0xD605: break; // sprmTTableBorders
+// case 0xD606: break; // sprmTDefTable10
+// case 0x9407: break; // sprmTDyaRowHeight
+// case 0xD608: break; // sprmTDefTable
+// case 0xD609: break; // sprmTDefTableShd
+// case 0x740A: break; // sprmTTlp
+// case 0x560B: break; // sprmTFBiDi
+// case 0x740C: break; // sprmTHTMLProps
+// case 0xD620: break; // sprmTSetBrc
+// case 0x7621: break; // sprmTInsert
+// case 0x5622: break; // sprmTDelete
+// case 0x7623: break; // sprmTDxaCol
+// case 0x5624: break; // sprmTMerge
+// case 0x5625: break; // sprmTSplit
+// case 0xD626: break; // sprmTSetBrc10
+// case 0x7627: break; // sprmTSetShd
+// case 0x7628: break; // sprmTSetShdOdd
+// case 0x7629: break; // sprmTTextFlow
+// case 0xD62A: break; // sprmTDiagLine
+// case 0xD62B: break; // sprmTVertMerge
+// case 0xD62C: break; // sprmTVertAlign
+ // the following are not part of the official documentation
+ case 0x6870: //TxtForeColor
+ {
+ //contains a color as 0xTTRRGGBB while SO uses 0xTTRRGGBB
+ sal_Int32 nColor = lcl_ConvertColor(nIntValue);
+ rContext->Insert(PROP_CHAR_COLOR, uno::makeAny( nColor ) );
+ }
+ break;
+ case 0x4873: break; //sprmCRgLid - undocumented
+ case 0x4874: break; //seems to be a language id for Asian text - undocumented
+ case 0x6877: //underlining color
+ {
+ sal_Int32 nColor = lcl_ConvertColor(nIntValue);
+ rContext->Insert(PROP_CHAR_UNDERLINE_HAS_COLOR, uno::makeAny( true ) );
+ rContext->Insert(PROP_CHAR_UNDERLINE_COLOR, uno::makeAny( nColor ) );
+ }
+ break;
+ case 0x6815: break; //undocumented
+ case 0x6816: break; //undocumented
+ case 0x6467: break; //undocumented
+ case 0xF617: break; //undocumented
+ case 0xd634: break; //undocumented
+ case 0xf661: break; //undocumented
+ case 0x4888:
+ case 0x6887:
+ //properties of list levels - undocumented
+ break;
+ case 0xd234:
+ case 0xd235:
+ case 0xd236:
+ case 0xd237:
+ break;//undocumented section properties
+ default:
+ {
+ //doctok::Value::Pointer_t pValue_ = sprm_.getValue();
+ }
+ }
+}
+/*-- 09.06.2006 09:52:13---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::entry(int /*pos*/,
+ doctok::Reference<Properties>::Pointer_t ref)
+{
+ ref->resolve(*this);
+}
+/*-- 09.06.2006 09:52:13---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::data(const sal_uInt8* /*buf*/, size_t /*len*/,
+ doctok::Reference<Properties>::Pointer_t /*ref*/)
+{
+}
+/*-- 09.06.2006 09:52:13---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::startSectionGroup()
+{
+ m_pImpl->PushProperties(CONTEXT_SECTION);
+}
+/*-- 09.06.2006 09:52:13---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::endSectionGroup()
+{
+ m_pImpl->PopProperties(CONTEXT_SECTION);
+}
+/*-- 09.06.2006 09:52:13---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::startParagraphGroup()
+{
+ m_pImpl->getTableManager().startParagraphGroup();
+ m_pImpl->PushProperties(CONTEXT_PARAGRAPH);
+}
+/*-- 09.06.2006 09:52:14---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::endParagraphGroup()
+{
+ m_pImpl->PopProperties(CONTEXT_PARAGRAPH);
+ m_pImpl->getTableManager().endParagraphGroup();
+}
+/*-- 09.06.2006 09:52:14---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::startCharacterGroup()
+{
+ m_pImpl->PushProperties(CONTEXT_CHARACTER);
+}
+/*-- 09.06.2006 09:52:14---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::endCharacterGroup()
+{
+ m_pImpl->PopProperties(CONTEXT_CHARACTER);
+}
+/*-- 09.06.2006 09:52:14---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::text(const sal_uInt8 * data_, size_t len)
+{
+ try
+ {
+ m_pImpl->getTableManager().text(data_, len);
+
+ bool bContinue = true;
+ //TODO: Determine the right text encoding (FIB?)
+ ::rtl::OUString sText( (const sal_Char*) data_, len, RTL_TEXTENCODING_MS_1252 );
+ if(len == 1)
+ {
+ bContinue = false;
+ switch(*data_)
+ {
+ case 0x07:
+ case 0x0d:
+ m_pImpl->finishParagraph(m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH)); break;
+ case 0x13: m_pImpl->SetFieldMode( true );break;
+ case 0x14: /* delimiter not necessarily available */
+ case 0x15: /* end of field */
+ m_pImpl->SetFieldMode( false );
+ break;
+ default: bContinue = true;
+ }
+ }
+ if(bContinue)
+ {
+ if( m_pImpl->IsFieldMode())
+ m_pImpl->CreateField( sText );
+ else if( m_pImpl->IsFieldAvailable())
+ /*depending on the success of the field insert operation this result will be
+ set at the field or directly inserted into the text*/
+ m_pImpl->SetFieldResult( sText );
+ else
+ {
+ PropertyMapPtr pContext = m_pImpl->GetTopContext();
+ //--> debug
+ //sal_uInt32 nSize = pContext->size();
+ //<--
+
+ m_pImpl->appendTextPortion( sText, pContext );
+ }
+ }
+ }
+ catch( const uno::RuntimeException& )
+ {
+ std::clog << __FILE__ << "(l" << __LINE__ << ")" << std::endl;
+ }
+}
+/*-- 09.06.2006 09:52:15---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::utext(const sal_uInt8 * data_, size_t len)
+{
+ try
+ {
+ m_pImpl->getTableManager().utext(data_, len);
+
+ if(len == 1 && ((*data_) == 0x0d || (*data_) == 0x07))
+ m_pImpl->finishParagraph(m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH));
+ else
+ {
+ PropertyMapPtr pContext = m_pImpl->GetTopContext();
+ OUString sText;
+ OUStringBuffer aBuffer = OUStringBuffer(len);
+ aBuffer.append( (const sal_Unicode *) data_, len);
+ sText = aBuffer.makeStringAndClear();
+ //--> debug
+ //sal_uInt32 nSize = pContext->size();
+ //<--
+ m_pImpl->appendTextPortion( sText, pContext );
+ }
+ }
+ catch( const uno::RuntimeException& )
+ {
+ }
+}
+/*-- 09.06.2006 09:52:15---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::props(doctok::Reference<Properties>::Pointer_t ref)
+{
+ ref->resolve(*this);
+}
+/*-- 09.06.2006 09:52:15---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::table(doctok::Id name, doctok::Reference<Table>::Pointer_t ref)
+{
+ switch(name)
+ {
+ case NS_rtf::LN_FONTTABLE:
+ {
+ // create a font table object that listens to the attributes
+ // each entry call inserts a new font entry
+ ref->resolve( *m_pImpl->GetFontTable() );
+ }
+ break;
+ case NS_rtf::LN_STYLESHEET:
+ //same as above to import style sheets
+ m_pImpl->SetStyleSheetImport( true );
+ ref->resolve( *m_pImpl->GetStyleSheetTable() );
+ m_pImpl->GetStyleSheetTable()->ApplyStyleSheets(m_pImpl->GetTextDocument());
+ m_pImpl->SetStyleSheetImport( false );
+ break;
+ case NS_rtf::LN_LISTTABLE:
+ //the same for list tables
+ ref->resolve( *m_pImpl->GetListTable() );
+ break;
+ case NS_rtf::LN_LFOTABLE:
+ ref->resolve( *m_pImpl->GetLFOTable() );
+ break;
+ default:
+ OSL_ASSERT("which table is to be filled here?");
+ }
+}
+/*-- 09.06.2006 09:52:16---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::substream(doctok::Id name, ::doctok::Reference<Stream>::Pointer_t ref)
+{
+ m_pImpl->getTableManager().startLevel();
+
+ //->debug
+ //string sName = (*doctok::QNameToString::Instance())(name);
+ //--<debug
+ //import of page header/footer
+ switch( name )
+ {
+ case NS_rtf::LN_headerl:
+ m_pImpl->PushPageHeader(SectionPropertyMap::PAGE_LEFT);
+ break;
+ case NS_rtf::LN_headerr:
+ m_pImpl->PushPageHeader(SectionPropertyMap::PAGE_RIGHT);
+ break;
+ case NS_rtf::LN_headerf:
+ m_pImpl->PushPageHeader(SectionPropertyMap::PAGE_FIRST);
+ break;
+ case NS_rtf::LN_footerl:
+ m_pImpl->PushPageFooter(SectionPropertyMap::PAGE_LEFT);
+ break;
+ case NS_rtf::LN_footerr:
+ m_pImpl->PushPageFooter(SectionPropertyMap::PAGE_RIGHT);
+ break;
+ case NS_rtf::LN_footerf:
+ m_pImpl->PushPageFooter(SectionPropertyMap::PAGE_FIRST);
+ break;
+ }
+ ref->resolve(*this);
+ switch( name )
+ {
+ case NS_rtf::LN_headerl:
+ case NS_rtf::LN_headerr:
+ case NS_rtf::LN_headerf:
+ case NS_rtf::LN_footerl:
+ case NS_rtf::LN_footerr:
+ case NS_rtf::LN_footerf:
+ m_pImpl->PopPageHeaderFooter();
+ break;
+ }
+
+ m_pImpl->getTableManager().endLevel();
+}
+/*-- 09.06.2006 09:52:16---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper::info(const string & /*info_*/)
+{
+}
+}
+
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
new file mode 100644
index 000000000000..373124a297f2
--- /dev/null
+++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
@@ -0,0 +1,114 @@
+#include <iostream>
+#include <DomainMapperTableHandler.hxx>
+
+namespace dmapper {
+
+using namespace ::com::sun::star;
+using namespace ::std;
+
+void DomainMapperTableHandler::startTable(unsigned int nRows,
+ unsigned int /*nDepth*/,
+ PropertyMapPtr /*pProps*/)
+{
+ m_pHandleSeq3 = HandleSequence3Pointer_t(new HandleSequence3_t(nRows));
+ m_nHandle3Index = 0;
+}
+
+void DomainMapperTableHandler::endTable()
+{
+ PropertyValuesSeq2_t aCellProperties;
+ PropertyValuesSeq_t aRowProperties;
+ PropertyValues_t aTableProperties;
+
+ sal_Int32 nRows = m_pHandleSeq3->getLength();
+ char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer), "%ld", nRows);
+
+ clog << "<table rows=\"" << sBuffer << "\">" << endl;
+
+ for (sal_Int32 nRow = 0; nRow < nRows; ++nRow)
+ {
+ HandleSequence2_t aHandleSeq2 = (*m_pHandleSeq3)[nRow];
+
+ sal_Int32 nCells = aHandleSeq2.getLength();
+
+ snprintf(sBuffer, sizeof(sBuffer), "%ld", nCells);
+
+ clog << "<table.row cells=\"" << sBuffer << "\">" << endl;
+
+ for (sal_Int32 nCell = 0; nCell < nCells; ++nCell)
+ {
+ HandleSequence_t aHandleSeq = aHandleSeq2[nCell];
+
+ sal_Int32 nHandles = aHandleSeq.getLength();
+
+ snprintf(sBuffer, sizeof(sBuffer), "%ld", nHandles);
+
+ clog << "<table.cell handles=\"" << sBuffer << "\">" << endl;
+
+ for (sal_Int32 nHandle = 0; nHandle < nHandles; ++nHandle)
+ {
+ clog << "<table.text>" << endl;
+
+ Handle_t aHandle = aHandleSeq[nHandle];
+
+ rtl::OUString aOUStr = aHandle->getString();
+ rtl::OString aOStr(aOUStr.getStr(), RTL_TEXTENCODING_ASCII_US,
+ aOUStr.getLength());
+
+ clog << aOStr.getStr() << endl;
+ clog << "</table.text>" << endl;
+ }
+
+ clog << "</table.cell>" << endl;
+ }
+
+ clog << "</table.row>" << endl;
+ }
+
+ clog << "</table>" << endl;
+
+ if (m_pHandleSeq3->getLength() > 0)
+ {
+ try
+ {
+ m_xText->convertToTable(*m_pHandleSeq3, aCellProperties,
+ aRowProperties,
+ aTableProperties);
+ }
+ catch (lang::IllegalArgumentException e)
+ {
+ clog << "failed to import table!" << endl;
+ }
+ }
+}
+
+void DomainMapperTableHandler::startRow(unsigned int nCells,
+ PropertyMapPtr /*pProps*/)
+{
+ m_pHandleSeq2 = HandleSequence2Pointer_t(new HandleSequence2_t(nCells));
+ m_nHandle2Index = 0;
+}
+
+void DomainMapperTableHandler::endRow()
+{
+ (*m_pHandleSeq3)[m_nHandle3Index] = *m_pHandleSeq2;
+ ++m_nHandle3Index;
+}
+
+void DomainMapperTableHandler::startCell(const Handle_t & start,
+ PropertyMapPtr /*pProps*/)
+{
+ m_pHandleSeq = HandleSequencePointer_t(new HandleSequence_t(2));
+ (*m_pHandleSeq)[0] = start->getStart();
+}
+
+void DomainMapperTableHandler::endCell(const Handle_t & end)
+{
+ (*m_pHandleSeq)[1] = end->getEnd();
+ (*m_pHandleSeq2)[m_nHandle2Index] = *m_pHandleSeq;
+ ++m_nHandle2Index;
+}
+
+}
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.hxx b/writerfilter/source/dmapper/DomainMapperTableHandler.hxx
new file mode 100644
index 000000000000..c229aa906c01
--- /dev/null
+++ b/writerfilter/source/dmapper/DomainMapperTableHandler.hxx
@@ -0,0 +1,61 @@
+#ifndef INCLUDED_DOMAIN_MAPPER_TABLE_HANDLER_HXX
+#define INCLUDED_DOMAIN_MAPPER_TABLE_HANDLER_HXX
+
+#ifndef INCLUDED_TABLE_MANAGER_HXX
+#include <doctok/TableManager.hxx>
+#endif
+#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX
+#include "PropertyMap.hxx"
+#endif
+
+#include <com/sun/star/text/XTextAppendAndConvert.hpp>
+
+namespace dmapper {
+
+typedef ::com::sun::star::text::XTextRange TextRange_t;
+typedef ::com::sun::star::uno::Reference< TextRange_t > Handle_t;
+typedef ::com::sun::star::uno::Sequence< Handle_t> HandleSequence_t;
+typedef boost::shared_ptr<HandleSequence_t> HandleSequencePointer_t;
+typedef ::com::sun::star::uno::Sequence< HandleSequence_t> HandleSequence2_t;
+typedef boost::shared_ptr<HandleSequence2_t> HandleSequence2Pointer_t;
+typedef ::com::sun::star::uno::Sequence< HandleSequence2_t> HandleSequence3_t;
+typedef boost::shared_ptr<HandleSequence3_t> HandleSequence3Pointer_t;
+typedef ::com::sun::star::text::XTextAppendAndConvert Text_t;
+typedef ::com::sun::star::uno::Reference<Text_t> TextReference_t;
+
+typedef ::com::sun::star::beans::PropertyValues PropertyValues_t;
+typedef ::com::sun::star::uno::Sequence< PropertyValues_t > PropertyValuesSeq_t;
+typedef ::com::sun::star::uno::Sequence< PropertyValuesSeq_t>
+PropertyValuesSeq2_t;
+
+class DomainMapperTableHandler : public doctok::TableDataHandler<Handle_t , PropertyMapPtr >
+{
+ TextReference_t m_xText;
+ HandleSequencePointer_t m_pHandleSeq;
+ HandleSequence2Pointer_t m_pHandleSeq2;
+ HandleSequence3Pointer_t m_pHandleSeq3;
+ sal_Int32 m_nHandleIndex;
+ sal_Int32 m_nHandle2Index;
+ sal_Int32 m_nHandle3Index;
+
+public:
+ typedef boost::shared_ptr<DomainMapperTableHandler> Pointer_t;
+
+ DomainMapperTableHandler(TextReference_t xText)
+ : m_xText(xText)
+ {
+ }
+ virtual ~DomainMapperTableHandler() {}
+
+ virtual void startTable(unsigned int nRows, unsigned int nDepth,
+ PropertyMapPtr pProps);
+ virtual void endTable();
+ virtual void startRow(unsigned int nRows, PropertyMapPtr pProps);
+ virtual void endRow();
+ virtual void startCell(const Handle_t & start, PropertyMapPtr pProps);
+ virtual void endCell(const Handle_t & end);
+};
+
+}
+
+#endif // INCLUDED_DOMAIN_MAPPER_TABLE_HANDLER_HXX
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
new file mode 100644
index 000000000000..04b9be181420
--- /dev/null
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -0,0 +1,1545 @@
+#ifndef INCLUDED_DMAPPER_DOMAINMAPPER_IMPL_HXX
+#include <DomainMapper_Impl.hxx>
+#endif
+#ifndef INCLUDED_DMAPPER_CONVERSIONHELPER_HXX
+#include <ConversionHelper.hxx>
+#endif
+#ifndef INCLUDED_DOMAIN_MAPPER_TABLE_HANDLER_HXX
+#include <DomainMapperTableHandler.hxx>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DOCUMENT_XDOCUMENTINFOSUPPLIER_HPP_
+#include <com/sun/star/document/XDocumentInfoSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLEFAMILIESSUPPLIER_HPP_
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_NUMBERINGTYPE_HPP_
+#include <com/sun/star/style/NumberingType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELD_HPP_
+#include <com/sun/star/text/XTextField.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELDSSUPPLIER_HPP_
+#include <com/sun/star/text/XTextFieldsSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XDEPENDENTTEXTFIELD_HPP_
+#include <com/sun/star/text/XDependentTextField.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_PAGENUMBERTYPE_HPP_
+#include <com/sun/star/text/PageNumberType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_FILENAMEDISPLAYFORMAT_HPP_
+#include <com/sun/star/text/FilenameDisplayFormat.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_USERDATAPART_HPP_
+#include <com/sun/star/text/UserDataPart.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_SETVARIABLETYPE_HPP_
+#include <com/sun/star/text/SetVariableType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATSSUPPLIER_HPP_
+#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATS_HPP_
+#include <com/sun/star/util/XNumberFormats.hpp>
+#endif
+#ifndef _RTL_USTRBUF_HXX_
+#include <rtl/ustrbuf.hxx>
+#endif
+#ifndef _RTL_STRING_H_
+#include <rtl/string.h>
+#endif
+
+
+#include <hash_map>
+
+using namespace ::com::sun::star;
+using namespace ::rtl;
+using namespace ::writerfilter;
+namespace dmapper{
+/*-- 08.09.2006 09:39:50---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+//defaultswitch { Upper FirstCap Lower }
+//Numberingswitch { Arabic, ALPHABETIC, ...} see lcl_ParseNumberingType
+enum FieldId
+{
+ /* ADDRESSBLOCK \d \* MERGEFORMAT -> Addressblock completely unsupported*/
+ FIELD_ADDRESSBLOCK
+ /* ADVANCE \d downvalue \l leftvalue \r rightvalue \u upvalue \x xvalue \y yvalue -> unsupported*/
+ ,FIELD_ADVANCE
+ /* ASK bookmarkname "hint" \d defaultanswer \o \* MERGEFORMAT ->
+ the hint is not always quoted, inputfield with default answer, prompt before merge (\o)
+ */
+ ,FIELD_ASK
+ /* AUTONUM \* Numberingswitch ->
+ mapped to sequence field "AutoNr"
+ */
+ ,FIELD_AUTONUM
+ /* AUTONUMLGL \* Numberingswitch ->
+ mapped to sequence field "AutoNr"
+ */
+ ,FIELD_AUTONUMLGL
+ /* AUTONUMOUT \* Numberingswitch ->
+ mapped to sequence field "AutoNr"
+ */
+ ,FIELD_AUTONUMOUT
+ /* AUTHOR NewAuthor \* defaultswitch \* MERGEFORMAT ->
+ mapped to sequence field "AutoNr"
+ */
+ ,FIELD_AUTHOR
+ /* COMMENTS "comment" \* MERGEFORMAT ->
+ Docinfo-Comments
+ */
+ ,FIELD_COMMENTS
+ /* CREATEDATE \h \* MERGEFORMAT ->
+ docinfo-created-date
+ */
+ ,FIELD_CREATEDATE
+ /* DATE \@ "number format" \s \* MERGEFORMAT ->
+ ww8filterimprovement: multiple languages now supported
+ */
+ ,FIELD_DATE
+ /* DOCPROPERTY propertyname \* MERGEFORMAT ->
+ ww8filterimprovement: some fields imported as functionally equivalent fields if possible,
+ the others imported as UserField
+ */
+ ,FIELD_DOCPROPERTY
+ /* DOCVARIABLE Name \* MERGEFORMAT ->
+ ww8filterimprovement: now imported as user fields
+ */
+ ,FIELD_DOCVARIABLE
+ /* EDITTIME \# "displayformat" \* Numberingswitch \* MERGEFORMAT ->
+ DocInfo-Modified-Date
+ ww8filterimprovement: multiple languages now supported
+ */
+ ,FIELD_EDITTIME
+ /* FILLIN "text to fill in" \d defaultanswer \o \* MERGEFORMAT ->
+ Function-InputField
+ */
+ ,FIELD_FILLIN
+ /* FILENAME \p \* * MERGEFORMAT ->
+ file name (\p with path)
+ */
+ ,FIELD_FILENAME
+ /* FILESIZE \* NumberingType \* MERGEFORMAT ->
+ not imported in old ww8 filter, see lcl_ParseNumberingType
+ todo find alternative field
+ */
+ ,FIELD_FILESIZE
+ /* =formula \# "number format"
+ todo find alternative field
+ */
+ ,FIELD_FORMULA
+ /* GOTOBUTTON text \* MERGEFORMAT ->
+ not imported in old ww8 filter
+ todo find alternative field
+ */
+ ,FIELD_GOTOBUTTON
+ /* HYPERLINK "link" \* MERGEFORMAT ->
+ not imported in old ww8 filter
+ ww8filterimprovement: now imported as hyperlink
+ */
+ ,FIELD_HYPERLINK
+ /* IF condition "then text" "else text" ->
+ not imported in old ww8 filter
+ ww8filterimprovement: now imported
+ todo: condition, if text, else text still missing
+ */
+ ,FIELD_IF
+ /* INFO NameOfInfo \* MERGEFORMAT -> old
+ todo: filter imports wrong?
+ */
+ ,FIELD_INFO
+ /* INCLUDEPICTURE path \* MERGEFORMAT->
+ old filter imports an embedded picture
+ todo: not yet supported
+ */
+ ,FIELD_INCLUDEPICTURE
+ /* KEYWORDS keyword \* defaultswitch \* Numberingswitch \* MERGEFORMAT ->
+ DocInfo Keywords
+ */
+ ,FIELD_KEYWORDS
+ /* LASTSAVEDBY \* MERGEFORMAT ->
+ DocInfo-Modified-Author
+ */
+ ,FIELD_LASTSAVEDBY
+ /* MACROBUTTON MacroName quick help text ->
+ Macro field
+ */
+ ,FIELD_MACROBUTTON
+ /* MERGEFIELD ColumName \b prefix \f suffix \* MERGEFORMAT ->
+ ww8filterimprovement: column-only API now upporterd
+ */
+ ,FIELD_MERGEFIELD
+ /* MERGEREC \* MERGEFORMAT ->
+ RecordNumber field, maybe without db name
+ todo: currently unchecked
+ */
+ ,FIELD_MERGEREC
+ /* MERGESEQ \* MERGEFORMAT ->
+ not imported in old ww8 filter
+ ww8filterimprovement: now imported
+ todo: currently unchecked
+ */
+ ,FIELD_MERGESEQ
+ /* NEXT text ->
+ Next record
+ todo: currently unchecked
+ */
+ ,FIELD_NEXT
+ /* NEXTIF condition
+ todo: condition not imported
+ */
+ ,FIELD_NEXTIF
+ /* PAGE \* Numberingswitch \* MERGEFORMAT ->
+ see lcl_ParseNumberingType
+ */
+ ,FIELD_PAGE
+ /* REF targetbkm \f \* MERGEFORMAT ->
+ imports a ShowVariable (bookmarkname)?
+ todo: not imported yet
+ */
+ ,FIELD_REF //
+ /* REVNUM \* Numberingswitch \* MERGEFORMAT ->
+ DocInfo-revision number
+ */
+ ,FIELD_REVNUM
+ /* SAVEDATE \@ "NumberFormat"\* MERGEFORMAT ->
+ DocInfo-modified-date
+ */
+ ,FIELD_SAVEDATE
+ /* SECTION \* NumberFormat \* MERGEFORMAT ->
+ not imported in old ww8 filter see lcl_ParseNumberingType
+ todo: find alternative
+ */
+ ,FIELD_SECTION
+ /* SECTIONPAGES \* NumberFormat \* MERGEFORMAT ->
+ not imported in old ww8 filter see lcl_ParseNumberingType
+ todo: find alternative
+ */
+ ,FIELD_SECTIONPAGES
+ /* SEQ sequencename \h \c \n \r \s \* MERGEFORMAT ->
+ number range name:sequencename value:sequencename+1
+ todo: only partially implemented, switches unsupported
+ */
+ ,FIELD_SEQ
+ /* SET bookmarkname newtext \* MERGEFORMAT ->
+ SetVariable bookmarkname = newtext
+ todo: not implemented yet
+ */
+ ,FIELD_SET
+ /* SKIPIF condition \* MERGEFORMAT ->
+ ??
+ todo: not implemented yet
+ */
+ ,FIELD_SKIPIF
+ /* STYLEREF stylename \* MERGEFORMAT ->
+ not imported in old ww8 filter
+ todo: add an equivalent field type
+ */
+ ,FIELD_STYLEREF
+ /* SUBJECT subject \* Defaultswitch \* MERGEFORMAT ->
+ DocInfo - subject
+ */
+ ,FIELD_SUBJECT
+ /* SYMBOL symbolnumber \* MERGEFORMAT ->
+ inserts a special char (symbolnumber)
+ todo: find alternative
+ */
+ ,FIELD_SYMBOL
+ /* TEMPLATE \* Defaultswitch \* MERGEFORMAT
+ TemplateName field
+ */
+ ,FIELD_TEMPLATE
+ /* TIME \@ "number format" \* MERGEFORMAT
+ ww8filterimprovement: multiple languages now supported
+ */
+ ,FIELD_TIME
+ /* TITLE \* Defaultswitch \* MERGEFORMAT ->
+ DocInfo-title
+ */
+ ,FIELD_TITLE
+ /* USERINITIALS newinitials \* MERGEFORMAT ->
+ ExtendedUser field (SHORTCUT)
+ */
+ ,FIELD_USERINITIALS
+ /* USERADDRESS \* MERGEFORMAT ->
+ not imported in old ww8 filter
+ todo: find alternative
+ */
+ ,FIELD_USERADDRESS
+ /* USERNAME newusername \* MERGEFORMAT ->
+ not imported in old ww8 filter
+ todo: import as extended user field(s)
+ */
+ ,FIELD_USERNAME
+};
+struct FieldConversion
+{
+ ::rtl::OUString sWordCommand;
+ const sal_Char* cFieldServiceName;
+ const sal_Char* cFieldMasterServiceName;
+ FieldId eFieldId;
+};
+
+struct FieldConversionHash
+{
+ unsigned long operator()(const OUString& rKey) const
+ {
+ return static_cast<unsigned long>(rKey.hashCode());
+ }
+};
+
+struct FieldConversionEq
+{
+ bool operator() (const OUString& rA, const OUString& rB) const
+ {
+ return rA == rB;
+ }
+};
+
+typedef ::std::hash_map< ::rtl::OUString, FieldConversion, FieldConversionHash, FieldConversionEq>
+ FieldConversionMap_t;
+
+/*-- 18.07.2006 08:56:55---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Int32 FIB::GetData( doctok::Id nName )
+{
+ if( nName >= NS_rtf::LN_WIDENT && nName <= NS_rtf::LN_LCBSTTBFUSSR)
+ return aFIBData[nName - NS_rtf::LN_WIDENT];
+ OSL_ASSERT("invalid index in FIB");
+ return -1;
+}
+/*-- 18.07.2006 08:56:55---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FIB::SetData( doctok::Id nName, sal_Int32 nValue )
+{
+ OSL_ENSURE( nName >= NS_rtf::LN_WIDENT && nName <= NS_rtf::LN_LCBSTTBFUSSR, "invalid index in FIB");
+ if( nName >= NS_rtf::LN_WIDENT && nName <= NS_rtf::LN_LCBSTTBFUSSR)
+ aFIBData[nName - NS_rtf::LN_WIDENT] = nValue;
+}
+/*-- 01.09.2006 10:22:03---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+DomainMapper_Impl::DomainMapper_Impl(
+ DomainMapper& rDMapper,
+ uno::Reference< lang::XComponent > xModel ) :
+ m_rDMapper( rDMapper ),
+ m_xTextDocument( xModel, uno::UNO_QUERY ),
+ m_xTextFactory( xModel, uno::UNO_QUERY ),
+ m_bFieldMode( false ),
+ m_bSetUserFieldContent( false ),
+ m_nCurrentTabStopIndex( 0 ),
+ m_nCurrentParaStyleId( -1 ),
+ m_bInStyleSheetImport( false )
+{
+ GetBodyText();
+ uno::Reference< text::XTextAppendAndConvert > xBodyTextAppendAndConvert = uno::Reference< text::XTextAppendAndConvert >( m_xBodyText, uno::UNO_QUERY );
+ m_aTextAppendStack.push(xBodyTextAppendAndConvert);
+
+ TableDataHandler_t::Pointer_t pTableHandler
+ (new DomainMapperTableHandler(xBodyTextAppendAndConvert));
+ m_TableManager.setHandler(pTableHandler);
+
+ m_TableManager.startLevel();
+}
+/*-- 01.09.2006 10:22:28---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+DomainMapper_Impl::~DomainMapper_Impl()
+{
+ m_TableManager.endLevel();
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Reference< container::XNameContainer > DomainMapper_Impl::GetPageStyles()
+{
+ if(!m_xPageStyles.is())
+ {
+ uno::Reference< style::XStyleFamiliesSupplier > xSupplier( m_xTextDocument, uno::UNO_QUERY );
+ xSupplier->getStyleFamilies()->getByName(::rtl::OUString::createFromAscii("PageStyles")) >>= m_xPageStyles;
+ }
+ return m_xPageStyles;
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Reference< text::XText > DomainMapper_Impl::GetBodyText()
+{
+ if(!m_xBodyText.is() && m_xTextDocument.is())
+ {
+ m_xBodyText = m_xTextDocument->getText();
+ }
+ return m_xBodyText;
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::PushProperties(ContextType eId)
+{
+ PropertyMapPtr pInsert(eId == CONTEXT_SECTION ? new SectionPropertyMap : new PropertyMap);
+ m_aPropertyStacks[eId].push( pInsert );
+ m_aContextStack.push(eId);
+
+ m_pTopContext = m_aPropertyStacks[eId].top();
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::PopProperties(ContextType eId)
+{
+ OSL_ENSURE(!m_aPropertyStacks[eId].empty(), "section stack already empty");
+ m_aPropertyStacks[eId].pop();
+ m_aContextStack.pop();
+ if(!m_aContextStack.empty() && !m_aPropertyStacks[m_aContextStack.top()].empty())
+
+ m_pTopContext = m_aPropertyStacks[m_aContextStack.top()].top();
+ else
+ {
+ OSL_ENSURE(eId == CONTEXT_SECTION, "this should happen at a section context end");
+ m_pTopContext.reset();
+ }
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PropertyMapPtr DomainMapper_Impl::GetTopContextOfType(ContextType eId)
+{
+ PropertyMapPtr pRet;
+ OSL_ENSURE( !m_aPropertyStacks[eId].empty(),
+ "no context of this type available");
+ if(!m_aPropertyStacks[eId].empty())
+ pRet = m_aPropertyStacks[eId].top();
+ return pRet;
+}
+
+/*-- 17.07.2006 08:47:04---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::InitTabStopFromStyle( const uno::Sequence< style::TabStop >& rInitTabStops )
+{
+ OSL_ENSURE(!m_aCurrentTabStops.size(), "tab stops already initialized");
+ for( sal_Int32 nTab = 0; nTab < rInitTabStops.getLength(); ++nTab)
+ {
+ m_aCurrentTabStops.push_back( DeletableTabStop(rInitTabStops[nTab]) );
+ }
+}
+/*-- 29.06.2006 13:35:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::ModifyCurrentTabStop( doctok::Id nId, sal_Int32 nValue)
+{
+ OSL_ENSURE(nId == NS_rtf::LN_dxaAdd || m_nCurrentTabStopIndex < m_aCurrentTabStops.size(),
+ "tab stop creation error");
+
+ if( nId != NS_rtf::LN_dxaAdd && m_nCurrentTabStopIndex >= m_aCurrentTabStops.size())
+ return;
+ static const style::TabAlign aTabAlignFromWord[] =
+ {
+ style::TabAlign_LEFT,
+ style::TabAlign_CENTER,
+ style::TabAlign_RIGHT,
+ style::TabAlign_DECIMAL,
+ style::TabAlign_LEFT
+ };
+ static const sal_Unicode aTabFillCharWord[] =
+ {
+ ' ',
+ '.',
+ '-',
+ '_',
+ '_',
+ 0xb7
+ };
+
+ switch(nId)
+ {
+ case NS_rtf::LN_dxaAdd: //set tab
+ m_aCurrentTabStops.push_back(
+ DeletableTabStop(style::TabStop(lcl_convertToMM100(nValue), style::TabAlign_LEFT, ' ', ' ')));
+ break;
+ case NS_rtf::LN_dxaDel: //deleted tab
+ {
+ //mark the tab stop at the given position as deleted
+ ::std::vector<DeletableTabStop>::iterator aIt = m_aCurrentTabStops.begin();
+ ::std::vector<DeletableTabStop>::iterator aEndIt = m_aCurrentTabStops.end();
+ sal_Int32 nConverted = lcl_convertToMM100(nValue);
+ for( ; aIt != aEndIt; ++aIt)
+ {
+ if( aIt->Position == nConverted )
+ {
+ aIt->bDeleted = true;
+ break;
+ }
+ }
+ }
+ break;
+ case NS_rtf::LN_TLC: //tab leading characters - for decimal tabs
+ // 0 - no leader, 1- dotted, 2 - hyphenated, 3 - single line, 4 - heavy line, 5 - middle dot
+ if( nValue >= 0 && nValue < sal::static_int_cast<sal_Int32>(sizeof(aTabFillCharWord) / sizeof (sal_Unicode)))
+ (m_aCurrentTabStops.begin() + m_nCurrentTabStopIndex)->FillChar = aTabFillCharWord[nValue];
+ break;
+ case NS_rtf::LN_JC: //tab justification
+ //0 - left, 1 - centered, 2 - right, 3 - decimal 4 - bar
+ if( nValue >= 0 && nValue < sal::static_int_cast<sal_Int32>(sizeof(aTabAlignFromWord) / sizeof (style::TabAlign)))
+ (m_aCurrentTabStops.begin() + m_nCurrentTabStopIndex)->Alignment = aTabAlignFromWord[nValue];
+ break;
+ }
+}
+/*-- 29.06.2006 13:35:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Sequence< style::TabStop > DomainMapper_Impl::GetCurrentTabStopAndClear()
+{
+ uno::Sequence< style::TabStop > aRet( m_aCurrentTabStops.size() );
+ style::TabStop* pArray = aRet.getArray();
+ ::std::vector<DeletableTabStop>::const_iterator aIt = m_aCurrentTabStops.begin();
+ ::std::vector<DeletableTabStop>::const_iterator aEndIt = m_aCurrentTabStops.end();
+ sal_Int32 nDeleted = 0;
+ for(sal_Int32 nIndex = 0; aIt != aEndIt; ++aIt)
+ {
+ if(!aIt->bDeleted)
+ pArray[nIndex++] = *aIt;
+ else
+ ++nDeleted;
+ }
+ m_aCurrentTabStops.clear();
+ m_nCurrentTabStopIndex = 0;
+ if(nDeleted)
+ {
+ aRet.realloc( aRet.getLength() - nDeleted);
+ }
+ return aRet;
+}
+
+/*-- 17.07.2006 09:08:26---------------------------------------------------
+ returns a the value from the current paragraph style - if available
+ TODO: What about parent styles?
+ -----------------------------------------------------------------------*/
+uno::Any DomainMapper_Impl::GetPropertyFromStyleSheet(PropertyIds eId)
+{
+ const StyleSheetEntry* pEntry = 0;
+ if( m_bInStyleSheetImport )
+ pEntry = GetStyleSheetTable()->FindParentStyleSheet(-1);
+ else
+ pEntry =
+ GetStyleSheetTable()->FindStyleSheetByISTD(GetCurrentParaStyleId());
+ while(pEntry)
+ {
+ //is there a tab stop set?
+ if(pEntry->pProperties)
+ {
+ PropertyMap::const_iterator aPropertyIter =
+ pEntry->pProperties->find(PropertyNameSupplier::GetPropertyNameSupplier().GetName((eId)));
+ if( aPropertyIter != pEntry->pProperties->end())
+ {
+ return aPropertyIter->second;
+ }
+ }
+ //search until the property is set or no parent is available
+ pEntry = GetStyleSheetTable()->FindParentStyleSheet(pEntry->nBaseStyleIdentifier);
+ }
+ return uno::Any();
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+ListTablePtr DomainMapper_Impl::GetListTable()
+{
+ if(!m_pListTable)
+ m_pListTable.reset(
+ new ListTable( m_rDMapper, m_xTextFactory ));
+ return m_pListTable;
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
+{
+ uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert = m_aTextAppendStack.top();
+ if(xTextAppendAndConvert.is())
+ {
+ try
+ {
+ uno::Reference< text::XTextRange > xTextRange =
+ xTextAppendAndConvert->finishParagraph
+ (pPropertyMap->GetPropertyValues());
+
+ m_TableManager.handle(xTextRange);
+ }
+ catch(const lang::IllegalArgumentException& )
+ {
+ }
+ catch(const uno::Exception& )
+ {
+ }
+ }
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::appendTextPortion( const ::rtl::OUString& rString, PropertyMapPtr pPropertyMap )
+{
+ uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert = m_aTextAppendStack.top();
+ if(xTextAppendAndConvert.is())
+ {
+ try
+ {
+ uno::Reference< text::XTextRange > xTextRange =
+ xTextAppendAndConvert->appendTextPortion
+ (rString, pPropertyMap->GetPropertyValues());
+
+ //m_TableManager.handle(xTextRange);
+ }
+ catch(const lang::IllegalArgumentException& )
+ {
+ }
+ catch(const uno::Exception& )
+ {
+ }
+ }
+}
+/*-- 24.07.2006 09:41:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+::rtl::OUString lcl_FindUnusedPageStyleName(const uno::Sequence< ::rtl::OUString >& rPageStyleNames)
+{
+ static const sal_Char cDefaultStyle[] = "Converted";
+ //find the hightest number x in each style with the name "cDefaultStyle+x" and
+ //return an incremented name
+ sal_Int32 nMaxIndex = 0;
+ const sal_Int32 nDefaultLength = sizeof(cDefaultStyle)/sizeof(sal_Char) - 1;
+ const ::rtl::OUString sDefaultStyle( cDefaultStyle, nDefaultLength, RTL_TEXTENCODING_ASCII_US );
+
+ const ::rtl::OUString* pStyleNames = rPageStyleNames.getConstArray();
+ for( sal_Int32 nStyle = 0; nStyle < rPageStyleNames.getLength(); ++nStyle)
+ {
+ if( pStyleNames[nStyle].getLength() > nDefaultLength &&
+ !rtl_ustr_compare_WithLength( sDefaultStyle, nDefaultLength, pStyleNames[nStyle], nDefaultLength))
+ {
+ sal_Int32 nIndex = pStyleNames[nStyle].copy( nDefaultLength ).toInt32();
+ if( nIndex > nMaxIndex)
+ nMaxIndex = nIndex;
+ }
+ }
+ ::rtl::OUString sRet( sDefaultStyle );
+ sRet += rtl::OUString::valueOf( nMaxIndex + 1);
+ return sRet;
+}
+
+void DomainMapper_Impl::PushPageHeader(SectionPropertyMap::PageType eType)
+{
+ //get the section context
+ PropertyMapPtr pContext = DomainMapper_Impl::GetTopContextOfType(CONTEXT_SECTION);
+ //ask for the header name of the given type
+ SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() );
+ if(pSectionContext)
+ {
+ ::rtl::OUString sPageStyleName = pSectionContext->GetPageStyleName( eType );
+ //if there's none create one
+ try
+ {
+ uno::Reference< beans::XPropertySet > xPageStyle;
+ if(!sPageStyleName.getLength())
+ {
+ uno::Sequence< ::rtl::OUString > aPageStyleNames = GetPageStyles()->getElementNames();
+ sPageStyleName = lcl_FindUnusedPageStyleName(aPageStyleNames);
+ xPageStyle = uno::Reference< beans::XPropertySet > (
+ m_xTextFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.PageStyle") )),
+ uno::UNO_QUERY);
+ GetPageStyles()->insertByName( sPageStyleName, uno::makeAny(xPageStyle) );
+ pSectionContext->SetPageStyleName( eType, sPageStyleName );
+ }
+ else
+ GetPageStyles()->getByName( sPageStyleName ) >>= xPageStyle;
+ //switch on header use
+ xPageStyle->setPropertyValue(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn")),
+ uno::makeAny(sal_True) );
+ //set the interface
+ uno::Reference< text::XText > xHeaderText;
+ xPageStyle->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HeaderText") )) >>= xHeaderText;
+ m_aTextAppendStack.push( uno::Reference< text::XTextAppendAndConvert >( xHeaderText, uno::UNO_QUERY_THROW));
+ }
+ catch( uno::Exception& )
+ {
+ }
+ }
+}
+/*-- 24.07.2006 09:41:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::PushPageFooter(SectionPropertyMap::PageType eType)
+{
+ //get the section context
+ PropertyMapPtr pContext = DomainMapper_Impl::GetTopContextOfType(CONTEXT_SECTION);
+ //ask for the footer name of the given type
+ SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() );
+ if(pSectionContext)
+ {
+ ::rtl::OUString sPageStyleName = pSectionContext->GetPageStyleName( eType );
+ //if there's none create one
+ try
+ {
+ uno::Reference< beans::XPropertySet > xPageStyle;
+ if(!sPageStyleName.getLength())
+ {
+ uno::Sequence< ::rtl::OUString > aPageStyleNames = GetPageStyles()->getElementNames();
+ sPageStyleName = lcl_FindUnusedPageStyleName(aPageStyleNames);
+ xPageStyle = uno::Reference< beans::XPropertySet >(
+ m_xTextFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.PageStyle") )),
+ uno::UNO_QUERY);
+ GetPageStyles()->insertByName( sPageStyleName, uno::makeAny(xPageStyle) );
+ pSectionContext->SetPageStyleName( eType, sPageStyleName );
+ }
+ else
+ GetPageStyles()->getByName( sPageStyleName ) >>= xPageStyle;
+ //switch on footer use
+ xPageStyle->setPropertyValue(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FooterIsOn")),
+ uno::makeAny(sal_True) );
+ //set the interface
+ uno::Reference< text::XText > xFooterText;
+ xPageStyle->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FooterText") )) >>= xFooterText;
+ m_aTextAppendStack.push(uno::Reference< text::XTextAppendAndConvert >( xFooterText, uno::UNO_QUERY_THROW));
+ }
+ catch( uno::Exception& )
+ {
+ }
+ }
+}
+/*-- 24.07.2006 09:41:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::PopPageHeaderFooter()
+{
+ m_aTextAppendStack.pop();
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Int32 lcl_convertToMM100(sal_Int32 _t)
+{
+ return TWIP_TO_MM100( _t );
+}
+/*-- 12.09.2006 08:07:55---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+::rtl::OUString lcl_FindQuotedText( const ::rtl::OUString& rCommand,
+ const sal_Char* cStartQuote, const sal_Unicode uEndQuote )
+{
+ ::rtl::OUString sRet;
+ ::rtl::OUString sStartQuote( ::rtl::OUString::createFromAscii(cStartQuote) );
+ sal_Int32 nStartIndex = rCommand.indexOf( sStartQuote );
+ if( nStartIndex >= 0 )
+ {
+ sal_Int32 nStartLength = sStartQuote.getLength();
+ sal_Int32 nEndIndex = rCommand.indexOf( uEndQuote, nStartIndex + nStartLength);
+ if( nEndIndex > nStartIndex )
+ {
+ sRet = rCommand.copy( nStartIndex + nStartLength, nEndIndex - nStartIndex - nStartLength);
+ }
+ }
+ return sRet;
+
+}
+/*-- 08.09.2006 14:05:17---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Int16 lcl_ParseNumberingType(::rtl::OUString& rCommand)
+{
+ sal_Int16 nRet = style::NumberingType::PAGE_DESCRIPTOR;
+
+ // The command looks like: " PAGE \* Arabic "
+ ::rtl::OUString sNumber = lcl_FindQuotedText(rCommand, "\\* ", ' ');
+
+ if( sNumber.getLength() )
+ {
+ //todo: might make sense to hash this list, too
+ struct NumberingPairs
+ {
+ const sal_Char* cWordName;
+ sal_Int16 nType;
+ };
+ static const NumberingPairs aNumberingPairs[] =
+ {
+ {"Arabic", style::NumberingType::ARABIC}
+ ,{"ROMAN", style::NumberingType::ROMAN_UPPER}
+ ,{"roman", style::NumberingType::ROMAN_LOWER}
+ ,{"ALPHABETIC", style::NumberingType::CHARS_UPPER_LETTER}
+ ,{"alphabetic", style::NumberingType::CHARS_LOWER_LETTER}
+ ,{"CircleNum", style::NumberingType::CIRCLE_NUMBER}
+ ,{"ThaiArabic", style::NumberingType::CHARS_THAI}
+ ,{"ThaiCardText", style::NumberingType::CHARS_THAI}
+ ,{"ThaiLetter", style::NumberingType::CHARS_THAI}
+// ,{"SBCHAR", style::NumberingType::}
+// ,{"DBCHAR", style::NumberingType::}
+// ,{"DBNUM1", style::NumberingType::}
+// ,{"DBNUM2", style::NumberingType::}
+// ,{"DBNUM3", style::NumberingType::}
+// ,{"DBNUM4", style::NumberingType::}
+ ,{"Aiueo", style::NumberingType::AIU_FULLWIDTH_JA}
+ ,{"Iroha", style::NumberingType::IROHA_FULLWIDTH_JA}
+// ,{"ZODIAC1", style::NumberingType::}
+// ,{"ZODIAC2", style::NumberingType::}
+// ,{"ZODIAC3", style::NumberingType::}
+// ,{"CHINESENUM1", style::NumberingType::}
+// ,{"CHINESENUM2", style::NumberingType::}
+// ,{"CHINESENUM3", style::NumberingType::}
+ ,{"ArabicAlpha", style::NumberingType::CHARS_ARABIC}
+ ,{"ArabicAbjad", style::NumberingType::FULLWIDTH_ARABIC}
+/* possible values:
+style::NumberingType::
+
+ CHARS_UPPER_LETTER_N
+ CHARS_LOWER_LETTER_N
+ TRANSLITERATION
+ NATIVE_NUMBERING
+ CIRCLE_NUMBER
+ NUMBER_LOWER_ZH
+ NUMBER_UPPER_ZH
+ NUMBER_UPPER_ZH_TW
+ TIAN_GAN_ZH
+ DI_ZI_ZH
+ NUMBER_TRADITIONAL_JA
+ AIU_HALFWIDTH_JA
+ IROHA_HALFWIDTH_JA
+ NUMBER_UPPER_KO
+ NUMBER_HANGUL_KO
+ HANGUL_JAMO_KO
+ HANGUL_SYLLABLE_KO
+ HANGUL_CIRCLED_JAMO_KO
+ HANGUL_CIRCLED_SYLLABLE_KO
+ CHARS_HEBREW
+ CHARS_NEPALI
+ CHARS_KHMER
+ CHARS_LAO
+ CHARS_TIBETAN
+ CHARS_CYRILLIC_UPPER_LETTER_BG
+ CHARS_CYRILLIC_LOWER_LETTER_BG
+ CHARS_CYRILLIC_UPPER_LETTER_N_BG
+ CHARS_CYRILLIC_LOWER_LETTER_N_BG
+ CHARS_CYRILLIC_UPPER_LETTER_RU
+ CHARS_CYRILLIC_LOWER_LETTER_RU
+ CHARS_CYRILLIC_UPPER_LETTER_N_RU
+ CHARS_CYRILLIC_LOWER_LETTER_N_RU*/
+
+ };
+ for( sal_uInt32 nNum = 0; nNum < sizeof(aNumberingPairs)/sizeof( NumberingPairs ); ++nNum)
+ {
+ if( /*sCommand*/sNumber.equalsAscii(aNumberingPairs[nNum].cWordName ))
+ {
+ nRet = aNumberingPairs[nNum].nType;
+ break;
+ }
+ }
+
+ }
+ return nRet;
+}
+/*-- 08.09.2006 13:52:09---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+OUString lcl_ParseFormat( const ::rtl::OUString& rCommand )
+{
+ // The command looks like: " DATE \@ "dd MMMM yyyy"
+ return lcl_FindQuotedText(rCommand, "\\@ \"", '\"');
+}
+/*-- 19.09.2006 10:01:20---------------------------------------------------
+extract a parameter (with or without quotes) between the command and the following backslash
+ -----------------------------------------------------------------------*/
+::rtl::OUString lcl_ExtractParameter(const ::rtl::OUString& rCommand, sal_Int32 nCommandLength )
+{
+ sal_Int32 nStartIndex = nCommandLength;
+ sal_Int32 nEndIndex = 0;
+ sal_Int32 nQuoteIndex = rCommand.indexOf( '\"', nStartIndex);
+ if( nQuoteIndex >= 0)
+ {
+ nStartIndex = nQuoteIndex + 1;
+ nEndIndex = rCommand.indexOf( '\"', nStartIndex + 1) - 1;
+ }
+ else
+ {
+ nEndIndex = rCommand.indexOf( ::rtl::OUString::createFromAscii(" \\"), nStartIndex);
+ }
+ ::rtl::OUString sRet;
+ if( nEndIndex > nStartIndex + 1 )
+ {
+ //remove spaces at start and end of the result
+ if(nQuoteIndex <= 0)
+ {
+ const sal_Unicode* pCommandStr = rCommand.getStr();
+ while( nStartIndex < nEndIndex && pCommandStr[nStartIndex] == ' ')
+ ++nStartIndex;
+ while( nEndIndex > nStartIndex && pCommandStr[nEndIndex] == ' ')
+ --nEndIndex;
+ }
+ sRet = rCommand.copy( nStartIndex, nEndIndex - nStartIndex + 1);
+ }
+ return sRet;
+}
+
+/*-- 15.09.2006 10:57:57---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+::rtl::OUString lcl_ExctractAskVariableAndHint( const ::rtl::OUString& rCommand, ::rtl::OUString& rHint )
+{
+ // the first word after "ASK " is the variable
+ // the text after the variable and before a '\' is the hint
+ // if no hint is set the variable is used as hint
+ // the quotes of the hint have to be removed
+ sal_Int32 nIndex = rCommand.indexOf( ' ', 2);//find last space after 'ASK'
+ while(rCommand.getStr()[nIndex] == ' ')
+ ++nIndex;
+ ::rtl::OUString sShortCommand( rCommand.copy( nIndex ) ); //cut off the " ASK "
+
+ nIndex = 0;
+ sShortCommand = sShortCommand.getToken( 0, '\\', nIndex);
+ nIndex = 0;
+ ::rtl::OUString sRet = sShortCommand.getToken( 0, ' ', nIndex);
+ if( nIndex > 0)
+ rHint = sShortCommand.copy( nIndex );
+ if( !rHint.getLength() )
+ rHint = sRet;
+ return sRet;
+}
+/*-- 01.09.2006 11:48:08---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::CreateField( ::rtl::OUString& rCommand )
+{
+ static FieldConversionMap_t aFieldConversionMap;
+ static bool bFilled = false;
+ m_bSetUserFieldContent = false;
+ if(!bFilled)
+ {
+ static const FieldConversion aFields[] =
+ {
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ADDRESSBLOCK")), "", "", FIELD_ADDRESSBLOCK },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ADVANCE")), "", "", FIELD_ADVANCE },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ASK")), "SetExpression", "SetExpression", FIELD_ASK },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AUTONUM")), "SetExpression", "SetExpression", FIELD_AUTONUM },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AUTONUMLGL")), "SetExpression", "SetExpression", FIELD_AUTONUMLGL },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AUTONUMOUT")), "SetExpression", "SetExpression", FIELD_AUTONUMOUT },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AUTHOR")), "Author", "", FIELD_AUTHOR },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DATE")), "DateTime", "", FIELD_DATE },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("COMMENTS")), "DocInfo.Description", "", FIELD_COMMENTS },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CREATEDATE")), "DocInfo.CreateDateTime", "", FIELD_CREATEDATE },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DOCPROPERTY")), "", "", FIELD_DOCPROPERTY },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DOCVARIABLE")), "User", "", FIELD_DOCVARIABLE },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EDITTIME")), "DocInfo.EditTime", "", FIELD_EDITTIME },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FILLIN")), "Input", "", FIELD_FILLIN },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FILENAME")), "FileName", "", FIELD_FILENAME },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FILESIZE")), "", "", FIELD_FILESIZE },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FORMULA")), "", "", FIELD_FORMULA
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GOTOBUTTON")), "", "", FIELD_GOTOBUTTON },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HYPERLINK")), "", "", FIELD_HYPERLINK },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IF")), "ConditionalText", "", FIELD_IF },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("INFO")), "","", FIELD_INFO },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("INCLUDEPICTURE")), "", "", FIELD_INCLUDEPICTURE},
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("KEYWORDS")), "DocInfo.KeyWords", "", FIELD_KEYWORDS },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LASTSAVEDBY")), "DocInfo.ChangeAuthor", "", FIELD_LASTSAVEDBY },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MACROBUTTON")), "Macro", "", FIELD_MACROBUTTON },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MERGEFIELD")), "Database", "Database", FIELD_MERGEFIELD},
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MERGEREC")), "DatabaseNumberOfSet", "", FIELD_MERGEREC },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MERGESEQ")), "", "", FIELD_MERGESEQ },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NEXT")), "DatabaseNextSet", "", FIELD_NEXT },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NEXTIF")), "DatabaseNextSet", "", FIELD_NEXTIF },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PAGE")), "PageNumber", "", FIELD_PAGE },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("REF")), "", "", FIELD_REF },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("REVNUM")), "DocInfo.Revision", "", FIELD_REVNUM },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SAVEDATE")), "DocInfo.Change", "", FIELD_SAVEDATE },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SECTION")), "", "", FIELD_SECTION },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SECTIONPAGES")), "", "", FIELD_SECTIONPAGES },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SEQ")), "SetExpression", "SetExpression", FIELD_SEQ },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SET")), "","", FIELD_SET },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SKIPIF")),"", "", FIELD_SKIPIF },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("STYLEREF")),"", "", FIELD_STYLEREF },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SUBJECT")), "DocInfo.Subject", "", FIELD_SUBJECT },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SYMBOL")),"", "", FIELD_SYMBOL },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TEMPLATE")), "TemplateName", "", FIELD_TEMPLATE},
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TIME")), "DateTime", "", FIELD_TIME },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TITLE")), "DocInfo.Title", "", FIELD_TITLE },
+ {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("USERINITIALS")), "ExtendedUser", "", FIELD_USERINITIALS},
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("USERADDRESS")), "", "", FIELD_USERADDRESS },
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("USERNAME")), "ExtendedUser", "", FIELD_USERNAME }
+
+// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")), "", "", FIELD_},
+
+ };
+ size_t nConversions = sizeof(aFields)/sizeof(FieldConversion);
+ for( size_t nConversion = 0; nConversion < nConversions; ++nConversion)
+ {
+ aFieldConversionMap.insert( FieldConversionMap_t::value_type(
+ aFields[nConversion].sWordCommand,
+ aFields[nConversion] ));
+ }
+
+ bFilled = true;
+ }
+ try
+ {
+ uno::Reference< uno::XInterface > xFieldInterface;
+ //at first determine the field type - skip first space
+ ::rtl::OUString sCommand( rCommand.copy(rCommand.getLength() ? 1 : 0) );
+ sal_Int32 nSpaceIndex = sCommand.indexOf( ' ' );
+ if( 0 <= nSpaceIndex )
+ sCommand = sCommand.copy( 0, nSpaceIndex );
+
+ FieldConversionMap_t::iterator aIt = aFieldConversionMap.find(sCommand);
+ if(aIt != aFieldConversionMap.end())
+ {
+ uno::Reference< beans::XPropertySet > xFieldProperties;
+ if( FIELD_HYPERLINK != aIt->second.eFieldId &&
+ FIELD_DOCPROPERTY != aIt->second.eFieldId)
+ {
+ //add the service prefix
+ OUString sServiceName(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextField."));
+ sServiceName += ::rtl::OUString::createFromAscii(aIt->second.cFieldServiceName );
+ xFieldInterface = m_xTextFactory->createInstance(sServiceName);
+ xFieldProperties = uno::Reference< beans::XPropertySet >( xFieldInterface, uno::UNO_QUERY_THROW);
+ }
+ PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier();
+ switch( aIt->second.eFieldId )
+ {
+ case FIELD_ADDRESSBLOCK: break;
+ case FIELD_ADVANCE : break;
+ case FIELD_ASK :
+ {
+ //doesn the command contain a variable name?
+ ::rtl::OUString sVariable, sHint;
+
+ sVariable = lcl_ExctractAskVariableAndHint( rCommand, sHint );
+ if(sVariable.getLength())
+ {
+ // determine field master name
+ uno::Reference< beans::XPropertySet > xMaster = FindOrCreateFieldMaster(
+ "com.sun.star.text.FieldMaster.SetExpression", sVariable );
+
+ // attach the master to the field
+ uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW );
+ xDependentField->attachTextFieldMaster( xMaster );
+
+ // set input flag at the field
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_IS_INPUT), uno::makeAny( true ));
+ // set the prompt
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_HINT),
+ uno::makeAny( sHint ));
+ }
+ else
+ {
+ //don't insert the field
+ //todo: maybe import a 'normal' input field here?
+ xFieldInterface = 0;
+ }
+ }
+ break;
+ case FIELD_AUTONUM :
+ case FIELD_AUTONUMLGL :
+ case FIELD_AUTONUMOUT :
+ {
+ //create a sequence field master "AutoNr"
+ uno::Reference< beans::XPropertySet > xMaster = FindOrCreateFieldMaster(
+ "com.sun.star.text.FieldMaster.SetExpression",
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AutoNr") ));
+
+ xMaster->setPropertyValue( rPropNameSupplier.GetName(PROP_SUB_TYPE),
+ uno::makeAny(text::SetVariableType::SEQUENCE));
+
+ //apply the numbering type
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_NUMBERING_TYPE),
+ uno::makeAny( lcl_ParseNumberingType(rCommand) ));
+ // attach the master to the field
+ uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW );
+ xDependentField->attachTextFieldMaster( xMaster );
+ }
+ break;
+ case FIELD_AUTHOR :
+ {
+ xFieldProperties->setPropertyValue( rPropNameSupplier.GetName(PROP_FULL_NAME), uno::makeAny( true ));
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" AUTHOR") );
+ if(sParam.getLength())
+ {
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true ));
+ //PROP_CURRENT_PRESENTATION is set later anyway
+ }
+ }
+ break;
+ case FIELD_DATE:
+ {
+ //not fixed,
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_IS_FIXED),
+ uno::makeAny( false ));
+ SetNumberFormat( rCommand, xFieldProperties );
+ }
+ break;
+ case FIELD_COMMENTS :
+ {
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" COMMENTS") );
+ if(sParam.getLength())
+ {
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true ));
+ //PROP_CURRENT_PRESENTATION is set later anyway
+ }
+ }
+ break;
+ case FIELD_CREATEDATE :
+ {
+ SetNumberFormat( rCommand, xFieldProperties );
+ }
+ break;
+ case FIELD_DOCPROPERTY :
+ {
+ //some docproperties should be imported as document statistic fields, some as DocInfo fields
+ //others should be user fields
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" DOCPROPERTY") );
+ if(sParam.getLength())
+ {
+ #define SET_ARABIC 0x01
+ #define SET_FULL_NAME 0x02
+ struct DocPropertyMap
+ {
+ const sal_Char* pDocPropertyName;
+ const sal_Char* pServiceName;
+ sal_uInt8 nFlags;
+ };
+ static const DocPropertyMap aDocProperties[] =
+ {
+ {"Author", "Author", SET_FULL_NAME},
+ {"CreateTime", "DocInfo.CreateDateTime", 0},
+ {"Characters", "CharacterCount", SET_ARABIC},
+ {"Comments", "DocInfo.Description", 0},
+ {"Keywords", "DocInfo.KeyWords", 0},
+ {"LastPrinted", "DocInfo.PrintDateTime", 0},
+ {"LastSavedBy", "DocInfo.ChangeAuthor", 0},
+ {"LastSavedTime", "DocInfo.ChangeDateTime", 0},
+ {"Paragraphs", "ParagraphCount", SET_ARABIC},
+ {"RevisionNumber", "DocInfo.Revision", 0},
+ {"Subject", "DocInfo.Subject", 0},
+ {"Template", "TemplateName", 0},
+ {"Title", "DocInfo.Title", 0},
+ {"TotalEditingTime", "DocInfo.EditTime", 9},
+ {"Words", "WordCount", SET_ARABIC}
+
+ //other available DocProperties:
+ //Bytes, Category, CharactersWithSpaces, Company
+ //HyperlinkBase,
+ //Lines, Manager, NameofApplication, ODMADocId, Pages,
+ //Security,
+ };
+ //search for a field mapping
+ ::rtl::OUString sFieldServiceName;
+ sal_uInt16 nMap = 0;
+ for( ; nMap < sizeof(aDocProperties) / sizeof(DocPropertyMap); ++nMap )
+ {
+ if(sParam.equalsAscii(aDocProperties[nMap].pDocPropertyName))
+ {
+ sFieldServiceName = ::rtl::OUString::createFromAscii(aDocProperties[nMap].pServiceName);
+ break;
+ }
+ }
+ ::rtl::OUString sServiceName(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextField."));
+ if(sFieldServiceName.getLength())
+ {
+ sServiceName += sFieldServiceName;
+ xFieldInterface = m_xTextFactory->createInstance(sServiceName);
+ xFieldProperties = uno::Reference< beans::XPropertySet >( xFieldInterface, uno::UNO_QUERY_THROW);
+ if(0 != (aDocProperties[nMap].nFlags & SET_ARABIC))
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_NUMBERING_TYPE),
+ uno::makeAny( style::NumberingType::ARABIC ));
+ else if(0 != (aDocProperties[nMap].nFlags & SET_FULL_NAME))
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_FULL_NAME), uno::makeAny( true ));
+
+ }
+ else
+ {
+ //create a user field and type
+ uno::Reference< beans::XPropertySet > xMaster =
+ FindOrCreateFieldMaster( "com.sun.star.text.FieldMaster.User", sParam );
+ sServiceName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("User"));
+ xFieldInterface = m_xTextFactory->createInstance(sServiceName);
+ xFieldProperties = uno::Reference< beans::XPropertySet >( xFieldInterface, uno::UNO_QUERY_THROW);
+ uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW );
+ xDependentField->attachTextFieldMaster( xMaster );
+ m_bSetUserFieldContent = true;
+ }
+ }
+ }
+ #undef SET_ARABIC
+ #undef SET_FULL_NAME
+ break;
+ case FIELD_DOCVARIABLE :
+ {
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" DOCVARIABLE") );
+ //create a user field and type
+ uno::Reference< beans::XPropertySet > xMaster =
+ FindOrCreateFieldMaster( "com.sun.star.text.FieldMaster.User", sParam );
+ uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW );
+ xDependentField->attachTextFieldMaster( xMaster );
+ m_bSetUserFieldContent = true;
+ }
+ break;
+ case FIELD_EDITTIME :
+ //it's a numbering type, no number format! SetNumberFormat( rCommand, xFieldProperties );
+ break;
+ case FIELD_FILLIN :
+ {
+ sal_Int32 nIndex = 0;
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_HINT), uno::makeAny( rCommand.getToken( 1, '\"', nIndex)));
+ }
+ break;
+ case FIELD_FILENAME:
+ {
+ sal_Int32 nNumberingTypeIndex = rCommand.indexOf( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\\p")));
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_FILE_FORMAT),
+ uno::makeAny( nNumberingTypeIndex > 0 ? text::FilenameDisplayFormat::FULL : text::FilenameDisplayFormat::NAME ));
+ }
+ break;
+ case FIELD_FILESIZE : break;
+ case FIELD_FORMULA : break;
+ case FIELD_GOTOBUTTON : break;
+ case FIELD_HYPERLINK:
+ {
+ sal_Int32 nStartQuote = rCommand.indexOf( '\"' );
+ sal_Int32 nEndQuote = nStartQuote < rCommand.getLength() + 1 ? rCommand.indexOf( '\"', nStartQuote + 1) : -1;
+ if( nEndQuote > 0)
+ m_sHyperlinkURL = rCommand.copy(nStartQuote + 1, nEndQuote - nStartQuote - 1);
+ }
+ break;
+ case FIELD_IF : break;
+ case FIELD_INFO : break;
+ case FIELD_INCLUDEPICTURE: break;
+ case FIELD_KEYWORDS :
+ {
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" KEYWORDS") );
+ if(sParam.getLength())
+ {
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true ));
+ //PROP_CURRENT_PRESENTATION is set later anyway
+ }
+ }
+ break;
+ case FIELD_LASTSAVEDBY : break;
+ case FIELD_MACROBUTTON:
+ {
+ //extract macro name
+ sal_Int32 nIndex = sizeof(" MACROBUTTON ");
+ ::rtl::OUString sMacro = rCommand.getToken( 0, ' ', nIndex);
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_MACRO_NAME), uno::makeAny( sMacro ));
+
+ //extract quick help text
+ if( rCommand.getLength() > nIndex + 1)
+ {
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_HINT),
+ uno::makeAny( rCommand.copy( nIndex )));
+ }
+ }
+ break;
+ case FIELD_MERGEFIELD :
+ {
+ //todo: create a database field and fieldmaster pointing to a column, only
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" MERGEFIELD") );
+ //create a user field and type
+ uno::Reference< beans::XPropertySet > xMaster =
+ FindOrCreateFieldMaster( "com.sun.star.text.FieldMaster.Database", sParam );
+
+/* xFieldProperties->setPropertyValue(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FieldCode")),
+ uno::makeAny( rCommand.copy( nIndex + 1 )));
+*/
+ uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW );
+ xDependentField->attachTextFieldMaster( xMaster );
+ m_bSetUserFieldContent = true;
+ }
+ break;
+ case FIELD_MERGEREC : break;
+ case FIELD_MERGESEQ : break;
+ case FIELD_NEXT : break;
+ case FIELD_NEXTIF : break;
+ case FIELD_PAGE :
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_NUMBERING_TYPE),
+ uno::makeAny( lcl_ParseNumberingType(rCommand) ));
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_SUB_TYPE),
+ uno::makeAny( text::PageNumberType_CURRENT ));
+
+ break;
+ case FIELD_REF : break;
+ case FIELD_REVNUM : break;
+ case FIELD_SAVEDATE :
+ SetNumberFormat( rCommand, xFieldProperties );
+ break;
+ case FIELD_SECTION : break;
+ case FIELD_SECTIONPAGES : break;
+ case FIELD_SEQ : break;
+ case FIELD_SET : break;
+ case FIELD_SKIPIF : break;
+ case FIELD_STYLEREF : break;
+ case FIELD_SUBJECT :
+ {
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" SUBJECT") );
+ if(sParam.getLength())
+ {
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true ));
+ //PROP_CURRENT_PRESENTATION is set later anyway
+ }
+ }
+ break;
+ case FIELD_SYMBOL : break;
+ case FIELD_TEMPLATE: break;
+ case FIELD_TIME :
+ SetNumberFormat( rCommand, xFieldProperties );
+ break;
+ case FIELD_TITLE :
+ {
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" TITLE") );
+ if(sParam.getLength())
+ {
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true ));
+ //PROP_CURRENT_PRESENTATION is set later anyway
+ }
+ }
+ break;
+ case FIELD_USERINITIALS:
+ {
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_USER_DATA_TYPE), uno::makeAny( text::UserDataPart::SHORTCUT ));
+ //todo: if initials are provided - set them as fixed content
+ ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" USERINITIALS") );
+ if(sParam.getLength())
+ {
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true ));
+ //PROP_CURRENT_PRESENTATION is set later anyway
+ }
+ }
+ break;
+ case FIELD_USERADDRESS : //todo: user address collects street, city ...
+ break;
+ case FIELD_USERNAME : //todo: user name is firstname + lastname
+ break;
+ }
+ }
+ m_xTextField = uno::Reference< text::XTextField >( xFieldInterface, uno::UNO_QUERY );
+ }
+ catch( uno::Exception& )
+ {
+ }
+}
+/*-- 01.09.2006 11:48:09---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::SetFieldResult( ::rtl::OUString& rResult )
+{
+ try
+ {
+ PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier();
+ OSL_ENSURE( m_xTextField.is()||m_sHyperlinkURL.getLength(), "DomainMapper_Impl::SetFieldResult: field not created" );
+ if(m_xTextField.is())
+ {
+ try
+ {
+ if( m_bSetUserFieldContent )
+ {
+ // user field content has to be set at the field master
+ uno::Reference< text::XDependentTextField > xDependentField( m_xTextField, uno::UNO_QUERY_THROW );
+ xDependentField->getTextFieldMaster()->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_CONTENT),
+ uno::makeAny( rResult ));
+ }
+ else
+ {
+ uno::Reference< beans::XPropertySet > xFieldProperties( m_xTextField, uno::UNO_QUERY_THROW);
+ xFieldProperties->setPropertyValue(
+ rPropNameSupplier.GetName(PROP_CURRENT_PRESENTATION),
+ uno::makeAny( rResult ));
+ }
+ }
+ catch( const beans::UnknownPropertyException& )
+ {
+ //some fields don't have a CurrentPresentation (DateTime)
+ }
+ uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert = m_aTextAppendStack.top();
+ xTextAppendAndConvert->appendTextContent( uno::Reference<text::XTextContent>(m_xTextField, uno::UNO_QUERY) );
+ }
+ else if(m_sHyperlinkURL.getLength())
+ {
+ //insert the string and apply hyperlink attribute to it
+ uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert = m_aTextAppendStack.top();
+ if(xTextAppendAndConvert.is())
+ {
+ try
+ {
+ uno::Sequence< beans::PropertyValue> aLink(1);
+ aLink[0].Name = rPropNameSupplier.GetName(PROP_HYPER_LINK_U_R_L);
+ aLink[0].Value = uno::makeAny(m_sHyperlinkURL);
+ xTextAppendAndConvert->appendTextPortion(rResult, aLink);
+ }
+ catch(const lang::IllegalArgumentException& )
+ {
+ }
+ catch(const uno::Exception& )
+ {
+ }
+ }
+ }
+ }
+ catch( uno::Exception& )
+ {
+
+ }
+ m_xTextField = 0;
+ m_sHyperlinkURL = OUString();
+}
+
+/*-- 11.09.2006 13:16:35---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+bool DomainMapper_Impl::IsFieldAvailable() const
+{
+ return m_xTextField.is() || m_sHyperlinkURL.getLength();
+}
+/*-- 14.09.2006 12:46:52---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::GetCurrentLocale(lang::Locale& rLocale)
+{
+ ::rtl::OUString sCharLocale = PropertyNameSupplier::GetPropertyNameSupplier().GetName(PROP_CHAR_LOCALE);
+ PropertyMapPtr pTopContext = GetTopContext();
+ PropertyMap::iterator aLocaleIter = pTopContext->find(sCharLocale);
+ if( aLocaleIter != pTopContext->end())
+ aLocaleIter->second >>= rLocale;
+ else
+ {
+ PropertyMapPtr pParaContext = GetTopContextOfType(CONTEXT_PARAGRAPH);
+ aLocaleIter = pParaContext->find(sCharLocale);
+ if( aLocaleIter != pParaContext->end())
+ {
+ aLocaleIter->second >>= rLocale;
+ }
+ }
+}
+
+/*-- 14.09.2006 12:52:58---------------------------------------------------
+ extract the number format from the command and apply the resulting number
+ format to the XPropertySet
+ -----------------------------------------------------------------------*/
+void DomainMapper_Impl::SetNumberFormat( const ::rtl::OUString& rCommand,
+ uno::Reference< beans::XPropertySet >& xPropertySet )
+{
+ OUString sFormatString = lcl_ParseFormat( rCommand );
+ // find \h - hijri/luna calendar todo: what about saka/era calendar?
+ bool bHijri = 0 < rCommand.indexOf( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\\h ")));
+ lang::Locale aUSLocale;
+ aUSLocale.Language = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en"));
+ aUSLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US"));
+
+ //determine current locale - todo: is it necessary to initialize this locale?
+ lang::Locale aCurrentLocale = aUSLocale;
+ GetCurrentLocale( aCurrentLocale );
+ ::rtl::OUString sFormat = ConversionHelper::ConvertMSFormatStringToSO( sFormatString, aCurrentLocale, bHijri);
+
+ //get the number formatter and convert the string to a format value
+ try
+ {
+ uno::Reference< util::XNumberFormatsSupplier > xNumberSupplier( m_xTextDocument, uno::UNO_QUERY_THROW );
+ long nKey = xNumberSupplier->getNumberFormats()->addNewConverted( sFormat, aUSLocale, aCurrentLocale );
+ xPropertySet->setPropertyValue(
+ PropertyNameSupplier::GetPropertyNameSupplier().GetName(PROP_NUMBER_FORMAT),
+ uno::makeAny( nKey ));
+ }
+ catch(const uno::Exception&)
+ {
+ }
+}
+
+/*-- 15.09.2006 15:10:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Reference< beans::XPropertySet > DomainMapper_Impl::FindOrCreateFieldMaster(
+ const sal_Char* pFieldMasterService, const ::rtl::OUString& rFieldMasterName )
+ throw(::com::sun::star::uno::Exception)
+{
+ // query master, create if not available
+ uno::Reference< text::XTextFieldsSupplier > xFieldsSupplier( GetTextDocument(), uno::UNO_QUERY );
+ uno::Reference< container::XNameAccess > xFieldMasterAccess = xFieldsSupplier->getTextFieldMasters();
+ uno::Reference< beans::XPropertySet > xMaster;
+ ::rtl::OUString sFieldMasterService( ::rtl::OUString::createFromAscii(pFieldMasterService) );
+ ::rtl::OUStringBuffer aFieldMasterName;
+ aFieldMasterName.appendAscii( pFieldMasterService );
+ aFieldMasterName.append(sal_Unicode('.'));
+ aFieldMasterName.append(rFieldMasterName);
+ ::rtl::OUString sFieldMasterName = aFieldMasterName.makeStringAndClear();
+ if(xFieldMasterAccess->hasByName(sFieldMasterName))
+ {
+ //get the master
+ xMaster = uno::Reference< beans::XPropertySet >(xFieldMasterAccess->getByName(sFieldMasterName),
+ uno::UNO_QUERY_THROW);
+ }
+ else
+ {
+ //create the master
+ xMaster = uno::Reference< beans::XPropertySet >(
+ m_xTextFactory->createInstance(sFieldMasterService), uno::UNO_QUERY_THROW);
+ //set the master's name
+// sal_Int32 nIndex = rtl_str_indexOfStr( pFieldMasterService, "Database" );
+// if( nIndex < 0 )
+ xMaster->setPropertyValue(
+ PropertyNameSupplier::GetPropertyNameSupplier().GetName(PROP_NAME),
+ uno::makeAny(rFieldMasterName));
+// else
+// {
+// xMaster->setPropertyValue(
+// PropertyNameSupplier::GetPropertyNameSupplier().GetName(PROP_DATA_COLUMN_NAME),
+// uno::makeAny(rFieldMasterName));
+// }
+ }
+ return xMaster;
+}
+
+/*-- 18.09.2006 15:47:09---------------------------------------------------
+ the string _can_ be quoted or not be available at all
+ -----------------------------------------------------------------------*/
+//void DomainMapper_Impl::ExtractAndSetDocumentInfo(
+// const ::rtl::OUString& rCommand, sal_Int32 nCommandLength, PropertyIds ePropId )
+//{
+// ::rtl::OUString sParam = lcl_ExtractParameter( rCommand, nCommandLength );
+// if( sParam.getLength() )
+// {
+// uno::Reference< document::XDocumentInfoSupplier > xInfoSupplier( m_xTextDocument, uno::UNO_QUERY_THROW );
+// uno::Reference< beans::XPropertySet > xInfoPropSet( xInfoSupplier->getDocumentInfo(), uno::UNO_QUERY_THROW );
+// xInfoPropSet->setPropertyValue(
+// PropertyNameSupplier::GetPropertyNameSupplier().GetName(ePropId), uno::makeAny( sParam ));
+// }
+
+//}
+
+
+}
+
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
new file mode 100644
index 000000000000..5910b9f856fb
--- /dev/null
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
@@ -0,0 +1,224 @@
+#ifndef INCLUDED_DMAPPER_DOMAINMAPPER_IMPL_HXX
+#define INCLUDED_DMAPPER_DOMAINMAPPER_IMPL_HXX
+
+#include <com/sun/star/text/XTextDocument.hpp>
+#include <com/sun/star/text/XTextCursor.hpp>
+#include <com/sun/star/text/XTextAppendAndConvert.hpp>
+#ifndef _COM_SUN_STAR_STYLE_TABSTOP_HPP_
+#include <com/sun/star/style/TabStop.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_
+#include <com/sun/star/container/XNameContainer.hpp>
+#endif
+#include <vector>
+#include <stack>
+
+#ifndef INCLUDED_RESOURCESIDS
+#include <doctok/resourceids.hxx>
+#endif
+#ifndef INCLUDED_TABLE_MANAGER_HXX
+#include <doctok/TableManager.hxx>
+#endif
+#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX
+#include <PropertyMap.hxx>
+#endif
+#ifndef INCLUDED_FONTTABLE_HXX
+#include <FontTable.hxx>
+#endif
+#ifndef INCLUDED_LISTTABLE_HXX
+#include <ListTable.hxx>
+#endif
+#ifndef INCLUDED_LFOTABLE_HXX
+#include <LFOTable.hxx>
+#endif
+#ifndef INCLUDED_STYLESHEETTABLE_HXX
+#include <StyleSheetTable.hxx>
+#endif
+namespace com{ namespace sun{ namespace star{
+ namespace lang{
+ class XMultiServiceFactory;
+ struct Locale;
+ }
+ namespace text{ class XTextField;}
+ namespace beans{ class XPropertySet;}
+}}}
+
+namespace dmapper {
+
+using namespace writerfilter;
+using namespace com::sun::star;
+
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+sal_Int32 lcl_convertToMM100(sal_Int32 _t);
+
+/*-- 14.06.2006 07:42:52---------------------------------------------------
+ property stack element
+ -----------------------------------------------------------------------*/
+enum ContextType
+{
+ CONTEXT_SECTION,
+ CONTEXT_PARAGRAPH,
+ CONTEXT_CHARACTER,
+ NUMBER_OF_CONTEXTS
+};
+typedef std::stack<ContextType> ContextStack;
+typedef std::stack<PropertyMapPtr> PropertyStack;
+typedef boost::shared_ptr< StyleSheetTable > StyleSheetTablePtr;
+typedef std::stack< ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextAppendAndConvert > >
+ TextAppendStack;
+
+/*-- 18.07.2006 08:49:08---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+class FIB
+{
+ sal_Int32 aFIBData[ NS_rtf::LN_LCBSTTBFUSSR - NS_rtf::LN_WIDENT + 1];
+ sal_Int32 nLNCHS;
+ public:
+ FIB() :
+ nLNCHS( 0 )
+ {
+ memset(&aFIBData, 0x00, sizeof(aFIBData));
+ }
+
+ sal_Int32 GetLNCHS() const {return nLNCHS;}
+ void SetLNCHS(sal_Int32 nValue) {nLNCHS = nValue;}
+ sal_Int32 GetData( doctok::Id nName );
+ void SetData( doctok::Id nName, sal_Int32 nValue );
+};
+
+/*-- 17.07.2006 09:14:13---------------------------------------------------
+ extended tab stop struct
+ -----------------------------------------------------------------------*/
+struct DeletableTabStop : public ::com::sun::star::style::TabStop
+{
+ bool bDeleted;
+ DeletableTabStop() :
+ bDeleted( false ){}
+ DeletableTabStop( const ::com::sun::star::style::TabStop& rTabStop ) :
+ TabStop( rTabStop ),
+ bDeleted( false ){}
+};
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+class DomainMapper;
+class DomainMapper_Impl
+{
+public:
+ typedef doctok::TableManager< ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >, PropertyMapPtr > TableManager_t;
+ typedef doctok::TableDataHandler< ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >, PropertyMapPtr > TableDataHandler_t;
+
+private:
+ DomainMapper& m_rDMapper;
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextDocument > m_xTextDocument;
+ ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > m_xTextFactory;
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xPageStyles;
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > m_xBodyText;
+
+ TextAppendStack m_aTextAppendStack;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextField > m_xTextField;
+ ::rtl::OUString m_sHyperlinkURL;
+ bool m_bFieldMode;
+ bool m_bSetUserFieldContent;
+
+ TableManager_t m_TableManager;
+
+ //each context needs a stack of currently used attributes
+ FIB m_aFIB;
+ PropertyStack m_aPropertyStacks[NUMBER_OF_CONTEXTS];
+ ContextStack m_aContextStack;
+ FontTablePtr m_pFontTable;
+ ListTablePtr m_pListTable;
+ LFOTablePtr m_pLFOTable;
+ StyleSheetTablePtr m_pStyleSheetTable;
+
+ PropertyMapPtr m_pTopContext;
+
+ ::std::vector<DeletableTabStop> m_aCurrentTabStops;
+ sal_uInt32 m_nCurrentTabStopIndex;
+ sal_Int32 m_nCurrentParaStyleId;
+ bool m_bInStyleSheetImport;
+
+ void GetCurrentLocale(::com::sun::star::lang::Locale& rLocale);
+ void SetNumberFormat( const ::rtl::OUString& rCommand,
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xPropertySet );
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ FindOrCreateFieldMaster( const sal_Char* pFieldMasterService,
+ const ::rtl::OUString& rFieldMasterName )
+ throw(::com::sun::star::uno::Exception);
+
+public:
+ DomainMapper_Impl(
+ DomainMapper& rDMapper,
+ uno::Reference< lang::XComponent > xModel );
+ DomainMapper_Impl();
+ virtual ~DomainMapper_Impl();
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > GetPageStyles();
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > GetBodyText();
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextDocument > GetTextDocument()
+ {
+ return m_xTextDocument;
+ }
+ void finishParagraph( PropertyMapPtr pPropertyMap );
+ void appendTextPortion( const ::rtl::OUString& rString, PropertyMapPtr pPropertyMap );
+
+ FIB& GetFIB() {return m_aFIB;}
+ // push the new properties onto the stack and make it the 'current' property map
+ void PushProperties(ContextType eId);
+ void PopProperties(ContextType eId);
+
+ PropertyMapPtr GetTopContext()
+ {
+ return m_pTopContext;
+ }
+ PropertyMapPtr GetTopContextOfType(ContextType eId);
+ FontTablePtr GetFontTable()
+ {
+ if(!m_pFontTable)
+ m_pFontTable.reset(new FontTable());
+ return m_pFontTable;
+ }
+ StyleSheetTablePtr GetStyleSheetTable()
+ {
+ if(!m_pStyleSheetTable)
+ m_pStyleSheetTable.reset(new StyleSheetTable( m_rDMapper ));
+ return m_pStyleSheetTable;
+ }
+ ListTablePtr GetListTable();
+ LFOTablePtr GetLFOTable()
+ {
+ if(!m_pLFOTable)
+ m_pLFOTable.reset( new LFOTable );
+ return m_pLFOTable;
+ }
+ void InitTabStopFromStyle( const ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop >& rInitTabStops );
+ void ModifyCurrentTabStop( doctok::Id nId, sal_Int32 nValue);
+ ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop > GetCurrentTabStopAndClear();
+ void NextTabStop() {++m_nCurrentTabStopIndex;}
+
+ void SetCurrentParaStyleId(sal_Int32 nIntValue) {m_nCurrentParaStyleId = nIntValue;}
+ sal_Int32 GetCurrentParaStyleId() const {return m_nCurrentParaStyleId;}
+
+ ::com::sun::star::uno::Any GetPropertyFromStyleSheet(PropertyIds eId);
+ void SetStyleSheetImport( bool bSet ) { m_bInStyleSheetImport = bSet;}
+
+ void PushPageHeader(SectionPropertyMap::PageType eType);
+ void PushPageFooter(SectionPropertyMap::PageType eType);
+
+ void PopPageHeaderFooter();
+
+ //create a new field from the command string
+ void CreateField( ::rtl::OUString& rCommand );
+ //set the field result in insert the field
+ void SetFieldMode( bool bSet ) { m_bFieldMode = bSet; }
+ bool IsFieldMode() const { return m_bFieldMode; }
+ void SetFieldResult( ::rtl::OUString& rResult );
+ bool IsFieldAvailable() const;
+
+ TableManager_t & getTableManager() { return m_TableManager; }
+};
+} //namespace dmapper
+#endif
diff --git a/writerfilter/source/dmapper/FontTable.cxx b/writerfilter/source/dmapper/FontTable.cxx
new file mode 100644
index 000000000000..cbd304586326
--- /dev/null
+++ b/writerfilter/source/dmapper/FontTable.cxx
@@ -0,0 +1,601 @@
+#ifndef INCLUDED_FONTTABLE_HXX
+#include <FontTable.hxx>
+#endif
+#ifndef INCLUDED_RESOURCESIDS
+#include <doctok/resourceids.hxx>
+#endif
+#include <vector>
+
+namespace dmapper
+{
+using namespace writerfilter;
+
+struct FontTable_Impl
+{
+ std::vector< FontEntry > aFontEntries;
+ FontEntry* pCurrentEntry;
+ FontTable_Impl() :
+ pCurrentEntry(0){}
+};
+/*-- 19.06.2006 12:04:32---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+FontTable::FontTable() :
+ m_pImpl( new FontTable_Impl )
+{
+}
+/*-- 19.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+FontTable::~FontTable()
+{
+ delete m_pImpl;
+}
+/*-- 19.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::attribute(doctok::Id Name, doctok::Value & val)
+{
+ OSL_ENSURE( m_pImpl->pCurrentEntry, "current entry has to be set here");
+ if(!m_pImpl->pCurrentEntry)
+ return ;
+ int nIntValue = val.getInt();
+ switch(Name)
+ {
+// case NS_rtf::LN_ISTD: break;
+// case NS_rtf::LN_ISTARTAT: break;
+// case NS_rtf::LN_NFC: break;
+// case NS_rtf::LN_JC: break;
+// case NS_rtf::LN_FLEGAL: break;
+// case NS_rtf::LN_FNORESTART: break;
+// case NS_rtf::LN_FPREV: break;
+// case NS_rtf::LN_FPREVSPACE: break;
+// case NS_rtf::LN_FWORD6: break;
+// case NS_rtf::LN_UNUSED5_7: break;
+// case NS_rtf::LN_RGBXCHNUMS: break;
+// case NS_rtf::LN_IXCHFOLLOW: break;
+// case NS_rtf::LN_DXASPACE: break;
+// case NS_rtf::LN_DXAINDENT: break;
+// case NS_rtf::LN_CBGRPPRLCHPX: break;
+// case NS_rtf::LN_CBGRPPRLPAPX: break;
+// case NS_rtf::LN_LSID: break;
+// case NS_rtf::LN_TPLC: break;
+// case NS_rtf::LN_RGISTD: break;
+// case NS_rtf::LN_FSIMPLELIST: break;
+// case NS_rtf::LN_FRESTARTHDN: break;
+// case NS_rtf::LN_UNSIGNED26_2: break;
+// case NS_rtf::LN_ILVL: break;
+// case NS_rtf::LN_FSTARTAT: break;
+// case NS_rtf::LN_FFORMATTING: break;
+// case NS_rtf::LN_UNSIGNED4_6: break;
+// case NS_rtf::LN_UNUSED4: break;
+// case NS_rtf::LN_UNUSED8: break;
+// case NS_rtf::LN_CLFOLVL: break;
+ case NS_rtf::LN_CBFFNM1:
+ m_pImpl->pCurrentEntry->sFontName1 = val.getString();
+ break;
+ case NS_rtf::LN_PRQ:
+ m_pImpl->pCurrentEntry->nPitchRequest = static_cast<sal_Int16>( nIntValue );
+ break;
+ case NS_rtf::LN_FTRUETYPE:
+ m_pImpl->pCurrentEntry->bTrueType = nIntValue == 1 ? true : false;
+ break;
+ case NS_rtf::LN_UNUSED1_3: //unused
+ case NS_rtf::LN_FF: //unused
+ case NS_rtf::LN_UNUSED1_7: //unused
+ break;
+ case NS_rtf::LN_WWEIGHT:
+ m_pImpl->pCurrentEntry->nBaseWeight = nIntValue;
+ break;
+ case NS_rtf::LN_CHS:
+ m_pImpl->pCurrentEntry->nTextEncoding = nIntValue;
+ break;
+ case NS_rtf::LN_IXCHSZALT:
+ break;
+ case NS_rtf::LN_PANOSE:
+ m_pImpl->pCurrentEntry->sPanose += val.getString();
+ break;
+ case NS_rtf::LN_FS:
+ m_pImpl->pCurrentEntry->sFontSignature += val.getString();
+ break;
+// case NS_rtf::LN_STI: break;
+// case NS_rtf::LN_FSCRATCH: break;
+// case NS_rtf::LN_FINVALHEIGHT: break;
+// case NS_rtf::LN_FHASUPE: break;
+// case NS_rtf::LN_FMASSCOPY: break;
+// case NS_rtf::LN_SGC: break;
+// case NS_rtf::LN_ISTDBASE: break;
+// case NS_rtf::LN_CUPX: break;
+// case NS_rtf::LN_ISTDNEXT: break;
+// case NS_rtf::LN_BCHUPE: break;
+// case NS_rtf::LN_FAUTOREDEF: break;
+// case NS_rtf::LN_FHIDDEN: break;
+// case NS_rtf::LN_UNUSED8_3: break;
+// case NS_rtf::LN_CSTD: break;
+// case NS_rtf::LN_CBSTDBASEINFILE: break;
+// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
+// case NS_rtf::LN_UNUSED4_2: break;
+// case NS_rtf::LN_STIMAXWHENSAVED: break;
+// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
+// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
+// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
+// case NS_rtf::LN_WIDENT: break;
+// case NS_rtf::LN_NFIB: break;
+// case NS_rtf::LN_NPRODUCT: break;
+// case NS_rtf::LN_LID: break;
+// case NS_rtf::LN_PNNEXT: break;
+// case NS_rtf::LN_FDOT: break;
+// case NS_rtf::LN_FGLSY: break;
+// case NS_rtf::LN_FCOMPLEX: break;
+// case NS_rtf::LN_FHASPIC: break;
+// case NS_rtf::LN_CQUICKSAVES: break;
+// case NS_rtf::LN_FENCRYPTED: break;
+// case NS_rtf::LN_FWHICHTBLSTM: break;
+// case NS_rtf::LN_FREADONLYRECOMMENDED: break;
+// case NS_rtf::LN_FWRITERESERVATION: break;
+// case NS_rtf::LN_FEXTCHAR: break;
+// case NS_rtf::LN_FLOADOVERRIDE: break;
+// case NS_rtf::LN_FFAREAST: break;
+// case NS_rtf::LN_FCRYPTO: break;
+// case NS_rtf::LN_NFIBBACK: break;
+// case NS_rtf::LN_LKEY: break;
+// case NS_rtf::LN_ENVR: break;
+// case NS_rtf::LN_FMAC: break;
+// case NS_rtf::LN_FEMPTYSPECIAL: break;
+// case NS_rtf::LN_FLOADOVERRIDEPAGE: break;
+// case NS_rtf::LN_FFUTURESAVEDUNDO: break;
+// case NS_rtf::LN_FWORD97SAVED: break;
+// case NS_rtf::LN_FSPARE0: break;
+// case NS_rtf::LN_CHSTABLES: break;
+// case NS_rtf::LN_FCMIN: break;
+// case NS_rtf::LN_FCMAC: break;
+// case NS_rtf::LN_CSW: break;
+// case NS_rtf::LN_WMAGICCREATED: break;
+// case NS_rtf::LN_WMAGICREVISED: break;
+// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break;
+// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break;
+// case NS_rtf::LN_PNFBPCHPFIRST_W6: break;
+// case NS_rtf::LN_PNCHPFIRST_W6: break;
+// case NS_rtf::LN_CPNBTECHP_W6: break;
+// case NS_rtf::LN_PNFBPPAPFIRST_W6: break;
+// case NS_rtf::LN_PNPAPFIRST_W6: break;
+// case NS_rtf::LN_CPNBTEPAP_W6: break;
+// case NS_rtf::LN_PNFBPLVCFIRST_W6: break;
+// case NS_rtf::LN_PNLVCFIRST_W6: break;
+// case NS_rtf::LN_CPNBTELVC_W6: break;
+// case NS_rtf::LN_LIDFE: break;
+// case NS_rtf::LN_CLW: break;
+// case NS_rtf::LN_CBMAC: break;
+// case NS_rtf::LN_LPRODUCTCREATED: break;
+// case NS_rtf::LN_LPRODUCTREVISED: break;
+// case NS_rtf::LN_CCPTEXT: break;
+// case NS_rtf::LN_CCPFTN: break;
+// case NS_rtf::LN_CCPHDD: break;
+// case NS_rtf::LN_CCPMCR: break;
+// case NS_rtf::LN_CCPATN: break;
+// case NS_rtf::LN_CCPEDN: break;
+// case NS_rtf::LN_CCPTXBX: break;
+// case NS_rtf::LN_CCPHDRTXBX: break;
+// case NS_rtf::LN_PNFBPCHPFIRST: break;
+// case NS_rtf::LN_PNCHPFIRST: break;
+// case NS_rtf::LN_CPNBTECHP: break;
+// case NS_rtf::LN_PNFBPPAPFIRST: break;
+// case NS_rtf::LN_PNPAPFIRST: break;
+// case NS_rtf::LN_CPNBTEPAP: break;
+// case NS_rtf::LN_PNFBPLVCFIRST: break;
+// case NS_rtf::LN_PNLVCFIRST: break;
+// case NS_rtf::LN_CPNBTELVC: break;
+// case NS_rtf::LN_FCISLANDFIRST: break;
+// case NS_rtf::LN_FCISLANDLIM: break;
+// case NS_rtf::LN_CFCLCB: break;
+// case NS_rtf::LN_FCSTSHFORIG: break;
+// case NS_rtf::LN_LCBSTSHFORIG: break;
+// case NS_rtf::LN_FCSTSHF: break;
+// case NS_rtf::LN_LCBSTSHF: break;
+// case NS_rtf::LN_FCPLCFFNDREF: break;
+// case NS_rtf::LN_LCBPLCFFNDREF: break;
+// case NS_rtf::LN_FCPLCFFNDTXT: break;
+// case NS_rtf::LN_LCBPLCFFNDTXT: break;
+// case NS_rtf::LN_FCPLCFANDREF: break;
+// case NS_rtf::LN_LCBPLCFANDREF: break;
+// case NS_rtf::LN_FCPLCFANDTXT: break;
+// case NS_rtf::LN_LCBPLCFANDTXT: break;
+// case NS_rtf::LN_FCPLCFSED: break;
+// case NS_rtf::LN_LCBPLCFSED: break;
+// case NS_rtf::LN_FCPLCFPAD: break;
+// case NS_rtf::LN_LCBPLCFPAD: break;
+// case NS_rtf::LN_FCPLCFPHE: break;
+// case NS_rtf::LN_LCBPLCFPHE: break;
+// case NS_rtf::LN_FCSTTBFGLSY: break;
+// case NS_rtf::LN_LCBSTTBFGLSY: break;
+// case NS_rtf::LN_FCPLCFGLSY: break;
+// case NS_rtf::LN_LCBPLCFGLSY: break;
+// case NS_rtf::LN_FCPLCFHDD: break;
+// case NS_rtf::LN_LCBPLCFHDD: break;
+// case NS_rtf::LN_FCPLCFBTECHPX: break;
+// case NS_rtf::LN_LCBPLCFBTECHPX: break;
+// case NS_rtf::LN_FCPLCFBTEPAPX: break;
+// case NS_rtf::LN_LCBPLCFBTEPAPX: break;
+// case NS_rtf::LN_FCPLCFSEA: break;
+// case NS_rtf::LN_LCBPLCFSEA: break;
+// case NS_rtf::LN_FCSTTBFFFN: break;
+// case NS_rtf::LN_LCBSTTBFFFN: break;
+// case NS_rtf::LN_FCPLCFFLDMOM: break;
+// case NS_rtf::LN_LCBPLCFFLDMOM: break;
+// case NS_rtf::LN_FCPLCFFLDHDR: break;
+// case NS_rtf::LN_LCBPLCFFLDHDR: break;
+// case NS_rtf::LN_FCPLCFFLDFTN: break;
+// case NS_rtf::LN_LCBPLCFFLDFTN: break;
+// case NS_rtf::LN_FCPLCFFLDATN: break;
+// case NS_rtf::LN_LCBPLCFFLDATN: break;
+// case NS_rtf::LN_FCPLCFFLDMCR: break;
+// case NS_rtf::LN_LCBPLCFFLDMCR: break;
+// case NS_rtf::LN_FCSTTBFBKMK: break;
+// case NS_rtf::LN_LCBSTTBFBKMK: break;
+// case NS_rtf::LN_FCPLCFBKF: break;
+// case NS_rtf::LN_LCBPLCFBKF: break;
+// case NS_rtf::LN_FCPLCFBKL: break;
+// case NS_rtf::LN_LCBPLCFBKL: break;
+// case NS_rtf::LN_FCCMDS: break;
+// case NS_rtf::LN_LCBCMDS: break;
+// case NS_rtf::LN_FCPLCMCR: break;
+// case NS_rtf::LN_LCBPLCMCR: break;
+// case NS_rtf::LN_FCSTTBFMCR: break;
+// case NS_rtf::LN_LCBSTTBFMCR: break;
+// case NS_rtf::LN_FCPRDRVR: break;
+// case NS_rtf::LN_LCBPRDRVR: break;
+// case NS_rtf::LN_FCPRENVPORT: break;
+// case NS_rtf::LN_LCBPRENVPORT: break;
+// case NS_rtf::LN_FCPRENVLAND: break;
+// case NS_rtf::LN_LCBPRENVLAND: break;
+// case NS_rtf::LN_FCWSS: break;
+// case NS_rtf::LN_LCBWSS: break;
+// case NS_rtf::LN_FCDOP: break;
+// case NS_rtf::LN_LCBDOP: break;
+// case NS_rtf::LN_FCSTTBFASSOC: break;
+// case NS_rtf::LN_LCBSTTBFASSOC: break;
+// case NS_rtf::LN_FCCLX: break;
+// case NS_rtf::LN_LCBCLX: break;
+// case NS_rtf::LN_FCPLCFPGDFTN: break;
+// case NS_rtf::LN_LCBPLCFPGDFTN: break;
+// case NS_rtf::LN_FCAUTOSAVESOURCE: break;
+// case NS_rtf::LN_LCBAUTOSAVESOURCE: break;
+// case NS_rtf::LN_FCGRPXSTATNOWNERS: break;
+// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break;
+// case NS_rtf::LN_FCSTTBFATNBKMK: break;
+// case NS_rtf::LN_LCBSTTBFATNBKMK: break;
+// case NS_rtf::LN_FCPLCDOAMOM: break;
+// case NS_rtf::LN_LCBPLCDOAMOM: break;
+// case NS_rtf::LN_FCPLCDOAHDR: break;
+// case NS_rtf::LN_LCBPLCDOAHDR: break;
+// case NS_rtf::LN_FCPLCSPAMOM: break;
+// case NS_rtf::LN_LCBPLCSPAMOM: break;
+// case NS_rtf::LN_FCPLCSPAHDR: break;
+// case NS_rtf::LN_LCBPLCSPAHDR: break;
+// case NS_rtf::LN_FCPLCFATNBKF: break;
+// case NS_rtf::LN_LCBPLCFATNBKF: break;
+// case NS_rtf::LN_FCPLCFATNBKL: break;
+// case NS_rtf::LN_LCBPLCFATNBKL: break;
+// case NS_rtf::LN_FCPMS: break;
+// case NS_rtf::LN_LCBPMS: break;
+// case NS_rtf::LN_FCFORMFLDSTTBF: break;
+// case NS_rtf::LN_LCBFORMFLDSTTBF: break;
+// case NS_rtf::LN_FCPLCFENDREF: break;
+// case NS_rtf::LN_LCBPLCFENDREF: break;
+// case NS_rtf::LN_FCPLCFENDTXT: break;
+// case NS_rtf::LN_LCBPLCFENDTXT: break;
+// case NS_rtf::LN_FCPLCFFLDEDN: break;
+// case NS_rtf::LN_LCBPLCFFLDEDN: break;
+// case NS_rtf::LN_FCPLCFPGDEDN: break;
+// case NS_rtf::LN_LCBPLCFPGDEDN: break;
+// case NS_rtf::LN_FCDGGINFO: break;
+// case NS_rtf::LN_LCBDGGINFO: break;
+// case NS_rtf::LN_FCSTTBFRMARK: break;
+// case NS_rtf::LN_LCBSTTBFRMARK: break;
+// case NS_rtf::LN_FCSTTBFCAPTION: break;
+// case NS_rtf::LN_LCBSTTBFCAPTION: break;
+// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break;
+// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break;
+// case NS_rtf::LN_FCPLCFWKB: break;
+// case NS_rtf::LN_LCBPLCFWKB: break;
+// case NS_rtf::LN_FCPLCFSPL: break;
+// case NS_rtf::LN_LCBPLCFSPL: break;
+// case NS_rtf::LN_FCPLCFTXBXTXT: break;
+// case NS_rtf::LN_LCBPLCFTXBXTXT: break;
+// case NS_rtf::LN_FCPLCFFLDTXBX: break;
+// case NS_rtf::LN_LCBPLCFFLDTXBX: break;
+// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break;
+// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break;
+// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break;
+// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break;
+// case NS_rtf::LN_FCSTWUSER: break;
+// case NS_rtf::LN_LCBSTWUSER: break;
+// case NS_rtf::LN_FCSTTBTTMBD: break;
+// case NS_rtf::LN_LCBSTTBTTMBD: break;
+// case NS_rtf::LN_FCUNUSED: break;
+// case NS_rtf::LN_LCBUNUSED: break;
+// case NS_rtf::LN_FCPGDMOTHER: break;
+// case NS_rtf::LN_LCBPGDMOTHER: break;
+// case NS_rtf::LN_FCBKDMOTHER: break;
+// case NS_rtf::LN_LCBBKDMOTHER: break;
+// case NS_rtf::LN_FCPGDFTN: break;
+// case NS_rtf::LN_LCBPGDFTN: break;
+// case NS_rtf::LN_FCBKDFTN: break;
+// case NS_rtf::LN_LCBBKDFTN: break;
+// case NS_rtf::LN_FCPGDEDN: break;
+// case NS_rtf::LN_LCBPGDEDN: break;
+// case NS_rtf::LN_FCBKDEDN: break;
+// case NS_rtf::LN_LCBBKDEDN: break;
+// case NS_rtf::LN_FCSTTBFINTLFLD: break;
+// case NS_rtf::LN_LCBSTTBFINTLFLD: break;
+// case NS_rtf::LN_FCROUTESLIP: break;
+// case NS_rtf::LN_LCBROUTESLIP: break;
+// case NS_rtf::LN_FCSTTBSAVEDBY: break;
+// case NS_rtf::LN_LCBSTTBSAVEDBY: break;
+// case NS_rtf::LN_FCSTTBFNM: break;
+// case NS_rtf::LN_LCBSTTBFNM: break;
+// case NS_rtf::LN_FCPLCFLST: break;
+// case NS_rtf::LN_LCBPLCFLST: break;
+// case NS_rtf::LN_FCPLFLFO: break;
+// case NS_rtf::LN_LCBPLFLFO: break;
+// case NS_rtf::LN_FCPLCFTXBXBKD: break;
+// case NS_rtf::LN_LCBPLCFTXBXBKD: break;
+// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break;
+// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break;
+// case NS_rtf::LN_FCDOCUNDO: break;
+// case NS_rtf::LN_LCBDOCUNDO: break;
+// case NS_rtf::LN_FCRGBUSE: break;
+// case NS_rtf::LN_LCBRGBUSE: break;
+// case NS_rtf::LN_FCUSP: break;
+// case NS_rtf::LN_LCBUSP: break;
+// case NS_rtf::LN_FCUSKF: break;
+// case NS_rtf::LN_LCBUSKF: break;
+// case NS_rtf::LN_FCPLCUPCRGBUSE: break;
+// case NS_rtf::LN_LCBPLCUPCRGBUSE: break;
+// case NS_rtf::LN_FCPLCUPCUSP: break;
+// case NS_rtf::LN_LCBPLCUPCUSP: break;
+// case NS_rtf::LN_FCSTTBGLSYSTYLE: break;
+// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break;
+// case NS_rtf::LN_FCPLGOSL: break;
+// case NS_rtf::LN_LCBPLGOSL: break;
+// case NS_rtf::LN_FCPLCOCX: break;
+// case NS_rtf::LN_LCBPLCOCX: break;
+// case NS_rtf::LN_FCPLCFBTELVC: break;
+// case NS_rtf::LN_LCBPLCFBTELVC: break;
+// case NS_rtf::LN_DWLOWDATETIME: break;
+// case NS_rtf::LN_DWHIGHDATETIME: break;
+// case NS_rtf::LN_FCPLCFLVC: break;
+// case NS_rtf::LN_LCBPLCFLVC: break;
+// case NS_rtf::LN_FCPLCASUMY: break;
+// case NS_rtf::LN_LCBPLCASUMY: break;
+// case NS_rtf::LN_FCPLCFGRAM: break;
+// case NS_rtf::LN_LCBPLCFGRAM: break;
+// case NS_rtf::LN_FCSTTBLISTNAMES: break;
+// case NS_rtf::LN_LCBSTTBLISTNAMES: break;
+// case NS_rtf::LN_FCSTTBFUSSR: break;
+// case NS_rtf::LN_LCBSTTBFUSSR: break;
+// case NS_rtf::LN_FN: break;
+// case NS_rtf::LN_FCSEPX: break;
+// case NS_rtf::LN_FNMPR: break;
+// case NS_rtf::LN_FCMPR: break;
+// case NS_rtf::LN_ICOFORE: break;
+// case NS_rtf::LN_ICOBACK: break;
+// case NS_rtf::LN_IPAT: break;
+// case NS_rtf::LN_SHDFORECOLOR: break;
+// case NS_rtf::LN_SHDBACKCOLOR: break;
+// case NS_rtf::LN_SHDPATTERN: break;
+// case NS_rtf::LN_DPTLINEWIDTH: break;
+// case NS_rtf::LN_BRCTYPE: break;
+// case NS_rtf::LN_ICO: break;
+// case NS_rtf::LN_DPTSPACE: break;
+// case NS_rtf::LN_FSHADOW: break;
+// case NS_rtf::LN_FFRAME: break;
+// case NS_rtf::LN_UNUSED2_15: break;
+// case NS_rtf::LN_FFIRSTMERGED: break;
+// case NS_rtf::LN_FMERGED: break;
+// case NS_rtf::LN_FVERTICAL: break;
+// case NS_rtf::LN_FBACKWARD: break;
+// case NS_rtf::LN_FROTATEFONT: break;
+// case NS_rtf::LN_FVERTMERGE: break;
+// case NS_rtf::LN_FVERTRESTART: break;
+// case NS_rtf::LN_VERTALIGN: break;
+// case NS_rtf::LN_FUNUSED: break;
+// case NS_rtf::LN_WUNUSED: break;
+// case NS_rtf::LN_BRCTOP: break;
+// case NS_rtf::LN_BRCLEFT: break;
+// case NS_rtf::LN_BRCBOTTOM: break;
+// case NS_rtf::LN_BRCRIGHT: break;
+// case NS_rtf::LN_IBKL: break;
+// case NS_rtf::LN_ITCFIRST: break;
+// case NS_rtf::LN_FPUB: break;
+// case NS_rtf::LN_ITCLIM: break;
+// case NS_rtf::LN_FCOL: break;
+// case NS_rtf::LN_LINECOLOR: break;
+// case NS_rtf::LN_LINEWIDTH: break;
+// case NS_rtf::LN_LINETYPE: break;
+// case NS_rtf::LN_MM: break;
+// case NS_rtf::LN_XEXT: break;
+// case NS_rtf::LN_YEXT: break;
+// case NS_rtf::LN_HMF: break;
+// case NS_rtf::LN_LCB: break;
+// case NS_rtf::LN_CBHEADER: break;
+// case NS_rtf::LN_MFP: break;
+// case NS_rtf::LN_BM_RCWINMF: break;
+// case NS_rtf::LN_DXAGOAL: break;
+// case NS_rtf::LN_DYAGOAL: break;
+// case NS_rtf::LN_MX: break;
+// case NS_rtf::LN_MY: break;
+// case NS_rtf::LN_DXACROPLEFT: break;
+// case NS_rtf::LN_DYACROPTOP: break;
+// case NS_rtf::LN_DXACROPRIGHT: break;
+// case NS_rtf::LN_DYACROPBOTTOM: break;
+// case NS_rtf::LN_BRCL: break;
+// case NS_rtf::LN_FFRAMEEMPTY: break;
+// case NS_rtf::LN_FBITMAP: break;
+// case NS_rtf::LN_FDRAWHATCH: break;
+// case NS_rtf::LN_FERROR: break;
+// case NS_rtf::LN_BPP: break;
+// case NS_rtf::LN_DXAORIGIN: break;
+// case NS_rtf::LN_DYAORIGIN: break;
+// case NS_rtf::LN_CPROPS: break;
+// case NS_rtf::LN_LINEPROPSTOP: break;
+// case NS_rtf::LN_LINEPROPSLEFT: break;
+// case NS_rtf::LN_LINEPROPSBOTTOM: break;
+// case NS_rtf::LN_LINEPROPSRIGHT: break;
+// case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
+// case NS_rtf::LN_LINEPROPSVERTICAL: break;
+// case NS_rtf::LN_headerr: break;
+// case NS_rtf::LN_footerr: break;
+// case NS_rtf::LN_endnote: break;
+// case NS_rtf::LN_BOOKMARKNAME: break;
+
+// case NS_rtf::LN_LISTLEVEL: break;
+// case NS_rtf::LN_LFO: break;
+ case NS_rtf::LN_F:
+ break;
+ case NS_rtf::LN_ALTFONTNAME:
+ m_pImpl->pCurrentEntry->sAlternativeFont = val.getString();
+ break;
+ case NS_rtf::LN_XSZFFN:
+ m_pImpl->pCurrentEntry->sFontName = val.getString();
+ break;
+// case NS_rtf::LN_XSTZNAME: break;
+// case NS_rtf::LN_XSTZNAME1: break;
+// case NS_rtf::LN_UPXSTART: break;
+// case NS_rtf::LN_UPX: break;
+// case NS_rtf::LN_sed: break;
+// case NS_rtf::LN_picf: break;
+// case NS_rtf::LN_rgbrc: break;
+// case NS_rtf::LN_shd: break;
+// case NS_rtf::LN_cellShd: break;
+// case NS_rtf::LN_cellTopColor: break;
+// case NS_rtf::LN_cellLeftColor: break;
+// case NS_rtf::LN_cellBottomColor: break;
+// case NS_rtf::LN_cellRightColor: break;
+
+// case NS_rtf::LN_LISTTABLE: break;
+// case NS_rtf::LN_LFOTABLE: break;
+// case NS_rtf::LN_FONTTABLE: break;
+// case NS_rtf::LN_STYLESHEET: break;
+ default:
+ {
+ //----> debug
+ int nVal = val.getInt();
+ ++nVal;
+ //<---- debug
+ }
+ }
+}
+/*-- 19.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::sprm(doctok::Sprm&)
+{
+}
+/*-- 19.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::entry(int /*pos*/, doctok::Reference<Properties>::Pointer_t ref)
+{
+ //create a new font entry
+ OSL_ENSURE( !m_pImpl->pCurrentEntry, "current entry has to be NULL here");
+ m_pImpl->pCurrentEntry = new FontEntry ;
+ ref->resolve(*this);
+ //append it to the table
+ m_pImpl->aFontEntries.push_back( *m_pImpl->pCurrentEntry );
+ m_pImpl->pCurrentEntry = 0;
+}
+/*-- 19.06.2006 12:04:34---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::startSectionGroup()
+{
+}
+/*-- 19.06.2006 12:04:35---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::endSectionGroup()
+{
+}
+/*-- 19.06.2006 12:04:35---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::startParagraphGroup()
+{
+}
+/*-- 19.06.2006 12:04:35---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::endParagraphGroup()
+{
+}
+/*-- 19.06.2006 12:04:35---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::startCharacterGroup()
+{
+}
+/*-- 19.06.2006 12:04:35---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::endCharacterGroup()
+{
+}
+/*-- 19.06.2006 12:04:36---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::text(const sal_uInt8*, size_t )
+{
+}
+/*-- 19.06.2006 12:04:36---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::utext(const sal_uInt8* , size_t)
+{
+}
+/*-- 19.06.2006 12:04:37---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::props(doctok::Reference<Properties>::Pointer_t)
+{
+}
+/*-- 19.06.2006 12:04:37---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::table(doctok::Id, doctok::Reference<Table>::Pointer_t)
+{
+}
+/*-- 19.06.2006 12:04:38---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::substream(doctok::Id, ::doctok::Reference<Stream>::Pointer_t)
+{
+}
+/*-- 19.06.2006 12:04:39---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void FontTable::info(const string& )
+{
+}
+/*-- 21.06.2006 11:21:38---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+const FontEntry* FontTable::getFontEntry(sal_uInt32 nIndex)
+{
+ const FontEntry* pRet = 0;
+ if(m_pImpl->aFontEntries.size() > nIndex)
+ {
+ pRet = &m_pImpl->aFontEntries[nIndex];
+ }
+ return pRet;
+}
+/*-- 21.06.2006 11:21:38---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_uInt32 FontTable::size()
+{
+ return m_pImpl->aFontEntries.size();
+}
+
+}//namespace dmapper
+
diff --git a/writerfilter/source/dmapper/FontTable.hxx b/writerfilter/source/dmapper/FontTable.hxx
new file mode 100644
index 000000000000..01a771b9c161
--- /dev/null
+++ b/writerfilter/source/dmapper/FontTable.hxx
@@ -0,0 +1,79 @@
+#ifndef INCLUDED_FONTTABLE_HXX
+#define INCLUDED_FONTTABLE_HXX
+
+#ifndef INCLUDED_WRITERFILTERDLLAPI_H
+#include <WriterFilterDllApi.hxx>
+#endif
+#include <doctok/WW8ResourceModel.hxx>
+#include <com/sun/star/lang/XComponent.hpp>
+
+namespace dmapper
+{
+using namespace std;
+
+struct FontTable_Impl;
+struct FontEntry
+{
+ ::rtl::OUString sFontName;
+ ::rtl::OUString sFontName1;
+ bool bTrueType;
+ sal_Int16 nPitchRequest;
+ sal_Int32 nTextEncoding;
+ sal_Int32 nFontFamilyId;
+ sal_Int32 nBaseWeight;
+ sal_Int32 nAltFontIndex;
+ ::rtl::OUString sPanose;
+ ::rtl::OUString sFontSignature;
+ ::rtl::OUString sAlternativeFont;
+ FontEntry() :
+ bTrueType(false),
+ nPitchRequest( 0 ),
+ nTextEncoding( 0 ),
+ nFontFamilyId( 0 ),
+ nBaseWeight( 0 ),
+ nAltFontIndex( 0 )
+ {}
+};
+class WRITERFILTER_DLLPRIVATE FontTable : public doctok::Properties, public doctok::Table
+ /*,public doctok::BinaryObj*/, public doctok::Stream
+{
+ FontTable_Impl *m_pImpl;
+
+public:
+ FontTable();
+ virtual ~FontTable();
+
+ // Properties
+ virtual void attribute(doctok::Id Name, doctok::Value & val);
+ virtual void sprm(doctok::Sprm & sprm);
+
+ // Table
+ virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref);
+
+ // BinaryObj
+// virtual void data(const sal_Int8* buf, size_t len,
+// doctok::Reference<Properties>::Pointer_t ref);
+
+ // Stream
+ virtual void startSectionGroup();
+ virtual void endSectionGroup();
+ virtual void startParagraphGroup();
+ virtual void endParagraphGroup();
+ virtual void startCharacterGroup();
+ virtual void endCharacterGroup();
+ virtual void text(const sal_uInt8 * data, size_t len);
+ virtual void utext(const sal_uInt8 * data, size_t len);
+ virtual void props(doctok::Reference<Properties>::Pointer_t ref);
+ virtual void table(doctok::Id name,
+ doctok::Reference<Table>::Pointer_t ref);
+ virtual void substream(doctok::Id name,
+ ::doctok::Reference<Stream>::Pointer_t ref);
+ virtual void info(const string & info);
+
+ const FontEntry* getFontEntry(sal_uInt32 nIndex);
+ sal_uInt32 size();
+};
+typedef boost::shared_ptr< FontTable > FontTablePtr;
+}
+
+#endif //
diff --git a/writerfilter/source/dmapper/LFOTable.cxx b/writerfilter/source/dmapper/LFOTable.cxx
new file mode 100644
index 000000000000..4b5f5a138ff7
--- /dev/null
+++ b/writerfilter/source/dmapper/LFOTable.cxx
@@ -0,0 +1,564 @@
+#ifndef INCLUDED_LFOTABLE_HXX
+#include <LFOTable.hxx>
+#endif
+#ifndef INCLUDED_RESOURCESIDS
+#include <doctok/resourceids.hxx>
+#endif
+#include <vector>
+
+namespace dmapper
+{
+using namespace std;
+using namespace writerfilter;
+
+struct LFOLevel
+{
+ sal_Int32 nIStartAt;
+ sal_Int32 nFStartAt;
+ sal_Int32 nFFormatting;
+ ::rtl::OUString sILevel;
+
+ LFOLevel() :
+ nIStartAt(-1)
+ ,nFStartAt(-1)
+ ,nFFormatting(-1)
+ {}
+};
+typedef ::boost::shared_ptr< LFOLevel > LFOLevelPtr;
+struct LFOEntry
+{
+ sal_Int32 nListId;
+ sal_Int32 nCLFOLevel;
+ vector< LFOLevelPtr > aLFOLevels; //usually empty
+
+ LFOEntry() :
+ nListId(-1)
+ ,nCLFOLevel(-1)
+ {}
+};
+typedef ::boost::shared_ptr<LFOEntry> LFOEntryPtr;
+
+struct LFOTable_Impl
+{
+ ::std::vector< LFOEntryPtr > m_aLFOEntries; //properties of each level
+ LFOEntryPtr m_pCurrentEntry;
+
+};
+/*-- 27.06.2006 15:13:03---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+LFOTable::LFOTable() :
+ m_pImpl( new LFOTable_Impl )
+{
+}
+/*-- 27.06.2006 15:13:03---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+LFOTable::~LFOTable()
+{
+}
+/*-- 27.06.2006 15:13:04---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void LFOTable::attribute(doctok::Id Name, doctok::Value & val)
+{
+ OSL_ENSURE(m_pImpl->m_pCurrentEntry, "no current entry to write to");
+ if(!m_pImpl->m_pCurrentEntry)
+ return;
+
+ int nIntValue = val.getInt();
+ switch( Name )
+ {
+// case NS_rtf::LN_ISTD: break;//index of applied style
+ case NS_rtf::LN_ISTARTAT:
+ case NS_rtf::LN_ILVL:
+ case NS_rtf::LN_FSTARTAT:
+ case NS_rtf::LN_FFORMATTING:
+ if(m_pImpl->m_pCurrentEntry->aLFOLevels.size())
+ {
+ vector< LFOLevelPtr >::reverse_iterator aEndIter = m_pImpl->m_pCurrentEntry->aLFOLevels.rbegin();
+ switch( Name )
+ {
+ case NS_rtf::LN_ISTARTAT:
+ (*aEndIter)->nIStartAt = nIntValue;
+ break;
+ case NS_rtf::LN_ILVL:
+ (*aEndIter)->sILevel = val.getString();
+ break;
+ case NS_rtf::LN_FSTARTAT:
+ (*aEndIter)->nFStartAt = nIntValue;
+ break;
+ case NS_rtf::LN_FFORMATTING:
+ (*aEndIter)->nFFormatting = nIntValue;
+ break;
+ default:;
+ }
+ }
+ break;
+// case NS_rtf::LN_NFC: break;
+// case NS_rtf::LN_JC: break;
+// case NS_rtf::LN_FLEGAL: break;
+// case NS_rtf::LN_FNORESTART: break;
+// case NS_rtf::LN_FPREV: break;
+// case NS_rtf::LN_FPREVSPACE: break;
+// case NS_rtf::LN_FWORD6: break;
+// case NS_rtf::LN_UNUSED5_7: break;
+// case NS_rtf::LN_RGBXCHNUMS: break;
+// case NS_rtf::LN_IXCHFOLLOW: break;
+// case NS_rtf::LN_DXASPACE: break;
+// case NS_rtf::LN_DXAINDENT: break;
+// case NS_rtf::LN_CBGRPPRLCHPX: break;
+// case NS_rtf::LN_CBGRPPRLPAPX: break;
+ case NS_rtf::LN_LSID:
+ m_pImpl->m_pCurrentEntry->nListId = nIntValue;
+ break;
+// case NS_rtf::LN_TPLC: break;
+// case NS_rtf::LN_RGISTD: break;
+// case NS_rtf::LN_FSIMPLELIST: break;
+// case NS_rtf::LN_FRESTARTHDN: break;
+// case NS_rtf::LN_UNSIGNED26_2: break;
+// case NS_rtf::LN_UNSIGNED4_6: break;
+ case NS_rtf::LN_UNUSED4:
+ case NS_rtf::LN_UNUSED8:
+ // as the names state they are unused
+ break;
+ case NS_rtf::LN_CLFOLVL:
+ m_pImpl->m_pCurrentEntry->nCLFOLevel = nIntValue;
+ break;
+// case NS_rtf::LN_CBFFNM1: break;
+// case NS_rtf::LN_PRQ: break;
+// case NS_rtf::LN_FTRUETYPE: break;
+// case NS_rtf::LN_UNUSED1_3: break;
+// case NS_rtf::LN_FF: break;
+// case NS_rtf::LN_UNUSED1_7: break;
+// case NS_rtf::LN_WWEIGHT: break;
+// case NS_rtf::LN_CHS: break;
+// case NS_rtf::LN_IXCHSZALT: break;
+// case NS_rtf::LN_PANOSE: break;
+// case NS_rtf::LN_FS: break;
+// case NS_rtf::LN_STI: break;
+// case NS_rtf::LN_FSCRATCH: break;
+// case NS_rtf::LN_FINVALHEIGHT: break;
+// case NS_rtf::LN_FHASUPE: break;
+// case NS_rtf::LN_FMASSCOPY: break;
+// case NS_rtf::LN_SGC: break;
+// case NS_rtf::LN_ISTDBASE: break;
+// case NS_rtf::LN_CUPX: break;
+// case NS_rtf::LN_ISTDNEXT: break;
+// case NS_rtf::LN_BCHUPE: break;
+// case NS_rtf::LN_FAUTOREDEF: break;
+// case NS_rtf::LN_FHIDDEN: break;
+// case NS_rtf::LN_UNUSED8_3: break;
+// case NS_rtf::LN_CSTD: break;
+// case NS_rtf::LN_CBSTDBASEINFILE: break;
+// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
+// case NS_rtf::LN_UNUSED4_2: break;
+// case NS_rtf::LN_STIMAXWHENSAVED: break;
+// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
+// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
+// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
+// case NS_rtf::LN_WIDENT: break;
+// case NS_rtf::LN_NFIB: break;
+// case NS_rtf::LN_NPRODUCT: break;
+// case NS_rtf::LN_LID: break;
+// case NS_rtf::LN_PNNEXT: break;
+// case NS_rtf::LN_FDOT: break;
+// case NS_rtf::LN_FGLSY: break;
+// case NS_rtf::LN_FCOMPLEX: break;
+// case NS_rtf::LN_FHASPIC: break;
+// case NS_rtf::LN_CQUICKSAVES: break;
+// case NS_rtf::LN_FENCRYPTED: break;
+// case NS_rtf::LN_FWHICHTBLSTM: break;
+// case NS_rtf::LN_FREADONLYRECOMMENDED: break;
+// case NS_rtf::LN_FWRITERESERVATION: break;
+// case NS_rtf::LN_FEXTCHAR: break;
+// case NS_rtf::LN_FLOADOVERRIDE: break;
+// case NS_rtf::LN_FFAREAST: break;
+// case NS_rtf::LN_FCRYPTO: break;
+// case NS_rtf::LN_NFIBBACK: break;
+// case NS_rtf::LN_LKEY: break;
+// case NS_rtf::LN_ENVR: break;
+// case NS_rtf::LN_FMAC: break;
+// case NS_rtf::LN_FEMPTYSPECIAL: break;
+// case NS_rtf::LN_FLOADOVERRIDEPAGE: break;
+// case NS_rtf::LN_FFUTURESAVEDUNDO: break;
+// case NS_rtf::LN_FWORD97SAVED: break;
+// case NS_rtf::LN_FSPARE0: break;
+// case NS_rtf::LN_CHSTABLES: break;
+// case NS_rtf::LN_FCMIN: break;
+// case NS_rtf::LN_FCMAC: break;
+// case NS_rtf::LN_CSW: break;
+// case NS_rtf::LN_WMAGICCREATED: break;
+// case NS_rtf::LN_WMAGICREVISED: break;
+// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break;
+// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break;
+// case NS_rtf::LN_PNFBPCHPFIRST_W6: break;
+// case NS_rtf::LN_PNCHPFIRST_W6: break;
+// case NS_rtf::LN_CPNBTECHP_W6: break;
+// case NS_rtf::LN_PNFBPPAPFIRST_W6: break;
+// case NS_rtf::LN_PNPAPFIRST_W6: break;
+// case NS_rtf::LN_CPNBTEPAP_W6: break;
+// case NS_rtf::LN_PNFBPLVCFIRST_W6: break;
+// case NS_rtf::LN_PNLVCFIRST_W6: break;
+// case NS_rtf::LN_CPNBTELVC_W6: break;
+// case NS_rtf::LN_LIDFE: break;
+// case NS_rtf::LN_CLW: break;
+// case NS_rtf::LN_CBMAC: break;
+// case NS_rtf::LN_LPRODUCTCREATED: break;
+// case NS_rtf::LN_LPRODUCTREVISED: break;
+// case NS_rtf::LN_CCPTEXT: break;
+// case NS_rtf::LN_CCPFTN: break;
+// case NS_rtf::LN_CCPHDD: break;
+// case NS_rtf::LN_CCPMCR: break;
+// case NS_rtf::LN_CCPATN: break;
+// case NS_rtf::LN_CCPEDN: break;
+// case NS_rtf::LN_CCPTXBX: break;
+// case NS_rtf::LN_CCPHDRTXBX: break;
+// case NS_rtf::LN_PNFBPCHPFIRST: break;
+// case NS_rtf::LN_PNCHPFIRST: break;
+// case NS_rtf::LN_CPNBTECHP: break;
+// case NS_rtf::LN_PNFBPPAPFIRST: break;
+// case NS_rtf::LN_PNPAPFIRST: break;
+// case NS_rtf::LN_CPNBTEPAP: break;
+// case NS_rtf::LN_PNFBPLVCFIRST: break;
+// case NS_rtf::LN_PNLVCFIRST: break;
+// case NS_rtf::LN_CPNBTELVC: break;
+// case NS_rtf::LN_FCISLANDFIRST: break;
+// case NS_rtf::LN_FCISLANDLIM: break;
+// case NS_rtf::LN_CFCLCB: break;
+// case NS_rtf::LN_FCSTSHFORIG: break;
+// case NS_rtf::LN_LCBSTSHFORIG: break;
+// case NS_rtf::LN_FCSTSHF: break;
+// case NS_rtf::LN_LCBSTSHF: break;
+// case NS_rtf::LN_FCPLCFFNDREF: break;
+// case NS_rtf::LN_LCBPLCFFNDREF: break;
+// case NS_rtf::LN_FCPLCFFNDTXT: break;
+// case NS_rtf::LN_LCBPLCFFNDTXT: break;
+// case NS_rtf::LN_FCPLCFANDREF: break;
+// case NS_rtf::LN_LCBPLCFANDREF: break;
+// case NS_rtf::LN_FCPLCFANDTXT: break;
+// case NS_rtf::LN_LCBPLCFANDTXT: break;
+// case NS_rtf::LN_FCPLCFSED: break;
+// case NS_rtf::LN_LCBPLCFSED: break;
+// case NS_rtf::LN_FCPLCFPAD: break;
+// case NS_rtf::LN_LCBPLCFPAD: break;
+// case NS_rtf::LN_FCPLCFPHE: break;
+// case NS_rtf::LN_LCBPLCFPHE: break;
+// case NS_rtf::LN_FCSTTBFGLSY: break;
+// case NS_rtf::LN_LCBSTTBFGLSY: break;
+// case NS_rtf::LN_FCPLCFGLSY: break;
+// case NS_rtf::LN_LCBPLCFGLSY: break;
+// case NS_rtf::LN_FCPLCFHDD: break;
+// case NS_rtf::LN_LCBPLCFHDD: break;
+// case NS_rtf::LN_FCPLCFBTECHPX: break;
+// case NS_rtf::LN_LCBPLCFBTECHPX: break;
+// case NS_rtf::LN_FCPLCFBTEPAPX: break;
+// case NS_rtf::LN_LCBPLCFBTEPAPX: break;
+// case NS_rtf::LN_FCPLCFSEA: break;
+// case NS_rtf::LN_LCBPLCFSEA: break;
+// case NS_rtf::LN_FCSTTBFFFN: break;
+// case NS_rtf::LN_LCBSTTBFFFN: break;
+// case NS_rtf::LN_FCPLCFFLDMOM: break;
+// case NS_rtf::LN_LCBPLCFFLDMOM: break;
+// case NS_rtf::LN_FCPLCFFLDHDR: break;
+// case NS_rtf::LN_LCBPLCFFLDHDR: break;
+// case NS_rtf::LN_FCPLCFFLDFTN: break;
+// case NS_rtf::LN_LCBPLCFFLDFTN: break;
+// case NS_rtf::LN_FCPLCFFLDATN: break;
+// case NS_rtf::LN_LCBPLCFFLDATN: break;
+// case NS_rtf::LN_FCPLCFFLDMCR: break;
+// case NS_rtf::LN_LCBPLCFFLDMCR: break;
+// case NS_rtf::LN_FCSTTBFBKMK: break;
+// case NS_rtf::LN_LCBSTTBFBKMK: break;
+// case NS_rtf::LN_FCPLCFBKF: break;
+// case NS_rtf::LN_LCBPLCFBKF: break;
+// case NS_rtf::LN_FCPLCFBKL: break;
+// case NS_rtf::LN_LCBPLCFBKL: break;
+// case NS_rtf::LN_FCCMDS: break;
+// case NS_rtf::LN_LCBCMDS: break;
+// case NS_rtf::LN_FCPLCMCR: break;
+// case NS_rtf::LN_LCBPLCMCR: break;
+// case NS_rtf::LN_FCSTTBFMCR: break;
+// case NS_rtf::LN_LCBSTTBFMCR: break;
+// case NS_rtf::LN_FCPRDRVR: break;
+// case NS_rtf::LN_LCBPRDRVR: break;
+// case NS_rtf::LN_FCPRENVPORT: break;
+// case NS_rtf::LN_LCBPRENVPORT: break;
+// case NS_rtf::LN_FCPRENVLAND: break;
+// case NS_rtf::LN_LCBPRENVLAND: break;
+// case NS_rtf::LN_FCWSS: break;
+// case NS_rtf::LN_LCBWSS: break;
+// case NS_rtf::LN_FCDOP: break;
+// case NS_rtf::LN_LCBDOP: break;
+// case NS_rtf::LN_FCSTTBFASSOC: break;
+// case NS_rtf::LN_LCBSTTBFASSOC: break;
+// case NS_rtf::LN_FCCLX: break;
+// case NS_rtf::LN_LCBCLX: break;
+// case NS_rtf::LN_FCPLCFPGDFTN: break;
+// case NS_rtf::LN_LCBPLCFPGDFTN: break;
+// case NS_rtf::LN_FCAUTOSAVESOURCE: break;
+// case NS_rtf::LN_LCBAUTOSAVESOURCE: break;
+// case NS_rtf::LN_FCGRPXSTATNOWNERS: break;
+// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break;
+// case NS_rtf::LN_FCSTTBFATNBKMK: break;
+// case NS_rtf::LN_LCBSTTBFATNBKMK: break;
+// case NS_rtf::LN_FCPLCDOAMOM: break;
+// case NS_rtf::LN_LCBPLCDOAMOM: break;
+// case NS_rtf::LN_FCPLCDOAHDR: break;
+// case NS_rtf::LN_LCBPLCDOAHDR: break;
+// case NS_rtf::LN_FCPLCSPAMOM: break;
+// case NS_rtf::LN_LCBPLCSPAMOM: break;
+// case NS_rtf::LN_FCPLCSPAHDR: break;
+// case NS_rtf::LN_LCBPLCSPAHDR: break;
+// case NS_rtf::LN_FCPLCFATNBKF: break;
+// case NS_rtf::LN_LCBPLCFATNBKF: break;
+// case NS_rtf::LN_FCPLCFATNBKL: break;
+// case NS_rtf::LN_LCBPLCFATNBKL: break;
+// case NS_rtf::LN_FCPMS: break;
+// case NS_rtf::LN_LCBPMS: break;
+// case NS_rtf::LN_FCFORMFLDSTTBF: break;
+// case NS_rtf::LN_LCBFORMFLDSTTBF: break;
+// case NS_rtf::LN_FCPLCFENDREF: break;
+// case NS_rtf::LN_LCBPLCFENDREF: break;
+// case NS_rtf::LN_FCPLCFENDTXT: break;
+// case NS_rtf::LN_LCBPLCFENDTXT: break;
+// case NS_rtf::LN_FCPLCFFLDEDN: break;
+// case NS_rtf::LN_LCBPLCFFLDEDN: break;
+// case NS_rtf::LN_FCPLCFPGDEDN: break;
+// case NS_rtf::LN_LCBPLCFPGDEDN: break;
+// case NS_rtf::LN_FCDGGINFO: break;
+// case NS_rtf::LN_LCBDGGINFO: break;
+// case NS_rtf::LN_FCSTTBFRMARK: break;
+// case NS_rtf::LN_LCBSTTBFRMARK: break;
+// case NS_rtf::LN_FCSTTBFCAPTION: break;
+// case NS_rtf::LN_LCBSTTBFCAPTION: break;
+// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break;
+// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break;
+// case NS_rtf::LN_FCPLCFWKB: break;
+// case NS_rtf::LN_LCBPLCFWKB: break;
+// case NS_rtf::LN_FCPLCFSPL: break;
+// case NS_rtf::LN_LCBPLCFSPL: break;
+// case NS_rtf::LN_FCPLCFTXBXTXT: break;
+// case NS_rtf::LN_LCBPLCFTXBXTXT: break;
+// case NS_rtf::LN_FCPLCFFLDTXBX: break;
+// case NS_rtf::LN_LCBPLCFFLDTXBX: break;
+// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break;
+// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break;
+// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break;
+// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break;
+// case NS_rtf::LN_FCSTWUSER: break;
+// case NS_rtf::LN_LCBSTWUSER: break;
+// case NS_rtf::LN_FCSTTBTTMBD: break;
+// case NS_rtf::LN_LCBSTTBTTMBD: break;
+// case NS_rtf::LN_FCUNUSED: break;
+// case NS_rtf::LN_LCBUNUSED: break;
+// case NS_rtf::LN_FCPGDMOTHER: break;
+// case NS_rtf::LN_LCBPGDMOTHER: break;
+// case NS_rtf::LN_FCBKDMOTHER: break;
+// case NS_rtf::LN_LCBBKDMOTHER: break;
+// case NS_rtf::LN_FCPGDFTN: break;
+// case NS_rtf::LN_LCBPGDFTN: break;
+// case NS_rtf::LN_FCBKDFTN: break;
+// case NS_rtf::LN_LCBBKDFTN: break;
+// case NS_rtf::LN_FCPGDEDN: break;
+// case NS_rtf::LN_LCBPGDEDN: break;
+// case NS_rtf::LN_FCBKDEDN: break;
+// case NS_rtf::LN_LCBBKDEDN: break;
+// case NS_rtf::LN_FCSTTBFINTLFLD: break;
+// case NS_rtf::LN_LCBSTTBFINTLFLD: break;
+// case NS_rtf::LN_FCROUTESLIP: break;
+// case NS_rtf::LN_LCBROUTESLIP: break;
+// case NS_rtf::LN_FCSTTBSAVEDBY: break;
+// case NS_rtf::LN_LCBSTTBSAVEDBY: break;
+// case NS_rtf::LN_FCSTTBFNM: break;
+// case NS_rtf::LN_LCBSTTBFNM: break;
+// case NS_rtf::LN_FCPLCFLST: break;
+// case NS_rtf::LN_LCBPLCFLST: break;
+// case NS_rtf::LN_FCPLFLFO: break;
+// case NS_rtf::LN_LCBPLFLFO: break;
+// case NS_rtf::LN_FCPLCFTXBXBKD: break;
+// case NS_rtf::LN_LCBPLCFTXBXBKD: break;
+// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break;
+// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break;
+// case NS_rtf::LN_FCDOCUNDO: break;
+// case NS_rtf::LN_LCBDOCUNDO: break;
+// case NS_rtf::LN_FCRGBUSE: break;
+// case NS_rtf::LN_LCBRGBUSE: break;
+// case NS_rtf::LN_FCUSP: break;
+// case NS_rtf::LN_LCBUSP: break;
+// case NS_rtf::LN_FCUSKF: break;
+// case NS_rtf::LN_LCBUSKF: break;
+// case NS_rtf::LN_FCPLCUPCRGBUSE: break;
+// case NS_rtf::LN_LCBPLCUPCRGBUSE: break;
+// case NS_rtf::LN_FCPLCUPCUSP: break;
+// case NS_rtf::LN_LCBPLCUPCUSP: break;
+// case NS_rtf::LN_FCSTTBGLSYSTYLE: break;
+// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break;
+// case NS_rtf::LN_FCPLGOSL: break;
+// case NS_rtf::LN_LCBPLGOSL: break;
+// case NS_rtf::LN_FCPLCOCX: break;
+// case NS_rtf::LN_LCBPLCOCX: break;
+// case NS_rtf::LN_FCPLCFBTELVC: break;
+// case NS_rtf::LN_LCBPLCFBTELVC: break;
+// case NS_rtf::LN_DWLOWDATETIME: break;
+// case NS_rtf::LN_DWHIGHDATETIME: break;
+// case NS_rtf::LN_FCPLCFLVC: break;
+// case NS_rtf::LN_LCBPLCFLVC: break;
+// case NS_rtf::LN_FCPLCASUMY: break;
+// case NS_rtf::LN_LCBPLCASUMY: break;
+// case NS_rtf::LN_FCPLCFGRAM: break;
+// case NS_rtf::LN_LCBPLCFGRAM: break;
+// case NS_rtf::LN_FCSTTBLISTNAMES: break;
+// case NS_rtf::LN_LCBSTTBLISTNAMES: break;
+// case NS_rtf::LN_FCSTTBFUSSR: break;
+// case NS_rtf::LN_LCBSTTBFUSSR: break;
+// case NS_rtf::LN_FN: break;
+// case NS_rtf::LN_FCSEPX: break;
+// case NS_rtf::LN_FNMPR: break;
+// case NS_rtf::LN_FCMPR: break;
+// case NS_rtf::LN_ICOFORE: break;
+// case NS_rtf::LN_ICOBACK: break;
+// case NS_rtf::LN_IPAT: break;
+// case NS_rtf::LN_SHDFORECOLOR: break;
+// case NS_rtf::LN_SHDBACKCOLOR: break;
+// case NS_rtf::LN_SHDPATTERN: break;
+// case NS_rtf::LN_DPTLINEWIDTH: break;
+// case NS_rtf::LN_BRCTYPE: break;
+// case NS_rtf::LN_ICO: break;
+// case NS_rtf::LN_DPTSPACE: break;
+// case NS_rtf::LN_FSHADOW: break;
+// case NS_rtf::LN_FFRAME: break;
+// case NS_rtf::LN_UNUSED2_15: break;
+// case NS_rtf::LN_FFIRSTMERGED: break;
+// case NS_rtf::LN_FMERGED: break;
+// case NS_rtf::LN_FVERTICAL: break;
+// case NS_rtf::LN_FBACKWARD: break;
+// case NS_rtf::LN_FROTATEFONT: break;
+// case NS_rtf::LN_FVERTMERGE: break;
+// case NS_rtf::LN_FVERTRESTART: break;
+// case NS_rtf::LN_VERTALIGN: break;
+// case NS_rtf::LN_FUNUSED: break;
+// case NS_rtf::LN_WUNUSED: break;
+// case NS_rtf::LN_BRCTOP: break;
+// case NS_rtf::LN_BRCLEFT: break;
+// case NS_rtf::LN_BRCBOTTOM: break;
+// case NS_rtf::LN_BRCRIGHT: break;
+// case NS_rtf::LN_IBKL: break;
+// case NS_rtf::LN_ITCFIRST: break;
+// case NS_rtf::LN_FPUB: break;
+// case NS_rtf::LN_ITCLIM: break;
+// case NS_rtf::LN_FCOL: break;
+// case NS_rtf::LN_LINECOLOR: break;
+// case NS_rtf::LN_LINEWIDTH: break;
+// case NS_rtf::LN_LINETYPE: break;
+// case NS_rtf::LN_MM: break;
+// case NS_rtf::LN_XEXT: break;
+// case NS_rtf::LN_YEXT: break;
+// case NS_rtf::LN_HMF: break;
+// case NS_rtf::LN_LCB: break;
+// case NS_rtf::LN_CBHEADER: break;
+// case NS_rtf::LN_MFP: break;
+// case NS_rtf::LN_BM_RCWINMF: break;
+// case NS_rtf::LN_DXAGOAL: break;
+// case NS_rtf::LN_DYAGOAL: break;
+// case NS_rtf::LN_MX: break;
+// case NS_rtf::LN_MY: break;
+// case NS_rtf::LN_DXACROPLEFT: break;
+// case NS_rtf::LN_DYACROPTOP: break;
+// case NS_rtf::LN_DXACROPRIGHT: break;
+// case NS_rtf::LN_DYACROPBOTTOM: break;
+// case NS_rtf::LN_BRCL: break;
+// case NS_rtf::LN_FFRAMEEMPTY: break;
+// case NS_rtf::LN_FBITMAP: break;
+// case NS_rtf::LN_FDRAWHATCH: break;
+// case NS_rtf::LN_FERROR: break;
+// case NS_rtf::LN_BPP: break;
+// case NS_rtf::LN_DXAORIGIN: break;
+// case NS_rtf::LN_DYAORIGIN: break;
+// case NS_rtf::LN_CPROPS: break;
+// case NS_rtf::LN_LINEPROPSTOP: break;
+// case NS_rtf::LN_LINEPROPSLEFT: break;
+// case NS_rtf::LN_LINEPROPSBOTTOM: break;
+// case NS_rtf::LN_LINEPROPSRIGHT: break;
+// case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
+// case NS_rtf::LN_LINEPROPSVERTICAL: break;
+// case NS_rtf::LN_headerr: break;
+// case NS_rtf::LN_footerr: break;
+// case NS_rtf::LN_endnote: break;
+// case NS_rtf::LN_BOOKMARKNAME: break;
+
+// case NS_rtf::LN_LISTLEVEL: break;
+ case NS_rtf::LN_LFO:
+ {
+ doctok::Reference<Properties>::Pointer_t pProperties;
+ if(m_pImpl->m_pCurrentEntry && (pProperties = val.getProperties()).get())
+ {
+ LFOLevelPtr pLevel( new LFOLevel );
+ m_pImpl->m_pCurrentEntry->aLFOLevels.push_back(pLevel);
+ }
+ }
+ break;
+// case NS_rtf::LN_F: break;
+// case NS_rtf::LN_ALTFONTNAME: break;
+// case NS_rtf::LN_XSZFFN: break;
+// case NS_rtf::LN_XSTZNAME: break;
+// case NS_rtf::LN_XSTZNAME1: break;
+// case NS_rtf::LN_UPXSTART: break;
+// case NS_rtf::LN_UPX: break;
+// case NS_rtf::LN_sed: break;
+// case NS_rtf::LN_picf: break;
+// case NS_rtf::LN_rgbrc: break;
+// case NS_rtf::LN_shd: break;
+// case NS_rtf::LN_cellShd: break;
+// case NS_rtf::LN_cellTopColor: break;
+// case NS_rtf::LN_cellLeftColor: break;
+// case NS_rtf::LN_cellBottomColor: break;
+// case NS_rtf::LN_cellRightColor: break;
+
+// case NS_rtf::LN_LISTTABLE: break;
+// case NS_rtf::LN_LFOTABLE: break;
+// case NS_rtf::LN_FONTTABLE: break;
+// case NS_rtf::LN_STYLESHEET: break;
+ default:
+ {
+ OSL_ASSERT("LFOTable::attribute: default statement");
+ //---->debug
+ int nVal = val.getInt();
+ ++nVal;
+ //<----debug
+ }
+ }
+}
+/*-- 27.06.2006 15:13:04---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void LFOTable::sprm(doctok::Sprm& )
+{
+ OSL_ASSERT("Which sprm should be handled here?");
+}
+/*-- 27.06.2006 15:13:04---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void LFOTable::entry(int, doctok::Reference<Properties>::Pointer_t ref)
+{
+ //create a new LFO entry
+ OSL_ENSURE( !m_pImpl->m_pCurrentEntry.get(), "current entry has to be NULL here");
+ m_pImpl->m_pCurrentEntry.reset( new LFOEntry );
+ ref->resolve(*this);
+ //append it to the table
+ m_pImpl->m_aLFOEntries.push_back( m_pImpl->m_pCurrentEntry );
+ m_pImpl->m_pCurrentEntry = LFOEntryPtr();
+}
+/*-- 27.06.2006 15:13:05---------------------------------------------------
+ 1 based access to the LFO table
+ -----------------------------------------------------------------------*/
+sal_Int32 LFOTable::GetListID(sal_uInt32 nLFO)
+{
+ sal_Int32 nRet = -1;
+ if( nLFO > 0 && nLFO <= m_pImpl->m_aLFOEntries.size())
+ nRet = m_pImpl->m_aLFOEntries[nLFO - 1]->nListId;
+ return nRet;
+}
+
+}//namespace dmapper
+
diff --git a/writerfilter/source/dmapper/LFOTable.hxx b/writerfilter/source/dmapper/LFOTable.hxx
new file mode 100644
index 000000000000..5ccdfeecb057
--- /dev/null
+++ b/writerfilter/source/dmapper/LFOTable.hxx
@@ -0,0 +1,38 @@
+#ifndef INCLUDED_LFOTABLE_HXX
+#define INCLUDED_LFOTABLE_HXX
+
+#ifndef INCLUDED_WRITERFILTERDLLAPI_H
+#include <WriterFilterDllApi.hxx>
+#endif
+#include <doctok/WW8ResourceModel.hxx>
+#include <com/sun/star/lang/XComponent.hpp>
+//#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX
+//#include <PropertyMap.hxx>
+//#endif
+//#include <vector>
+
+namespace dmapper
+{
+
+struct LFOTable_Impl;
+class WRITERFILTER_DLLPRIVATE LFOTable : public doctok::Properties, public doctok::Table
+{
+ LFOTable_Impl *m_pImpl;
+public:
+ LFOTable();
+ virtual ~LFOTable();
+
+ // Properties
+ virtual void attribute(doctok::Id Name, doctok::Value & val);
+ virtual void sprm(doctok::Sprm & sprm);
+
+ // Table
+ virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref);
+
+// sal_uInt32 size();
+ sal_Int32 GetListID(sal_uInt32 nLFO);
+};
+typedef boost::shared_ptr< LFOTable > LFOTablePtr;
+}
+
+#endif //
diff --git a/writerfilter/source/dmapper/ListTable.cxx b/writerfilter/source/dmapper/ListTable.cxx
new file mode 100644
index 000000000000..1ec20754d0fa
--- /dev/null
+++ b/writerfilter/source/dmapper/ListTable.cxx
@@ -0,0 +1,809 @@
+#ifndef INCLUDED_LISTTABLE_HXX
+#include <ListTable.hxx>
+#endif
+#ifndef INCLUDED_DOMAINMAPPER_HXX
+#include <dmapper/DomainMapper.hxx>
+#endif
+#ifndef INCLUDED_DMAPPER_PROPERTYIDS_HXX
+#include <PropertyIds.hxx>
+#endif
+#ifndef INCLUDED_RESOURCESIDS
+#include <doctok/resourceids.hxx>
+#endif
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX
+#include <doctok/WW8ResourceModel.hxx>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXREPLACE_HPP_
+#include <com/sun/star/container/XIndexReplace.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_NUMBERINGTYPE_HPP_
+#include <com/sun/star/style/NumberingType.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_HORIORIENTATION_HPP_
+#include <com/sun/star/text/HoriOrientation.hpp>
+#endif
+#include <vector>
+
+#define NUMBERING_MAX_LEVELS 10
+namespace dmapper
+{
+using namespace writerfilter;
+using namespace com::sun::star;
+
+/*-- 26.06.2006 13:14:29---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Int16 lcl_ConvertNumberingType(sal_Int32 nNFC)
+{
+ sal_Int16 nRet;
+ switch(nNFC)
+ {
+ case 0: nRet = style::NumberingType::ARABIC; break;
+ case 1: nRet = style::NumberingType::ROMAN_UPPER; break;
+ case 2: nRet = style::NumberingType::ROMAN_LOWER; break;
+ case 3: nRet = style::NumberingType::CHARS_UPPER_LETTER_N; break;
+ case 4: nRet = style::NumberingType::CHARS_LOWER_LETTER_N; break;
+ case 5: nRet = style::NumberingType::ARABIC; break;//ORDINAL
+ case 23:
+ case 25:
+ nRet = style::NumberingType::CHAR_SPECIAL;
+ break;
+ case 255: nRet = style::NumberingType::NUMBER_NONE; break;
+ default: nRet = style::NumberingType::ARABIC;
+ }
+ return nRet;
+}
+/*-- 26.06.2006 13:14:29---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+class ListPropertyMap : public PropertyMap
+{
+ friend class ListTable;
+
+ sal_Int32 nIStartAt; //LN_ISTARTAT
+ sal_Int32 nNFC; //LN_NFC
+ sal_Int32 nJC; //LN_JC
+ sal_Int32 nFLegal; //LN_FLEGAL
+ sal_Int32 nFNoRestart; //LN_FNORESTART
+ sal_Int32 nFPrev; //LN_FPREV
+ sal_Int32 nFPrevSpace; //LN_FPREVSPACE
+ sal_Int32 nFWord6; //LN_FWORD6
+ ::rtl::OUString sRGBXchNums; //LN_RGBXCHNUMS
+ sal_Int32 nXChFollow; //LN_IXCHFOLLOW
+ PropertyMapPtr pProperties; //LN_LISTLEVEL
+public:
+ ListPropertyMap() :
+ nIStartAt(-1)
+ ,nNFC(-1)
+ ,nJC(-1)
+ ,nFLegal(-1)
+ ,nFNoRestart(-1)
+ ,nFPrev(-1)
+ ,nFPrevSpace(-1)
+ ,nFWord6(-1)
+ ,nXChFollow(-1)
+ ,pProperties(new PropertyMap)
+ {}
+ ~ListPropertyMap(){}
+
+ PropertyMapPtr GetProperties() { return pProperties; }
+ uno::Sequence< beans::PropertyValue > GetPropertyValues();
+};
+/*-- 26.06.2006 13:44:57---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+#define MAKE_PROPVAL(NameId, Value) \
+ beans::PropertyValue(aPropNameSupplier.GetName(NameId), 0, uno::makeAny(Value), beans::PropertyState_DIRECT_VALUE )
+
+uno::Sequence< beans::PropertyValue > ListPropertyMap::GetPropertyValues()
+{
+ const sal_Int16 aWWToUnoAdjust[] =
+ {
+ text::HoriOrientation::LEFT,
+ text::HoriOrientation::CENTER,
+ text::HoriOrientation::RIGHT,
+ };
+
+ PropertyNameSupplier& aPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier();
+ vector< beans::PropertyValue > aNumberingProperties;
+
+ if( nIStartAt >= 0)
+ aNumberingProperties.push_back( MAKE_PROPVAL(PROP_START_WITH, (sal_Int16)nIStartAt) );
+
+ if( nNFC >= 0)
+ aNumberingProperties.push_back( MAKE_PROPVAL(PROP_NUMBERING_TYPE, lcl_ConvertNumberingType(nNFC)));
+
+ if( nJC >= 0 && nJC <= sal::static_int_cast<sal_Int32>(sizeof(aWWToUnoAdjust) / sizeof(sal_Int16)) )
+ aNumberingProperties.push_back( MAKE_PROPVAL(PROP_ADJUST, aWWToUnoAdjust[nJC]));
+
+ //TODO: handling of nFLegal?
+ //TODO: nFNoRestart lower levels do not restart when higher levels are incremented, like:
+ //1.
+ //1.1
+ //2.2
+ //2.3
+ //3.4
+ //
+
+ if( nFWord6 > 0) //Word 6 compatibility
+ {
+ if( nFPrev == 1)
+ aNumberingProperties.push_back( MAKE_PROPVAL( PROP_PARENT_NUMBERING, (sal_Int16) NUMBERING_MAX_LEVELS ));
+ //TODO: prefixing space nFPrevSpace; - has not been used in WW8 filter
+ }
+
+// TODO: sRGBXchNums; array of inherited numbers
+
+// TODO: nXChFollow; following character 0 - tab, 1 - space, 2 - nothing
+ if(pProperties)
+ {
+
+ _PropertyMap::const_iterator aMapIter = pProperties->begin();
+ _PropertyMap::const_iterator aEndIter = pProperties->end();
+ for( ; aMapIter != aEndIter; ++aMapIter )
+ {
+ aNumberingProperties.push_back(
+ beans::PropertyValue(aMapIter->first, 0, aMapIter->second, beans::PropertyState_DIRECT_VALUE ));
+ }
+ }
+ uno::Sequence< beans::PropertyValue > aRet(aNumberingProperties.size());
+ beans::PropertyValue* pValues = aRet.getArray();
+ vector< beans::PropertyValue >::const_iterator aIt = aNumberingProperties.begin();
+ vector< beans::PropertyValue >::const_iterator aEndIt = aNumberingProperties.end();
+ for(sal_uInt32 nIndex = 0; aIt != aEndIt; ++aIt,++nIndex)
+ {
+ pValues[nIndex] = *aIt;
+ }
+ return aRet;
+}
+typedef boost::shared_ptr<ListPropertyMap> ListPropertyMapPtr;
+
+struct ListEntry
+{
+ sal_Int32 nListId; //LN_LSID
+ sal_Int32 nTPLC; //LN_TPLC
+ ::rtl::OUString sRGISTD; //LN_RGISTD
+ sal_Int32 nSimpleList; //LN_FSIMPLELIST
+ sal_Int32 nRestart; //LN_FRESTARTHDN
+ sal_Int32 nUnsigned; //LN_UNSIGNED26_2
+
+ ::std::vector< ListPropertyMapPtr > aLevelProperties; //properties of each level
+
+ ListPropertyMapPtr pCurrentProperties;
+ uno::Reference< container::XIndexReplace > m_xNumRules;
+
+ ListEntry();
+
+};
+typedef boost::shared_ptr<ListEntry> ListEntryPtr;
+/*-- 23.06.2006 13:58:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+ListEntry::ListEntry() :
+ nListId(-1)
+ ,nTPLC(-1)
+ ,nSimpleList(-1)
+ ,nRestart(-1)
+ ,nUnsigned(-1)
+{
+}
+/*-- 23.06.2006 13:58:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+struct ListTable_Impl
+{
+ DomainMapper& m_rDMapper;
+ uno::Reference< lang::XMultiServiceFactory > m_xFactory;
+
+ std::vector< ListEntryPtr > m_aListEntries;
+ ListEntryPtr m_pCurrentEntry;
+
+
+ ListTable_Impl(DomainMapper& rDMapper, uno::Reference< lang::XMultiServiceFactory > xFactory) :
+ m_rDMapper( rDMapper )
+ ,m_xFactory( xFactory )
+ {}
+
+ void AddLevel();
+};
+/*-- 26.06.2006 14:23:19---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void ListTable_Impl::AddLevel()
+{
+ ListPropertyMapPtr pLevel( new ListPropertyMap );
+ m_pCurrentEntry->pCurrentProperties = pLevel;
+ m_pCurrentEntry->aLevelProperties.push_back(pLevel);
+}
+/*-- 23.06.2006 12:04:32---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+ListTable::ListTable(
+ DomainMapper& rDMapper,
+ uno::Reference< lang::XMultiServiceFactory > xFactory) :
+ m_pImpl( new ListTable_Impl(rDMapper, xFactory) )
+{
+}
+/*-- 23.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+ListTable::~ListTable()
+{
+ delete m_pImpl;
+}
+/*-- 23.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void ListTable::attribute(doctok::Id Name, doctok::Value & val)
+{
+ OSL_ENSURE( m_pImpl->m_pCurrentEntry.get(), "current entry has to be set here");
+ if(!m_pImpl->m_pCurrentEntry.get())
+ return ;
+ int nIntValue = val.getInt();
+ switch(Name)
+ {
+// case NS_rtf::LN_ISTD: break;
+ case NS_rtf::LN_ISTARTAT:
+ case NS_rtf::LN_NFC:
+ case NS_rtf::LN_JC:
+ case NS_rtf::LN_FLEGAL:
+ case NS_rtf::LN_FNORESTART:
+ case NS_rtf::LN_FPREV:
+ case NS_rtf::LN_FPREVSPACE:
+ case NS_rtf::LN_FWORD6:
+ case NS_rtf::LN_RGBXCHNUMS:
+ case NS_rtf::LN_IXCHFOLLOW:
+ if(m_pImpl->m_pCurrentEntry->pCurrentProperties.get())
+ switch(Name)
+ {
+ case NS_rtf::LN_ISTARTAT:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nIStartAt = nIntValue;
+ break;
+ case NS_rtf::LN_NFC:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nNFC = nIntValue;
+ break;
+ case NS_rtf::LN_JC:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nJC = nIntValue;
+ break;
+ case NS_rtf::LN_FLEGAL:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nFLegal = nIntValue;
+ break;
+ case NS_rtf::LN_FNORESTART:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nFNoRestart = nIntValue;
+ break;
+ case NS_rtf::LN_FPREV:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nFPrev = nIntValue;
+ break;
+ case NS_rtf::LN_FPREVSPACE:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nFPrevSpace = nIntValue;
+ break;
+ case NS_rtf::LN_FWORD6:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nFWord6 = nIntValue;
+ break;
+ case NS_rtf::LN_RGBXCHNUMS:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->sRGBXchNums += val.getString();
+ break;
+ case NS_rtf::LN_IXCHFOLLOW:
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->nXChFollow = nIntValue;
+ break;
+ default:
+ OSL_ASSERT("this line should never be reached");
+ }
+ break;
+ case NS_rtf::LN_UNUSED5_7:
+ //unused
+ break;
+// case NS_rtf::LN_DXASPACE: break;
+// case NS_rtf::LN_DXAINDENT: break;
+// case NS_rtf::LN_CBGRPPRLCHPX: break;
+// case NS_rtf::LN_CBGRPPRLPAPX: break;
+ case NS_rtf::LN_LSID:
+ m_pImpl->m_pCurrentEntry->nListId = nIntValue;
+ break;
+ case NS_rtf::LN_TPLC:
+ m_pImpl->m_pCurrentEntry->nTPLC = nIntValue;
+ break;
+ case NS_rtf::LN_RGISTD:
+ m_pImpl->m_pCurrentEntry->sRGISTD += val.getString();
+ break;
+ case NS_rtf::LN_FSIMPLELIST:
+ m_pImpl->m_pCurrentEntry->nSimpleList = nIntValue;
+ break;
+ case NS_rtf::LN_FRESTARTHDN:
+ m_pImpl->m_pCurrentEntry->nRestart = nIntValue;
+ break;
+ case NS_rtf::LN_UNSIGNED26_2:
+ m_pImpl->m_pCurrentEntry->nUnsigned = nIntValue;
+ break;
+// case NS_rtf::LN_ILVL: break;
+// case NS_rtf::LN_FSTARTAT: break;
+// case NS_rtf::LN_FFORMATTING: break;
+// case NS_rtf::LN_UNSIGNED4_6: break;
+// case NS_rtf::LN_UNUSED4: break;
+// case NS_rtf::LN_UNUSED8: break;
+// case NS_rtf::LN_CLFOLVL: break;
+// case NS_rtf::LN_CBFFNM1: break;
+// case NS_rtf::LN_PRQ: break;
+// case NS_rtf::LN_FTRUETYPE: break;
+// case NS_rtf::LN_UNUSED1_3: break;
+// case NS_rtf::LN_FF: break;
+// case NS_rtf::LN_UNUSED1_7: break;
+// case NS_rtf::LN_WWEIGHT: break;
+// case NS_rtf::LN_CHS: break;
+// case NS_rtf::LN_IXCHSZALT: break;
+// case NS_rtf::LN_PANOSE: break;
+// case NS_rtf::LN_FS: break;
+// case NS_rtf::LN_STI: break;
+// case NS_rtf::LN_FSCRATCH: break;
+// case NS_rtf::LN_FINVALHEIGHT: break;
+// case NS_rtf::LN_FHASUPE: break;
+// case NS_rtf::LN_FMASSCOPY: break;
+// case NS_rtf::LN_SGC: break;
+// case NS_rtf::LN_ISTDBASE: break;
+// case NS_rtf::LN_CUPX: break;
+// case NS_rtf::LN_ISTDNEXT: break;
+// case NS_rtf::LN_BCHUPE: break;
+// case NS_rtf::LN_FAUTOREDEF: break;
+// case NS_rtf::LN_FHIDDEN: break;
+// case NS_rtf::LN_UNUSED8_3: break;
+// case NS_rtf::LN_CSTD: break;
+// case NS_rtf::LN_CBSTDBASEINFILE: break;
+// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
+// case NS_rtf::LN_UNUSED4_2: break;
+// case NS_rtf::LN_STIMAXWHENSAVED: break;
+// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
+// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
+// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
+// case NS_rtf::LN_WIDENT: break;
+// case NS_rtf::LN_NFIB: break;
+// case NS_rtf::LN_NPRODUCT: break;
+// case NS_rtf::LN_LID: break;
+// case NS_rtf::LN_PNNEXT: break;
+// case NS_rtf::LN_FDOT: break;
+// case NS_rtf::LN_FGLSY: break;
+// case NS_rtf::LN_FCOMPLEX: break;
+// case NS_rtf::LN_FHASPIC: break;
+// case NS_rtf::LN_CQUICKSAVES: break;
+// case NS_rtf::LN_FENCRYPTED: break;
+// case NS_rtf::LN_FWHICHTBLSTM: break;
+// case NS_rtf::LN_FREADONLYRECOMMENDED: break;
+// case NS_rtf::LN_FWRITERESERVATION: break;
+// case NS_rtf::LN_FEXTCHAR: break;
+// case NS_rtf::LN_FLOADOVERRIDE: break;
+// case NS_rtf::LN_FFAREAST: break;
+// case NS_rtf::LN_FCRYPTO: break;
+// case NS_rtf::LN_NFIBBACK: break;
+// case NS_rtf::LN_LKEY: break;
+// case NS_rtf::LN_ENVR: break;
+// case NS_rtf::LN_FMAC: break;
+// case NS_rtf::LN_FEMPTYSPECIAL: break;
+// case NS_rtf::LN_FLOADOVERRIDEPAGE: break;
+// case NS_rtf::LN_FFUTURESAVEDUNDO: break;
+// case NS_rtf::LN_FWORD97SAVED: break;
+// case NS_rtf::LN_FSPARE0: break;
+// case NS_rtf::LN_CHSTABLES: break;
+// case NS_rtf::LN_FCMIN: break;
+// case NS_rtf::LN_FCMAC: break;
+// case NS_rtf::LN_CSW: break;
+// case NS_rtf::LN_WMAGICCREATED: break;
+// case NS_rtf::LN_WMAGICREVISED: break;
+// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break;
+// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break;
+// case NS_rtf::LN_PNFBPCHPFIRST_W6: break;
+// case NS_rtf::LN_PNCHPFIRST_W6: break;
+// case NS_rtf::LN_CPNBTECHP_W6: break;
+// case NS_rtf::LN_PNFBPPAPFIRST_W6: break;
+// case NS_rtf::LN_PNPAPFIRST_W6: break;
+// case NS_rtf::LN_CPNBTEPAP_W6: break;
+// case NS_rtf::LN_PNFBPLVCFIRST_W6: break;
+// case NS_rtf::LN_PNLVCFIRST_W6: break;
+// case NS_rtf::LN_CPNBTELVC_W6: break;
+// case NS_rtf::LN_LIDFE: break;
+// case NS_rtf::LN_CLW: break;
+// case NS_rtf::LN_CBMAC: break;
+// case NS_rtf::LN_LPRODUCTCREATED: break;
+// case NS_rtf::LN_LPRODUCTREVISED: break;
+// case NS_rtf::LN_CCPTEXT: break;
+// case NS_rtf::LN_CCPFTN: break;
+// case NS_rtf::LN_CCPHDD: break;
+// case NS_rtf::LN_CCPMCR: break;
+// case NS_rtf::LN_CCPATN: break;
+// case NS_rtf::LN_CCPEDN: break;
+// case NS_rtf::LN_CCPTXBX: break;
+// case NS_rtf::LN_CCPHDRTXBX: break;
+// case NS_rtf::LN_PNFBPCHPFIRST: break;
+// case NS_rtf::LN_PNCHPFIRST: break;
+// case NS_rtf::LN_CPNBTECHP: break;
+// case NS_rtf::LN_PNFBPPAPFIRST: break;
+// case NS_rtf::LN_PNPAPFIRST: break;
+// case NS_rtf::LN_CPNBTEPAP: break;
+// case NS_rtf::LN_PNFBPLVCFIRST: break;
+// case NS_rtf::LN_PNLVCFIRST: break;
+// case NS_rtf::LN_CPNBTELVC: break;
+// case NS_rtf::LN_FCISLANDFIRST: break;
+// case NS_rtf::LN_FCISLANDLIM: break;
+// case NS_rtf::LN_CFCLCB: break;
+// case NS_rtf::LN_FCSTSHFORIG: break;
+// case NS_rtf::LN_LCBSTSHFORIG: break;
+// case NS_rtf::LN_FCSTSHF: break;
+// case NS_rtf::LN_LCBSTSHF: break;
+// case NS_rtf::LN_FCPLCFFNDREF: break;
+// case NS_rtf::LN_LCBPLCFFNDREF: break;
+// case NS_rtf::LN_FCPLCFFNDTXT: break;
+// case NS_rtf::LN_LCBPLCFFNDTXT: break;
+// case NS_rtf::LN_FCPLCFANDREF: break;
+// case NS_rtf::LN_LCBPLCFANDREF: break;
+// case NS_rtf::LN_FCPLCFANDTXT: break;
+// case NS_rtf::LN_LCBPLCFANDTXT: break;
+// case NS_rtf::LN_FCPLCFSED: break;
+// case NS_rtf::LN_LCBPLCFSED: break;
+// case NS_rtf::LN_FCPLCFPAD: break;
+// case NS_rtf::LN_LCBPLCFPAD: break;
+// case NS_rtf::LN_FCPLCFPHE: break;
+// case NS_rtf::LN_LCBPLCFPHE: break;
+// case NS_rtf::LN_FCSTTBFGLSY: break;
+// case NS_rtf::LN_LCBSTTBFGLSY: break;
+// case NS_rtf::LN_FCPLCFGLSY: break;
+// case NS_rtf::LN_LCBPLCFGLSY: break;
+// case NS_rtf::LN_FCPLCFHDD: break;
+// case NS_rtf::LN_LCBPLCFHDD: break;
+// case NS_rtf::LN_FCPLCFBTECHPX: break;
+// case NS_rtf::LN_LCBPLCFBTECHPX: break;
+// case NS_rtf::LN_FCPLCFBTEPAPX: break;
+// case NS_rtf::LN_LCBPLCFBTEPAPX: break;
+// case NS_rtf::LN_FCPLCFSEA: break;
+// case NS_rtf::LN_LCBPLCFSEA: break;
+// case NS_rtf::LN_FCSTTBFFFN: break;
+// case NS_rtf::LN_LCBSTTBFFFN: break;
+// case NS_rtf::LN_FCPLCFFLDMOM: break;
+// case NS_rtf::LN_LCBPLCFFLDMOM: break;
+// case NS_rtf::LN_FCPLCFFLDHDR: break;
+// case NS_rtf::LN_LCBPLCFFLDHDR: break;
+// case NS_rtf::LN_FCPLCFFLDFTN: break;
+// case NS_rtf::LN_LCBPLCFFLDFTN: break;
+// case NS_rtf::LN_FCPLCFFLDATN: break;
+// case NS_rtf::LN_LCBPLCFFLDATN: break;
+// case NS_rtf::LN_FCPLCFFLDMCR: break;
+// case NS_rtf::LN_LCBPLCFFLDMCR: break;
+// case NS_rtf::LN_FCSTTBFBKMK: break;
+// case NS_rtf::LN_LCBSTTBFBKMK: break;
+// case NS_rtf::LN_FCPLCFBKF: break;
+// case NS_rtf::LN_LCBPLCFBKF: break;
+// case NS_rtf::LN_FCPLCFBKL: break;
+// case NS_rtf::LN_LCBPLCFBKL: break;
+// case NS_rtf::LN_FCCMDS: break;
+// case NS_rtf::LN_LCBCMDS: break;
+// case NS_rtf::LN_FCPLCMCR: break;
+// case NS_rtf::LN_LCBPLCMCR: break;
+// case NS_rtf::LN_FCSTTBFMCR: break;
+// case NS_rtf::LN_LCBSTTBFMCR: break;
+// case NS_rtf::LN_FCPRDRVR: break;
+// case NS_rtf::LN_LCBPRDRVR: break;
+// case NS_rtf::LN_FCPRENVPORT: break;
+// case NS_rtf::LN_LCBPRENVPORT: break;
+// case NS_rtf::LN_FCPRENVLAND: break;
+// case NS_rtf::LN_LCBPRENVLAND: break;
+// case NS_rtf::LN_FCWSS: break;
+// case NS_rtf::LN_LCBWSS: break;
+// case NS_rtf::LN_FCDOP: break;
+// case NS_rtf::LN_LCBDOP: break;
+// case NS_rtf::LN_FCSTTBFASSOC: break;
+// case NS_rtf::LN_LCBSTTBFASSOC: break;
+// case NS_rtf::LN_FCCLX: break;
+// case NS_rtf::LN_LCBCLX: break;
+// case NS_rtf::LN_FCPLCFPGDFTN: break;
+// case NS_rtf::LN_LCBPLCFPGDFTN: break;
+// case NS_rtf::LN_FCAUTOSAVESOURCE: break;
+// case NS_rtf::LN_LCBAUTOSAVESOURCE: break;
+// case NS_rtf::LN_FCGRPXSTATNOWNERS: break;
+// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break;
+// case NS_rtf::LN_FCSTTBFATNBKMK: break;
+// case NS_rtf::LN_LCBSTTBFATNBKMK: break;
+// case NS_rtf::LN_FCPLCDOAMOM: break;
+// case NS_rtf::LN_LCBPLCDOAMOM: break;
+// case NS_rtf::LN_FCPLCDOAHDR: break;
+// case NS_rtf::LN_LCBPLCDOAHDR: break;
+// case NS_rtf::LN_FCPLCSPAMOM: break;
+// case NS_rtf::LN_LCBPLCSPAMOM: break;
+// case NS_rtf::LN_FCPLCSPAHDR: break;
+// case NS_rtf::LN_LCBPLCSPAHDR: break;
+// case NS_rtf::LN_FCPLCFATNBKF: break;
+// case NS_rtf::LN_LCBPLCFATNBKF: break;
+// case NS_rtf::LN_FCPLCFATNBKL: break;
+// case NS_rtf::LN_LCBPLCFATNBKL: break;
+// case NS_rtf::LN_FCPMS: break;
+// case NS_rtf::LN_LCBPMS: break;
+// case NS_rtf::LN_FCFORMFLDSTTBF: break;
+// case NS_rtf::LN_LCBFORMFLDSTTBF: break;
+// case NS_rtf::LN_FCPLCFENDREF: break;
+// case NS_rtf::LN_LCBPLCFENDREF: break;
+// case NS_rtf::LN_FCPLCFENDTXT: break;
+// case NS_rtf::LN_LCBPLCFENDTXT: break;
+// case NS_rtf::LN_FCPLCFFLDEDN: break;
+// case NS_rtf::LN_LCBPLCFFLDEDN: break;
+// case NS_rtf::LN_FCPLCFPGDEDN: break;
+// case NS_rtf::LN_LCBPLCFPGDEDN: break;
+// case NS_rtf::LN_FCDGGINFO: break;
+// case NS_rtf::LN_LCBDGGINFO: break;
+// case NS_rtf::LN_FCSTTBFRMARK: break;
+// case NS_rtf::LN_LCBSTTBFRMARK: break;
+// case NS_rtf::LN_FCSTTBFCAPTION: break;
+// case NS_rtf::LN_LCBSTTBFCAPTION: break;
+// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break;
+// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break;
+// case NS_rtf::LN_FCPLCFWKB: break;
+// case NS_rtf::LN_LCBPLCFWKB: break;
+// case NS_rtf::LN_FCPLCFSPL: break;
+// case NS_rtf::LN_LCBPLCFSPL: break;
+// case NS_rtf::LN_FCPLCFTXBXTXT: break;
+// case NS_rtf::LN_LCBPLCFTXBXTXT: break;
+// case NS_rtf::LN_FCPLCFFLDTXBX: break;
+// case NS_rtf::LN_LCBPLCFFLDTXBX: break;
+// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break;
+// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break;
+// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break;
+// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break;
+// case NS_rtf::LN_FCSTWUSER: break;
+// case NS_rtf::LN_LCBSTWUSER: break;
+// case NS_rtf::LN_FCSTTBTTMBD: break;
+// case NS_rtf::LN_LCBSTTBTTMBD: break;
+// case NS_rtf::LN_FCUNUSED: break;
+// case NS_rtf::LN_LCBUNUSED: break;
+// case NS_rtf::LN_FCPGDMOTHER: break;
+// case NS_rtf::LN_LCBPGDMOTHER: break;
+// case NS_rtf::LN_FCBKDMOTHER: break;
+// case NS_rtf::LN_LCBBKDMOTHER: break;
+// case NS_rtf::LN_FCPGDFTN: break;
+// case NS_rtf::LN_LCBPGDFTN: break;
+// case NS_rtf::LN_FCBKDFTN: break;
+// case NS_rtf::LN_LCBBKDFTN: break;
+// case NS_rtf::LN_FCPGDEDN: break;
+// case NS_rtf::LN_LCBPGDEDN: break;
+// case NS_rtf::LN_FCBKDEDN: break;
+// case NS_rtf::LN_LCBBKDEDN: break;
+// case NS_rtf::LN_FCSTTBFINTLFLD: break;
+// case NS_rtf::LN_LCBSTTBFINTLFLD: break;
+// case NS_rtf::LN_FCROUTESLIP: break;
+// case NS_rtf::LN_LCBROUTESLIP: break;
+// case NS_rtf::LN_FCSTTBSAVEDBY: break;
+// case NS_rtf::LN_LCBSTTBSAVEDBY: break;
+// case NS_rtf::LN_FCSTTBFNM: break;
+// case NS_rtf::LN_LCBSTTBFNM: break;
+// case NS_rtf::LN_FCPLCFLST: break;
+// case NS_rtf::LN_LCBPLCFLST: break;
+// case NS_rtf::LN_FCPLFLFO: break;
+// case NS_rtf::LN_LCBPLFLFO: break;
+// case NS_rtf::LN_FCPLCFTXBXBKD: break;
+// case NS_rtf::LN_LCBPLCFTXBXBKD: break;
+// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break;
+// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break;
+// case NS_rtf::LN_FCDOCUNDO: break;
+// case NS_rtf::LN_LCBDOCUNDO: break;
+// case NS_rtf::LN_FCRGBUSE: break;
+// case NS_rtf::LN_LCBRGBUSE: break;
+// case NS_rtf::LN_FCUSP: break;
+// case NS_rtf::LN_LCBUSP: break;
+// case NS_rtf::LN_FCUSKF: break;
+// case NS_rtf::LN_LCBUSKF: break;
+// case NS_rtf::LN_FCPLCUPCRGBUSE: break;
+// case NS_rtf::LN_LCBPLCUPCRGBUSE: break;
+// case NS_rtf::LN_FCPLCUPCUSP: break;
+// case NS_rtf::LN_LCBPLCUPCUSP: break;
+// case NS_rtf::LN_FCSTTBGLSYSTYLE: break;
+// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break;
+// case NS_rtf::LN_FCPLGOSL: break;
+// case NS_rtf::LN_LCBPLGOSL: break;
+// case NS_rtf::LN_FCPLCOCX: break;
+// case NS_rtf::LN_LCBPLCOCX: break;
+// case NS_rtf::LN_FCPLCFBTELVC: break;
+// case NS_rtf::LN_LCBPLCFBTELVC: break;
+// case NS_rtf::LN_DWLOWDATETIME: break;
+// case NS_rtf::LN_DWHIGHDATETIME: break;
+// case NS_rtf::LN_FCPLCFLVC: break;
+// case NS_rtf::LN_LCBPLCFLVC: break;
+// case NS_rtf::LN_FCPLCASUMY: break;
+// case NS_rtf::LN_LCBPLCASUMY: break;
+// case NS_rtf::LN_FCPLCFGRAM: break;
+// case NS_rtf::LN_LCBPLCFGRAM: break;
+// case NS_rtf::LN_FCSTTBLISTNAMES: break;
+// case NS_rtf::LN_LCBSTTBLISTNAMES: break;
+// case NS_rtf::LN_FCSTTBFUSSR: break;
+// case NS_rtf::LN_LCBSTTBFUSSR: break;
+// case NS_rtf::LN_FN: break;
+// case NS_rtf::LN_FCSEPX: break;
+// case NS_rtf::LN_FNMPR: break;
+// case NS_rtf::LN_FCMPR: break;
+// case NS_rtf::LN_ICOFORE: break;
+// case NS_rtf::LN_ICOBACK: break;
+// case NS_rtf::LN_IPAT: break;
+// case NS_rtf::LN_SHDFORECOLOR: break;
+// case NS_rtf::LN_SHDBACKCOLOR: break;
+// case NS_rtf::LN_SHDPATTERN: break;
+// case NS_rtf::LN_DPTLINEWIDTH: break;
+// case NS_rtf::LN_BRCTYPE: break;
+// case NS_rtf::LN_ICO: break;
+// case NS_rtf::LN_DPTSPACE: break;
+// case NS_rtf::LN_FSHADOW: break;
+// case NS_rtf::LN_FFRAME: break;
+// case NS_rtf::LN_UNUSED2_15: break;
+// case NS_rtf::LN_FFIRSTMERGED: break;
+// case NS_rtf::LN_FMERGED: break;
+// case NS_rtf::LN_FVERTICAL: break;
+// case NS_rtf::LN_FBACKWARD: break;
+// case NS_rtf::LN_FROTATEFONT: break;
+// case NS_rtf::LN_FVERTMERGE: break;
+// case NS_rtf::LN_FVERTRESTART: break;
+// case NS_rtf::LN_VERTALIGN: break;
+// case NS_rtf::LN_FUNUSED: break;
+// case NS_rtf::LN_WUNUSED: break;
+// case NS_rtf::LN_BRCTOP: break;
+// case NS_rtf::LN_BRCLEFT: break;
+// case NS_rtf::LN_BRCBOTTOM: break;
+// case NS_rtf::LN_BRCRIGHT: break;
+// case NS_rtf::LN_IBKL: break;
+// case NS_rtf::LN_ITCFIRST: break;
+// case NS_rtf::LN_FPUB: break;
+// case NS_rtf::LN_ITCLIM: break;
+// case NS_rtf::LN_FCOL: break;
+// case NS_rtf::LN_LINECOLOR: break;
+// case NS_rtf::LN_LINEWIDTH: break;
+// case NS_rtf::LN_LINETYPE: break;
+// case NS_rtf::LN_MM: break;
+// case NS_rtf::LN_XEXT: break;
+// case NS_rtf::LN_YEXT: break;
+// case NS_rtf::LN_HMF: break;
+// case NS_rtf::LN_LCB: break;
+// case NS_rtf::LN_CBHEADER: break;
+// case NS_rtf::LN_MFP: break;
+// case NS_rtf::LN_BM_RCWINMF: break;
+// case NS_rtf::LN_DXAGOAL: break;
+// case NS_rtf::LN_DYAGOAL: break;
+// case NS_rtf::LN_MX: break;
+// case NS_rtf::LN_MY: break;
+// case NS_rtf::LN_DXACROPLEFT: break;
+// case NS_rtf::LN_DYACROPTOP: break;
+// case NS_rtf::LN_DXACROPRIGHT: break;
+// case NS_rtf::LN_DYACROPBOTTOM: break;
+// case NS_rtf::LN_BRCL: break;
+// case NS_rtf::LN_FFRAMEEMPTY: break;
+// case NS_rtf::LN_FBITMAP: break;
+// case NS_rtf::LN_FDRAWHATCH: break;
+// case NS_rtf::LN_FERROR: break;
+// case NS_rtf::LN_BPP: break;
+// case NS_rtf::LN_DXAORIGIN: break;
+// case NS_rtf::LN_DYAORIGIN: break;
+// case NS_rtf::LN_CPROPS: break;
+// case NS_rtf::LN_LINEPROPSTOP: break;
+// case NS_rtf::LN_LINEPROPSLEFT: break;
+// case NS_rtf::LN_LINEPROPSBOTTOM: break;
+// case NS_rtf::LN_LINEPROPSRIGHT: break;
+// case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
+// case NS_rtf::LN_LINEPROPSVERTICAL: break;
+// case NS_rtf::LN_headerr: break;
+// case NS_rtf::LN_footerr: break;
+// case NS_rtf::LN_endnote: break;
+// case NS_rtf::LN_BOOKMARKNAME: break;
+
+ case NS_rtf::LN_LISTLEVEL:
+ {
+ //add a new level to the level vector and make it the current one
+ m_pImpl->AddLevel();
+
+ doctok::Reference<Properties>::Pointer_t pProperties;
+ if((pProperties = val.getProperties()).get())
+ pProperties->resolve(*this);
+ }
+ break;
+// case NS_rtf::LN_LFO: break;
+// case NS_rtf::LN_F: break;
+// case NS_rtf::LN_ALTFONTNAME: break;
+// case NS_rtf::LN_XSZFFN: break;
+// case NS_rtf::LN_XSTZNAME: break;
+// case NS_rtf::LN_XSTZNAME1: break;
+// case NS_rtf::LN_UPXSTART: break;
+// case NS_rtf::LN_UPX: break;
+// case NS_rtf::LN_sed: break;
+// case NS_rtf::LN_picf: break;
+// case NS_rtf::LN_rgbrc: break;
+// case NS_rtf::LN_shd: break;
+// case NS_rtf::LN_cellShd: break;
+// case NS_rtf::LN_cellTopColor: break;
+// case NS_rtf::LN_cellLeftColor: break;
+// case NS_rtf::LN_cellBottomColor: break;
+// case NS_rtf::LN_cellRightColor: break;
+
+// case NS_rtf::LN_LISTTABLE: break;
+// case NS_rtf::LN_LFOTABLE: break;
+// case NS_rtf::LN_FONTTABLE: break;
+// case NS_rtf::LN_STYLESHEET: break;
+ default:
+ {
+ //---->debug
+ int nVal = val.getInt();
+ ++nVal;
+ //<----debug
+ }
+ }
+}
+/*-- 23.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void ListTable::sprm(doctok::Sprm & sprm_)
+{
+ //fill the attributes of the style sheet
+ if(m_pImpl->m_pCurrentEntry.get())
+ {
+ m_pImpl->m_rDMapper.sprm( sprm_,
+ m_pImpl->m_pCurrentEntry->pCurrentProperties->GetProperties(), SPRM_LIST);
+ }
+}
+/*-- 23.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void ListTable::entry(int, doctok::Reference<Properties>::Pointer_t ref)
+{
+ //create a new list entry
+ OSL_ENSURE( !m_pImpl->m_pCurrentEntry.get(), "current entry has to be NULL here");
+ m_pImpl->m_pCurrentEntry.reset( new ListEntry );
+ ref->resolve(*this);
+ //append it to the table
+ m_pImpl->m_aListEntries.push_back( m_pImpl->m_pCurrentEntry );
+ m_pImpl->m_pCurrentEntry = ListEntryPtr();
+}
+/*-- 26.06.2006 10:27:55---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_uInt32 ListTable::size()
+{
+ return m_pImpl->m_aListEntries.size();
+}
+/*-- 26.06.2006 10:33:56---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Reference< container::XIndexReplace > ListTable::GetNumberingRules(sal_Int32 nListId)
+{
+ uno::Reference< container::XIndexReplace > xRet;
+ std::vector< ListEntryPtr >::const_iterator aIt = m_pImpl->m_aListEntries.begin();
+ std::vector< ListEntryPtr >::const_iterator aEndIt = m_pImpl->m_aListEntries.end();
+ for(; aIt != aEndIt; ++aIt)
+ {
+ if((*aIt)->nListId == nListId)
+ {
+ if( !(*aIt)->m_xNumRules.is() && m_pImpl->m_xFactory.is())
+ {
+ try
+ {
+ (*aIt)->m_xNumRules = uno::Reference< container::XIndexReplace >(
+ m_pImpl->m_xFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.NumberingRules"))),
+ uno::UNO_QUERY_THROW);
+
+ //now fill the numbering levels appropriately
+ ::std::vector< ListPropertyMapPtr >::const_iterator aIter = (*aIt)->aLevelProperties.begin();
+ ::std::vector< ListPropertyMapPtr >::const_iterator aEnd = (*aIt)->aLevelProperties.end();
+ sal_Int32 nLevel = 0;
+ while(aIter != aEnd)
+ {
+ uno::Sequence< beans::PropertyValue> aValues = (*aIter)->GetPropertyValues();
+ (*aIt)->m_xNumRules->replaceByIndex(nLevel, uno::makeAny(aValues));
+
+ ++aIter;
+ ++nLevel;
+ }
+
+ }
+ catch( const uno::Exception& )
+ {
+ }
+ }
+ xRet = (*aIt)->m_xNumRules;
+ break;
+ }
+ }
+ return xRet;
+}
+
+}//namespace dmapper
+
diff --git a/writerfilter/source/dmapper/ListTable.hxx b/writerfilter/source/dmapper/ListTable.hxx
new file mode 100644
index 000000000000..10375e8165e6
--- /dev/null
+++ b/writerfilter/source/dmapper/ListTable.hxx
@@ -0,0 +1,57 @@
+#ifndef INCLUDED_LISTTABLE_HXX
+#define INCLUDED_LISTTABLE_HXX
+
+#ifndef INCLUDED_WRITERFILTERDLLAPI_H
+#include <WriterFilterDllApi.hxx>
+#endif
+#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX
+#include <PropertyMap.hxx>
+#endif
+#include <doctok/WW8ResourceModel.hxx>
+
+namespace com{ namespace sun { namespace star {
+ namespace text{
+ class XTextDocument;
+ }
+ namespace container{
+ class XIndexReplace;
+ }
+ namespace lang{
+ class XMultiServiceFactory;
+ }
+}}}
+namespace dmapper
+{
+class DomainMapper;
+struct ListTable_Impl;
+class WRITERFILTER_DLLPRIVATE ListTable :
+ public doctok::Properties,
+ public doctok::Table
+{
+ ListTable_Impl *m_pImpl;
+
+public:
+ ListTable(
+ DomainMapper& rDMapper,
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory);
+ virtual ~ListTable();
+
+ // Properties
+ virtual void attribute(doctok::Id Name, doctok::Value & val);
+ virtual void sprm(doctok::Sprm & sprm);
+
+ // Table
+ virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref);
+
+ // BinaryObj
+// virtual void data(const sal_Int8* buf, size_t len,
+// doctok::Reference<Properties>::Pointer_t ref);
+
+ sal_uInt32 size();
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexReplace >
+ GetNumberingRules(sal_Int32 nListId);
+};
+typedef boost::shared_ptr< ListTable > ListTablePtr;
+}
+
+#endif //
diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx
new file mode 100644
index 000000000000..c9b00f623b9d
--- /dev/null
+++ b/writerfilter/source/dmapper/PropertyIds.cxx
@@ -0,0 +1,176 @@
+#ifndef INCLUDED_DMAPPER_PROPERTYIDS_HXX
+#include <PropertyIds.hxx>
+#endif
+#include <rtl/ustring.hxx>
+#include <hash_map>
+
+namespace dmapper{
+
+struct OUStringHash
+{
+ unsigned long operator()(const PropertyIds& eId) const
+ {
+ return static_cast<unsigned long>(eId);
+ }
+};
+
+struct OUStringEq
+{
+ bool operator() (const PropertyIds& rA, const PropertyIds& rB) const
+ {
+ return rA == rB;
+ }
+};
+
+typedef ::std::hash_map< PropertyIds, ::rtl::OUString, OUStringHash, OUStringEq> PropertyNameMap_t;
+
+
+//typedef std::map< PropertyIds, ::rtl::OUString > PropertyNameMap_t;
+struct PropertyNameSupplier_Impl
+{
+ PropertyNameMap_t aNameMap;
+};
+
+/*-- 14.06.2006 11:01:31---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PropertyNameSupplier::PropertyNameSupplier() :
+ m_pImpl(new PropertyNameSupplier_Impl)
+{
+}
+/*-- 14.06.2006 11:01:32---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PropertyNameSupplier::~PropertyNameSupplier()
+{
+ delete m_pImpl;
+}
+/*-- 14.06.2006 11:01:32---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+const rtl::OUString& PropertyNameSupplier::GetName( PropertyIds eId )
+{
+ PropertyNameMap_t::iterator aIt = m_pImpl->aNameMap.find(eId);
+ if(aIt == m_pImpl->aNameMap.end())
+ {
+ ::rtl::OUString sName;
+ switch(eId)
+ {
+ case PROP_CHAR_WEIGHT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharWeight")); break;
+ case PROP_CHAR_POSTURE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharPosture")); break;
+ case PROP_CHAR_STRIKEOUT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharStrikeout")); break;
+ case PROP_CHAR_CONTOURED: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharContoured")); break;
+ case PROP_CHAR_SHADOWED: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharShadowed")); break;
+ case PROP_CHAR_CASEMAP: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharCaseMap")); break;
+ case PROP_CHAR_COLOR: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharColor")); break;
+ case PROP_CHAR_RELIEF: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharRelief")); break;
+ case PROP_CHAR_UNDERLINE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharUnderline")); break;
+ case PROP_CHAR_UNDERLINE_COLOR: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharUnderlineColor")); break;
+ case PROP_CHAR_UNDERLINE_HAS_COLOR: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharUnderlineHasColor")); break;
+ case PROP_CHAR_WORD_MODE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharWordMode")); break;
+ case PROP_CHAR_ESCAPEMENT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharEscapement")); break;
+ case PROP_CHAR_ESCAPEMENT_HEIGHT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharEscapementHeight")); break;
+ case PROP_CHAR_HEIGHT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharHeight")); break;
+ case PROP_CHAR_HEIGHT_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharHeightComplex")); break;
+ case PROP_CHAR_LOCALE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharLocale")); break;
+ case PROP_CHAR_LOCALE_ASIAN: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharLocaleAsian")); break;
+ case PROP_CHAR_LOCALE_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharLocaleComplex")); break;
+ case PROP_CHAR_WEIGHT_COMPLEX : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharWeightComplex")); break;
+ case PROP_CHAR_POSTURE_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharPostureComplex")); break;
+ case PROP_CHAR_CHAR_KERNING: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharKerning")); break;
+ case PROP_CHAR_AUTO_KERNING: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharAutoKerning")); break;
+ case PROP_CHAR_SCALE_WIDTH: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharScaleWidth")); break;
+ case PROP_CHAR_STYLE_NAME: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharStyleName")); break;
+ case PROP_CHAR_FONT_NAME: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontName")); break;
+ case PROP_CHAR_FONT_STYLE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontStyle")); break;
+ case PROP_CHAR_FONT_FAMILY: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontFamily")); break;
+ case PROP_CHAR_FONT_CHAR_SET: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontCharSet")); break;
+ case PROP_CHAR_FONT_PITCH: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontPitch")); break;
+ case PROP_CHAR_FONT_NAME_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontNameAsian")); break;
+ case PROP_CHAR_FONT_STYLE_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontStyleAsian")); break;
+ case PROP_CHAR_FONT_FAMILY_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontFamilyAsian")); break;
+ case PROP_CHAR_FONT_CHAR_SET_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontCharSetAsian")); break;
+ case PROP_CHAR_FONT_PITCH_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontPitchAsian")); break;
+ case PROP_CHAR_FONT_NAME_COMPLEX : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontNameComplex")); break;
+ case PROP_CHAR_FONT_STYLE_COMPLEX : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontStyleComplex")); break;
+ case PROP_CHAR_FONT_FAMILY_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontFamilyComplex")); break;
+ case PROP_CHAR_FONT_CHAR_SET_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontCharSetComplex")); break;
+ case PROP_CHAR_FONT_PITCH_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontPitchComplex")); break;
+ case PROP_CHAR_HIDDEN: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharHidden")); break;
+
+// case PROP_CHAR_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Char")); break;
+// case PROP_CHAR_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Char")); break;
+// case PROP_CHAR_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Char")); break;
+
+ case PROP_PARA_STYLE_NAME: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaStyleName")); break;
+ case PROP_PARA_ADJUST: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaAdjust")); break;
+ case PROP_PARA_LAST_LINE_ADJUST: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLastLineAdjust")); break;
+ case PROP_PARA_RIGHT_MARGIN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLeftMargin")); break;
+ case PROP_PARA_LEFT_MARGIN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaRightMargin")); break;
+ case PROP_PARA_FIRST_LINE_INDENT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaFirstLineIndent")); break;
+ case PROP_PARA_KEEP_TOGETHER: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaKeepTogether")); break;
+ case PROP_PARA_TOP_MARGIN: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaTopMargin")); break;
+ case PROP_PARA_BOTTOM_MARGIN: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaBottomMargin")); break;
+ case PROP_PARA_IS_HYPHENATION: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaIsHyphenation")); break;
+ case PROP_PARA_LINE_NUMBER_COUNT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLineNumberCount")); break;
+ case PROP_PARA_IS_HANGING_PUNCTUATION: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaIsHangingPunctuation")); break;
+ case PROP_PARA_LINE_SPACING: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing")); break;
+ case PROP_PARA_TAB_STOPS: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaTabStops")); break;
+// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break;
+// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break;
+// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break;
+// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break;
+// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break;
+// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break;
+ case PROP_NUMBERING_LEVEL: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberingLevel")); break;
+ case PROP_NUMBERING_RULES: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberingRules")); break;
+ case PROP_NUMBERING_TYPE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberingType")); break;
+ case PROP_START_WITH: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StartWith")); break;
+ case PROP_ADJUST: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Adjust")); break;
+ case PROP_PARENT_NUMBERING: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParentNumbering")); break;
+ case PROP_RIGHT_MARGIN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("RightMargin")); break;
+ case PROP_LEFT_MARGIN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LeftMargin")); break;
+ case PROP_FIRST_LINE_OFFSET: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FirstLineOffset")); break;
+ case PROP_LEFT_BORDER : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LeftBorder"));break;
+ case PROP_RIGHT_BORDER : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("RightBorder"));break;
+ case PROP_TOP_BORDER : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TopBorder"));break;
+ case PROP_BOTTOM_BORDER : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("BottomBorder"));break;
+ case PROP_LEFT_BORDER_DISTANCE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LeftBorderDistance")); break;
+ case PROP_RIGHT_BORDER_DISTANCE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("RightBorderDistance")); break;
+ case PROP_TOP_BORDER_DISTANCE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TopBorderDistance"));break;
+ case PROP_BOTTOM_BORDER_DISTANCE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("BottomBorderDistance")); break;
+ case PROP_CURRENT_PRESENTATION : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CurrentPresentation")); break;
+ case PROP_IS_FIXED : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsFixed")); break;
+ case PROP_SUB_TYPE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SubType")); break;
+ case PROP_FILE_FORMAT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FileFormat")); break;
+ case PROP_HYPER_LINK_U_R_L : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HyperLinkURL")); break;
+ case PROP_NUMBER_FORMAT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberFormat")); break;
+ case PROP_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Name")); break;
+ case PROP_IS_INPUT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsInput")); break;
+ case PROP_HINT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Hint")); break;
+ case PROP_FULL_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FullName")); break;
+ case PROP_KEYWORDS : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Keywords")); break;
+ case PROP_DESCRIPTION : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Description")); break;
+ case PROP_MACRO_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MacroName")); break;
+ case PROP_SUBJECT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Subject")); break;
+ case PROP_USER_DATA_TYPE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UserDataType")); break;
+ case PROP_TITLE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")); break;
+ case PROP_CONTENT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Content")); break;
+ case PROP_DATA_COLUMN_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataColumnName")); break;
+
+
+ }
+ ::std::pair<PropertyNameMap_t::iterator,bool> aInsertIt =
+ m_pImpl->aNameMap.insert( PropertyNameMap_t::value_type( eId, sName ));
+ if(aInsertIt.second)
+ aIt = aInsertIt.first;
+ }
+ return aIt->second;
+}
+PropertyNameSupplier& PropertyNameSupplier::GetPropertyNameSupplier()
+{
+ static PropertyNameSupplier aNameSupplier;
+ return aNameSupplier;
+}
+
+} //namespace dmapper
diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx
new file mode 100644
index 000000000000..f0b288b4057a
--- /dev/null
+++ b/writerfilter/source/dmapper/PropertyIds.hxx
@@ -0,0 +1,120 @@
+#ifndef INCLUDED_DMAPPER_PROPERTYIDS_HXX
+#define INCLUDED_DMAPPER_PROPERTYIDS_HXX
+
+namespace rtl{ class OUString;}
+namespace dmapper{
+enum PropertyIds
+{
+ PROP_ID_START = 1
+ /* 1*/ ,PROP_CHAR_WEIGHT = PROP_ID_START
+ /* 2*/ ,PROP_CHAR_POSTURE
+ /* 3*/ ,PROP_CHAR_STRIKEOUT
+ /* 4*/ ,PROP_CHAR_CONTOURED
+ /* 5*/ ,PROP_CHAR_SHADOWED
+ /* 6*/ ,PROP_CHAR_CASEMAP
+ /* 7*/ ,PROP_CHAR_COLOR
+ /* 8*/ ,PROP_CHAR_RELIEF
+ /* 9*/ ,PROP_CHAR_UNDERLINE
+ /*10*/ ,PROP_CHAR_WORD_MODE
+ /*11*/ ,PROP_CHAR_ESCAPEMENT
+ /*12*/ ,PROP_CHAR_ESCAPEMENT_HEIGHT
+ /*13*/ ,PROP_CHAR_HEIGHT
+ /*14*/ ,PROP_CHAR_HEIGHT_COMPLEX
+ /*15*/ ,PROP_CHAR_LOCALE
+ /*16*/ ,PROP_CHAR_LOCALE_ASIAN
+ /*17*/ ,PROP_CHAR_WEIGHT_COMPLEX
+ /*18*/ ,PROP_CHAR_POSTURE_COMPLEX
+ /*19*/ ,PROP_CHAR_AUTO_KERNING
+ /*20*/ ,PROP_CHAR_CHAR_KERNING
+ /*21*/ ,PROP_CHAR_SCALE_WIDTH
+ /*22*/ ,PROP_CHAR_LOCALE_COMPLEX
+ /*23*/ ,PROP_CHAR_UNDERLINE_COLOR
+/*24*/ , PROP_CHAR_UNDERLINE_HAS_COLOR
+/*25*/ , PROP_CHAR_FONT_NAME
+/*26*/ , PROP_CHAR_FONT_STYLE
+/*27*/ , PROP_CHAR_FONT_FAMILY
+/*28*/ , PROP_CHAR_FONT_CHAR_SET
+/*29*/ , PROP_CHAR_FONT_PITCH
+/*30*/ , PROP_CHAR_FONT_NAME_ASIAN
+/*31*/ , PROP_CHAR_FONT_STYLE_ASIAN
+/*32*/ , PROP_CHAR_FONT_FAMILY_ASIAN
+/*33*/ , PROP_CHAR_FONT_CHAR_SET_ASIAN
+/*34*/ , PROP_CHAR_FONT_PITCH_ASIAN
+/*35*/ , PROP_CHAR_FONT_NAME_COMPLEX
+/*36*/ , PROP_CHAR_FONT_STYLE_COMPLEX
+/*37*/ , PROP_CHAR_FONT_FAMILY_COMPLEX
+/*38*/ , PROP_CHAR_FONT_CHAR_SET_COMPLEX
+/*39*/ , PROP_CHAR_FONT_PITCH_COMPLEX
+/*40*/ , PROP_CHAR_HIDDEN
+/*41*/ , PROP_PARA_STYLE_NAME
+/*42*/ , PROP_CHAR_STYLE_NAME
+/*43*/ , PROP_PARA_ADJUST
+/*44*/ , PROP_PARA_LAST_LINE_ADJUST
+/*45*/ , PROP_PARA_RIGHT_MARGIN
+/*46*/ , PROP_PARA_LEFT_MARGIN
+/*47*/ , PROP_PARA_FIRST_LINE_INDENT
+/*48*/ , PROP_PARA_KEEP_TOGETHER
+/*49*/ , PROP_PARA_TOP_MARGIN
+/*50*/ , PROP_PARA_BOTTOM_MARGIN
+/*51*/ , PROP_PARA_IS_HYPHENATION
+/*52*/ , PROP_PARA_LINE_NUMBER_COUNT
+/*53*/ , PROP_PARA_IS_HANGING_PUNCTUATION
+/*54*/ , PROP_PARA_LINE_SPACING
+/*55*/ , PROP_PARA_TAB_STOPS
+/*56*/ , PROP_NUMBERING_LEVEL
+/*57*/ , PROP_NUMBERING_RULES
+/*58*/ , PROP_NUMBERING_TYPE
+/*59*/ , PROP_START_WITH
+/*60*/ , PROP_ADJUST
+/*61*/ , PROP_PARENT_NUMBERING
+/*62*/ , PROP_LEFT_MARGIN
+/*63*/ , PROP_RIGHT_MARGIN
+/*64*/ , PROP_FIRST_LINE_OFFSET
+/*65*/ , PROP_LEFT_BORDER
+/*66*/ , PROP_RIGHT_BORDER
+/*67*/ , PROP_TOP_BORDER
+/*68*/ , PROP_BOTTOM_BORDER
+/*69*/ , PROP_LEFT_BORDER_DISTANCE
+/*70*/ , PROP_RIGHT_BORDER_DISTANCE
+/*71*/ , PROP_TOP_BORDER_DISTANCE
+/*72*/ , PROP_BOTTOM_BORDER_DISTANCE
+/*73*/ , PROP_CURRENT_PRESENTATION
+/*74*/ , PROP_IS_FIXED
+/*75*/ , PROP_SUB_TYPE
+/*76*/ , PROP_FILE_FORMAT
+/*77*/ , PROP_HYPER_LINK_U_R_L
+/*78*/ , PROP_NUMBER_FORMAT
+/*79*/ , PROP_NAME
+/*80*/ , PROP_IS_INPUT
+/*81*/ , PROP_HINT
+/*82*/ , PROP_FULL_NAME
+/*83*/ , PROP_KEYWORDS
+/*84*/ , PROP_DESCRIPTION
+/*85*/ , PROP_MACRO_NAME
+/*86*/ , PROP_SUBJECT
+/*87*/ , PROP_USER_DATA_TYPE
+/*88*/ , PROP_TITLE
+/*89*/ , PROP_CONTENT
+/*90*/ , PROP_DATA_COLUMN_NAME
+///*91*/ , PROP_
+///*92*/ , PROP_
+///*93*/ , PROP_
+///*94*/ , PROP_
+///*95*/ , PROP_
+///*96*/ , PROP_
+///*97*/ , PROP_
+
+};
+struct PropertyNameSupplier_Impl;
+class PropertyNameSupplier
+{
+ PropertyNameSupplier_Impl* m_pImpl;
+public:
+ PropertyNameSupplier();
+ ~PropertyNameSupplier();
+ const rtl::OUString& GetName( PropertyIds eId );
+
+ static PropertyNameSupplier& GetPropertyNameSupplier();
+};
+} //namespace dmapper
+#endif
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
new file mode 100644
index 000000000000..674cf1e138bb
--- /dev/null
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -0,0 +1,179 @@
+#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX
+#include <PropertyMap.hxx>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
+#include <com/sun/star/beans/PropertyValue.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TABLE_BORDERLINE_HPP_
+#include <com/sun/star/table/BorderLine.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_
+#include <com/sun/star/container/XNameContainer.hpp>
+#endif
+
+using namespace ::com::sun::star;
+
+namespace dmapper{
+
+/*-- 21.06.2006 09:30:56---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PropertyMap::PropertyMap()
+{
+}
+/*-- 21.06.2006 09:30:56---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PropertyMap::~PropertyMap()
+{
+}
+/*-- 20.06.2006 10:23:55---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Sequence< beans::PropertyValue > PropertyMap::GetPropertyValues()
+{
+ if(!m_aValues.getLength() && size())
+ {
+ m_aValues.realloc( size() );
+ ::com::sun::star::beans::PropertyValue* pValues = m_aValues.getArray();
+ //style names have to be the first elements within the property sequence
+ //otherwise they will overwrite 'hard' attributes
+ sal_Int32 nValue = 0;
+ PropertyMap::iterator aParaStyleIter = find(::rtl::OUString::createFromAscii("ParaStyleName"));
+ if( aParaStyleIter != end())
+ {
+ pValues[nValue].Name = aParaStyleIter->first;
+ pValues[nValue].Value = aParaStyleIter->second;
+ ++nValue;
+ }
+ PropertyMap::iterator aCharStyleIter = find(::rtl::OUString::createFromAscii("CharStyleName"));
+ if( aCharStyleIter != end())
+ {
+ pValues[nValue].Name = aCharStyleIter->first;
+ pValues[nValue].Value = aCharStyleIter->second;
+ ++nValue;
+ }
+ PropertyMap::iterator aMapIter = begin();
+ for( ; nValue < m_aValues.getLength(); ++aMapIter )
+ {
+ if( aMapIter != aParaStyleIter && aMapIter != aCharStyleIter)
+ {
+ pValues[nValue].Name = aMapIter->first;
+ pValues[nValue].Value = aMapIter->second;
+ ++nValue;
+ }
+ }
+ }
+ return m_aValues;
+}
+/*-------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void PropertyMap::Insert( PropertyIds eId, const uno::Any& rAny )
+{
+ _PropertyMap::insert( PropertyMap::value_type
+ (PropertyNameSupplier::
+ GetPropertyNameSupplier().GetName(eId),
+ rAny));
+ Invalidate();
+}
+
+
+void PropertyMap::insert( PropertyMapPtr pMap)
+{
+ _PropertyMap::insert(pMap->begin(), pMap->end());
+}
+
+/*-- 24.07.2006 08:29:01---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+SectionPropertyMap::SectionPropertyMap()
+{
+ memset(&pBorderLines, 0x00, sizeof(pBorderLines));
+ memset(&nBorderDistances, 0x00, sizeof(nBorderDistances));
+}
+/*-- 24.07.2006 08:29:02---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+SectionPropertyMap::~SectionPropertyMap()
+{
+ for( sal_Int16 ePos = BORDER_LEFT; ePos <= BORDER_BOTTOM; ++ePos)
+ delete pBorderLines[ePos];
+}
+/*-- 24.07.2006 08:31:07---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+const ::rtl::OUString& SectionPropertyMap::GetPageStyleName( SectionPropertyMap::PageType eType)
+{
+ return sPageStyleNames[eType];
+}
+/*-- 24.07.2006 08:31:07---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SectionPropertyMap::SetPageStyleName( PageType eType, const ::rtl::OUString& rName)
+{
+ sPageStyleNames[eType] = rName;
+}
+/*-- 28.07.2006 13:00:43---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Reference< beans::XPropertySet > SectionPropertyMap::GetPageStyle(
+ const uno::Reference< container::XNameContainer >& xStyles, SectionPropertyMap::PageType eType)
+{
+ uno::Reference< beans::XPropertySet > xRet;
+ try
+ {
+ if(!aPageStyles[eType].is() && sPageStyleNames[eType].getLength())
+ {
+ xStyles->getByName(sPageStyleNames[eType]) >>= aPageStyles[eType];
+ }
+ xRet = aPageStyles[eType];
+ }
+ catch( const uno::Exception& )
+ {
+ }
+
+ return xRet;
+}
+/*-- 28.07.2006 10:56:26---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SectionPropertyMap::SetBorder( BorderPosition ePos, sal_Int32 nLineDistance, const table::BorderLine& rBorderLine )
+{
+ delete pBorderLines[ePos];
+ pBorderLines[ePos] = new table::BorderLine( rBorderLine );
+ nBorderDistances[ePos] = nLineDistance;
+}
+/*-- 28.07.2006 10:56:27---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SectionPropertyMap::ApplyBorderToPageStyles(
+ const uno::Reference< container::XNameContainer >& /*xStyles*/,
+ sal_Int32 nValue )
+{
+ /*
+ page border applies to:
+ nIntValue & 0x07 ->
+ 0 all pages in this section
+ 1 first page in this section
+ 2 all pages in this section but first
+ 3 whole document (all sections)
+ nIntValue & 0x18 -> page border depth 0 - in front 1- in back
+ nIntValue & 0xe0 ->
+ page border offset from:
+ 0 offset from text
+ 1 offset from edge of page
+ */
+ switch( nValue & 0x07)
+ {
+ case 0: /*all styles*/ break;
+ case 1: /*first page*/ break;
+ case 2: /*left and right*/ break;
+ case 3: //whole document?
+ break;
+ }
+// uno::Reference< beans::XPropertySet > xStyle = GetPageStyle( ePageType );
+
+}
+
+}//namespace dmapper
diff --git a/writerfilter/source/dmapper/PropertyMap.hxx b/writerfilter/source/dmapper/PropertyMap.hxx
new file mode 100644
index 000000000000..09f316c9ee54
--- /dev/null
+++ b/writerfilter/source/dmapper/PropertyMap.hxx
@@ -0,0 +1,115 @@
+#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX
+#define INCLUDED_DMAPPER_PROPERTYMAP_HXX
+
+#ifndef _RTL_USTRING_HXX_
+#include <rtl/ustring.hxx>
+#endif
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
+#include <com/sun/star/uno/Sequence.hxx>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HXX_
+#include <com/sun/star/beans/PropertyValue.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_UNO_ANY_H_
+#include <com/sun/star/uno/Any.h>
+#endif
+#ifndef INCLUDED_DMAPPER_PROPERTYIDS_HXX
+#include <PropertyIds.hxx>
+#endif
+#include <boost/shared_ptr.hpp>
+#include <map>
+namespace com{namespace sun{namespace star{
+ namespace beans{
+ struct PropertyValue;
+ }
+ namespace table{
+ struct BorderLine;
+ }
+ namespace container{
+ class XNameAccess;
+ class XNameContainer;
+ }
+}}}
+
+namespace dmapper{
+/*-- 15.06.2006 08:22:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+typedef std::map < ::rtl::OUString, ::com::sun::star::uno::Any > _PropertyMap;
+class PropertyMap : public _PropertyMap
+{
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aValues;
+
+ public:
+ PropertyMap();
+ virtual ~PropertyMap();
+
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetPropertyValues();
+ void PropertyMap::Insert( PropertyIds eId, const ::com::sun::star::uno::Any& rAny );
+
+ void insert(const boost::shared_ptr<PropertyMap> pMap);
+
+ void Invalidate()
+ {
+ if(m_aValues.getLength())
+ m_aValues.realloc( 0 );
+ }
+};
+typedef boost::shared_ptr<PropertyMap> PropertyMapPtr;
+
+/*-- 24.07.2006 08:26:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+class SectionPropertyMap : public PropertyMap
+{
+ //'temporarily' the section page settings are imported as page styles
+ // empty strings mark page settings as not yet imported
+ ::rtl::OUString sPageStyleNames[3];
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aPageStyles[3];
+// ::rtl::OUString sFirstPage;
+// ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xFirstPage;
+// ::rtl::OUString sRightPage;
+// ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xRightPage;
+// ::rtl::OUString sLeftPage;
+// ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xLeftPage;
+
+ ::com::sun::star::table::BorderLine* pBorderLines[4];
+ sal_Int32 nBorderDistances[4];
+
+ public:
+ SectionPropertyMap();
+ ~SectionPropertyMap();
+
+ enum PageType
+ {
+ PAGE_FIRST,
+ PAGE_LEFT,
+ PAGE_RIGHT
+ };
+ enum BorderPosition
+ {
+ BORDER_LEFT,
+ BORDER_RIGHT,
+ BORDER_TOP,
+ BORDER_BOTTOM
+ };
+
+ const ::rtl::OUString& GetPageStyleName( PageType eType );
+ void SetPageStyleName( PageType eType, const ::rtl::OUString& rName);
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > GetPageStyle(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xStyles,
+ PageType eType);
+
+ void SetBorder( BorderPosition ePos, sal_Int32 nLineDistance, const ::com::sun::star::table::BorderLine& rBorderLine );
+ //determine which style gets the borders
+ void ApplyBorderToPageStyles(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xStyles,
+ sal_Int32 nValue );
+};
+
+} //namespace dmapper
+#endif
diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx
new file mode 100644
index 000000000000..86b1d34efd1f
--- /dev/null
+++ b/writerfilter/source/dmapper/StyleSheetTable.cxx
@@ -0,0 +1,779 @@
+#ifndef INCLUDED_STYLESHEETTABLE_HXX
+#include <StyleSheetTable.hxx>
+#endif
+#ifndef INCLUDED_DOMAINMAPPER_HXX
+#include <dmapper/DomainMapper.hxx>
+#endif
+#ifndef INCLUDED_RESOURCESIDS
+#include <doctok/resourceids.hxx>
+#endif
+#include <vector>
+#ifndef _COM_SUN_STAR_BEANS_XMULTIPROPERTYSET_HPP_
+#include <com/sun/star/beans/XMultiPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYVALUE_HPP_
+#include <com/sun/star/beans/PropertyValue.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_
+#include <com/sun/star/container/XNameContainer.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXTDOCUMENT_HPP_
+#include <com/sun/star/text/XTextDocument.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLEFAMILIESSUPPLIER_HPP_
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLE_HPP_
+#include <com/sun/star/style/XStyle.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
+
+using namespace ::com::sun::star;
+namespace dmapper
+{
+using namespace writerfilter;
+
+/*-- 21.06.2006 07:34:44---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+StyleSheetEntry::StyleSheetEntry() :
+ nStyleIdentifierI(0)
+ ,nStyleIdentifierD(0)
+ ,bInvalidHeight(false)
+ ,bHasUPE(false)
+ ,nStyleTypeCode(STYLE_TYPE_UNKNOWN)
+ ,nBaseStyleIdentifier(0xfff)
+ ,nNextStyleIdentifier(-1)
+ ,pProperties(new PropertyMap)
+ ,nPropertyCalls(0)
+ {
+ }
+
+/*-- 19.06.2006 12:04:32---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+struct StyleSheetTable_Impl
+{
+ DomainMapper& m_rDMapper;
+ std::vector< StyleSheetEntry > m_aStyleSheetEntries;
+ StyleSheetEntry* m_pCurrentEntry;
+ StyleSheetTable_Impl(DomainMapper& rDMapper) :
+ m_rDMapper( rDMapper ),
+ m_pCurrentEntry(0){}
+};
+/*-- 19.06.2006 12:04:32---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+StyleSheetTable::StyleSheetTable(DomainMapper& rDMapper) :
+ m_pImpl( new StyleSheetTable_Impl(rDMapper) )
+{
+}
+/*-- 19.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+StyleSheetTable::~StyleSheetTable()
+{
+ delete m_pImpl;
+}
+/*-- 19.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void StyleSheetTable::attribute(doctok::Id Name, doctok::Value & val)
+{
+ OSL_ENSURE( m_pImpl->m_pCurrentEntry, "current entry has to be set here");
+ if(!m_pImpl->m_pCurrentEntry)
+ return ;
+ int nIntValue = val.getInt();
+ ::rtl::OUString sValue = val.getString();
+ switch(Name)
+ {
+ case NS_rtf::LN_ISTD:
+ m_pImpl->m_pCurrentEntry->nStyleIdentifierD = nIntValue;
+ break;
+// case NS_rtf::LN_ISTARTAT: break;
+// case NS_rtf::LN_NFC: break;
+// case NS_rtf::LN_JC: break;
+// case NS_rtf::LN_FLEGAL: break;
+// case NS_rtf::LN_FNORESTART: break;
+// case NS_rtf::LN_FPREV: break;
+// case NS_rtf::LN_FPREVSPACE: break;
+// case NS_rtf::LN_FWORD6: break;
+// case NS_rtf::LN_UNUSED5_7: break;
+// case NS_rtf::LN_RGBXCHNUMS: break;
+// case NS_rtf::LN_IXCHFOLLOW: break;
+// case NS_rtf::LN_DXASPACE: break;
+// case NS_rtf::LN_DXAINDENT: break;
+// case NS_rtf::LN_CBGRPPRLCHPX: break;
+// case NS_rtf::LN_CBGRPPRLPAPX: break;
+// case NS_rtf::LN_LSID: break;
+// case NS_rtf::LN_TPLC: break;
+// case NS_rtf::LN_RGISTD: break;
+// case NS_rtf::LN_FSIMPLELIST: break;
+// case NS_rtf::LN_FRESTARTHDN: break;
+// case NS_rtf::LN_UNSIGNED26_2: break;
+// case NS_rtf::LN_ILVL: break;
+// case NS_rtf::LN_FSTARTAT: break;
+// case NS_rtf::LN_FFORMATTING: break;
+// case NS_rtf::LN_UNSIGNED4_6: break;
+// case NS_rtf::LN_UNUSED4: break;
+// case NS_rtf::LN_UNUSED8: break;
+// case NS_rtf::LN_CLFOLVL: break;
+// case NS_rtf::LN_CBFFNM1: break;
+// case NS_rtf::LN_PRQ: break;
+// case NS_rtf::LN_FTRUETYPE: break;
+// case NS_rtf::LN_UNUSED1_3: break;
+// case NS_rtf::LN_FF: break;
+// case NS_rtf::LN_UNUSED1_7: break;
+// case NS_rtf::LN_WWEIGHT: break;
+// case NS_rtf::LN_CHS: break;
+// case NS_rtf::LN_IXCHSZALT: break;
+// case NS_rtf::LN_PANOSE: break;
+// case NS_rtf::LN_FS: break;
+ case NS_rtf::LN_STI:
+ m_pImpl->m_pCurrentEntry->nStyleIdentifierI = nIntValue;
+ break;
+ case NS_rtf::LN_SGC:
+ m_pImpl->m_pCurrentEntry->nStyleTypeCode = (StyleType)nIntValue;
+ break;
+ case NS_rtf::LN_ISTDBASE:
+ m_pImpl->m_pCurrentEntry->nBaseStyleIdentifier = nIntValue;
+ break;
+ case NS_rtf::LN_ISTDNEXT:
+ m_pImpl->m_pCurrentEntry->nNextStyleIdentifier = nIntValue;
+ break;
+ case NS_rtf::LN_FSCRATCH:
+ case NS_rtf::LN_FINVALHEIGHT:
+ case NS_rtf::LN_FHASUPE:
+ case NS_rtf::LN_FMASSCOPY:
+ case NS_rtf::LN_CUPX:
+ case NS_rtf::LN_BCHUPE:
+ case NS_rtf::LN_FAUTOREDEF:
+ case NS_rtf::LN_FHIDDEN:
+ case NS_rtf::LN_UNUSED8_3:
+ //noone seems to care about it
+ break;
+ break;
+// case NS_rtf::LN_CSTD: break;
+// case NS_rtf::LN_CBSTDBASEINFILE: break;
+// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
+// case NS_rtf::LN_UNUSED4_2: break;
+// case NS_rtf::LN_STIMAXWHENSAVED: break;
+// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
+// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
+// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
+// case NS_rtf::LN_WIDENT: break;
+// case NS_rtf::LN_NFIB: break;
+// case NS_rtf::LN_NPRODUCT: break;
+// case NS_rtf::LN_LID: break;
+// case NS_rtf::LN_PNNEXT: break;
+// case NS_rtf::LN_FDOT: break;
+// case NS_rtf::LN_FGLSY: break;
+// case NS_rtf::LN_FCOMPLEX: break;
+// case NS_rtf::LN_FHASPIC: break;
+// case NS_rtf::LN_CQUICKSAVES: break;
+// case NS_rtf::LN_FENCRYPTED: break;
+// case NS_rtf::LN_FWHICHTBLSTM: break;
+// case NS_rtf::LN_FREADONLYRECOMMENDED: break;
+// case NS_rtf::LN_FWRITERESERVATION: break;
+// case NS_rtf::LN_FEXTCHAR: break;
+// case NS_rtf::LN_FLOADOVERRIDE: break;
+// case NS_rtf::LN_FFAREAST: break;
+// case NS_rtf::LN_FCRYPTO: break;
+// case NS_rtf::LN_NFIBBACK: break;
+// case NS_rtf::LN_LKEY: break;
+// case NS_rtf::LN_ENVR: break;
+// case NS_rtf::LN_FMAC: break;
+// case NS_rtf::LN_FEMPTYSPECIAL: break;
+// case NS_rtf::LN_FLOADOVERRIDEPAGE: break;
+// case NS_rtf::LN_FFUTURESAVEDUNDO: break;
+// case NS_rtf::LN_FWORD97SAVED: break;
+// case NS_rtf::LN_FSPARE0: break;
+// case NS_rtf::LN_CHSTABLES: break;
+// case NS_rtf::LN_FCMIN: break;
+// case NS_rtf::LN_FCMAC: break;
+// case NS_rtf::LN_CSW: break;
+// case NS_rtf::LN_WMAGICCREATED: break;
+// case NS_rtf::LN_WMAGICREVISED: break;
+// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break;
+// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break;
+// case NS_rtf::LN_PNFBPCHPFIRST_W6: break;
+// case NS_rtf::LN_PNCHPFIRST_W6: break;
+// case NS_rtf::LN_CPNBTECHP_W6: break;
+// case NS_rtf::LN_PNFBPPAPFIRST_W6: break;
+// case NS_rtf::LN_PNPAPFIRST_W6: break;
+// case NS_rtf::LN_CPNBTEPAP_W6: break;
+// case NS_rtf::LN_PNFBPLVCFIRST_W6: break;
+// case NS_rtf::LN_PNLVCFIRST_W6: break;
+// case NS_rtf::LN_CPNBTELVC_W6: break;
+// case NS_rtf::LN_LIDFE: break;
+// case NS_rtf::LN_CLW: break;
+// case NS_rtf::LN_CBMAC: break;
+// case NS_rtf::LN_LPRODUCTCREATED: break;
+// case NS_rtf::LN_LPRODUCTREVISED: break;
+// case NS_rtf::LN_CCPTEXT: break;
+// case NS_rtf::LN_CCPFTN: break;
+// case NS_rtf::LN_CCPHDD: break;
+// case NS_rtf::LN_CCPMCR: break;
+// case NS_rtf::LN_CCPATN: break;
+// case NS_rtf::LN_CCPEDN: break;
+// case NS_rtf::LN_CCPTXBX: break;
+// case NS_rtf::LN_CCPHDRTXBX: break;
+// case NS_rtf::LN_PNFBPCHPFIRST: break;
+// case NS_rtf::LN_PNCHPFIRST: break;
+// case NS_rtf::LN_CPNBTECHP: break;
+// case NS_rtf::LN_PNFBPPAPFIRST: break;
+// case NS_rtf::LN_PNPAPFIRST: break;
+// case NS_rtf::LN_CPNBTEPAP: break;
+// case NS_rtf::LN_PNFBPLVCFIRST: break;
+// case NS_rtf::LN_PNLVCFIRST: break;
+// case NS_rtf::LN_CPNBTELVC: break;
+// case NS_rtf::LN_FCISLANDFIRST: break;
+// case NS_rtf::LN_FCISLANDLIM: break;
+// case NS_rtf::LN_CFCLCB: break;
+// case NS_rtf::LN_FCSTSHFORIG: break;
+// case NS_rtf::LN_LCBSTSHFORIG: break;
+// case NS_rtf::LN_FCSTSHF: break;
+// case NS_rtf::LN_LCBSTSHF: break;
+// case NS_rtf::LN_FCPLCFFNDREF: break;
+// case NS_rtf::LN_LCBPLCFFNDREF: break;
+// case NS_rtf::LN_FCPLCFFNDTXT: break;
+// case NS_rtf::LN_LCBPLCFFNDTXT: break;
+// case NS_rtf::LN_FCPLCFANDREF: break;
+// case NS_rtf::LN_LCBPLCFANDREF: break;
+// case NS_rtf::LN_FCPLCFANDTXT: break;
+// case NS_rtf::LN_LCBPLCFANDTXT: break;
+// case NS_rtf::LN_FCPLCFSED: break;
+// case NS_rtf::LN_LCBPLCFSED: break;
+// case NS_rtf::LN_FCPLCFPAD: break;
+// case NS_rtf::LN_LCBPLCFPAD: break;
+// case NS_rtf::LN_FCPLCFPHE: break;
+// case NS_rtf::LN_LCBPLCFPHE: break;
+// case NS_rtf::LN_FCSTTBFGLSY: break;
+// case NS_rtf::LN_LCBSTTBFGLSY: break;
+// case NS_rtf::LN_FCPLCFGLSY: break;
+// case NS_rtf::LN_LCBPLCFGLSY: break;
+// case NS_rtf::LN_FCPLCFHDD: break;
+// case NS_rtf::LN_LCBPLCFHDD: break;
+// case NS_rtf::LN_FCPLCFBTECHPX: break;
+// case NS_rtf::LN_LCBPLCFBTECHPX: break;
+// case NS_rtf::LN_FCPLCFBTEPAPX: break;
+// case NS_rtf::LN_LCBPLCFBTEPAPX: break;
+// case NS_rtf::LN_FCPLCFSEA: break;
+// case NS_rtf::LN_LCBPLCFSEA: break;
+// case NS_rtf::LN_FCSTTBFFFN: break;
+// case NS_rtf::LN_LCBSTTBFFFN: break;
+// case NS_rtf::LN_FCPLCFFLDMOM: break;
+// case NS_rtf::LN_LCBPLCFFLDMOM: break;
+// case NS_rtf::LN_FCPLCFFLDHDR: break;
+// case NS_rtf::LN_LCBPLCFFLDHDR: break;
+// case NS_rtf::LN_FCPLCFFLDFTN: break;
+// case NS_rtf::LN_LCBPLCFFLDFTN: break;
+// case NS_rtf::LN_FCPLCFFLDATN: break;
+// case NS_rtf::LN_LCBPLCFFLDATN: break;
+// case NS_rtf::LN_FCPLCFFLDMCR: break;
+// case NS_rtf::LN_LCBPLCFFLDMCR: break;
+// case NS_rtf::LN_FCSTTBFBKMK: break;
+// case NS_rtf::LN_LCBSTTBFBKMK: break;
+// case NS_rtf::LN_FCPLCFBKF: break;
+// case NS_rtf::LN_LCBPLCFBKF: break;
+// case NS_rtf::LN_FCPLCFBKL: break;
+// case NS_rtf::LN_LCBPLCFBKL: break;
+// case NS_rtf::LN_FCCMDS: break;
+// case NS_rtf::LN_LCBCMDS: break;
+// case NS_rtf::LN_FCPLCMCR: break;
+// case NS_rtf::LN_LCBPLCMCR: break;
+// case NS_rtf::LN_FCSTTBFMCR: break;
+// case NS_rtf::LN_LCBSTTBFMCR: break;
+// case NS_rtf::LN_FCPRDRVR: break;
+// case NS_rtf::LN_LCBPRDRVR: break;
+// case NS_rtf::LN_FCPRENVPORT: break;
+// case NS_rtf::LN_LCBPRENVPORT: break;
+// case NS_rtf::LN_FCPRENVLAND: break;
+// case NS_rtf::LN_LCBPRENVLAND: break;
+// case NS_rtf::LN_FCWSS: break;
+// case NS_rtf::LN_LCBWSS: break;
+// case NS_rtf::LN_FCDOP: break;
+// case NS_rtf::LN_LCBDOP: break;
+// case NS_rtf::LN_FCSTTBFASSOC: break;
+// case NS_rtf::LN_LCBSTTBFASSOC: break;
+// case NS_rtf::LN_FCCLX: break;
+// case NS_rtf::LN_LCBCLX: break;
+// case NS_rtf::LN_FCPLCFPGDFTN: break;
+// case NS_rtf::LN_LCBPLCFPGDFTN: break;
+// case NS_rtf::LN_FCAUTOSAVESOURCE: break;
+// case NS_rtf::LN_LCBAUTOSAVESOURCE: break;
+// case NS_rtf::LN_FCGRPXSTATNOWNERS: break;
+// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break;
+// case NS_rtf::LN_FCSTTBFATNBKMK: break;
+// case NS_rtf::LN_LCBSTTBFATNBKMK: break;
+// case NS_rtf::LN_FCPLCDOAMOM: break;
+// case NS_rtf::LN_LCBPLCDOAMOM: break;
+// case NS_rtf::LN_FCPLCDOAHDR: break;
+// case NS_rtf::LN_LCBPLCDOAHDR: break;
+// case NS_rtf::LN_FCPLCSPAMOM: break;
+// case NS_rtf::LN_LCBPLCSPAMOM: break;
+// case NS_rtf::LN_FCPLCSPAHDR: break;
+// case NS_rtf::LN_LCBPLCSPAHDR: break;
+// case NS_rtf::LN_FCPLCFATNBKF: break;
+// case NS_rtf::LN_LCBPLCFATNBKF: break;
+// case NS_rtf::LN_FCPLCFATNBKL: break;
+// case NS_rtf::LN_LCBPLCFATNBKL: break;
+// case NS_rtf::LN_FCPMS: break;
+// case NS_rtf::LN_LCBPMS: break;
+// case NS_rtf::LN_FCFORMFLDSTTBF: break;
+// case NS_rtf::LN_LCBFORMFLDSTTBF: break;
+// case NS_rtf::LN_FCPLCFENDREF: break;
+// case NS_rtf::LN_LCBPLCFENDREF: break;
+// case NS_rtf::LN_FCPLCFENDTXT: break;
+// case NS_rtf::LN_LCBPLCFENDTXT: break;
+// case NS_rtf::LN_FCPLCFFLDEDN: break;
+// case NS_rtf::LN_LCBPLCFFLDEDN: break;
+// case NS_rtf::LN_FCPLCFPGDEDN: break;
+// case NS_rtf::LN_LCBPLCFPGDEDN: break;
+// case NS_rtf::LN_FCDGGINFO: break;
+// case NS_rtf::LN_LCBDGGINFO: break;
+// case NS_rtf::LN_FCSTTBFRMARK: break;
+// case NS_rtf::LN_LCBSTTBFRMARK: break;
+// case NS_rtf::LN_FCSTTBFCAPTION: break;
+// case NS_rtf::LN_LCBSTTBFCAPTION: break;
+// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break;
+// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break;
+// case NS_rtf::LN_FCPLCFWKB: break;
+// case NS_rtf::LN_LCBPLCFWKB: break;
+// case NS_rtf::LN_FCPLCFSPL: break;
+// case NS_rtf::LN_LCBPLCFSPL: break;
+// case NS_rtf::LN_FCPLCFTXBXTXT: break;
+// case NS_rtf::LN_LCBPLCFTXBXTXT: break;
+// case NS_rtf::LN_FCPLCFFLDTXBX: break;
+// case NS_rtf::LN_LCBPLCFFLDTXBX: break;
+// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break;
+// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break;
+// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break;
+// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break;
+// case NS_rtf::LN_FCSTWUSER: break;
+// case NS_rtf::LN_LCBSTWUSER: break;
+// case NS_rtf::LN_FCSTTBTTMBD: break;
+// case NS_rtf::LN_LCBSTTBTTMBD: break;
+// case NS_rtf::LN_FCUNUSED: break;
+// case NS_rtf::LN_LCBUNUSED: break;
+// case NS_rtf::LN_FCPGDMOTHER: break;
+// case NS_rtf::LN_LCBPGDMOTHER: break;
+// case NS_rtf::LN_FCBKDMOTHER: break;
+// case NS_rtf::LN_LCBBKDMOTHER: break;
+// case NS_rtf::LN_FCPGDFTN: break;
+// case NS_rtf::LN_LCBPGDFTN: break;
+// case NS_rtf::LN_FCBKDFTN: break;
+// case NS_rtf::LN_LCBBKDFTN: break;
+// case NS_rtf::LN_FCPGDEDN: break;
+// case NS_rtf::LN_LCBPGDEDN: break;
+// case NS_rtf::LN_FCBKDEDN: break;
+// case NS_rtf::LN_LCBBKDEDN: break;
+// case NS_rtf::LN_FCSTTBFINTLFLD: break;
+// case NS_rtf::LN_LCBSTTBFINTLFLD: break;
+// case NS_rtf::LN_FCROUTESLIP: break;
+// case NS_rtf::LN_LCBROUTESLIP: break;
+// case NS_rtf::LN_FCSTTBSAVEDBY: break;
+// case NS_rtf::LN_LCBSTTBSAVEDBY: break;
+// case NS_rtf::LN_FCSTTBFNM: break;
+// case NS_rtf::LN_LCBSTTBFNM: break;
+// case NS_rtf::LN_FCPLCFLST: break;
+// case NS_rtf::LN_LCBPLCFLST: break;
+// case NS_rtf::LN_FCPLFLFO: break;
+// case NS_rtf::LN_LCBPLFLFO: break;
+// case NS_rtf::LN_FCPLCFTXBXBKD: break;
+// case NS_rtf::LN_LCBPLCFTXBXBKD: break;
+// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break;
+// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break;
+// case NS_rtf::LN_FCDOCUNDO: break;
+// case NS_rtf::LN_LCBDOCUNDO: break;
+// case NS_rtf::LN_FCRGBUSE: break;
+// case NS_rtf::LN_LCBRGBUSE: break;
+// case NS_rtf::LN_FCUSP: break;
+// case NS_rtf::LN_LCBUSP: break;
+// case NS_rtf::LN_FCUSKF: break;
+// case NS_rtf::LN_LCBUSKF: break;
+// case NS_rtf::LN_FCPLCUPCRGBUSE: break;
+// case NS_rtf::LN_LCBPLCUPCRGBUSE: break;
+// case NS_rtf::LN_FCPLCUPCUSP: break;
+// case NS_rtf::LN_LCBPLCUPCUSP: break;
+// case NS_rtf::LN_FCSTTBGLSYSTYLE: break;
+// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break;
+// case NS_rtf::LN_FCPLGOSL: break;
+// case NS_rtf::LN_LCBPLGOSL: break;
+// case NS_rtf::LN_FCPLCOCX: break;
+// case NS_rtf::LN_LCBPLCOCX: break;
+// case NS_rtf::LN_FCPLCFBTELVC: break;
+// case NS_rtf::LN_LCBPLCFBTELVC: break;
+// case NS_rtf::LN_DWLOWDATETIME: break;
+// case NS_rtf::LN_DWHIGHDATETIME: break;
+// case NS_rtf::LN_FCPLCFLVC: break;
+// case NS_rtf::LN_LCBPLCFLVC: break;
+// case NS_rtf::LN_FCPLCASUMY: break;
+// case NS_rtf::LN_LCBPLCASUMY: break;
+// case NS_rtf::LN_FCPLCFGRAM: break;
+// case NS_rtf::LN_LCBPLCFGRAM: break;
+// case NS_rtf::LN_FCSTTBLISTNAMES: break;
+// case NS_rtf::LN_LCBSTTBLISTNAMES: break;
+// case NS_rtf::LN_FCSTTBFUSSR: break;
+// case NS_rtf::LN_LCBSTTBFUSSR: break;
+// case NS_rtf::LN_FN: break;
+// case NS_rtf::LN_FCSEPX: break;
+// case NS_rtf::LN_FNMPR: break;
+// case NS_rtf::LN_FCMPR: break;
+// case NS_rtf::LN_ICOFORE: break;
+// case NS_rtf::LN_ICOBACK: break;
+// case NS_rtf::LN_IPAT: break;
+// case NS_rtf::LN_SHDFORECOLOR: break;
+// case NS_rtf::LN_SHDBACKCOLOR: break;
+// case NS_rtf::LN_SHDPATTERN: break;
+// case NS_rtf::LN_DPTLINEWIDTH: break;
+// case NS_rtf::LN_BRCTYPE: break;
+// case NS_rtf::LN_ICO: break;
+// case NS_rtf::LN_DPTSPACE: break;
+// case NS_rtf::LN_FSHADOW: break;
+// case NS_rtf::LN_FFRAME: break;
+// case NS_rtf::LN_UNUSED2_15: break;
+// case NS_rtf::LN_FFIRSTMERGED: break;
+// case NS_rtf::LN_FMERGED: break;
+// case NS_rtf::LN_FVERTICAL: break;
+// case NS_rtf::LN_FBACKWARD: break;
+// case NS_rtf::LN_FROTATEFONT: break;
+// case NS_rtf::LN_FVERTMERGE: break;
+// case NS_rtf::LN_FVERTRESTART: break;
+// case NS_rtf::LN_VERTALIGN: break;
+// case NS_rtf::LN_FUNUSED: break;
+// case NS_rtf::LN_WUNUSED: break;
+// case NS_rtf::LN_BRCTOP: break;
+// case NS_rtf::LN_BRCLEFT: break;
+// case NS_rtf::LN_BRCBOTTOM: break;
+// case NS_rtf::LN_BRCRIGHT: break;
+// case NS_rtf::LN_IBKL: break;
+// case NS_rtf::LN_ITCFIRST: break;
+// case NS_rtf::LN_FPUB: break;
+// case NS_rtf::LN_ITCLIM: break;
+// case NS_rtf::LN_FCOL: break;
+// case NS_rtf::LN_LINECOLOR: break;
+// case NS_rtf::LN_LINEWIDTH: break;
+// case NS_rtf::LN_LINETYPE: break;
+// case NS_rtf::LN_MM: break;
+// case NS_rtf::LN_XEXT: break;
+// case NS_rtf::LN_YEXT: break;
+// case NS_rtf::LN_HMF: break;
+// case NS_rtf::LN_LCB: break;
+// case NS_rtf::LN_CBHEADER: break;
+// case NS_rtf::LN_MFP: break;
+// case NS_rtf::LN_BM_RCWINMF: break;
+// case NS_rtf::LN_DXAGOAL: break;
+// case NS_rtf::LN_DYAGOAL: break;
+// case NS_rtf::LN_MX: break;
+// case NS_rtf::LN_MY: break;
+// case NS_rtf::LN_DXACROPLEFT: break;
+// case NS_rtf::LN_DYACROPTOP: break;
+// case NS_rtf::LN_DXACROPRIGHT: break;
+// case NS_rtf::LN_DYACROPBOTTOM: break;
+// case NS_rtf::LN_BRCL: break;
+// case NS_rtf::LN_FFRAMEEMPTY: break;
+// case NS_rtf::LN_FBITMAP: break;
+// case NS_rtf::LN_FDRAWHATCH: break;
+// case NS_rtf::LN_FERROR: break;
+// case NS_rtf::LN_BPP: break;
+// case NS_rtf::LN_DXAORIGIN: break;
+// case NS_rtf::LN_DYAORIGIN: break;
+// case NS_rtf::LN_CPROPS: break;
+// case NS_rtf::LN_LINEPROPSTOP: break;
+// case NS_rtf::LN_LINEPROPSLEFT: break;
+// case NS_rtf::LN_LINEPROPSBOTTOM: break;
+// case NS_rtf::LN_LINEPROPSRIGHT: break;
+// case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
+// case NS_rtf::LN_LINEPROPSVERTICAL: break;
+// case NS_rtf::LN_headerr: break;
+// case NS_rtf::LN_footerr: break;
+// case NS_rtf::LN_endnote: break;
+// case NS_rtf::LN_BOOKMARKNAME: break;
+
+// case NS_rtf::LN_LISTLEVEL: break;
+// case NS_rtf::LN_LFO: break;
+// case NS_rtf::LN_F: break;
+// case NS_rtf::LN_ALTFONTNAME: break;
+// case NS_rtf::LN_XSZFFN: break;
+ case NS_rtf::LN_XSTZNAME:
+ m_pImpl->m_pCurrentEntry->sStyleName1 = sValue;
+ break;
+ case NS_rtf::LN_XSTZNAME1:
+ m_pImpl->m_pCurrentEntry->sStyleName = sValue;
+ break;
+// case NS_rtf::LN_UPXSTART: break;
+ case NS_rtf::LN_UPX:
+ {
+ doctok::Reference<Properties>::Pointer_t pProperties;
+ ++m_pImpl->m_pCurrentEntry->nPropertyCalls;
+ if((pProperties = val.getProperties()).get())
+ pProperties->resolve(*this);
+ }
+ break;
+// case NS_rtf::LN_sed: break;
+// case NS_rtf::LN_picf: break;
+// case NS_rtf::LN_rgbrc: break;
+// case NS_rtf::LN_shd: break;
+// case NS_rtf::LN_cellShd: break;
+// case NS_rtf::LN_cellTopColor: break;
+// case NS_rtf::LN_cellLeftColor: break;
+// case NS_rtf::LN_cellBottomColor: break;
+// case NS_rtf::LN_cellRightColor: break;
+
+// case NS_rtf::LN_LISTTABLE: break;
+// case NS_rtf::LN_LFOTABLE: break;
+// case NS_rtf::LN_StyleSheetTable: break;
+// case NS_rtf::LN_STYLESHEET: break;
+ default:
+ {
+ //----> debug
+ int nVal = val.getInt();
+ ++nVal;
+ //<---- debug
+ }
+ }
+}
+/*-- 19.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void StyleSheetTable::sprm(doctok::Sprm & sprm_)
+{
+ //fill the attributes of the style sheet
+ if(m_pImpl->m_pCurrentEntry)
+ {
+ m_pImpl->m_rDMapper.sprm( sprm_, m_pImpl->m_pCurrentEntry->pProperties );
+ }
+
+}
+/*-- 19.06.2006 12:04:33---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void StyleSheetTable::entry(int /*pos*/, doctok::Reference<Properties>::Pointer_t ref)
+{
+ //create a new font entry
+ OSL_ENSURE( !m_pImpl->m_pCurrentEntry, "current entry has to be NULL here");
+ m_pImpl->m_pCurrentEntry = new StyleSheetEntry ;
+ ref->resolve(*this);
+ //append it to the table
+ m_pImpl->m_aStyleSheetEntries.push_back( *m_pImpl->m_pCurrentEntry );
+ m_pImpl->m_pCurrentEntry = 0;
+}
+/*-- 21.06.2006 15:34:49---------------------------------------------------
+ sorting helper
+ -----------------------------------------------------------------------*/
+typedef std::vector< beans::PropertyValue > _PropValVector;
+class PropValVector : public _PropValVector
+{
+public:
+ PropValVector(){}
+
+ void Insert( beans::PropertyValue aVal );
+ uno::Sequence< uno::Any > getValues();
+ uno::Sequence< ::rtl::OUString > getNames();
+};
+void PropValVector::Insert( beans::PropertyValue aVal )
+{
+ _PropValVector::iterator aIt = begin();
+ while(aIt != end())
+ {
+ if(aIt->Name > aVal.Name)
+ {
+ insert( aIt, aVal );
+ return;
+ }
+ ++aIt;
+ }
+ push_back( aVal );
+}
+uno::Sequence< uno::Any > PropValVector::getValues()
+{
+ uno::Sequence< uno::Any > aRet( size() );
+ uno::Any* pValues = aRet.getArray();
+ sal_Int32 nVal = 0;
+ _PropValVector::iterator aIt = begin();
+ while(aIt != end())
+ {
+ pValues[nVal++] = aIt->Value;
+ ++aIt;
+ }
+ return aRet;
+}
+uno::Sequence< ::rtl::OUString > PropValVector::getNames()
+{
+ uno::Sequence< ::rtl::OUString > aRet( size() );
+ ::rtl::OUString* pNames = aRet.getArray();
+ sal_Int32 nVal = 0;
+ _PropValVector::iterator aIt = begin();
+ while(aIt != end())
+ {
+ pNames[nVal++] = aIt->Name;
+ ++aIt;
+ }
+ return aRet;
+}
+/*-- 21.06.2006 13:35:48---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void StyleSheetTable::ApplyStyleSheets(uno::Reference< text::XTextDocument> xTextDocument)
+{
+ try
+ {
+ uno::Reference< style::XStyleFamiliesSupplier > xStylesSupplier( xTextDocument, uno::UNO_QUERY_THROW );
+ uno::Reference< lang::XMultiServiceFactory > xDocFactory( xTextDocument, uno::UNO_QUERY_THROW );
+ uno::Reference< container::XNameAccess > xStyleFamilies = xStylesSupplier->getStyleFamilies();
+ uno::Reference<container::XNameContainer> xCharStyles;
+ uno::Reference<container::XNameContainer> xParaStyles;
+
+ xStyleFamilies->getByName(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharacterStyles"))) >>= xCharStyles;
+ xStyleFamilies->getByName(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParagraphStyles"))) >>= xParaStyles;
+ if(xCharStyles.is() && xParaStyles.is())
+ {
+ std::vector< StyleSheetEntry >::iterator aIt = m_pImpl->m_aStyleSheetEntries.begin();
+ while( aIt != m_pImpl->m_aStyleSheetEntries.end() )
+ {
+ bool bParaStyle = aIt->nPropertyCalls > 1;
+ bool bInsert = false;
+ uno::Reference< container::XNameContainer > xStyles = bParaStyle ? xParaStyles : xCharStyles;
+ uno::Reference< style::XStyle > xStyle;
+ if(xStyles->hasByName( aIt->sStyleName ))
+ xStyles->getByName( aIt->sStyleName ) >>= xStyle;
+ else
+ {
+ bInsert = true;
+ xStyle = uno::Reference< style::XStyle >(xDocFactory->createInstance(
+ bParaStyle ?
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.ParagraphStyle")) :
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.CharacterStyle"))),
+ uno::UNO_QUERY_THROW);
+ }
+ uno::Sequence< beans::PropertyValue > aPropValues = aIt->pProperties->GetPropertyValues();
+ if(aIt->nBaseStyleIdentifier != 0xfff )
+ {
+ //find the name of the base style
+ std::vector< StyleSheetEntry >::iterator aBaseStyleIt = m_pImpl->m_aStyleSheetEntries.begin();
+ for( ; aBaseStyleIt != m_pImpl->m_aStyleSheetEntries.end(); ++aBaseStyleIt )
+ if(aBaseStyleIt->nStyleIdentifierD == aIt->nBaseStyleIdentifier)
+ {
+ xStyle->setParentStyle(aBaseStyleIt->sStyleName);
+ break;
+ }
+ }
+
+ bool bAddFollowStyle = false;
+ if(bParaStyle && aIt->nNextStyleIdentifier >= 0 )
+ {
+ bAddFollowStyle = true;
+ }
+ if(bAddFollowStyle || aPropValues.getLength())
+ {
+// sal_Int32 nSetProperties = aPropValues.getLength();
+// if(bAddFollowStyle)
+// ++nSetProperties;
+
+// uno::Sequence< ::rtl::OUString > aNames( nSetProperties );
+// ::rtl::OUString* pNames = aNames.getArray();
+// uno::Sequence< uno::Any > aValues( nSetProperties );
+// uno::Any* pValues = aValues.getArray();
+ const beans::PropertyValue* pPropValues = aPropValues.getConstArray();
+ PropValVector aSortedPropVals;
+ for( sal_Int32 nProp = 0; nProp < aPropValues.getLength(); ++nProp)
+ {
+ aSortedPropVals.Insert( pPropValues[nProp] );
+
+// pNames[nProp] = pPropValues[nProp].Name;
+// pValues[nProp] = pPropValues[nProp].Value;
+ }
+ if(bAddFollowStyle)
+ {
+ beans::PropertyValue aNew;
+ aNew.Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FollowStyle"));
+ //find the name of the Next style
+ std::vector< StyleSheetEntry >::iterator aNextStyleIt = m_pImpl->m_aStyleSheetEntries.begin();
+ for( ; aNextStyleIt != m_pImpl->m_aStyleSheetEntries.end(); ++aNextStyleIt )
+ if(aNextStyleIt->nStyleIdentifierD == aIt->nNextStyleIdentifier)
+ {
+ aNew.Value = uno::makeAny(aNextStyleIt->sStyleName);
+ break;
+ }
+ aSortedPropVals.Insert( aNew );
+// pNames[--nSetProperties] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FollowStyle"));
+// pValues[nSetProperties] = uno::makeAny(
+// m_pImpl->m_aStyleSheetEntries[aIt->nNextStyleIdentifier].sStyleName);
+ }
+
+ uno::Reference< beans::XMultiPropertySet > xMultiPropertySet( xStyle, uno::UNO_QUERY_THROW );
+// xMultiPropertySet->setPropertyValues( aNames, aValues );
+ xMultiPropertySet->setPropertyValues( aSortedPropVals.getNames(), aSortedPropVals.getValues() );
+ }
+ if(bInsert)
+ xStyles->insertByName( aIt->sStyleName, uno::makeAny( xStyle) );
+
+
+/*
+struct StyleSheetEntry
+{
+ sal_Int16 nStyleIdentifier;
+ bool bInvalidHeight;
+ bool bHasUPE; //universal property expansion
+ sal_uInt8 nStyleTypeCode; //sgc
+ sal_Int16 nBaseStyleIdentifier;
+ sal_Int16 nNextStyleIdentifier;
+ ::rtl::OUString sStyleName;
+ ::rtl::OUString sStyleName1;
+ PropertyMapPtr pProperties;
+ sal_Int16 nPropertyCalls; //determines paragraph (2)/character style(1)
+ StyleSheetEntry();
+};
+
+ */
+ ++aIt;
+ }
+ }
+ }
+ catch( uno::Exception& )
+ {
+ OSL_ASSERT("Styles could not be imported completely");
+ }
+}
+/*-- 22.06.2006 15:56:56---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+const StyleSheetEntry* StyleSheetTable::FindStyleSheetByISTD(sal_Int32 nIndex)
+{
+ const StyleSheetEntry* pRet = 0;
+ for( sal_uInt32 nPos = 0; nPos < m_pImpl->m_aStyleSheetEntries.size(); ++nPos )
+ {
+ if( m_pImpl->m_aStyleSheetEntries[nPos].nStyleIdentifierD == nIndex)
+ {
+ pRet = &m_pImpl->m_aStyleSheetEntries[nPos];
+ break;
+ }
+ }
+ return pRet;
+}
+
+/*-- 17.07.2006 11:47:00---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+const StyleSheetEntry* StyleSheetTable::FindParentStyleSheet(sal_Int32 nBaseStyle)
+{
+ if(nBaseStyle < 0 && m_pImpl->m_pCurrentEntry)
+ nBaseStyle = m_pImpl->m_pCurrentEntry->nBaseStyleIdentifier;
+
+ const StyleSheetEntry* pRet = 0;
+ for( sal_uInt32 nPos = 0; nPos < m_pImpl->m_aStyleSheetEntries.size(); ++nPos )
+ {
+ if( m_pImpl->m_aStyleSheetEntries[nPos].nStyleIdentifierD == nBaseStyle)
+ {
+ pRet = &m_pImpl->m_aStyleSheetEntries[nPos];
+ break;
+ }
+ }
+ return pRet;
+}
+
+}//namespace dmapper
+
diff --git a/writerfilter/source/dmapper/StyleSheetTable.hxx b/writerfilter/source/dmapper/StyleSheetTable.hxx
new file mode 100644
index 000000000000..50739d26c3d9
--- /dev/null
+++ b/writerfilter/source/dmapper/StyleSheetTable.hxx
@@ -0,0 +1,70 @@
+#ifndef INCLUDED_STYLESHEETTABLE_HXX
+#define INCLUDED_STYLESHEETTABLE_HXX
+
+#ifndef INCLUDED_WRITERFILTERDLLAPI_H
+#include <WriterFilterDllApi.hxx>
+#endif
+#include <com/sun/star/lang/XComponent.hpp>
+#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX
+#include <PropertyMap.hxx>
+#endif
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX
+#include <doctok/WW8ResourceModel.hxx>
+#endif
+
+namespace com{ namespace sun { namespace star { namespace text{
+ class XTextDocument;
+}}}}
+namespace dmapper
+{
+enum StyleType
+{
+ STYLE_TYPE_UNKNOWN,
+ STYLE_TYPE_PARA,
+ STYLE_TYPE_CHAR,
+ STYLE_TYPE_TABLE,
+ STYLE_LIST
+};
+
+struct StyleSheetTable_Impl;
+struct StyleSheetEntry
+{
+ sal_Int32 nStyleIdentifierI;
+ sal_Int32 nStyleIdentifierD;
+ bool bInvalidHeight;
+ bool bHasUPE; //universal property expansion
+ StyleType nStyleTypeCode; //sgc
+ sal_Int32 nBaseStyleIdentifier;
+ sal_Int32 nNextStyleIdentifier;
+ ::rtl::OUString sStyleName;
+ ::rtl::OUString sStyleName1;
+ PropertyMapPtr pProperties;
+ sal_Int16 nPropertyCalls; //determines paragraph (2)/character style(1)
+ StyleSheetEntry();
+};
+class DomainMapper;
+class WRITERFILTER_DLLPRIVATE StyleSheetTable :
+ public doctok::Properties,
+ public doctok::Table
+{
+ StyleSheetTable_Impl *m_pImpl;
+
+public:
+ StyleSheetTable( DomainMapper& rDMapper );
+ virtual ~StyleSheetTable();
+
+ // Properties
+ virtual void attribute(doctok::Id Name, doctok::Value & val);
+ virtual void sprm(doctok::Sprm & sprm);
+
+ // Table
+ virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref);
+
+ void ApplyStyleSheets(::com::sun::star::uno::Reference< ::com::sun::star::text::XTextDocument> xTextDocument);
+ const StyleSheetEntry* FindStyleSheetByISTD(sal_Int32 nIndex);
+ // returns the parent of the one with the given name - if empty the parent of the current style sheet is returned
+ const StyleSheetEntry* FindParentStyleSheet(sal_Int32 nBaseStyleIdentifier);
+};
+}
+
+#endif //
diff --git a/writerfilter/source/dmapper/makefile.mk b/writerfilter/source/dmapper/makefile.mk
new file mode 100644
index 000000000000..18bd99d4bda1
--- /dev/null
+++ b/writerfilter/source/dmapper/makefile.mk
@@ -0,0 +1,31 @@
+PRJ=..$/..
+PRJNAME=writerfilter
+TARGET=dmapper
+GEN_HID=TRUE
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION
+
+# --- Files -------------------------------------
+
+SLOFILES= $(SLO)$/ConversionHelper.obj \
+ $(SLO)$/DomainMapper.obj \
+ $(SLO)$/DomainMapper_Impl.obj \
+ $(SLO)$/DomainMapperTableHandler.obj \
+ $(SLO)$/PropertyMap.obj \
+ $(SLO)$/PropertyIds.obj \
+ $(SLO)$/FontTable.obj \
+ $(SLO)$/StyleSheetTable.obj \
+ $(SLO)$/ListTable.obj \
+ $(SLO)$/LFOTable.obj
+
+# --- Targets ----------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/writerfilter/source/doctok/Dff.cxx b/writerfilter/source/doctok/Dff.cxx
new file mode 100644
index 000000000000..c0b5d151612b
--- /dev/null
+++ b/writerfilter/source/doctok/Dff.cxx
@@ -0,0 +1,350 @@
+#include "Dff.hxx"
+#include <doctok/resourceids.hxx>
+#include "resources.hxx"
+
+namespace doctok {
+
+DffRecord::DffRecord(WW8Stream & rStream, sal_uInt32 nOffset,
+ sal_uInt32 nCount)
+: WW8StructBase(rStream, nOffset, nCount), bInitialized(false)
+{
+}
+
+DffRecord::DffRecord(WW8StructBase * pParent, sal_uInt32 nOffset,
+ sal_uInt32 nCount)
+: WW8StructBase(pParent, nOffset, nCount), bInitialized(false)
+{
+}
+
+Records_t::iterator DffRecord::begin()
+{
+ if (! bInitialized)
+ initChildren();
+
+ return mRecords.begin();
+}
+
+Records_t::iterator DffRecord::end()
+{
+ if (! bInitialized)
+ initChildren();
+
+ return mRecords.end();
+}
+
+bool DffRecord::isContainer() const
+{
+ return getVersion() == 0xf;
+}
+
+sal_uInt32 DffRecord::calcSize() const
+{
+ sal_uInt32 nResult = 0;
+
+ switch (getRecordType())
+ {
+ case 0xf000:
+ case 0xf001:
+ case 0xf002:
+ case 0xf003:
+ case 0xf004:
+ nResult = getU32(0x4) + 8;
+
+ break;
+ case 0xf700:
+ nResult = 8;
+
+ break;
+ default:
+ nResult = getU32(0x4);
+
+ if (! isContainer())
+ nResult += 8;
+ break;
+ }
+
+ return nResult;
+}
+
+sal_uInt32 DffRecord::getVersion() const
+{
+ return getU8(0x0) & 0xf;
+}
+
+sal_uInt32 DffRecord::getInstance() const
+{
+ return (getU16(0x0) & 0xfff0) >> 4;
+}
+
+sal_uInt32 DffRecord::getRecordType() const
+{
+ return getU16(0x2);
+}
+
+void DffRecord::initChildren()
+{
+ if (isContainer())
+ {
+ sal_uInt32 nOffset = 8;
+ sal_uInt32 nCount = calcSize();
+
+ while (nCount - nOffset >= 8)
+ {
+ sal_uInt32 nSize = 0;
+ boost::shared_ptr<DffRecord> pRec
+ (createDffRecord(this, nOffset, &nSize));
+
+ mRecords.push_back(pRec);
+
+ nOffset += nSize;
+ }
+ }
+
+ bInitialized = true;
+}
+
+Records_t DffRecord::findRecords(sal_uInt32 nType, bool bRecursive, bool bAny)
+{
+ Records_t aResult;
+
+ findRecords(nType, aResult, bRecursive, bAny);
+
+ return aResult;
+}
+
+void DffRecord::findRecords
+(sal_uInt32 nType, Records_t & rRecords, bool bRecursive, bool bAny)
+{
+ Records_t::iterator aIt = begin();
+
+ while (aIt != end())
+ {
+ Pointer_t pPointer = *aIt;
+ if (bAny || pPointer->getRecordType() == nType)
+ rRecords.push_back(pPointer);
+
+ if (bRecursive)
+ pPointer->findRecords(nType, rRecords, bRecursive,
+ bAny);
+
+ ++aIt;
+ }
+}
+
+void DffRecord::resolveChildren(Properties & rHandler)
+{
+ Records_t::iterator aIt;
+ for (aIt = begin(); aIt != end(); ++aIt)
+ {
+ rHandler.sprm(**aIt);
+ }
+}
+
+void DffRecord::resolveLocal(Properties &)
+{
+}
+
+void DffRecord::resolve(Properties & rHandler)
+{
+ WW8Value::Pointer_t pVal = createValue(getRecordType());
+ rHandler.attribute(NS_rtf::LN_dfftype, *pVal);
+
+ pVal = createValue(getInstance());
+ rHandler.attribute(NS_rtf::LN_dffinstance, *pVal);
+
+ pVal = createValue(getVersion());
+ rHandler.attribute(NS_rtf::LN_dffversion, *pVal);
+
+ if (isContainer())
+ {
+ resolveChildren(rHandler);
+ }
+ else
+ {
+ resolveLocal(rHandler);
+ }
+}
+
+string DffRecord::getType() const
+{
+ return "DffRecord";
+}
+
+Value::Pointer_t DffRecord::getValue()
+{
+ return Value::Pointer_t();
+}
+
+doctok::Reference<BinaryObj>::Pointer_t DffRecord::getBinary()
+{
+ return doctok::Reference<BinaryObj>::Pointer_t();
+}
+
+doctok::Reference<Stream>::Pointer_t DffRecord::getStream()
+{
+ return doctok::Reference<Stream>::Pointer_t();
+}
+
+doctok::Reference<Properties>::Pointer_t DffRecord::getProps()
+{
+ return doctok::Reference<Properties>::Pointer_t(this->clone());
+}
+
+string DffRecord::toString() const
+{
+ char sBuffer[1024];
+
+ snprintf(sBuffer, sizeof(sBuffer),
+ "<dffrecord type=\"%lx\" instance=\"%lx\" version=\"%lx\">\n",
+ getRecordType(), getInstance(), getVersion());
+ string aResult = sBuffer;
+
+
+ if (!isContainer())
+ aResult += mSequence.toString();
+ else
+ {
+ WW8StructBase::Sequence aSeq(mSequence, 0, 8);
+ aResult += aSeq.toString();
+ }
+
+ aResult += "</dffrecord>";
+
+ return aResult;
+}
+
+string DffRecord::getName() const
+{
+ return "";
+}
+
+DffBlock::DffBlock(WW8Stream & rStream, sal_uInt32 nOffset,
+ sal_uInt32 nCount, sal_uInt32 nPadding)
+: WW8StructBase(rStream, nOffset, nCount), bInitialized(false),
+ mnPadding(nPadding)
+{
+}
+
+DffBlock::DffBlock(WW8StructBase * pParent, sal_uInt32 nOffset,
+ sal_uInt32 nCount, sal_uInt32 nPadding)
+: WW8StructBase(pParent, nOffset, nCount), bInitialized(false),
+ mnPadding(nPadding)
+{
+}
+
+DffBlock::DffBlock(const DffBlock & rSrc)
+: WW8StructBase(rSrc), doctok::Reference<Properties>(rSrc),
+ bInitialized(false), mnPadding(rSrc.mnPadding)
+{
+}
+
+void DffBlock::initChildren()
+{
+ sal_uInt32 nOffset = 0;
+ sal_uInt32 nCount = getCount();
+
+ while (nOffset < nCount)
+ {
+ sal_uInt32 nSize = 0;
+ DffRecord::Pointer_t pDffRecord
+ (createDffRecord(this, nOffset, &nSize));
+
+ mRecords.push_back(pDffRecord);
+
+ nOffset += nSize + mnPadding;
+ }
+
+ bInitialized = true;
+}
+
+Records_t DffBlock::findRecords(sal_uInt32 nType, bool bRecursive, bool bAny)
+{
+ Records_t aResult;
+
+ findRecords(nType, aResult, bRecursive, bAny);
+
+ return aResult;
+}
+
+void DffBlock::findRecords
+(sal_uInt32 nType, Records_t & rRecords, bool bRecursive, bool bAny)
+{
+ Records_t::iterator aIt = begin();
+
+ while (aIt != end())
+ {
+ DffRecord::Pointer_t pPointer(*aIt);
+
+ if (bAny || pPointer->getRecordType() == nType)
+ rRecords.push_back(pPointer);
+
+ if (bRecursive)
+ pPointer->findRecords(nType, rRecords, bRecursive,
+ bAny);
+
+ ++aIt;
+ }
+}
+
+void DffBlock::resolve(Properties & rHandler)
+{
+ Records_t::iterator aIt;
+
+ for (aIt = begin(); aIt != end(); ++aIt)
+ {
+ DffRecord * pDff = aIt->get();
+ rHandler.sprm(*pDff);
+ }
+}
+
+DffRecord::Pointer_t DffBlock::getShape(sal_uInt32 nSpid)
+{
+ DffRecord::Pointer_t pResult;
+
+ Records_t aRecords = findRecords(0xf004);
+ Records_t::iterator aIt;
+ for (aIt = aRecords.begin(); aIt != aRecords.end(); ++aIt)
+ {
+ DffRecord::Pointer_t pPointer = *aIt;
+
+ Records_t aFSPs = pPointer->findRecords(0xf00a);
+ Records_t::iterator aItFSP = aFSPs.begin();
+
+ if (aItFSP != aFSPs.end())
+ {
+ DffFSP * pFSP = dynamic_cast<DffFSP *>((*aItFSP).get());
+
+ if (pFSP->get_shpid() == nSpid)
+ {
+ pResult = pPointer;
+
+ break;
+ }
+ }
+ }
+
+ return pResult;
+}
+
+Records_t::iterator DffBlock::begin()
+{
+ if (! bInitialized)
+ initChildren();
+
+ return mRecords.begin();
+}
+
+Records_t::iterator DffBlock::end()
+{
+ if (! bInitialized)
+ initChildren();
+
+ return mRecords.end();
+}
+
+string DffBlock::getType() const
+{
+ return "DffBlock";
+}
+
+}
diff --git a/writerfilter/source/doctok/Dff.hxx b/writerfilter/source/doctok/Dff.hxx
new file mode 100644
index 000000000000..eb27305b5990
--- /dev/null
+++ b/writerfilter/source/doctok/Dff.hxx
@@ -0,0 +1,124 @@
+/*******************************************************************
+ *
+ * $RCSfile: Dff.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: hbrinkm $ $Date: 2006-10-24 09:27:16 $
+ *
+ ******************************************************************/
+
+#ifndef INCLUDED_DFF_HXX
+#define INCLUDED_DFF_HXX
+
+#include <vector>
+#include <WW8StructBase.hxx>
+#include <WW8ResourceModelImpl.hxx>
+
+namespace doctok
+{
+using std::vector;
+
+class DffBlock;
+
+class DffRecord : public WW8StructBase, public doctok::Reference<Properties>,
+ public Sprm
+{
+ bool bInitialized;
+public:
+ typedef boost::shared_ptr<DffRecord> Pointer_t;
+
+protected:
+ typedef vector<Pointer_t> Records_t;
+ Records_t mRecords;
+
+ void initChildren();
+
+public:
+
+ DffRecord(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount);
+ DffRecord(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 nCount);
+ virtual ~DffRecord() {}
+
+ bool isContainer() const;
+ sal_uInt32 calcSize() const;
+
+ sal_uInt32 getVersion() const;
+ sal_uInt32 getInstance() const;
+ sal_uInt32 getRecordType() const;
+
+ virtual DffRecord * clone() const { return new DffRecord(*this); }
+
+ virtual void resolveLocal(Properties & rHandler);
+ virtual void resolveChildren(Properties & rHandler);
+
+ Records_t findRecords(sal_uInt32 nType, bool bRecursive = true,
+ bool bAny = false);
+
+ void findRecords
+ (sal_uInt32 nType, Records_t & rRecords,
+ bool bRecursive = true, bool bAny = false);
+
+ Records_t::iterator begin();
+ Records_t::iterator end();
+
+ /* Properties methods */
+ virtual void resolve(Properties & rHandler);
+ virtual string getType() const;
+
+ /* Sprm methods */
+ virtual sal_uInt32 getId() const { return getRecordType(); }
+ virtual Value::Pointer_t getValue();
+ virtual doctok::Reference<BinaryObj>::Pointer_t getBinary();
+ virtual doctok::Reference<Stream>::Pointer_t getStream();
+ virtual doctok::Reference<Properties>::Pointer_t getProps();
+
+ virtual string toString() const;
+ virtual string getName() const;
+
+ friend class DffBlock;
+};
+
+typedef vector<DffRecord::Pointer_t> Records_t;
+
+class DffBlock : public WW8StructBase, public doctok::Reference<Properties>
+{
+ bool bInitialized;
+ sal_uInt32 mnPadding;
+
+ Records_t mRecords;
+
+protected:
+ void initChildren();
+
+public:
+ typedef boost::shared_ptr<DffBlock> Pointer_t;
+
+ DffBlock(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount, sal_uInt32 nPadding);
+ DffBlock(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 nCount, sal_uInt32 nPadding);
+ DffBlock(const DffBlock & rSrc);
+ virtual ~DffBlock() {}
+
+ Records_t findRecords(sal_uInt32 nType, bool bRecursive = true,
+ bool bAny = false);
+
+ void findRecords(sal_uInt32 nType, Records_t & rRecords,
+ bool bRecursive = true, bool bAny = false);
+
+ DffRecord::Pointer_t getShape(sal_uInt32 nSpid);
+
+ Records_t::iterator begin();
+ Records_t::iterator end();
+
+ /* Properties methods */
+ virtual void resolve(Properties & rHandler);
+ virtual string getType() const;
+};
+
+DffRecord *
+createDffRecord(WW8StructBase * pParent, sal_uInt32 nOffset,
+ sal_uInt32 * nSize = NULL);
+
+}
+
+#endif
diff --git a/writerfilter/source/doctok/DffImpl.cxx b/writerfilter/source/doctok/DffImpl.cxx
new file mode 100644
index 000000000000..7fe9fd99896d
--- /dev/null
+++ b/writerfilter/source/doctok/DffImpl.cxx
@@ -0,0 +1,352 @@
+#include "resources.hxx"
+
+namespace doctok
+{
+class ShapeTypeToString
+{
+ typedef boost::shared_ptr<ShapeTypeToString> Pointer_t;
+
+ static Pointer_t pInstance;
+
+ typedef map<sal_uInt32, string> Map_t;
+ Map_t mMap;
+
+protected:
+ ShapeTypeToString();
+
+public:
+ static Pointer_t Instance()
+ {
+ if (pInstance == NULL)
+ pInstance = Pointer_t(new ShapeTypeToString());
+
+ return pInstance;
+ }
+
+ string operator()(sal_uInt32 nShapeType)
+ {
+ return mMap[nShapeType];
+ }
+};
+
+ShapeTypeToString::Pointer_t ShapeTypeToString::pInstance;
+
+ShapeTypeToString::ShapeTypeToString()
+{
+ mMap[0]="NotPrimitive";
+ mMap[1]="Rectangle";
+ mMap[2]="RoundRectangle";
+ mMap[3]="Ellipse";
+ mMap[4]="Diamond";
+ mMap[5]="IsocelesTriangle";
+ mMap[6]="RightTriangle";
+ mMap[7]="Parallelogram";
+ mMap[8]="Trapezoid";
+ mMap[9]="Hexagon";
+ mMap[10]="Octagon";
+ mMap[11]="Plus";
+ mMap[12]="Star";
+ mMap[13]="Arrow";
+ mMap[14]="ThickArrow";
+ mMap[15]="HomePlate";
+ mMap[16]="Cube";
+ mMap[17]="Balloon";
+ mMap[18]="Seal";
+ mMap[19]="Arc";
+ mMap[20]="Line";
+ mMap[21]="Plaque";
+ mMap[22]="Can";
+ mMap[23]="Donut";
+ mMap[24]="TextSimple";
+ mMap[25]="TextOctagon";
+ mMap[26]="TextHexagon";
+ mMap[27]="TextCurve";
+ mMap[28]="TextWave";
+ mMap[29]="TextRing";
+ mMap[30]="TextOnCurve";
+ mMap[31]="TextOnRing";
+ mMap[32]="StraightConnector1";
+ mMap[33]="BentConnector2";
+ mMap[34]="BentConnector3";
+ mMap[35]="BentConnector4";
+ mMap[36]="BentConnector5";
+ mMap[37]="CurvedConnector2";
+ mMap[38]="CurvedConnector3";
+ mMap[39]="CurvedConnector4";
+ mMap[40]="CurvedConnector5";
+ mMap[41]="Callout1";
+ mMap[42]="Callout2";
+ mMap[43]="Callout3";
+ mMap[44]="AccentCallout1";
+ mMap[45]="AccentCallout2";
+ mMap[46]="AccentCallout3";
+ mMap[47]="BorderCallout1";
+ mMap[48]="BorderCallout2";
+ mMap[49]="BorderCallout3";
+ mMap[50]="AccentBorderCallout1";
+ mMap[51]="AccentBorderCallout2";
+ mMap[52]="AccentBorderCallout3";
+ mMap[53]="Ribbon";
+ mMap[54]="Ribbon2";
+ mMap[55]="Chevron";
+ mMap[56]="Pentagon";
+ mMap[57]="NoSmoking";
+ mMap[58]="Seal8";
+ mMap[59]="Seal16";
+ mMap[60]="Seal32";
+ mMap[61]="WedgeRectCallout";
+ mMap[62]="WedgeRRectCallout";
+ mMap[63]="WedgeEllipseCallout";
+ mMap[64]="Wave";
+ mMap[65]="FoldedCorner";
+ mMap[66]="LeftArrow";
+ mMap[67]="DownArrow";
+ mMap[68]="UpArrow";
+ mMap[69]="LeftRightArrow";
+ mMap[70]="UpDownArrow";
+ mMap[71]="IrregularSeal1";
+ mMap[72]="IrregularSeal2";
+ mMap[73]="LightningBolt";
+ mMap[74]="Heart";
+ mMap[75]="PictureFrame";
+ mMap[76]="QuadArrow";
+ mMap[77]="LeftArrowCallout";
+ mMap[78]="RightArrowCallout";
+ mMap[79]="UpArrowCallout";
+ mMap[80]="DownArrowCallout";
+ mMap[81]="LeftRightArrowCallout";
+ mMap[82]="UpDownArrowCallout";
+ mMap[83]="QuadArrowCallout";
+ mMap[84]="Bevel";
+ mMap[85]="LeftBracket";
+ mMap[86]="RightBracket";
+ mMap[87]="LeftBrace";
+ mMap[88]="RightBrace";
+ mMap[89]="LeftUpArrow";
+ mMap[90]="BentUpArrow";
+ mMap[91]="BentArrow";
+ mMap[92]="Seal24";
+ mMap[93]="StripedRightArrow";
+ mMap[94]="NotchedRightArrow";
+ mMap[95]="BlockArc";
+ mMap[96]="SmileyFace";
+ mMap[97]="VerticalScroll";
+ mMap[98]="HorizontalScroll";
+ mMap[99]="CircularArrow";
+ mMap[100]="NotchedCircularArrow";
+ mMap[101]="UturnArrow";
+ mMap[102]="CurvedRightArrow";
+ mMap[103]="CurvedLeftArrow";
+ mMap[104]="CurvedUpArrow";
+ mMap[105]="CurvedDownArrow";
+ mMap[106]="CloudCallout";
+ mMap[107]="EllipseRibbon";
+ mMap[108]="EllipseRibbon2";
+ mMap[109]="FlowChartProcess";
+ mMap[110]="FlowChartDecision";
+ mMap[111]="FlowChartInputOutput";
+ mMap[112]="FlowChartPredefinedProcess";
+ mMap[113]="FlowChartInternalStorage";
+ mMap[114]="FlowChartDocument";
+ mMap[115]="FlowChartMultidocument";
+ mMap[116]="FlowChartTerminator";
+ mMap[117]="FlowChartPreparation";
+ mMap[118]="FlowChartManualInput";
+ mMap[119]="FlowChartManualOperation";
+ mMap[120]="FlowChartConnector";
+ mMap[121]="FlowChartPunchedCard";
+ mMap[122]="FlowChartPunchedTape";
+ mMap[123]="FlowChartSummingJunction";
+ mMap[124]="FlowChartOr";
+ mMap[125]="FlowChartCollate";
+ mMap[126]="FlowChartSort";
+ mMap[127]="FlowChartExtract";
+ mMap[128]="FlowChartMerge";
+ mMap[129]="FlowChartOfflineStorage";
+ mMap[130]="FlowChartOnlineStorage";
+ mMap[131]="FlowChartMagneticTape";
+ mMap[132]="FlowChartMagneticDisk";
+ mMap[133]="FlowChartMagneticDrum";
+ mMap[134]="FlowChartDisplay";
+ mMap[135]="FlowChartDelay";
+ mMap[136]="TextPlainText";
+ mMap[137]="TextStop";
+ mMap[138]="TextTriangle";
+ mMap[139]="TextTriangleInverted";
+ mMap[140]="TextChevron";
+ mMap[141]="TextChevronInverted";
+ mMap[142]="TextRingInside";
+ mMap[143]="TextRingOutside";
+ mMap[144]="TextArchUpCurve";
+ mMap[145]="TextArchDownCurve";
+ mMap[146]="TextCircleCurve";
+ mMap[147]="TextButtonCurve";
+ mMap[148]="TextArchUpPour";
+ mMap[149]="TextArchDownPour";
+ mMap[150]="TextCirclePour";
+ mMap[151]="TextButtonPour";
+ mMap[152]="TextCurveUp";
+ mMap[153]="TextCurveDown";
+ mMap[154]="TextCascadeUp";
+ mMap[155]="TextCascadeDown";
+ mMap[156]="TextWave1";
+ mMap[157]="TextWave2";
+ mMap[158]="TextWave3";
+ mMap[159]="TextWave4";
+ mMap[160]="TextInflate";
+ mMap[161]="TextDeflate";
+ mMap[162]="TextInflateBottom";
+ mMap[163]="TextDeflateBottom";
+ mMap[164]="TextInflateTop";
+ mMap[165]="TextDeflateTop";
+ mMap[166]="TextDeflateInflate";
+ mMap[167]="TextDeflateInflateDeflate";
+ mMap[168]="TextFadeRight";
+ mMap[169]="TextFadeLeft";
+ mMap[170]="TextFadeUp";
+ mMap[171]="TextFadeDown";
+ mMap[172]="TextSlantUp";
+ mMap[173]="TextSlantDown";
+ mMap[174]="TextCanUp";
+ mMap[175]="TextCanDown";
+ mMap[176]="FlowChartAlternateProcess";
+ mMap[177]="FlowChartOffpageConnector";
+ mMap[178]="Callout90";
+ mMap[179]="AccentCallout90";
+ mMap[180]="BorderCallout90";
+ mMap[181]="AccentBorderCallout90";
+ mMap[182]="LeftRightUpArrow";
+ mMap[183]="Sun";
+ mMap[184]="Moon";
+ mMap[185]="BracketPair";
+ mMap[186]="BracePair";
+ mMap[187]="Seal4";
+ mMap[188]="DoubleWave";
+ mMap[189]="ActionButtonBlank";
+ mMap[190]="ActionButtonHome";
+ mMap[191]="ActionButtonHelp";
+ mMap[192]="ActionButtonInformation";
+ mMap[193]="ActionButtonForwardNext";
+ mMap[194]="ActionButtonBackPrevious";
+ mMap[195]="ActionButtonEnd";
+ mMap[196]="ActionButtonBeginning";
+ mMap[197]="ActionButtonReturn";
+ mMap[198]="ActionButtonDocument";
+ mMap[199]="ActionButtonSound";
+ mMap[200]="ActionButtonMovie";
+ mMap[201]="HostControl";
+ mMap[202]="TextBox";
+}
+
+// DffOPT
+
+sal_uInt32 DffOPT::get_property_count()
+{
+ return getInstance();
+}
+
+doctok::Reference<Properties>::Pointer_t
+DffOPT::get_property(sal_uInt32 nPos)
+{
+ WW8FOPTE * pTmp = new WW8FOPTE(this, 0x8 + nPos * WW8FOPTE::getSize());
+ pTmp->setIndex(nPos);
+
+ return doctok::Reference<Properties>::Pointer_t(pTmp);
+}
+
+sal_uInt32 DffOPT::get_extraoffset_count()
+{
+ return get_property_count();
+}
+
+sal_uInt32 DffOPT::get_extraoffset(sal_uInt32 pos)
+{
+ sal_uInt32 nResult;
+ sal_uInt32 nCount = get_property_count();
+
+ if (pos < nCount)
+ {
+ nResult = 0x8 + nCount * WW8FOPTE::getSize();
+
+ for (sal_uInt32 n = 0; n < pos; ++n)
+ {
+ WW8FOPTE aFOPTE(this, 0x8 + n * WW8FOPTE::getSize());
+
+ if (aFOPTE.get_fComplex())
+ {
+ sal_uInt32 nValue = aFOPTE.get_op();
+ nResult += nValue;
+ }
+ }
+ }
+ else
+ nResult = getCount();
+
+ return nResult;
+}
+
+//DffDGG
+
+sal_uInt32 DffDGG::get_fidcl_count()
+{
+ return (getCount() - 0x18) / WW8FIDCL::getSize();
+}
+
+doctok::Reference<Properties>::Pointer_t
+DffDGG::get_fidcl(sal_uInt32 pos)
+{
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8FIDCL(this, 0x18 + pos * WW8FIDCL::getSize()));
+}
+
+
+// DffBSE
+
+rtl::OUString DffBSE::get_blipname()
+{
+ rtl::OUString sResult;
+ WW8FBSE aFBSE(this, 0x8);
+
+ if (aFBSE.get_cbName() > 0)
+ sResult = getString(0x24, aFBSE.get_cbName());
+
+ return sResult;
+}
+
+WW8BinaryObjReference::Pointer_t DffBSE::get_binary()
+{
+ return WW8BinaryObjReference::Pointer_t
+ (new WW8BinaryObjReference(this, WW8FBSE::getSize() + 0x8,
+ getCount() - WW8FBSE::getSize() - 0x8));
+}
+
+// WW8FOPTE
+void WW8FOPTE::resolveNoAuto(Properties & rHandler)
+{
+ sal_uInt16 nId = get_pid() + 1;
+ sal_uInt32 nOp = get_op();
+ sal_uInt32 nMask = 2;
+
+ while (isBooleanDffOpt(nId))
+ {
+ WW8Value::Pointer_t pVal = createValue(getDffOptName(nId));
+ rHandler.attribute(NS_rtf::LN_shpname, *pVal);
+
+ pVal = createValue((nOp & nMask) != 0);
+ rHandler.attribute(NS_rtf::LN_shpvalue, *pVal);
+
+ --nId;
+ nMask = nMask << 1;
+ }
+}
+
+// DffFSP
+
+rtl::OUString DffFSP::get_shptypename()
+{
+ string aName = (*ShapeTypeToString::Instance())(get_shptype());
+
+ return rtl::OUString::createFromAscii(aName.c_str());
+}
+
+}
diff --git a/writerfilter/source/doctok/PLCF.hxx b/writerfilter/source/doctok/PLCF.hxx
new file mode 100644
index 000000000000..f98b1db3cd29
--- /dev/null
+++ b/writerfilter/source/doctok/PLCF.hxx
@@ -0,0 +1,169 @@
+#ifndef INCLUDED_PLCF_HXX
+#define INCLUDED_PLCF_HXX
+
+#include <boost/shared_ptr.hpp>
+#ifndef INCLUDED_WW8_STRUCT_BASE_HXX
+#include <WW8StructBase.hxx>
+#endif
+
+namespace doctok
+{
+
+class Empty
+{
+public:
+ typedef boost::shared_ptr<Empty> Pointer_t;
+
+ Empty() {}
+ virtual ~Empty() {}
+
+ sal_uInt32 getSize() { return 0; }
+};
+
+template <class T>
+/**
+ Plex in File
+
+ A PLCF is a concatenation of two arrays. The first array contains
+ file character positions. The second array contains elements of
+ type T. If the first array contains N elements, the second contains
+ N - 1 elements. The N-th element in the first array corresponds to
+ the N-th element of the second array.
+
+ The second array is referred to as the payload.
+ */
+class PLCF : public WW8StructBase
+{
+ /// number of entries
+ sal_uInt32 nEntryCount;
+
+ /// offset to payload
+ sal_uInt32 nPayloadOffset;
+
+ /// internal method to calculate the number of entries
+ sal_uInt32 getEntryCount_() const;
+
+public:
+ typedef boost::shared_ptr< PLCF< T > > Pointer_t;
+
+ PLCF(sal_uInt32 nLength)
+ : WW8StructBase(nLength), nEntryCount(getEntryCount_()),
+ nPayloadOffset((nEntryCount + 1) * 4)
+ {
+ }
+
+ PLCF(WW8Stream & rStream,
+ sal_Int32 nOffset, sal_Int32 nCount)
+ : WW8StructBase(rStream, nOffset, nCount),
+ nEntryCount(getEntryCount_()),
+ nPayloadOffset((nEntryCount + 1) * 4)
+ {
+ }
+
+ PLCF(const Sequence & rSequence)
+ : WW8StructBase(rSequence), nEntryCount(getEntryCount_()),
+ nPayloadOffset((nEntryCount + 1) * 4)
+ {
+ }
+
+ /**
+ Return the number of elements in the PLCF-
+ */
+ sal_uInt32 getEntryCount() const { return nEntryCount; }
+
+ /**
+ Return the file character position of a certain element.
+
+ @param nIndex the index of the element
+ */
+ sal_uInt32 getFc(sal_uInt32 nIndex) const;
+
+ /**
+ Return a C++ pointer to a certain payload entry.
+
+ @param nIndex the index of the element
+ */
+ T * getEntryPointer(sal_uInt32 nIndex) const;
+
+ /**
+ Return a shared pointer to a certain payload element.
+
+ @param nIndex the index of the element
+ */
+ typename T::Pointer_t getEntry(sal_uInt32 nIndex) const;
+
+ /**
+ Return a C++ pointer a certain payload element.
+
+ @param nFc the file character position of the element
+ */
+ T * getEntryByFc(sal_uInt32 nFc) const;
+
+ virtual void dump(OutputWithDepth<string> & output) const;
+};
+
+template <class T>
+sal_uInt32 PLCF<T>::getEntryCount_() const
+{
+ return (getCount() - 4) / (T::getSize() + 4);
+}
+
+template <class T>
+sal_uInt32 PLCF<T>::getFc(sal_uInt32 nIndex) const
+{
+ return getU32(nIndex * 4);
+}
+
+template <class T>
+T * PLCF<T>::getEntryPointer(sal_uInt32 nIndex) const
+{
+ return new T(mSequence, nPayloadOffset + nIndex * T::getSize(),
+ T::getSize());
+}
+
+template <class T>
+typename T::Pointer_t PLCF<T>::getEntry(sal_uInt32 nIndex) const
+{
+ typename T::Pointer_t pResult(getEntryPointer(nIndex));
+
+ return pResult;
+}
+
+
+template <class T>
+T * PLCF<T>::getEntryByFc(sal_uInt32 nFc) const
+{
+ T * pResult = NULL;
+
+ sal_uInt32 n = getEntryCount();
+
+ while (getFc(n) > nFc)
+ n--;
+
+ pResult = getEntryPointer(n);
+
+ return pResult;
+}
+
+template <class T>
+void PLCF<T>::dump(OutputWithDepth<string> & output) const
+{
+ output.addItem("<plcf>");
+ WW8StructBase::dump(output);
+
+ sal_uInt32 nCount = getEntryCount();
+ for (sal_uInt32 n = 0; n < nCount; ++n)
+ {
+ Fc aFc = getFc(n);
+ typename T::Pointer_t pT = getEntry(n);
+
+ output.addItem("<plcfentry cpandfc=\"" + aFc.toString() + "\">");
+ pT->dump(output);
+ output.addItem("</plcfentry>");
+ }
+ output.addItem("</plcf>>");
+}
+
+}
+
+#endif // INCLUDED_PLCF_HXX
diff --git a/writerfilter/source/doctok/WW8Annotation.cxx b/writerfilter/source/doctok/WW8Annotation.cxx
new file mode 100644
index 000000000000..0545a6ef3dd5
--- /dev/null
+++ b/writerfilter/source/doctok/WW8Annotation.cxx
@@ -0,0 +1,9 @@
+#include <resources.hxx>
+
+namespace doctok
+{
+rtl::OUString WW8ATRD::get_xstUsrInitl()
+{
+ return getString(0x0);
+}
+}
diff --git a/writerfilter/source/doctok/WW8BinTable.hxx b/writerfilter/source/doctok/WW8BinTable.hxx
new file mode 100644
index 000000000000..fb4074ea7b54
--- /dev/null
+++ b/writerfilter/source/doctok/WW8BinTable.hxx
@@ -0,0 +1,63 @@
+#ifndef INCLUDED_WW8_BIN_TABLE_HXX
+#define INCLUDED_WW8_BIN_TABLE_HXX
+
+#include <boost/shared_ptr.hpp>
+#include <string>
+
+#ifndef INCLUDED_WW8_FKP_HXX
+#include <WW8FKP.hxx>
+#endif
+
+namespace doctok
+{
+
+/**
+ A bintable.
+
+ Word uses bintables to associate FC ranges with FKPs. A bintable
+ has a list of FCs. At each FC a range begins. The length of the
+ range is given by the distance of the according CPs.
+ */
+class WW8BinTable
+{
+public:
+ virtual ~WW8BinTable() {};
+ /**
+ Shared pointer to a bintable.
+ */
+ typedef boost::shared_ptr<WW8BinTable> Pointer_t;
+
+ /**
+ Return count of entries.
+ */
+ virtual sal_uInt32 getEntryCount() const = 0;
+
+ /**
+ Return FC from bintable.
+
+ @param nIndex index in bintable to return FC from
+ */
+ virtual Fc getFc(sal_uInt32 nIndex) const = 0;
+
+ /**
+ Return page number.
+
+ @param nIndex index in bintable to return page number from
+ */
+ virtual sal_uInt32 getPageNumber(sal_uInt32 nIndex) const = 0;
+
+ /**
+ Return page number associated with FC.
+
+ @param rFc FC to return page number for
+ */
+ virtual sal_uInt32 getPageNumber(const Fc & rFc) const = 0;
+
+ /**
+ Return string representation of bintable.
+ */
+ virtual string toString() const = 0;
+};
+}
+
+#endif // INCLUDED_WW8_BIN_TABLE_HXX
diff --git a/writerfilter/source/doctok/WW8BinTableImpl.cxx b/writerfilter/source/doctok/WW8BinTableImpl.cxx
new file mode 100644
index 000000000000..f5b0f82f8667
--- /dev/null
+++ b/writerfilter/source/doctok/WW8BinTableImpl.cxx
@@ -0,0 +1,78 @@
+#include "WW8BinTableImpl.hxx"
+
+namespace doctok
+{
+using namespace ::std;
+
+void PageNumber::dump(OutputWithDepth<string> & /*output*/) const
+{
+}
+
+sal_uInt32 WW8BinTableImpl::getPageNumber(const Fc & rFc) const
+{
+ sal_uInt32 nResult = 0;
+
+ if (mPageMap.find(rFc) == mPageMap.end())
+ {
+#if 0
+ sal_uInt32 n = getEntryCount();
+
+ while (rFc < getFc(n))
+ {
+ --n;
+ }
+
+ nResult = getPageNumber(n);
+ mPageMap[rFc] = nResult;
+#else
+ sal_uInt32 left = 0;
+ sal_uInt32 right = getEntryCount();
+
+ while (right - left > 1)
+ {
+ sal_uInt32 middle = (right + left) / 2;
+
+ Fc aFc = getFc(middle);
+
+ if (rFc < aFc)
+ right = middle;
+ else
+ left = middle;
+
+ }
+
+ nResult = getPageNumber(left);
+ mPageMap[rFc] = nResult;
+#endif
+
+ }
+ else
+ nResult = mPageMap[rFc];
+
+ return nResult;
+}
+
+string WW8BinTableImpl::toString() const
+{
+ string aResult;
+ char sBuffer[255];
+
+ aResult += "(";
+
+ for (sal_uInt32 n = 0; n < getEntryCount(); n++)
+ {
+ if (n > 0)
+ aResult += ", ";
+
+ snprintf(sBuffer, 255, "%lx", getFc(n).get());
+ aResult += sBuffer;
+ aResult += "->";
+ snprintf(sBuffer, 255, "%lx", getPageNumber(n));
+ aResult += sBuffer;
+ }
+
+ aResult += ")";
+
+ return aResult;
+}
+}
diff --git a/writerfilter/source/doctok/WW8BinTableImpl.hxx b/writerfilter/source/doctok/WW8BinTableImpl.hxx
new file mode 100644
index 000000000000..a4357f904dd6
--- /dev/null
+++ b/writerfilter/source/doctok/WW8BinTableImpl.hxx
@@ -0,0 +1,74 @@
+#ifndef INCLUDED_WW8_BIN_TABLE_IMPL_HXX
+#define INCLUDED_WW8_BIN_TABLE_IMPL_HXX
+
+#include <istream>
+#ifndef INCLUDED_WW8_BIN_TABLE_HXX
+#include <WW8BinTable.hxx>
+#endif
+#ifndef INCLUDED_PLCF_HXX
+#include <PLCF.hxx>
+#endif
+
+#include <hash_map>
+
+namespace doctok
+{
+using namespace ::std;
+
+/**
+ A number of a FKP.
+ */
+class PageNumber
+{
+ /// the page number
+ sal_uInt32 mnPageNumber;
+
+public:
+ /// Pointer to a page number
+ typedef boost::shared_ptr<PageNumber> Pointer_t;
+
+ /// get size of a page number
+ static size_t getSize() { return 4; }
+
+ PageNumber(WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset,
+ sal_uInt32 /*nCount*/)
+ : mnPageNumber(getU32(rSeq, nOffset))
+ {
+ }
+
+ /// Return the page number
+ sal_uInt32 get() const { return mnPageNumber; }
+
+ virtual void dump(OutputWithDepth<string> & output) const;
+};
+
+/**
+ Implementation class for a binary table
+ */
+class WW8BinTableImpl : public WW8BinTable
+{
+ /// PLCF containing the numbers of the FKPs of the binary table
+ PLCF<PageNumber> mData;
+ mutable hash_map<Fc, sal_uInt32, FcHash> mPageMap;
+
+public:
+ WW8BinTableImpl(WW8Stream & rStream, sal_uInt32 nOffset,
+ sal_uInt32 nCount)
+ : mData(rStream, nOffset, nCount)
+
+ {
+ }
+
+ virtual sal_uInt32 getEntryCount() const
+ { return mData.getEntryCount(); }
+ virtual Fc getFc(sal_uInt32 nIndex) const
+ { return mData.getFc(nIndex); }
+ virtual sal_uInt32 getPageNumber(sal_uInt32 nIndex) const
+ { return mData.getEntry(nIndex)->get(); }
+ virtual sal_uInt32 getPageNumber(const Fc & rFc) const;
+ virtual string toString() const;
+};
+
+}
+
+#endif // INCLUDED_WW8_BIN_TABLE_IMPL_HXX
diff --git a/writerfilter/source/doctok/WW8Clx.cxx b/writerfilter/source/doctok/WW8Clx.cxx
new file mode 100644
index 000000000000..8ecd0e6ab782
--- /dev/null
+++ b/writerfilter/source/doctok/WW8Clx.cxx
@@ -0,0 +1,56 @@
+#include <com/sun/star/io/XSeekable.hpp>
+#include <WW8Clx.hxx>
+#include <resources.hxx>
+
+namespace doctok
+{
+WW8Clx::WW8Clx(WW8Stream & rStream,
+ sal_uInt32 nOffset, sal_uInt32 nCount)
+: WW8StructBase(rStream, nOffset, nCount), nOffsetPieceTable(0)
+{
+ while (getU8(nOffsetPieceTable) != 2)
+ {
+ nOffsetPieceTable += getU16(nOffsetPieceTable + 1) + 3;
+ }
+}
+
+sal_uInt32 WW8Clx::getPieceCount() const
+{
+ return (getU32(nOffsetPieceTable + 1) - 4) / 12;
+}
+
+sal_uInt32 WW8Clx::getCp(sal_uInt32 nIndex) const
+{
+ return getU32(nOffsetPieceTable + 5 + nIndex * 4);
+}
+
+sal_uInt32 WW8Clx::getFc(sal_uInt32 nIndex) const
+{
+ sal_uInt32 nResult = getU32(nOffsetPieceTable + 5 +
+ (getPieceCount() + 1) * 4 +
+ nIndex * 8 + 2);
+
+ if (nResult & 0x40000000)
+ nResult = (nResult & ~0x40000000) / 2;
+
+ return nResult;
+}
+
+sal_Bool WW8Clx::isComplexFc(sal_uInt32 nIndex) const
+{
+ sal_Bool bResult = sal_False;
+ sal_uInt32 nTmp = getU32(nOffsetPieceTable + 5 +
+ (getPieceCount() + 1) * 4 +
+ nIndex * 8 + 2);
+ if (nTmp & 0x40000000)
+ bResult = sal_True;
+
+ return bResult;
+}
+
+void WW8Clx::dump(WW8OutputWithDepth & o) const
+{
+ WW8StructBase::dump(o);
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8Clx.hxx b/writerfilter/source/doctok/WW8Clx.hxx
new file mode 100644
index 000000000000..48a258f02b53
--- /dev/null
+++ b/writerfilter/source/doctok/WW8Clx.hxx
@@ -0,0 +1,67 @@
+#ifndef INCLUDED_WW8_CLX_HXX
+#define INCLUDED_WW8_CLX_HXX
+
+#ifndef INCLUDED_RESOURCES_HXX
+#include <resources.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_OUTPUT_WITH_DEPTH_HXX
+#include <WW8OutputWithDepth.hxx>
+#endif
+
+namespace doctok
+{
+
+/**
+ Piece table as stored in a Word file.
+
+ It contains character positions (CPs) and file character positions
+ (FCs). Each CP is correlated to one FC.
+ */
+class WW8Clx : public WW8StructBase
+{
+ /// Pointer to the file information block.
+ WW8Fib::Pointer_t pFib;
+
+ /// Offset where FCs begin
+ sal_uInt32 nOffsetPieceTable;
+
+public:
+ /// Pointer to Clx.
+ typedef boost::shared_ptr<WW8Clx> Pointer_t;
+
+ WW8Clx(WW8Stream & rStream,
+ sal_uInt32 nOffset, sal_uInt32 nCount);
+
+ virtual void dump(WW8OutputWithDepth & o) const;
+
+ /**
+ Return the number of pieces.
+ */
+ sal_uInt32 getPieceCount() const;
+
+ /**
+ Return a certain character position.
+
+ @param nIndex index of the character position
+ */
+ sal_uInt32 getCp(sal_uInt32 nIndex) const;
+
+ /**
+ Return a certain file character position.
+
+ @param nIndex index of the file character position
+ */
+ sal_uInt32 getFc(sal_uInt32 nIndex) const;
+
+ /**
+ Return if a certain FC is complex.
+
+ @nIndex index of the FC
+ */
+ sal_Bool isComplexFc(sal_uInt32 nIndex) const;
+
+};
+}
+
+#endif
diff --git a/writerfilter/source/doctok/WW8CpAndFc.cxx b/writerfilter/source/doctok/WW8CpAndFc.cxx
new file mode 100644
index 000000000000..a4b66293a865
--- /dev/null
+++ b/writerfilter/source/doctok/WW8CpAndFc.cxx
@@ -0,0 +1,96 @@
+#include <WW8CpAndFc.hxx>
+
+#include <iterator>
+#include <algorithm>
+#include <string>
+#include <map>
+
+namespace doctok
+{
+using namespace ::std;
+
+bool operator < (const Cp & rA, const Cp & rB)
+{
+ return rA.nCp < rB.nCp;
+}
+
+bool operator == (const Cp & rA, const Cp & rB)
+{
+ return rA.nCp == rB.nCp;
+}
+
+string Cp::toString() const
+{
+ char sBuffer[256];
+
+ snprintf(sBuffer, 255, "%lx", get());
+
+ return string(sBuffer);
+}
+
+ostream & operator << (ostream & o, const Cp & rCp)
+{
+ return o << rCp.toString();
+}
+
+bool operator < (const Fc & rA, const Fc & rB)
+{
+ return rA.mnFc < rB.mnFc;
+}
+
+bool operator == (const Fc & rA, const Fc & rB)
+{
+ return rA.mnFc == rB.mnFc;
+}
+
+string Fc::toString() const
+{
+ char sBuffer[256];
+
+ snprintf(sBuffer, 255, "(%lx, %s)", static_cast<sal_uInt32>(get()),
+ isComplex() ? "true" : "false");
+
+ return string(sBuffer);
+}
+
+ostream & operator << (ostream & o, const Fc & rFc)
+{
+
+ return o << rFc.toString();
+}
+
+bool operator < (const CpAndFc & rA, const CpAndFc & rB)
+{
+ bool bResult = false;
+
+ if (rA.mCp < rB.mCp)
+ bResult = true;
+ else if (rA.mCp == rB.mCp && rA.mType < rB.mType)
+ bResult = true;
+
+ return bResult;
+}
+
+bool operator == (const CpAndFc & rA, const CpAndFc & rB)
+{
+ return rA.mCp == rB.mCp;
+}
+
+ostream & operator << (ostream & o, const CpAndFc & rCpAndFc)
+{
+ return o << rCpAndFc.toString();
+}
+
+ostream & operator << (ostream & o, const CpAndFcs & rCpAndFcs)
+{
+ copy(rCpAndFcs.begin(), rCpAndFcs.end(),
+ ostream_iterator<CpAndFc>(o, ", "));
+
+ char sBuffer[256];
+
+ snprintf(sBuffer, 255, "%d", rCpAndFcs.size());
+ o << sBuffer;
+
+ return o;
+}
+}
diff --git a/writerfilter/source/doctok/WW8CpAndFc.hxx b/writerfilter/source/doctok/WW8CpAndFc.hxx
new file mode 100644
index 000000000000..da6c6b2803a3
--- /dev/null
+++ b/writerfilter/source/doctok/WW8CpAndFc.hxx
@@ -0,0 +1,336 @@
+#ifndef INCLUDED_WW8_CP_AND_FC_HXX
+#define INCLUDED_WW8_CP_AND_FC_HXX
+
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif
+#ifndef INCLUDED_DOCUMENT_HXX
+#include <doctok/WW8Document.hxx>
+#endif
+#include <set>
+#include <hash_map>
+#include <iostream>
+
+namespace doctok
+{
+using namespace ::std;
+
+template <class T>
+bool operator <= (const T & rA, const T & rB)
+{
+ return ! ( rB < rA );
+}
+
+/**
+ A character position.
+
+ This is a wrapper to make the type for WW8 character position (CP)
+ distinct from WW8 file character positions (FC).
+*/
+struct Cp
+{
+ sal_uInt32 nCp; // the WW8 character position
+
+ Cp() : nCp(0) {}
+
+ Cp(sal_uInt32 nCp_) : nCp(nCp_) {}
+
+ /**
+ Returns the WW8 character position.
+
+ @return the WW8 character position
+ */
+ sal_uInt32 get() const { return nCp; }
+
+ /**
+ Sets the WW8 character position.
+
+ @param nCp_ the WW8 character position to set
+ */
+ void set(sal_uInt32 nCp_) { nCp = nCp_; }
+
+ /**
+ Calculate CP moved backward.
+
+ None of the involved CPs is changed.
+
+ @param n amount of movement
+
+ @return CP moved @n steps backward
+ */
+ sal_uInt32 operator - (const Cp & rCp) const
+ { return nCp - rCp.nCp; }
+
+ /**
+ Calculate CP moved forward.
+
+ None of the involved CPs is changed.
+
+ @param n amount of movement
+
+ @return CP moved @n steps forward
+ */
+ Cp operator + (sal_uInt32 n) const
+ { return Cp(nCp + n); }
+
+ /**
+ Advance CP forward.
+
+ @attention The CP is altered.
+
+ @param n amount of movement
+
+ @return CP moved @n steps forward
+ */
+ Cp & operator += (sal_uInt32 n)
+ {
+ nCp += n;
+
+ return *this;
+ }
+
+ /**
+ Return string representation of CP.
+ */
+ string toString() const;
+
+ friend bool operator < (const Cp & rA, const Cp & rB);
+ friend bool operator == (const Cp & rA, const Cp & rB);
+ friend ostream & operator << (ostream & o, const Cp & rCp);
+};
+
+/**
+ A file character position.
+
+ This is a wrapper to make the type for WW8 character position (CP)
+ distinct from WW8 file character positions (FC).
+
+ \see{Cp}
+*/
+struct Fc
+{
+ sal_uInt32 mnFc; // the WW8 character position
+ bool mbComplex;
+
+ Fc() : mnFc(0), mbComplex(false) {}
+
+ Fc(sal_uInt32 nFc, bool bComplex = true)
+ : mnFc(nFc), mbComplex(bComplex)
+ {}
+
+ sal_uInt32 complexFactor() const { return mbComplex ? 1 : 2; }
+
+ /**
+ Returns the WW8 character position.
+
+ @return the WW8 character position
+ */
+ sal_uInt32 get() const { return mnFc; }
+
+ /**
+ Sets the WW8 file character position.
+
+ @param nFc the WW8 file character position to set
+ */
+ void set(sal_uInt32 nFc) { mnFc = nFc; }
+
+ /**
+ Set if the FC is complex.
+
+ @param bComplex true if FC is set to be complex
+ */
+ void setComplex(bool bComplex) { mbComplex = bComplex; }
+
+ /**
+ Return if FC is complex.
+
+ @retval true FC is complex
+ @retval false else
+ */
+ bool isComplex() const { return mbComplex; }
+
+ /**
+ Distance of FCs.
+
+ None of the involved FCs is changed.
+
+ @param rFc FC to calculate distance to
+
+ @return Distance from @a rFc to this FC
+ */
+ sal_uInt32 operator - (const Fc & rFc) const
+ { return (mnFc - rFc.mnFc) / complexFactor(); }
+
+ /**
+ Calculate FC moved backward.
+
+ None of the involved FCs is changed.
+
+ @param n amount of movement
+
+ @return FC moved @n steps backward
+ */
+ Fc operator - (sal_uInt32 n) const
+ { return Fc(mnFc - n * complexFactor(), mbComplex); }
+
+ /**
+ Calculate FC moved forward.
+
+ None of the involved FCs is changed.
+
+ @param n amount of movement
+
+ @return FC moved @n steps Forward
+ */
+ Fc operator + (sal_uInt32 n) const
+ { return Fc(mnFc + n * complexFactor(), mbComplex); }
+
+ /**
+ Return string representation of FC.
+ */
+ string toString() const;
+
+ friend bool operator < (const Fc & rA, const Fc & rB);
+ friend bool operator == (const Fc & rA, const Fc & rB);
+ friend ostream & operator << (ostream & o, const Fc & rFc);
+};
+
+/**
+ A character position and a corresponding file character position
+ paired.
+ */
+class CpAndFc
+{
+private:
+ /**
+ character position
+ */
+ Cp mCp;
+
+ /**
+ file character position
+ */
+ Fc mFc;
+
+ /**
+ property type
+ */
+ PropertyType mType;
+
+public:
+ CpAndFc() {}
+ CpAndFc(const Cp & rCp, const Fc & rFc, PropertyType eType_)
+ : mCp(rCp), mFc(rFc), mType(eType_)
+ {
+ }
+
+ /**
+ Return character position.
+ */
+ const Cp & getCp() const { return mCp; }
+
+ /**
+ Return file character position.
+ */
+ const Fc & getFc() const { return mFc; }
+
+ /**
+ Return property type.
+ */
+ PropertyType getType() const { return mType; }
+
+ /**
+ Return if FC is complex.
+
+ @retval true FC is complex
+ @retval false else
+ */
+ bool isComplex() const { return mFc.isComplex(); }
+
+ /**
+ Return the distance to other CpAndFc.
+
+ @param rCpAndFc the other CpAndFc
+
+ @return the distance from the CP in @a rCpAndFc to the CP in
+ CpAndFc.
+ */
+ sal_uInt32 operator-(const CpAndFc & rCpAndFc) const
+ { return mCp - rCpAndFc.mCp; }
+
+ /**
+ Return string representation of the CpAndFc.
+ */
+ string toString() const;
+
+ friend bool operator < (const CpAndFc & rA, const CpAndFc & rB);
+ friend bool operator == (const CpAndFc & rA, const CpAndFc & rB);
+ friend ostream & operator << (ostream & o, const CpAndFc & rCpAndFc);
+};
+
+struct CpAndFcLess
+{
+ CpAndFcLess()
+ {
+ }
+
+ bool operator()(const CpAndFc & rA, const CpAndFc & rB) const
+ {
+ return rA < rB;
+ }
+
+ bool operator()(const CpAndFc & rA, const Cp & rB) const
+ {
+ return rA.getCp() < rB;
+ }
+
+ bool operator()(const Cp & rA, const CpAndFc & rB) const
+ {
+ return rA < rB.getCp();
+ }
+};
+
+
+typedef set<CpAndFc, CpAndFcLess> CpAndFcs;
+
+ostream & operator << (ostream & o, const CpAndFcs & rCpAndFcs);
+
+struct CpHash
+{
+ size_t operator()(const Cp & rCp) const
+ {
+ return rCp.get();
+ }
+};
+
+struct FcHash
+{
+ size_t operator()(const Fc & rFc) const
+ {
+ return rFc.get();
+ }
+};
+
+struct CpEq
+{
+ bool operator() (const Cp & rA, const Cp &rB) const
+ {
+ return rA == rB;
+ }
+};
+
+struct CpAndFcHash
+{
+ size_t operator()(const CpAndFc & rCpAndFc) const
+ {
+ CpHash aHash;
+
+ return aHash(rCpAndFc.getCp());
+ }
+};
+
+typedef hash_map<Cp, Fc, CpHash, CpEq> Cp2FcHashMap_t;
+
+} // namespace doctok
+
+#endif // INCLUDED_WW8_CP_AND_FC_HXX
diff --git a/writerfilter/source/doctok/WW8DocumentImpl.cxx b/writerfilter/source/doctok/WW8DocumentImpl.cxx
new file mode 100644
index 000000000000..07a7a0e6b523
--- /dev/null
+++ b/writerfilter/source/doctok/WW8DocumentImpl.cxx
@@ -0,0 +1,1930 @@
+#include <doctok/exceptions.hxx>
+#include <WW8DocumentImpl.hxx>
+#include <WW8FKPImpl.hxx>
+#include <WW8PieceTableImpl.hxx>
+#include <WW8BinTableImpl.hxx>
+#include <WW8StreamImpl.hxx>
+#include <WW8Sttbf.hxx>
+#include <Dff.hxx>
+#include <iterator>
+#include <XNoteHelperImpl.hxx>
+#include <WW8OutputWithDepth.hxx>
+
+namespace doctok
+{
+
+using namespace ::std;
+// WW8DocumentIteratorImpl
+
+bool operator == (const WW8DocumentIterator & rA,
+ const WW8DocumentIterator & rB)
+{
+ return rA.equal(rB);
+}
+
+WW8DocumentIterator::~WW8DocumentIterator()
+{
+}
+
+WW8DocumentIteratorImpl::~WW8DocumentIteratorImpl()
+{
+}
+
+WW8DocumentIterator & WW8DocumentIteratorImpl::operator++()
+{
+ mCpAndFc = mpDocument->getNextCp(mCpAndFc);
+
+ return *this;
+}
+
+WW8DocumentIterator & WW8DocumentIteratorImpl::operator--()
+{
+ mCpAndFc = mpDocument->getPrevCp(mCpAndFc);
+
+ return *this;
+}
+
+bool WW8DocumentIteratorImpl::equal(const WW8DocumentIterator & rIt_) const
+{
+ const WW8DocumentIteratorImpl & rIt =
+ dynamic_cast<const WW8DocumentIteratorImpl &>(rIt_);
+
+ return mCpAndFc == rIt.mCpAndFc && mpDocument == rIt.mpDocument;
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8DocumentIteratorImpl::getProperties() const
+{
+ return mpDocument->getProperties(mCpAndFc);
+}
+
+doctok::Reference<Stream>::Pointer_t
+WW8DocumentIteratorImpl::getSubDocument() const
+{
+ return mpDocument->getSubDocument(mCpAndFc);
+}
+
+WW8SED * WW8DocumentIteratorImpl::getSED() const
+{
+ return mpDocument->getSED(mCpAndFc);
+}
+
+WW8Stream::Sequence WW8DocumentIteratorImpl::getText()
+{
+ return mpDocument->getText(mCpAndFc);
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8DocumentIteratorImpl::getShape() const
+{
+ return mpDocument->getShape(mCpAndFc);
+}
+
+PropertyType WW8DocumentIteratorImpl::getPropertyType() const
+{
+ return mCpAndFc.getType();
+}
+
+bool WW8DocumentIteratorImpl::isComplex() const
+{
+ return mCpAndFc.isComplex();
+}
+
+void WW8DocumentIteratorImpl::dump(ostream & o) const
+{
+ o << mCpAndFc;
+}
+
+string WW8DocumentIteratorImpl::toString() const
+{
+ return mCpAndFc.toString();
+}
+
+// WW8DocumentImpl
+
+WW8Document::~WW8Document()
+{
+}
+
+WW8DocumentImpl::~WW8DocumentImpl()
+{
+}
+
+WW8DocumentImpl::WW8DocumentImpl(WW8Stream::Pointer_t rpStream)
+: bSubDocument(false), mfcPicLoc(0), mpStream(rpStream)
+{
+ mpDocStream = getSubStream(::rtl::OUString::createFromAscii
+ ("WordDocument"));
+
+ try
+ {
+ mpDataStream = getSubStream(::rtl::OUString::createFromAscii
+ ("Data"));
+ }
+ catch (ExceptionNotFound e)
+ {
+ }
+
+ mpCHPFKPCache =
+ WW8FKPCache::Pointer_t(new WW8CHPFKPCacheImpl(mpDocStream, 5));
+ mpPAPFKPCache =
+ WW8FKPCache::Pointer_t(new WW8PAPFKPCacheImpl(mpDocStream, 5));
+
+ mpFib = WW8Fib::Pointer_t(new WW8Fib(*mpDocStream));
+
+ switch (mpFib->get_fWhichTblStm())
+ {
+ case 0:
+ mpTableStream = getSubStream(::rtl::OUString::createFromAscii
+ ("0Table"));
+
+ break;
+
+ case 1:
+ mpTableStream = getSubStream(::rtl::OUString::createFromAscii
+ ("1Table"));
+
+ break;
+
+ default:
+ break;
+ }
+
+ if (mpTableStream.get() == NULL)
+ throw ExceptionNotFound("Table stream not found.");
+
+ mpPieceTable =
+ WW8PieceTable::Pointer_t
+ (new WW8PieceTableImpl(*mpTableStream, mpFib->get_fcClx(),
+ mpFib->get_lcbClx()));
+
+ {
+ Cp aCp(mpPieceTable->getLastCp());
+ Fc aFc(mpPieceTable->getLastFc());
+ CpAndFc aCpAndFc(aCp, aFc, PROP_DOC);
+ mCpAndFcs.insert(aCpAndFc);
+ }
+
+ {
+ Cp aCp(mpFib->get_ccpText());
+
+ mDocumentEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp),
+ PROP_DOC);
+ mCpAndFcs.insert(mDocumentEndCpAndFc);
+
+ aCp += mpFib->get_ccpFtn();
+ mFootnoteEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp),
+ PROP_DOC);
+ mCpAndFcs.insert(mFootnoteEndCpAndFc);
+
+ aCp += mpFib->get_ccpHdd();
+ mHeaderEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp),
+ PROP_DOC);
+ mCpAndFcs.insert(mHeaderEndCpAndFc);
+
+ aCp += mpFib->get_ccpAtn();
+ mAnnotationEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp),
+ PROP_DOC);
+ mCpAndFcs.insert(mAnnotationEndCpAndFc);
+
+ aCp += mpFib->get_ccpEdn();
+ mEndnoteEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp),
+ PROP_DOC);
+ mCpAndFcs.insert(mEndnoteEndCpAndFc);
+
+ aCp += mpFib->get_ccpTxbx();
+ mTextboxEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp),
+ PROP_DOC);
+ mCpAndFcs.insert(mTextboxEndCpAndFc);
+
+ aCp += mpFib->get_ccpHdrTxbx();
+ mTextboxHeaderEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp),
+ PROP_DOC);
+ mCpAndFcs.insert(mTextboxHeaderEndCpAndFc);
+ }
+
+ mpBinTablePAPX =
+ WW8BinTable::Pointer_t(new WW8BinTableImpl
+ (*mpTableStream,
+ mpFib->get_fcPlcfbtePapx(),
+ mpFib->get_lcbPlcfbtePapx()));
+
+ //clog << "BinTable(PAP):" << mpBinTablePAPX->toString();
+
+ parseBinTableCpAndFcs(*mpBinTablePAPX, PROP_PAP);
+
+ mpBinTableCHPX =
+ WW8BinTable::Pointer_t(new WW8BinTableImpl
+ (*mpTableStream,
+ mpFib->get_fcPlcfbteChpx(),
+ mpFib->get_lcbPlcfbteChpx()));
+
+ //clog << "BinTable(CHP):" << mpBinTableCHPX->toString();
+
+ parseBinTableCpAndFcs(*mpBinTableCHPX, PROP_CHP);
+
+ mpSEDs = PLCF<WW8SED>::Pointer_t(new PLCF<WW8SED>
+ (*mpTableStream,
+ mpFib->get_fcPlcfsed(),
+ mpFib->get_lcbPlcfsed()));
+
+ //mpSEDs->dump(clog);
+
+ {
+ sal_uInt32 nSEDs = mpSEDs->getEntryCount();
+ for (sal_uInt32 n = 0; n < nSEDs; ++n)
+ {
+ Cp aCp(mpSEDs->getFc(n));
+ CpAndFc aCpAndFc(aCp, mpPieceTable->cp2fc(aCp), PROP_SEC);
+
+ mCpAndFcs.insert(aCpAndFc);
+ }
+ }
+
+ sal_uInt32 nHeaders = getHeaderCount();
+
+ if (nHeaders > 0)
+ {
+ mpHeaderOffsets = WW8StructBase::Pointer_t
+ (new WW8StructBase(*mpTableStream,
+ mpFib->get_fcPlcfhdd(),
+ mpFib->get_lcbPlcfhdd()));
+
+ {
+ for (sal_uInt32 n = 0; n <= nHeaders; ++n)
+ {
+ CpAndFc aCpAndFc(getHeaderCpAndFc(n));
+
+ mCpAndFcs.insert(aCpAndFc);
+ }
+ }
+ }
+
+ if (mpFib->get_lcbPlcffndTxt() > 0)
+ {
+ WW8StructBase::Pointer_t pCps
+ (new WW8StructBase(*mpTableStream,
+ mpFib->get_fcPlcffndTxt(),
+ mpFib->get_lcbPlcffndTxt()));
+
+ PLCF<WW8FRD>::Pointer_t pRefs
+ (new PLCF<WW8FRD>(*mpTableStream,
+ mpFib->get_fcPlcffndRef(),
+ mpFib->get_lcbPlcffndRef()));
+
+ mpFootnoteHelper = XNoteHelper<WW8FRD>::Pointer_t
+ (new XNoteHelper<WW8FRD>(pCps, pRefs, mpPieceTable, this,
+ PROP_FOOTNOTE, getDocumentEndCp()));
+
+ mpFootnoteHelper->init();
+ }
+
+ if (mpFib->get_lcbPlcfendTxt() > 0)
+ {
+ WW8StructBase::Pointer_t pCps
+ (new WW8StructBase(*mpTableStream,
+ mpFib->get_fcPlcfendTxt(),
+ mpFib->get_lcbPlcfendTxt()));
+
+ PLCF<WW8FRD>::Pointer_t pRefs
+ (new PLCF<WW8FRD>(*mpTableStream,
+ mpFib->get_fcPlcfendRef(),
+ mpFib->get_lcbPlcfendRef()));
+
+ mpEndnoteHelper = XNoteHelper<WW8FRD>::Pointer_t
+ (new XNoteHelper<WW8FRD>(pCps, pRefs, mpPieceTable, this,
+ PROP_ENDNOTE, getAnnotationEndCp()));
+
+ mpEndnoteHelper->init();
+ }
+
+ if (mpFib->get_lcbPlcfandTxt() > 0)
+ {
+ WW8StructBase::Pointer_t pCps
+ (new WW8StructBase(*mpTableStream,
+ mpFib->get_fcPlcfandTxt(),
+ mpFib->get_lcbPlcfandTxt()));
+
+ PLCF<WW8ATRD>::Pointer_t pRefs
+ (new PLCF<WW8ATRD>(*mpTableStream,
+ mpFib->get_fcPlcfandRef(),
+ mpFib->get_lcbPlcfandRef()));
+
+ mpAnnotationHelper = XNoteHelper<WW8ATRD>::Pointer_t
+ (new XNoteHelper<WW8ATRD>(pCps, pRefs, mpPieceTable, this,
+ PROP_ANNOTATION, getHeaderEndCp()));
+
+ mpAnnotationHelper->init();
+ }
+
+ if (mpFib->get_lcbSttbfbkmk() > 0)
+ {
+ PLCF<WW8BKF>::Pointer_t pStartCps
+ (new PLCF<WW8BKF>(*mpTableStream, mpFib->get_fcPlcfbkf(),
+ mpFib->get_lcbPlcfbkf()));
+
+ WW8StructBase::Pointer_t pEndCps
+ (new WW8StructBase(*mpTableStream, mpFib->get_fcPlcfbkl(),
+ mpFib->get_lcbPlcfbkl()));
+
+ WW8Sttbf::Pointer_t pNames
+ (new WW8Sttbf(*mpTableStream, mpFib->get_fcSttbfbkmk(),
+ mpFib->get_lcbSttbfbkmk()));
+
+ mpBookmarkHelper = BookmarkHelper::Pointer_t
+ (new BookmarkHelper(pStartCps, pEndCps, pNames, mpPieceTable, this));
+
+ mpBookmarkHelper->init();
+ }
+
+ {
+ PLCF<WW8FLD>::Pointer_t pPlcffldMom;
+
+ if (mpFib->get_lcbPlcffldMom() > 0)
+ {
+ pPlcffldMom = PLCF<WW8FLD>::Pointer_t
+ (new PLCF<WW8FLD>(*mpTableStream,
+ mpFib->get_fcPlcffldMom(),
+ mpFib->get_lcbPlcffldMom()));
+
+ mpFieldHelper = FieldHelper::Pointer_t
+ (new FieldHelper(pPlcffldMom,
+ this));
+
+ mpFieldHelper->init();
+ }
+ }
+
+ PLCF<WW8FSPA>::Pointer_t pPlcspaMom;
+ if (mpFib->get_lcbPlcspaMom() > 0)
+ {
+ pPlcspaMom = PLCF<WW8FSPA>::Pointer_t
+ (new PLCF<WW8FSPA>
+ (*mpTableStream, mpFib->get_fcPlcspaMom(),
+ mpFib->get_lcbPlcspaMom()));
+ }
+
+ PLCF<WW8FSPA>::Pointer_t pPlcspaHdr;
+ if (mpFib->get_lcbPlcspaHdr() > 0)
+ {
+ pPlcspaHdr = PLCF<WW8FSPA>::Pointer_t
+ (new PLCF<WW8FSPA>
+ (*mpTableStream, mpFib->get_fcPlcspaHdr(),
+ mpFib->get_lcbPlcspaHdr()));
+ }
+
+ if (mpFib->get_fcDggInfo() != 0 && mpFib->get_lcbDggInfo() > 0)
+ {
+ mpDffBlock = DffBlock::Pointer_t
+ (new DffBlock(*mpTableStream, mpFib->get_fcDggInfo(),
+ mpFib->get_lcbDggInfo(), 1));
+ }
+
+ mpShapeHelper = ShapeHelper::Pointer_t
+ (new ShapeHelper(pPlcspaMom, pPlcspaHdr, this));
+
+ mpShapeHelper->init();
+
+ if (mCpAndFcs.size() > 0)
+ {
+ mCpAndFcStart = *mCpAndFcs.begin();
+ mCpAndFcEnd = getDocumentEndCp();
+ }
+}
+
+bool WW8DocumentImpl::isSpecial(sal_uInt32 nChar)
+{
+ bool bResult = false;
+
+ if (nChar <= 8)
+ bResult = true;
+ else if (nChar >= 10)
+ {
+ if (nChar <= 16)
+ bResult = true;
+ else if (nChar >= 22)
+ {
+ if (nChar <= 30)
+ bResult = true;
+ else if (nChar >= 33)
+ {
+ if (nChar <= 39)
+ bResult = true;
+ else if (nChar == 41)
+ bResult = true;
+ }
+ }
+ }
+
+ return bResult;
+}
+
+WW8DocumentImpl::WW8DocumentImpl(const WW8DocumentImpl & rSrc,
+ const CpAndFc & rStart, const CpAndFc & rEnd)
+: bSubDocument(true), mfcPicLoc(0)
+{
+ Assign(rSrc);
+
+ mCpAndFcStart = rStart;
+ mCpAndFcEnd = rEnd;
+}
+
+WW8DocumentImpl & WW8DocumentImpl::Assign(const WW8DocumentImpl & rSrc)
+{
+ mCpAndFcs = rSrc.mCpAndFcs;
+
+ mpCHPFKPCache = rSrc.mpCHPFKPCache;
+ mpPAPFKPCache = rSrc.mpPAPFKPCache;
+
+ mpStream = rSrc.mpStream;
+ mpTableStream = rSrc.mpTableStream;
+ mpDocStream = rSrc.mpDocStream;
+
+ mpPieceTable = rSrc.mpPieceTable;
+
+ mpBinTableCHPX = rSrc.mpBinTableCHPX;
+ mpBinTablePAPX = rSrc.mpBinTablePAPX;
+
+ mpSEDs = rSrc.mpSEDs;
+
+ mpFib = rSrc.mpFib;
+
+ mpHeaderOffsets = rSrc.mpHeaderOffsets;
+ mpFootnoteHelper = rSrc.mpFootnoteHelper;
+ mpEndnoteHelper = rSrc.mpEndnoteHelper;
+ mpAnnotationHelper = rSrc.mpAnnotationHelper;
+
+ mpBookmarkHelper = rSrc.mpBookmarkHelper;
+
+ mpDffBlock = rSrc.mpDffBlock;
+
+ mDocumentEndCpAndFc = rSrc.mDocumentEndCpAndFc;
+ mFootnoteEndCpAndFc = rSrc.mFootnoteEndCpAndFc;
+
+ return *this;
+}
+
+string WW8DocumentImpl::getType() const
+{
+ return "WW8DocumentImpl";
+}
+
+void WW8DocumentImpl::parseBinTableCpAndFcs(WW8BinTable & rTable,
+ PropertyType eType_)
+{
+ //clog << "<bintable type=\"" << propertyTypeToString(eType_) << "\">" << endl;
+ for (sal_uInt32 i = 0; i < rTable.getEntryCount(); i++)
+ {
+#if 0
+ char sBuffer[255];
+ snprintf(sBuffer, 255, "%ld", i);
+ char sBufferPageNum[255];
+ snprintf(sBufferPageNum, 255, "%ld", rTable.getPageNumber(i));
+#endif
+ Fc aFcFromTable(rTable.getFc(i));
+
+ if (aFcFromTable < mpPieceTable->getFirstFc())
+ aFcFromTable = mpPieceTable->getFirstFc();
+
+ bool bComplex = mpPieceTable->isComplex(aFcFromTable);
+ aFcFromTable.setComplex(bComplex);
+
+ //clog << "<entry fc=\"" << aFcFromTable.toString() << "\">" << endl;
+
+ try
+ {
+ Cp aCpFromTable(mpPieceTable->fc2cp(aFcFromTable));
+ CpAndFc aCpAndFcFromTable(aCpFromTable, aFcFromTable, eType_);
+
+ mCpAndFcs.insert(aCpAndFcFromTable);
+
+ WW8FKP::Pointer_t pFKP;
+
+ switch (eType_)
+ {
+ case PROP_CHP:
+ pFKP = getFKPCHPX(rTable.getPageNumber(i),
+ aCpAndFcFromTable.isComplex());
+
+ break;
+
+ case PROP_PAP:
+ pFKP = getFKPPAPX(rTable.getPageNumber(i),
+ aCpAndFcFromTable.isComplex());
+
+ break;
+ default:
+ break;
+ }
+
+ for (sal_uInt32 n = 0; n < pFKP->getEntryCount(); n++)
+ {
+ Fc aFc = pFKP->getFc(n);
+
+ if (aFc < mpPieceTable->getFirstFc())
+ aFc = mpPieceTable->getFirstFc();
+
+ bool bComplexFKP = mpPieceTable->isComplex(aFc);
+ aFc.setComplex(bComplexFKP);
+
+ //clog << "<fkpentry fc=\"" << aFc.toString() << "\"/>" << endl;
+
+ try
+ {
+ Cp aCp = mpPieceTable->fc2cp(aFc);
+
+ CpAndFc aCpAndFc(aCp, aFc, eType_);
+
+ mCpAndFcs.insert(aCpAndFc);
+
+ //clog << aCpAndFc << endl;
+ }
+ catch (ExceptionNotFound e)
+ {
+ clog << e.getText() << endl;
+ }
+ }
+ }
+ catch (ExceptionNotFound e)
+ {
+ clog << e.getText() << endl;
+ }
+
+ //clog << "</entry>" << endl;
+ }
+
+ //clog << "</bintable>" << endl;
+}
+
+WW8Stream::Pointer_t WW8DocumentImpl::getSubStream
+(const ::rtl::OUString & sId) const
+{
+ return mpStream->getSubStream(sId);
+}
+
+WW8Document::Pointer_t WW8DocumentImpl::getSubDocument(SubDocumentId /*nId*/)
+{
+ return WW8Document::Pointer_t(new WW8DocumentImpl(*this));
+}
+
+WW8DocumentIterator::Pointer_t
+WW8DocumentImpl::getIterator(const CpAndFc & rCpAndFc)
+{
+ return WW8DocumentIterator::Pointer_t
+ (new WW8DocumentIteratorImpl(this, rCpAndFc));
+}
+
+WW8DocumentIterator::Pointer_t WW8DocumentImpl::begin()
+{
+ return getIterator(getFirstCp());
+}
+
+WW8DocumentIterator::Pointer_t WW8DocumentImpl::end()
+{
+ return getIterator(getLastCp());
+}
+
+WW8Stream::Pointer_t WW8DocumentImpl::getDocStream() const
+{
+ return mpDocStream;
+}
+
+WW8Stream::Pointer_t WW8DocumentImpl::getDataStream() const
+{
+ return mpDataStream;
+}
+
+sal_uInt32 WW8DocumentImpl::getByteLength(const CpAndFc & rCpAndFc) const
+{
+ CpAndFc aEnd = getNextCp(rCpAndFc);
+
+ sal_uInt32 nResult = 3;
+
+ if (rCpAndFc < aEnd)
+ nResult = (aEnd - rCpAndFc) *
+ (mpPieceTable->isComplex(rCpAndFc.getCp()) ? 1 : 2);
+
+ return nResult;
+}
+
+WW8Stream::Sequence
+WW8DocumentImpl::getText(const CpAndFc & rStart)
+{
+ return mpDocStream->get(rStart.getFc().get(), getByteLength(rStart));
+}
+
+const CpAndFc & WW8DocumentImpl::getFirstCp() const
+{
+ return mCpAndFcStart;
+}
+
+const CpAndFc & WW8DocumentImpl::getLastCp() const
+{
+ return mCpAndFcEnd;
+}
+
+CpAndFc WW8DocumentImpl::getDocumentEndCp() const
+{
+ return mDocumentEndCpAndFc;
+}
+
+CpAndFc WW8DocumentImpl::getFootnodeEndCp() const
+{
+ return mFootnoteEndCpAndFc;
+}
+
+CpAndFc WW8DocumentImpl::getHeaderEndCp() const
+{
+ return mHeaderEndCpAndFc;
+}
+
+CpAndFc WW8DocumentImpl::getAnnotationEndCp() const
+{
+ return mAnnotationEndCpAndFc;
+}
+
+CpAndFc WW8DocumentImpl::getEndnoteEndCp() const
+{
+ return mEndnoteEndCpAndFc;
+}
+
+CpAndFc WW8DocumentImpl::getTextboxEndCp() const
+{
+ return mTextboxEndCpAndFc;
+}
+
+CpAndFc WW8DocumentImpl::getTextboxHeaderEndCp() const
+{
+ return mTextboxHeaderEndCpAndFc;
+}
+
+CpAndFc WW8DocumentImpl::getNextCp(const CpAndFc & rCpAndFc) const
+{
+ CpAndFc aResult = mCpAndFcEnd;
+ CpAndFcs::const_iterator aIt = mCpAndFcs.find(rCpAndFc);
+
+ if (aIt != mCpAndFcs.end())
+ {
+ aIt++;
+
+ if (aIt != mCpAndFcs.end())
+ aResult = *aIt;
+ }
+ else
+ throw ExceptionNotFound("getNextCp: " + rCpAndFc.toString());
+
+ return aResult;
+}
+
+CpAndFc WW8DocumentImpl::getPrevCp(const CpAndFc & rCpAndFc) const
+{
+ CpAndFc aResult = mCpAndFcStart;
+
+ CpAndFcs::const_iterator aIt = mCpAndFcs.find(CpAndFc(rCpAndFc));
+
+ if (aIt != mCpAndFcs.end() && aIt != mCpAndFcs.begin())
+ {
+ aIt--;
+
+ aResult = *aIt;
+ }
+ else
+ throw ExceptionNotFound("getPrevCp: " + rCpAndFc.toString());
+
+ return aResult;
+}
+
+WW8FKP::Pointer_t WW8DocumentImpl::getFKP(const CpAndFc & rCpAndFc)
+{
+ WW8FKP::Pointer_t pResult;
+
+ sal_uInt32 nPageNumber = 0;
+
+ switch (rCpAndFc.getType())
+ {
+ case PROP_PAP:
+ {
+ nPageNumber =
+ mpBinTablePAPX->getPageNumber(rCpAndFc.getFc());
+
+ pResult = getFKPPAPX(nPageNumber, rCpAndFc.isComplex());
+ }
+ break;
+ case PROP_CHP:
+ {
+ nPageNumber =
+ mpBinTableCHPX->getPageNumber(rCpAndFc.getFc());
+
+ pResult = getFKPCHPX(nPageNumber, rCpAndFc.isComplex());
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (pResult.get() != NULL)
+ pResult->setDocument(this);
+
+ return pResult;
+}
+
+WW8FKP::Pointer_t WW8DocumentImpl::getFKPCHPX(sal_uInt32 nIndex,
+ bool bComplex)
+{
+ return mpCHPFKPCache->get(nIndex, bComplex);
+}
+
+WW8FKP::Pointer_t WW8DocumentImpl::getFKPPAPX(sal_uInt32 nIndex,
+ bool bComplex)
+{
+ return mpPAPFKPCache->get(nIndex, bComplex);
+}
+
+doctok::Reference<Properties>::Pointer_t WW8DocumentImpl::getProperties
+(const CpAndFc & rCpAndFc)
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ switch (rCpAndFc.getType())
+ {
+ case PROP_CHP:
+ case PROP_PAP:
+ {
+ try
+ {
+ WW8FKP::Pointer_t pFKP = getFKP(rCpAndFc);
+
+ pResult = pFKP->getProperties(rCpAndFc.getFc());
+ }
+ catch (ExceptionOutOfBounds e)
+ {
+ }
+ }
+
+ break;
+
+ case PROP_SEC:
+ {
+ pResult = doctok::Reference<Properties>::Pointer_t
+ (getSED(rCpAndFc));
+ }
+
+ break;
+
+ case PROP_FOOTNOTE:
+ {
+ pResult = doctok::Reference<Properties>::Pointer_t
+ (mpFootnoteHelper->getRef(rCpAndFc));
+ }
+ break;
+
+ case PROP_ENDNOTE:
+ {
+ pResult = doctok::Reference<Properties>::Pointer_t
+ (mpEndnoteHelper->getRef(rCpAndFc));
+ }
+ break;
+
+ case PROP_ANNOTATION:
+ {
+ pResult = doctok::Reference<Properties>::Pointer_t
+ (mpAnnotationHelper->getRef(rCpAndFc));
+ }
+ break;
+
+ case PROP_BOOKMARKSTART:
+ case PROP_BOOKMARKEND:
+ {
+ pResult = getBookmark(rCpAndFc);
+ }
+
+ break;
+ case PROP_FLD:
+ {
+ pResult = getField(rCpAndFc);
+ }
+
+ break;
+ case PROP_SHP:
+ {
+ pResult = getShape(rCpAndFc);
+ }
+ default:
+ break;
+ }
+
+ return pResult;
+}
+
+doctok::Reference<Stream>::Pointer_t
+WW8DocumentImpl::getSubDocument(const CpAndFc & rCpAndFc)
+{
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ switch (rCpAndFc.getType())
+ {
+ case PROP_FOOTNOTE:
+ pResult = getFootnote(rCpAndFc);
+ break;
+
+ case PROP_ENDNOTE:
+ pResult = getEndnote(rCpAndFc);
+ break;
+
+ case PROP_ANNOTATION:
+ pResult = getAnnotation(rCpAndFc);
+ break;
+
+ default:
+ break;
+ }
+
+ return pResult;
+}
+
+WW8SED * WW8DocumentImpl::getSED(const CpAndFc & rCpAndFc) const
+{
+ WW8SED * pResult = mpSEDs->getEntryByFc(rCpAndFc.getCp().get());
+
+ pResult->setDoc(const_cast<const WW8DocumentImpl *>(this));
+
+ return pResult;
+}
+
+doctok::Reference<Table>::Pointer_t WW8DocumentImpl::getListTable() const
+{
+ doctok::Reference<Table>::Pointer_t pResult;
+
+ if (mpFib->get_fcPlcfLst() != 0 && mpFib->get_lcbPlcfLst() > 0)
+ {
+ WW8ListTable * pList = new WW8ListTable(*mpTableStream,
+ mpFib->get_fcPlcfLst(),
+ mpFib->get_fcPlfLfo() -
+ mpFib->get_fcPlcfLst());
+
+ pList->setPayloadOffset(mpFib->get_lcbPlcfLst());
+ pList->initPayload();
+
+ pResult = doctok::Reference<Table>::Pointer_t(pList);
+ }
+
+ return pResult;
+}
+
+doctok::Reference<Table>::Pointer_t WW8DocumentImpl::getLFOTable() const
+{
+ doctok::Reference<Table>::Pointer_t pResult;
+
+ if (mpFib->get_fcPlfLfo() != 0 && mpFib->get_lcbPlfLfo() > 0)
+ {
+ try
+ {
+ WW8LFOTable * pLFOs = new WW8LFOTable(*mpTableStream,
+ mpFib->get_fcPlfLfo(),
+ mpFib->get_lcbPlfLfo());
+
+ pLFOs->setPayloadOffset(mpFib->get_lcbPlcfLst());
+ pLFOs->initPayload();
+
+ pResult = doctok::Reference<Table>::Pointer_t(pLFOs);
+ }
+ catch (Exception e)
+ {
+ clog << e.getText() << endl;
+ }
+ }
+
+ return pResult;
+}
+
+doctok::Reference<Table>::Pointer_t WW8DocumentImpl::getFontTable() const
+{
+ doctok::Reference<Table>::Pointer_t pResult;
+
+ if (mpFib->get_fcSttbfffn() != 0 && mpFib->get_lcbSttbfffn() > 0)
+ {
+ WW8FontTable * pFonts = new WW8FontTable(*mpTableStream,
+ mpFib->get_fcSttbfffn(),
+ mpFib->get_lcbSttbfffn());
+
+ pFonts->initPayload();
+
+ pResult = doctok::Reference<Table>::Pointer_t(pFonts);
+ }
+
+ return pResult;
+}
+
+doctok::Reference<Table>::Pointer_t WW8DocumentImpl::getStyleSheet() const
+{
+ doctok::Reference<Table>::Pointer_t pResult;
+
+ if (mpFib->get_lcbStshf() > 0)
+ {
+ WW8StyleSheet * pStyles = new WW8StyleSheet(*mpTableStream,
+ mpFib->get_fcStshf(),
+ mpFib->get_lcbStshf());
+
+ pStyles->initPayload();
+
+ pResult = doctok::Reference<Table>::Pointer_t(pStyles);
+ }
+
+ return pResult;
+}
+
+sal_uInt32 WW8DocumentImpl::getHeaderCount() const
+{
+ sal_uInt32 nResult = 0;
+ sal_uInt32 nLcbPlcfhdd = mpFib->get_lcbPlcfhdd();
+
+ if (nLcbPlcfhdd > 4)
+ nResult = (nLcbPlcfhdd / 4) - 1;
+
+ return nResult;
+}
+
+CpAndFc WW8DocumentImpl::getHeaderCpAndFc(sal_uInt32 nPos)
+{
+ sal_uInt32 nCount = getHeaderCount();
+
+ // There are getHeaderCount() + 1 entries in mpHeaderOffsets => greater
+ if (nPos > nCount)
+ throw ExceptionNotFound("getHeaderCpAndFc");
+
+ if (nPos == nCount)
+ return mHeaderEndCpAndFc;
+ else
+ {
+ Cp aCp(getFootnodeEndCp().getCp() + mpHeaderOffsets->getU32(nPos * 4));
+ Fc aFc(mpPieceTable->cp2fc(aCp));
+ CpAndFc aCpAndFc(aCp, aFc, PROP_DOC);
+
+ return aCpAndFc;
+ }
+
+ // never reached
+ return CpAndFc();
+}
+
+doctok::Reference<Stream>::Pointer_t WW8DocumentImpl::getHeader(sal_uInt32 nPos)
+{
+ // There are getHeaderCount() headers => greater or equal
+ if (nPos >= getHeaderCount())
+ throw ExceptionNotFound("getHeader");
+
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ CpAndFc aCpAndFcStart(getHeaderCpAndFc(nPos));
+ CpAndFc aCpAndFcEnd(getHeaderCpAndFc(nPos + 1));
+
+ sal_uInt32 nEquals = 1;
+ while (aCpAndFcEnd == aCpAndFcStart && nPos + nEquals < getHeaderCount())
+ {
+ ++nEquals;
+
+ aCpAndFcEnd = getHeaderCpAndFc(nPos + nEquals);
+ }
+
+ if (aCpAndFcStart < aCpAndFcEnd)
+ pResult = doctok::Reference<Stream>::Pointer_t
+ (new WW8DocumentImpl(*this, aCpAndFcStart, aCpAndFcEnd));
+
+ return pResult;
+}
+
+sal_uInt32 WW8DocumentImpl::getFootnoteCount() const
+{
+ return (mpFootnoteHelper.get() != NULL) ? mpFootnoteHelper->getCount() : 0;
+}
+
+doctok::Reference<Stream>::Pointer_t
+WW8DocumentImpl::getFootnote(sal_uInt32 nPos)
+{
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ if (! bSubDocument)
+ pResult = mpFootnoteHelper->get(nPos);
+
+ return pResult;
+}
+
+doctok::Reference<Stream>::Pointer_t
+WW8DocumentImpl::getFootnote(const CpAndFc & rCpAndFc)
+{
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ if (! bSubDocument)
+ pResult = mpFootnoteHelper->get(rCpAndFc);
+
+ return pResult;
+}
+
+sal_uInt32 WW8DocumentImpl::getEndnoteCount() const
+{
+ return mpEndnoteHelper.get() != NULL ? mpEndnoteHelper->getCount() : 0;
+}
+
+doctok::Reference<Stream>::Pointer_t
+WW8DocumentImpl::getEndnote(sal_uInt32 nPos)
+{
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ if (! bSubDocument)
+ pResult = mpEndnoteHelper->get(nPos);
+
+ return pResult;
+}
+
+doctok::Reference<Stream>::Pointer_t
+WW8DocumentImpl::getEndnote(const CpAndFc & rCpAndFc)
+{
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ if (! bSubDocument)
+ pResult = mpEndnoteHelper->get(rCpAndFc);
+
+ return pResult;
+}
+
+sal_uInt32 WW8DocumentImpl::getAnnotationCount() const
+{
+ return mpAnnotationHelper.get() != NULL ?
+ mpAnnotationHelper->getCount() : 0;
+}
+
+doctok::Reference<Stream>::Pointer_t
+WW8DocumentImpl::getAnnotation(sal_uInt32 nPos)
+{
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ if (! bSubDocument)
+ pResult = mpAnnotationHelper->get(nPos);
+
+ return pResult;
+}
+
+doctok::Reference<Stream>::Pointer_t
+WW8DocumentImpl::getAnnotation(const CpAndFc & rCpAndFc)
+{
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ if (! bSubDocument)
+ pResult = mpAnnotationHelper->get(rCpAndFc);
+
+ return pResult;
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8DocumentImpl::getBookmark(const CpAndFc & rCpAndFc) const
+{
+ return mpBookmarkHelper->getBookmark(rCpAndFc);
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8DocumentImpl::getShape(const CpAndFc & rCpAndFc) const
+{
+ return mpShapeHelper->getShape(rCpAndFc);
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8DocumentImpl::getShape(sal_uInt32 nSpid)
+{
+ DffRecord * pTmp = new DffRecord(*mpDffBlock->getShape(nSpid));
+ return doctok::Reference<Properties>::Pointer_t(pTmp);
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8DocumentImpl::getField(const CpAndFc & rCpAndFc) const
+{
+ return mpFieldHelper->getField(rCpAndFc);
+}
+
+sal_uInt32 WW8DocumentImpl::getPicLocation() const
+{
+ return mfcPicLoc;
+}
+
+void WW8DocumentImpl::setPicLocation(sal_uInt32 fcPicLoc)
+{
+ mfcPicLoc = fcPicLoc;
+}
+
+QName_t lcl_headerQName(sal_uInt32 nIndex)
+{
+ QName_t qName = NS_rtf::LN_header;
+
+ if (nIndex > 5)
+ {
+ switch ((nIndex - 6) % 6)
+ {
+ case 0:
+ qName = NS_rtf::LN_headerl;
+
+ break;
+ case 1:
+ qName = NS_rtf::LN_headerr;
+
+ break;
+ case 2:
+ qName = NS_rtf::LN_footerl;
+
+ break;
+ case 3:
+ qName = NS_rtf::LN_footerr;
+
+ break;
+ case 4:
+ qName = NS_rtf::LN_headerf;
+
+ break;
+ case 5:
+ qName = NS_rtf::LN_footerf;
+
+ break;
+ }
+ }
+
+ return qName;
+}
+
+Fc WW8DocumentImpl::cp2fc(const Cp & cp) const
+{
+ return mpPieceTable->cp2fc(cp);
+}
+
+Cp WW8DocumentImpl::fc2cp(const Fc & fc) const
+{
+ return mpPieceTable->fc2cp(fc);
+}
+
+CpAndFc WW8DocumentImpl::getCpAndFc(const Cp & cp, PropertyType type) const
+{
+ Fc aFc = cp2fc(cp);
+
+ return CpAndFc(cp, aFc, type);
+}
+
+CpAndFc WW8DocumentImpl::getCpAndFc(const Fc & fc, PropertyType type) const
+{
+ Cp aCp = fc2cp(fc);
+
+ return CpAndFc(aCp, fc, type);
+}
+
+void WW8DocumentImpl::resolvePicture(Stream & rStream)
+{
+ WW8Stream::Pointer_t pStream = getDataStream();
+
+ if (pStream.get() != NULL)
+ {
+ WW8StructBase aStruct(*pStream, mfcPicLoc, 4);
+ sal_uInt32 nCount = aStruct.getU32(0);
+
+ doctok::Reference<Properties>::Pointer_t pPicf
+ (new WW8PICF(*pStream, mfcPicLoc, nCount));
+
+ rStream.props(pPicf);
+ }
+}
+
+void WW8DocumentImpl::resolveText(WW8DocumentIterator::Pointer_t pIt,
+ Stream & rStream)
+{
+ WW8Stream::Sequence aSeq = pIt->getText();
+
+ sal_uInt32 nCount = aSeq.getCount();
+ bool bComplex = pIt->isComplex();
+
+#if 1
+ /*
+ Assumption: Special characters are always at the end of a run.
+ */
+ if (nCount > 0)
+ {
+ if (nCount == 1)
+ bComplex = true;
+
+ sal_uInt32 nIndex = nCount - (bComplex ? 1 : 2);
+ sal_uInt32 nChar = aSeq[nIndex];
+
+ if (! bComplex)
+ nChar += aSeq[nIndex + 1] << 8;
+
+ if (isSpecial(nChar))
+ {
+ if (bComplex)
+ {
+ rStream.text(&aSeq[0], nIndex);
+ rStream.text(&aSeq[nIndex], 1);
+ }
+ else
+ {
+ rStream.utext(&aSeq[0], nIndex / 2);
+ rStream.utext(&aSeq[nIndex], 1);
+ }
+
+ switch (nChar)
+ {
+ case 0x1:
+ resolvePicture(rStream);
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ if (bComplex)
+ rStream.text(&aSeq[0], nCount);
+ else
+ rStream.utext(&aSeq[0], nCount/2);
+
+ }
+ }
+#else
+ sal_uInt32 nIndex = 0;
+
+ while (nIndex < nCount)
+ {
+ sal_uInt32 nChar = aSeq[nIndex];
+
+ if (! bComplex)
+ nChar += aSeq[nIndex + 1] << 8;
+
+ if (isSpecial(nChar))
+ {
+ if (bComplex)
+ {
+ if (nStart < nIndex)
+ rStream.text(&aSeq[nStart], nIndex - nStart);
+ rStream.text(&aSeq[nIndex], 1);
+ }
+ else
+ {
+ if (nStart < nIndex)
+ rStream.utext(&aSeq[nStart], (nIndex - nStart) / 2);
+
+ rStream.utext(&aSeq[nIndex], 1);
+ }
+
+ nStart = nIndex + (bComplex ? 1 : 2);
+ }
+
+ nIndex += bComplex ? 1 : 2;
+ }
+
+ if (nStart < nCount)
+ {
+ if (bComplex)
+ rStream.text(&aSeq[nStart], nCount - nStart);
+ else
+ rStream.utext(&aSeq[nStart], (nCount - nStart) / 2);
+ }
+#endif
+}
+
+void WW8DocumentImpl::resolve(Stream & rStream)
+{
+ if (! bSubDocument)
+ {
+ //mpPieceTable->dump(clog);
+
+ //copy(mCpAndFcs.begin(), mCpAndFcs.end(), ostream_iterator<CpAndFc>(clog, ", "));
+
+ doctok::Reference<Properties>::Pointer_t pFib
+ (new WW8Fib(*mpFib));
+ rStream.props(pFib);
+
+ if (mpFib->get_lcbPlcftxbxTxt() > 0)
+ {
+ WW8StructBase aStructBase(*mpTableStream, mpFib->get_fcPlcftxbxTxt(),
+ mpFib->get_lcbPlcftxbxTxt());
+
+ WW8OutputWithDepth output;
+ output.addItem("<textboxes>");
+ aStructBase.dump(output);
+ output.addItem("</textboxes>");
+ }
+
+ if (mpFib->get_lcbPlcftxbxBkd() > 0)
+ {
+ PLCF<WW8BKD> aPLCF(*mpTableStream,
+ mpFib->get_fcPlcftxbxBkd(),
+ mpFib->get_lcbPlcftxbxBkd());
+
+ WW8OutputWithDepth output;
+ output.addItem("<textboxes.breaks>");
+ aPLCF.dump(output);
+ output.addItem("</textboxes.breaks>");
+ }
+
+ if (mpDffBlock.get() != NULL)
+ {
+ DffBlock * pTmp = new DffBlock(*mpDffBlock);
+ //pTmp->dump(clog);
+ doctok::Reference<Properties>::Pointer_t pDffBlock =
+ doctok::Reference<Properties>::Pointer_t(pTmp);
+
+ rStream.props(pDffBlock);
+ }
+
+#if 0
+ {
+ sal_uInt32 nHeaderCount = getHeaderCount();
+ for (sal_uInt32 n = 0; n < nHeaderCount; ++n)
+ {
+#if 0
+ clog << "<header num=\"" << n << "\" cp=\""
+ << getHeaderCpAndFc(n) << "\"/>" << endl;
+#endif
+ doctok::Reference<Stream>::Pointer_t pHeader(getHeader(n));
+
+ QName_t qName = lcl_headerQName(n);
+
+ if (pHeader.get() != NULL)
+ rStream.substream(qName, pHeader);
+ }
+ }
+
+ {
+ sal_uInt32 nFootnoteCount = getFootnoteCount();
+ for (sal_uInt32 n = 0; n < nFootnoteCount; ++n)
+ {
+ //clog << "<footnote num=\"" << n << "\"/>" << endl;
+
+ doctok::Reference<Stream>::Pointer_t pFootnote(getFootnote(n));
+
+ if (pFootnote.get() != NULL)
+ rStream.substream(NS_rtf::LN_footnote, pFootnote);
+ }
+ }
+ {
+ sal_uInt32 nEndnoteCount = getEndnoteCount();
+ for (sal_uInt32 n = 0; n < nEndnoteCount; ++n)
+ {
+ //clog << "<endnote num=\"" << n << "\"/>" << endl;
+
+ doctok::Reference<Stream>::Pointer_t pEndnote(getEndnote(n));
+
+ if (pEndnote.get() != NULL)
+ rStream.substream(NS_rtf::LN_endnote, pEndnote);
+ }
+ }
+#endif
+
+
+ doctok::Reference<Table>::Pointer_t pListTable = getListTable();
+
+ if (pListTable.get() != NULL)
+ rStream.table(NS_rtf::LN_LISTTABLE, pListTable);
+
+ doctok::Reference<Table>::Pointer_t pLFOTable = getLFOTable();
+
+ if (pLFOTable.get() != NULL)
+ rStream.table(NS_rtf::LN_LFOTABLE, pLFOTable);
+
+ doctok::Reference<Table>::Pointer_t pFontTable = getFontTable();
+
+ if (pFontTable.get() != NULL)
+ rStream.table(NS_rtf::LN_FONTTABLE, pFontTable);
+
+ try
+ {
+ doctok::Reference<Table>::Pointer_t pStyleSheet = getStyleSheet();
+
+ if (pStyleSheet.get() != NULL)
+ rStream.table(NS_rtf::LN_STYLESHEET, pStyleSheet);
+ }
+ catch (Exception e)
+ {
+ clog << e.getText() << endl;
+ }
+ }
+
+ WW8DocumentIterator::Pointer_t pIt = begin();
+ WW8DocumentIterator::Pointer_t pItEnd = end();
+
+ bool bInParagraphGroup = false;
+ bool bInCharacterGroup = false;
+ bool bInSection = false;
+
+ sal_uInt32 nSectionIndex = 0;
+
+ rStream.info(pIt->toString());
+ rStream.info(pItEnd->toString());
+
+ while (! pIt->equal(*pItEnd))
+ {
+ Reference<doctok::Properties>::Pointer_t
+ pProperties(pIt->getProperties());
+
+ switch (pIt->getPropertyType())
+ {
+ case PROP_FOOTNOTE:
+ {
+ rStream.info(pIt->toString());
+ doctok::Reference<Stream>::Pointer_t
+ pFootnote(pIt->getSubDocument());
+
+ if (pFootnote.get() != NULL)
+ rStream.substream(NS_rtf::LN_footnote, pFootnote);
+ }
+ break;
+ case PROP_ENDNOTE:
+ {
+ rStream.info(pIt->toString());
+ doctok::Reference<Stream>::Pointer_t
+ pEndnote(pIt->getSubDocument());
+
+ if (pEndnote.get() != NULL)
+ rStream.substream(NS_rtf::LN_endnote, pEndnote);
+ }
+ break;
+ case PROP_ANNOTATION:
+ {
+ rStream.info(pIt->toString());
+ doctok::Reference<Stream>::Pointer_t
+ pAnnotation(pIt->getSubDocument());
+
+ if (pAnnotation.get() != NULL)
+ rStream.substream(NS_rtf::LN_annotation, pAnnotation);
+ }
+ break;
+ case PROP_CHP:
+ {
+ if (bInCharacterGroup)
+ rStream.endCharacterGroup();
+
+ rStream.info(pIt->toString());
+ rStream.startCharacterGroup();
+
+ bInCharacterGroup = true;
+ }
+
+ break;
+ case PROP_PAP:
+ {
+ if (bInCharacterGroup)
+ {
+ rStream.endCharacterGroup();
+ bInCharacterGroup = false;
+ }
+
+ if (bInParagraphGroup)
+ rStream.endParagraphGroup();
+
+ rStream.info(pIt->toString());
+ rStream.startParagraphGroup();
+
+ bInParagraphGroup = true;
+ }
+
+ break;
+ case PROP_SEC:
+ {
+ if (bInCharacterGroup)
+ {
+ rStream.endCharacterGroup();
+ bInCharacterGroup = false;
+ }
+
+ if (bInParagraphGroup)
+ {
+ rStream.endParagraphGroup();
+ bInParagraphGroup = false;
+ }
+
+ if (bInSection)
+ rStream.endSectionGroup();
+
+ rStream.startSectionGroup();
+ rStream.info(pIt->toString());
+
+ bInSection = true;
+
+ sal_uInt32 nHeaderStartIndex = 6 + nSectionIndex * 6;
+ sal_uInt32 nHeaderEndIndex = nHeaderStartIndex + 6;
+
+ if (nHeaderStartIndex >= getHeaderCount())
+ nHeaderStartIndex = getHeaderCount();
+
+ if (nHeaderEndIndex >= getHeaderCount())
+ nHeaderEndIndex = getHeaderCount();
+
+ for (sal_uInt32 n = nHeaderStartIndex; n < nHeaderEndIndex; ++n)
+ {
+ doctok::Reference<Stream>::Pointer_t
+ pHeader(getHeader(n));
+
+ QName_t qName = lcl_headerQName(n);
+
+ if (pHeader.get() != NULL)
+ rStream.substream(qName, pHeader);
+ }
+
+ ++nSectionIndex;
+ }
+
+ break;
+ default:
+ rStream.info(pIt->toString());
+ }
+
+ if (pProperties.get() != NULL)
+ {
+ rStream.props(pProperties);
+ }
+
+ resolveText(pIt, rStream);
+
+ ++(*pIt);
+ }
+
+ if (bInCharacterGroup)
+ rStream.endCharacterGroup();
+
+ if (bInParagraphGroup)
+ rStream.endParagraphGroup();
+
+ if (bInSection)
+ rStream.endSectionGroup();
+
+}
+
+WW8Stream::Pointer_t
+WW8DocumentFactory::createStream(uno::Reference<uno::XComponentContext> rContext,
+ uno::Reference<io::XInputStream> rStream)
+{
+ return WW8Stream::Pointer_t(new WW8StreamImpl(rContext, rStream));
+}
+
+WW8Document::Pointer_t
+WW8DocumentFactory::createDocument(WW8Stream::Pointer_t rpStream)
+{
+ return WW8Document::Pointer_t(new WW8DocumentImpl(rpStream));
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8SED::get_sepx()
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ if (get_fcSepx() != 0xffffffff)
+ {
+ WW8StructBase aTmp(*mpDoc->getDocStream(), get_fcSepx(), 2);
+ pResult = doctok::Reference<Properties>::Pointer_t
+ (new WW8PropertySetImpl
+ (*mpDoc->getDocStream(), get_fcSepx() + 2,
+ (sal_uInt32) aTmp.getU16(0), false));
+ }
+
+ return pResult;
+}
+
+void WW8DocumentImpl::insertCpAndFc(const CpAndFc & rCpAndFc)
+{
+ mCpAndFcs.insert(rCpAndFc);
+}
+
+string propertyTypeToString(PropertyType nType)
+{
+ string result;
+
+ switch (nType)
+ {
+ case PROP_SHP:
+ result = "SHP";
+
+ break;
+ case PROP_FLD:
+ result = "FLD";
+
+ break;
+ case PROP_BOOKMARKSTART:
+ result = "BOOKMARKSTART";
+
+ break;
+ case PROP_BOOKMARKEND:
+ result = "BOOKMARKEND";
+
+ break;
+ case PROP_ENDNOTE:
+ result = "ENDNOTE";
+
+ break;
+ case PROP_FOOTNOTE:
+ result = "FOOTNOTE";
+
+ break;
+ case PROP_ANNOTATION:
+ result = "ANNOTATION";
+
+ break;
+ case PROP_DOC:
+ result = "DOC";
+
+ break;
+
+ case PROP_SEC:
+ result = "SEC";
+
+ break;
+
+ case PROP_PAP:
+ result = "PAP";
+
+ break;
+
+ case PROP_CHP:
+ result = "CHP";
+
+ break;
+ default:
+ break;
+ }
+
+ return result;
+}
+
+string CpAndFc::toString() const
+{
+ string result;
+
+ result += "(";
+ result += getCp().toString();
+ result += ", ";
+ result += getFc().toString();
+ result += ", ";
+
+ result += propertyTypeToString(getType());
+
+ result += ")";
+
+ return result;
+}
+
+
+// Bookmark
+
+Bookmark::Bookmark(doctok::Reference<Properties>::Pointer_t pBKF,
+ rtl::OUString & rName)
+: mpBKF(pBKF), mName(rName)
+{
+}
+
+void Bookmark::resolve(Properties & rHandler)
+{
+ mpBKF->resolve(rHandler);
+
+ WW8Value::Pointer_t pValue = createValue(mName);
+ rHandler.attribute(NS_rtf::LN_BOOKMARKNAME, *pValue);
+}
+
+string Bookmark::getType() const
+{
+ return "Bookmark";
+}
+
+// BookmarkHelper
+
+CpAndFc BookmarkHelper::getStartCpAndFc(sal_uInt32 nPos)
+{
+ Cp aCp(mpStartCps->getFc(nPos));
+ Fc aFc(mpPieceTable->cp2fc(aCp));
+ CpAndFc aCpAndFc(aCp, aFc, PROP_BOOKMARKSTART);
+
+ return aCpAndFc;
+}
+
+CpAndFc BookmarkHelper::getEndCpAndFc(sal_uInt32 nPos)
+{
+ Cp aCp(mpEndCps->getU32(nPos * 4));
+ Fc aFc(mpPieceTable->cp2fc(aCp));
+ CpAndFc aCpAndFc(aCp, aFc, PROP_BOOKMARKEND);
+
+ return aCpAndFc;
+}
+
+rtl::OUString BookmarkHelper::getName(sal_uInt32 nPos)
+{
+ return mpNames->getEntry(nPos);
+}
+
+sal_uInt32 BookmarkHelper::getIndex(const CpAndFc & rCpAndFc)
+{
+ sal_uInt32 nResult = mpStartCps->getEntryCount();
+
+ sal_uInt32 nCp = rCpAndFc.getCp().get();
+
+ sal_uInt32 n;
+ switch (rCpAndFc.getType())
+ {
+ case PROP_BOOKMARKSTART:
+ {
+ sal_uInt32 nStartsCount = mpStartCps->getEntryCount();
+
+ for (n = 0; n < nStartsCount; ++n)
+ {
+ if (nCp == mpStartCps->getFc(n))
+ {
+ nResult = n;
+
+ break;
+ }
+ }
+
+ if (n == nStartsCount)
+ throw ExceptionNotFound("BookmarkHelper::getIndex");
+ }
+
+ break;
+
+ case PROP_BOOKMARKEND:
+ {
+ sal_uInt32 nEndsCount = mpEndCps->getCount() / 4;
+ sal_uInt32 nIndex = nEndsCount;
+
+ for (n = 0; n < nEndsCount; ++n)
+ {
+ if (nCp == mpEndCps->getU16(n * 4))
+ {
+ nIndex = n;
+
+ break;
+ }
+ }
+
+ if (n == nEndsCount)
+ throw ExceptionNotFound("BookmarkHelper::getIndex");
+
+ {
+ {
+ sal_uInt32 nStartsCount = mpStartCps->getEntryCount();
+ for (n = 0; n < nStartsCount; ++n)
+ {
+ WW8BKF::Pointer_t pBKF(mpStartCps->getEntry(n));
+
+ if (pBKF->get_ibkl() ==
+ sal::static_int_cast<sal_Int32>(nIndex))
+ {
+ nResult = n;
+
+ break;
+ }
+ }
+
+ if (n == nStartsCount)
+ throw ExceptionNotFound("BookmarkHelper::getIndex");
+ }
+ }
+ }
+
+ break;
+ default:
+ break;
+ }
+
+ return nResult;
+}
+
+void BookmarkHelper::init()
+{
+ {
+ sal_uInt32 nStartsCount = mpStartCps->getEntryCount();
+
+ for (sal_uInt32 n = 0; n < nStartsCount; ++n)
+ mpDoc->insertCpAndFc(getStartCpAndFc(n));
+ }
+
+ {
+ sal_uInt32 nEndsCount = mpEndCps->getCount() / 4;
+
+ for (sal_uInt32 n = 0; n < nEndsCount; ++n)
+ mpDoc->insertCpAndFc(getEndCpAndFc(n));
+ }
+}
+
+doctok::Reference<Properties>::Pointer_t
+BookmarkHelper::getBKF(const CpAndFc & rCpAndFc)
+{
+ sal_uInt32 nIndex = getIndex(rCpAndFc);
+
+ return doctok::Reference<Properties>::Pointer_t
+ (mpStartCps->getEntryPointer(nIndex));
+}
+
+doctok::Reference<Properties>::Pointer_t
+BookmarkHelper::getBookmark(const CpAndFc & rCpAndFc)
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ try
+ {
+ rtl::OUString aName = getName(rCpAndFc);
+
+ pResult = doctok::Reference<Properties>::Pointer_t
+ (new Bookmark(getBKF(rCpAndFc), aName));
+ }
+ catch (ExceptionNotFound e)
+ {
+ clog << e.getText() << endl;
+ }
+
+ return pResult;
+}
+
+rtl::OUString BookmarkHelper::getName(const CpAndFc & rCpAndFc)
+{
+ rtl::OUString sResult;
+
+ sal_uInt32 nIndex = getIndex(rCpAndFc);
+
+ sResult = getName(nIndex);
+
+ return sResult;
+}
+
+template <class T, class Helper>
+struct ProcessPLCF2Map
+{
+ void process(typename PLCF<T>::Pointer_t pPlcf,
+ typename Helper::Map_t & rMap,
+ PropertyType type,
+ WW8DocumentImpl * pDoc)
+ {
+ if (pPlcf.get() != NULL)
+ {
+ sal_uInt32 nCount = pPlcf->getEntryCount();
+
+ for (sal_uInt32 n = 0; n < nCount; n++)
+ {
+ Cp aCp(pPlcf->getFc(n));
+ CpAndFc aCpAndFc(pDoc->getCpAndFc(aCp, type));
+ typename T::Pointer_t pT = pPlcf->getEntry(n);
+
+ rMap[aCpAndFc] = pT;
+ }
+ }
+ }
+};
+
+FieldHelper::FieldHelper(PLCF<WW8FLD>::Pointer_t pPlcffldMom,
+ WW8DocumentImpl * pDoc)
+: mpDoc(pDoc)
+{
+ ProcessPLCF2Map<WW8FLD, FieldHelper> process;
+ process.process(pPlcffldMom, mMap, PROP_FLD, pDoc);
+}
+
+void FieldHelper::init()
+{
+ Map_t::iterator aIt;
+
+ for (aIt = mMap.begin(); aIt != mMap.end(); aIt++)
+ {
+ mpDoc->insertCpAndFc(aIt->first);
+ }
+}
+
+doctok::Reference<Properties>::Pointer_t
+FieldHelper::getField(const CpAndFc & rCpAndFc)
+{
+ WW8FLD::Pointer_t pFLD = mMap[rCpAndFc];
+
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8FLD(*pFLD));
+}
+
+ShapeHelper::ShapeHelper(PLCF<WW8FSPA>::Pointer_t pPlcspaMom,
+ PLCF<WW8FSPA>::Pointer_t pPlcspaHdr,
+ WW8DocumentImpl * pDoc)
+: mpDoc(pDoc)
+{
+ ProcessPLCF2Map<WW8FSPA, ShapeHelper> process;
+ process.process(pPlcspaMom, mMap, PROP_SHP, pDoc);
+ process.process(pPlcspaHdr, mMap, PROP_SHP, pDoc);
+}
+
+void ShapeHelper::init()
+{
+ Map_t::iterator aIt;
+
+ for (aIt = mMap.begin(); aIt != mMap.end(); aIt++)
+ {
+ mpDoc->insertCpAndFc(aIt->first);
+ aIt->second->setDocument(mpDoc);
+ }
+}
+
+doctok::Reference<Properties>::Pointer_t
+ShapeHelper::getShape(const CpAndFc & rCpAndFc)
+{
+ WW8FSPA::Pointer_t pFSPA = mMap[rCpAndFc];
+
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8FSPA(*pFSPA));
+}
+
+
+}
diff --git a/writerfilter/source/doctok/WW8DocumentImpl.hxx b/writerfilter/source/doctok/WW8DocumentImpl.hxx
new file mode 100644
index 000000000000..28cdb40a40b6
--- /dev/null
+++ b/writerfilter/source/doctok/WW8DocumentImpl.hxx
@@ -0,0 +1,714 @@
+#ifndef INCLUDED_WW8_DOCUMENT_IMPL_HXX
+#define INCLUDED_WW8_DOCUMENT_IMPL_HXX
+
+#include <set>
+#ifndef INCLUDED_WW8_PIECE_TABLE_HXX
+#include <WW8PieceTable.hxx>
+#endif
+#ifndef INCLUDED_WW8_BIN_TABLE_HXX
+#include <WW8BinTable.hxx>
+#endif
+#ifndef INCLUDED_RESOURCES_HXX
+#include <resources.hxx>
+#endif
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX
+#include <doctok/WW8ResourceModel.hxx>
+#endif
+#ifndef INCLUDED_PLCF_HXX
+#include <PLCF.hxx>
+#endif
+#ifndef INCLUDED_WW8_STTBF_HXX
+#include <WW8Sttbf.hxx>
+#endif
+#ifndef INCLUDED_X_NOTE_HELPER_HXX
+#include <XNoteHelper.hxx>
+#endif
+
+namespace doctok
+{
+
+class WW8DocumentImpl;
+
+/**
+ A bookmark.
+*/
+class Bookmark : public doctok::Reference<Properties>
+{
+ /// bookmark first descriptor
+ doctok::Reference<Properties>::Pointer_t mpBKF;
+
+ /// name of bookmark
+ rtl::OUString mName;
+
+public:
+ Bookmark(doctok::Reference<Properties>::Pointer_t pBKF,
+ rtl::OUString & rName);
+
+ /**
+ Resolve bookmark to handler.
+
+ @param rHandler handler to send events to
+ */
+ virtual void resolve(Properties & rHandler);
+
+ virtual string getType() const;
+};
+
+/**
+ A helper for bookmarks.
+ */
+class BookmarkHelper
+{
+ /// PLCF containing Cps and BKFs for the bookmarks
+ PLCF<WW8BKF>::Pointer_t mpStartCps;
+
+ /// Cps of the ends of bookmarks
+ WW8StructBase::Pointer_t mpEndCps;
+
+ /// STTBF containing the names of bookmarks
+ WW8Sttbf::Pointer_t mpNames;
+
+ /// piece table for converting CPs to FCs
+ WW8PieceTable::Pointer_t mpPieceTable;
+
+ /// document to insert CpAndFcs to
+ WW8DocumentImpl * mpDoc;
+
+ /**
+ Return start CpAndFc for a bookmark.
+
+ @param nPos index of the bookmark
+ */
+ CpAndFc getStartCpAndFc(sal_uInt32 nPos);
+
+ /**
+ Return end CpAndFc for a bookmark.
+
+ @param nPos index of the bookmark
+ */
+ CpAndFc getEndCpAndFc(sal_uInt32 nPos);
+
+ /**
+ Return the name of a bookmark.
+
+ @param nPos index of the bookmark
+ */
+ rtl::OUString getName(sal_uInt32 nPos);
+
+ /**
+ Return index of a bookmark.
+
+ @param rCpAndFc CpAndFc of the bookmark
+ */
+ sal_uInt32 getIndex(const CpAndFc & rCpAndFc);
+
+public:
+ typedef boost::shared_ptr<BookmarkHelper> Pointer_t;
+
+ BookmarkHelper(PLCF<WW8BKF>::Pointer_t pStartCps,
+ WW8StructBase::Pointer_t pEndCps,
+ WW8Sttbf::Pointer_t pNames,
+ WW8PieceTable::Pointer_t pPieceTable,
+ WW8DocumentImpl * pDoc)
+ : mpStartCps(pStartCps), mpEndCps(pEndCps), mpNames(pNames),
+ mpPieceTable(pPieceTable), mpDoc(pDoc)
+ {
+ }
+
+ /**
+ Initialize.
+
+ Inserts CpAndFcs for the bookmark starts and ends into the
+ document.
+ */
+ void init();
+
+ /**
+ Return BKF of a bookmark.
+
+ @param rCpAndFc CpAndFc of the bookmark
+ */
+ doctok::Reference<Properties>::Pointer_t getBKF(const CpAndFc & rCpAndFc);
+
+ /**
+ Return the name of a bookmark.
+
+ @param rCpAndFc CpAndFc of the bookmark
+ */
+ rtl::OUString getName(const CpAndFc & rCp);
+
+ /**
+ Return bookmark.
+ @param rCpAndFc CpAndFc of the bookmark
+ */
+ doctok::Reference<Properties>::Pointer_t
+ getBookmark(const CpAndFc & rCpAndFc);
+};
+
+/**
+ Helper for shapes.
+ */
+class ShapeHelper
+{
+public:
+ typedef hash_map<CpAndFc, WW8FSPA::Pointer_t, CpAndFcHash> Map_t;
+
+private:
+ WW8DocumentImpl * mpDoc;
+ Map_t mMap;
+
+public:
+ typedef boost::shared_ptr<ShapeHelper> Pointer_t;
+ ShapeHelper(PLCF<WW8FSPA>::Pointer_t pPlcspaMom,
+ PLCF<WW8FSPA>::Pointer_t pPlcspaHdr,
+ WW8DocumentImpl * pDoc);
+
+ void init();
+
+ doctok::Reference<Properties>::Pointer_t
+ getShape(const CpAndFc & rCpAndFc);
+
+};
+
+/**
+ Helper for fields.
+ */
+class FieldHelper
+{
+public:
+ typedef hash_map<CpAndFc, WW8FLD::Pointer_t,
+ CpAndFcHash> Map_t;
+
+private:
+ WW8DocumentImpl * mpDoc;
+ Map_t mMap;
+public:
+
+ typedef boost::shared_ptr<FieldHelper> Pointer_t;
+ FieldHelper(PLCF<WW8FLD>::Pointer_t pPlcffldMom,
+ WW8DocumentImpl * pDoc);
+
+ void init();
+
+ doctok::Reference<Properties>::Pointer_t
+ getField(const CpAndFc & rCpAndFc);
+};
+
+/**
+ Implementation class for document.
+ */
+class WW8DocumentImpl : public WW8Document
+{
+ /// true if the document is contained in another document
+ bool bSubDocument;
+
+ /// picture location
+ sal_uInt32 mfcPicLoc;
+
+ /// CpAndFcs in the document where properties change
+ CpAndFcs mCpAndFcs;
+
+ /// CpAndFc pointing to the start of the document
+ CpAndFc mCpAndFcStart;
+
+ /// CpAndFc pointing to the end of the document
+ CpAndFc mCpAndFcEnd;
+
+ /// pointer to the cache of FKPs containing character properties
+ WW8FKPCache::Pointer_t mpCHPFKPCache;
+
+ /// pointer to the cache of FPKs containing paragraph properties
+ WW8FKPCache::Pointer_t mpPAPFKPCache;
+
+ /// pointer to the stream containing the whole document
+ WW8Stream::Pointer_t mpStream;
+
+ /// pointer to the substream of the document containing table like
+ /// structures
+ WW8Stream::Pointer_t mpTableStream;
+
+ /// pointer to the substream of the document containing the
+ /// document contents and formatting information
+ WW8Stream::Pointer_t mpDocStream;
+
+ /// pointer to the data stream of the document
+ WW8Stream::Pointer_t mpDataStream;
+
+ /// pointer to the piece table
+ WW8PieceTable::Pointer_t mpPieceTable;
+
+ /// pointer to the bin table for paragraph properties
+ WW8BinTable::Pointer_t mpBinTablePAPX;
+
+ /// pointer to the bin table for character properties
+ WW8BinTable::Pointer_t mpBinTableCHPX;
+
+ /// PLCF containing the section descriptions
+ PLCF<WW8SED>::Pointer_t mpSEDs;
+
+ /// pointer to the file information block
+ WW8Fib::Pointer_t mpFib;
+
+ /// pointer to the offsets of headers/footers
+ WW8StructBase::Pointer_t mpHeaderOffsets;
+
+ /// pointer to the helper for footnotes
+ XNoteHelper<WW8FRD>::Pointer_t mpFootnoteHelper;
+
+ /// pointer to the helper for endnotes
+ XNoteHelper<WW8FRD>::Pointer_t mpEndnoteHelper;
+
+ /// pointer to the helper for annotations
+ XNoteHelper<WW8ATRD>::Pointer_t mpAnnotationHelper;
+
+ /// pointer to the helper for bookmarks
+ BookmarkHelper::Pointer_t mpBookmarkHelper;
+
+ /// pointer to the helper for fields
+ FieldHelper::Pointer_t mpFieldHelper;
+
+ /// pointer to the helper for shapes
+ ShapeHelper::Pointer_t mpShapeHelper;
+
+
+ /// cache for the Cp where main text flow end
+ CpAndFc mDocumentEndCpAndFc;
+
+ /// cache for the Cp where footnotes section ends
+ CpAndFc mFootnoteEndCpAndFc;
+
+ /// cache for the Cp where header section ends
+ CpAndFc mHeaderEndCpAndFc;
+
+ /// cache for the Cp where annotation section ends
+ CpAndFc mAnnotationEndCpAndFc;
+
+ /// cache for the Cp where endnote section ends
+ CpAndFc mEndnoteEndCpAndFc;
+
+ /// cache for the Cp where textbox section ends
+ CpAndFc mTextboxEndCpAndFc;
+
+ /// cache for the Cp where textbox in header section ends
+ CpAndFc mTextboxHeaderEndCpAndFc;
+
+ /// DffBlock of document
+ DffBlock::Pointer_t mpDffBlock;
+
+ bool isSpecial(sal_uInt32 nChar);
+
+ WW8Stream::Pointer_t getSubStream(const ::rtl::OUString & sId) const;
+
+ /**
+ Parse bin table and create CpAndFcs for all points in the
+ document where properties of the given type change.
+
+ @param rTable bin table to parse
+ @param eType_ type of CpAndFcs to create
+ */
+ void parseBinTableCpAndFcs(WW8BinTable & rTable, PropertyType eType_);
+
+public:
+ WW8DocumentImpl(WW8Stream::Pointer_t rpStream);
+ WW8DocumentImpl(const WW8DocumentImpl & rSrc,
+ const CpAndFc & rStart, const CpAndFc & rEnd);
+ virtual ~WW8DocumentImpl();
+
+ virtual WW8DocumentImpl & Assign(const WW8DocumentImpl & rSrc);
+
+ virtual string getType() const;
+
+ virtual WW8Document::Pointer_t getSubDocument(SubDocumentId nId);
+ virtual WW8DocumentIterator::Pointer_t getIterator
+ (const CpAndFc & rCpAndFc);
+ virtual WW8DocumentIterator::Pointer_t begin();
+ virtual WW8DocumentIterator::Pointer_t end();
+
+ virtual WW8Stream::Sequence getText(const CpAndFc & rStart);
+
+ WW8Fib::Pointer_t getFib() const;
+
+ /**
+ Returns the document stream.
+ */
+
+ WW8Stream::Pointer_t getDocStream() const;
+
+ /**
+ Returns the data stream.
+ */
+ WW8Stream::Pointer_t getDataStream() const;
+
+ /**
+ Returns distance in bytes to next CpAndFc.
+
+ @param rCpAndFc CpAndFc to start at
+ */
+ sal_uInt32 getByteLength(const CpAndFc & rCpAndFc) const;
+
+ /**
+ Returns first character position in document.
+ */
+ const CpAndFc & getFirstCp() const;
+
+ /**
+ Returns last character position in document.
+ */
+ const CpAndFc & getLastCp() const;
+
+ /**
+ Returns next character position with change in properties.
+
+ @param rCpAndFc position to start at
+ */
+ CpAndFc getNextCp(const CpAndFc & rCpAndFc) const;
+
+ /**
+ Returns previous character position with change in properties.
+
+ @param rCpAndFc position to start at
+ */
+ CpAndFc getPrevCp(const CpAndFc & rCpAndFc) const;
+
+ /**
+ Returns character position where main text flow ends.
+ */
+ CpAndFc getDocumentEndCp() const;
+
+ /**
+ Returns character position where footnotes end.
+ */
+ CpAndFc getFootnodeEndCp() const;
+
+ /**
+ Returns character position where headers end.
+ */
+ CpAndFc getHeaderEndCp() const;
+
+ /**
+ Returns character position where annatations end.
+ */
+ CpAndFc getAnnotationEndCp() const;
+
+ /**
+ Returns character position where endnotes end.
+ */
+ CpAndFc getEndnoteEndCp() const;
+
+ /**
+ Returns character position where textboxes end.
+ */
+ CpAndFc getTextboxEndCp() const;
+
+ /**
+ Returns character positoion where textboxes in headers end.
+ */
+ CpAndFc getTextboxHeaderEndCp() const;
+
+ /**
+ Insert CpAndFc to set of CpAndFcs.
+
+ @param rCpAndFc CpAndFc to insert
+ */
+ void insertCpAndFc(const CpAndFc & rCpAndFc);
+
+ /**
+ Return FKP for certain CpAndFc.
+
+ @param rCpAndFc CpAndFc for which the FKP is looked for
+ */
+ WW8FKP::Pointer_t getFKP(const CpAndFc & rCpAndFc);
+
+ /**
+ Return FKP containing character properties.
+
+ @param nIndex index of FKP to return
+ @param bComplex true if FKP contains complex FCs
+ */
+ WW8FKP::Pointer_t getFKPCHPX(sal_uInt32 nIndex, bool bComplex);
+
+ /**
+ Return FKP containing paragraph properties.
+
+ @param nIndex index of FKP to return
+ @param bComplex true if FKP contains complex FCs
+ */
+ WW8FKP::Pointer_t getFKPPAPX(sal_uInt32 nIndex, bool bComplex);
+
+ /**
+ Return property set valid at a certain CpAndFc.
+
+ @param rCpAndFc CpAndFc to look at
+ */
+ doctok::Reference<Properties>::Pointer_t
+ getProperties(const CpAndFc & rCpAndFc);
+
+ /**
+ Return subdocument referenced at a certain point in document.
+
+ @param rCpAndFc CpAndFc where subdocument is referenced
+ */
+ doctok::Reference<Stream>::Pointer_t
+ getSubDocument(const CpAndFc & rCpAndFc);
+
+ /**
+ Return section description at a certain CpAndFc.
+
+ @param rCpAndFc CpAndFc to look at
+ */
+ WW8SED * getSED(const CpAndFc & rCpAndFc) const;
+
+ /**
+ Return reference to list table.
+ */
+ doctok::Reference<Table>::Pointer_t getListTable() const;
+
+ /**
+ Return reference to table of list level overrides.
+ */
+ doctok::Reference<Table>::Pointer_t getLFOTable() const;
+
+ /**
+ Return reference to font table.
+ */
+ doctok::Reference<Table>::Pointer_t getFontTable() const;
+
+ /**
+ Return reference to style sheet.
+ */
+ doctok::Reference<Table>::Pointer_t getStyleSheet() const;
+
+ /**
+ Return count of headers/footers.
+ */
+ sal_uInt32 getHeaderCount() const;
+
+ /**
+ Return CpAndFc for a header or footer.
+
+ @param nPos index in the list of headers and footers
+ */
+ CpAndFc getHeaderCpAndFc(sal_uInt32 nPos);
+
+ /**
+ Return subdocument for header/footer.
+
+ @param nPos index in the list of headers and footers
+ */
+ doctok::Reference<Stream>::Pointer_t getHeader(sal_uInt32 nPos);
+
+ /**
+ Return count of footnotes.
+ */
+ sal_uInt32 getFootnoteCount() const;
+
+ /**
+ Return subdocument for footnote.
+
+ @param nPos index of the footnote
+ */
+ doctok::Reference<Stream>::Pointer_t getFootnote(sal_uInt32 nPos);
+
+ /**
+ Return subdocument for footnote at a certain position in document.
+
+ @param rCpAndFc position in document
+ */
+ doctok::Reference<Stream>::Pointer_t getFootnote(const CpAndFc & rCpAndFc);
+
+ /**
+ Return count of endnotes.
+ */
+ sal_uInt32 getEndnoteCount() const;
+
+ /**
+ Return subdocument for an endnote.
+
+ @param nPos index of the endnote
+ */
+ doctok::Reference<Stream>::Pointer_t getEndnote(sal_uInt32 nPos);
+
+ /**
+ Return subdocument for an endnote.
+
+ @param rCpAndFc CpAndFc where endnote is referenced
+ */
+ doctok::Reference<Stream>::Pointer_t getEndnote(const CpAndFc & rCpAndFc);
+
+ /**
+ Return count of annotations.
+ */
+ sal_uInt32 getAnnotationCount() const;
+
+ /**
+ Return subdocument for an annotation.
+
+ @param nPos index of the annotation
+ */
+ doctok::Reference<Stream>::Pointer_t getAnnotation(sal_uInt32 nPos);
+
+ /**
+ Return subdocument for an annotation.
+
+ @param rCpAndFc CpAndFc where annotation is referenced
+ */
+ doctok::Reference<Stream>::Pointer_t getAnnotation
+ (const CpAndFc & rCpAndFc);
+
+ /**
+ Return bookmark.
+
+ @param rCpAndFc CpAndFc where bookmark begins or ends
+ */
+ doctok::Reference<Properties>::Pointer_t
+ getBookmark(const CpAndFc & rCpAndFc) const;
+
+ /**
+ Return shape.
+
+ @param rCpAndFc CpAndFc of the shape
+ */
+ doctok::Reference<Properties>::Pointer_t
+ getShape(const CpAndFc & rCpAndFc) const;
+
+ doctok::Reference<Properties>::Pointer_t
+ getShape(sal_uInt32 nSpid);
+
+ /**
+ Return field.
+
+ @param rCpAndFc CpAndFc of the field
+ */
+ doctok::Reference<Properties>::Pointer_t
+ getField(const CpAndFc & rCpAndFc) const;
+
+ /**
+ Return file character position according to a character
+ position.
+
+ @param cp the character position
+ */
+ Fc cp2fc(const Cp & cp) const;
+
+ /**
+ Return the character position according to file character
+ position.
+
+ @param fc the file character position
+ */
+ Cp fc2cp(const Fc & fc) const;
+
+ /**
+ Return CpAndFc related to character position.
+
+ @param cp the character position
+ */
+ CpAndFc getCpAndFc(const Cp & cp, PropertyType type = PROP_DOC) const;
+
+ /**
+ Return CpAndFc related to file character position.
+
+ @param fc the file character position
+ */
+ CpAndFc getCpAndFc(const Fc & fc, PropertyType type = PROP_DOC) const;
+
+ sal_uInt32 getPicLocation() const;
+ void setPicLocation(sal_uInt32 fcPicLoc);
+
+ /**
+ Create events for the document.
+
+ @param rHandler handler to send the events to
+ */
+ void resolve(Stream & rHandler);
+
+ /**
+ Resolve text.
+
+ The text of the given iterator is split at special
+ characters. Each run of non-special characters is send as one
+ event. Each run of special characters is send as one event.
+
+ @param pIt iterator whose text is to be resolved
+ @param rStream handler for the events
+ */
+ void resolveText(WW8DocumentIterator::Pointer_t pIt, Stream & rStream);
+
+ /**
+ Resolve the picture at mfcPicLoc.
+
+ @param rStream
+ */
+ void resolvePicture(Stream & rStream);
+};
+
+/**
+ Implentation class for an iterator in a document.
+ */
+class WW8DocumentIteratorImpl : public WW8DocumentIterator
+{
+ /// pointer to the document
+ WW8DocumentImpl * mpDocument;
+
+ /// CpAndFc the iterator is pointing to
+ CpAndFc mCpAndFc;
+
+public:
+ WW8DocumentIteratorImpl(WW8DocumentImpl * pDocument,
+ const CpAndFc & rCpAndFc)
+ : mpDocument(pDocument), mCpAndFc(rCpAndFc)
+ {
+ }
+
+ virtual ~WW8DocumentIteratorImpl();
+
+ /**
+ Increase the iterator to the next character position.
+ */
+ WW8DocumentIterator & operator++();
+
+ /**
+ Decrease the iterator to the previous character position.
+ */
+ WW8DocumentIterator & operator--();
+
+ virtual doctok::Reference<Properties>::Pointer_t getProperties() const;
+ //void setAttributes(const IAttributeSet & aAttributeSet);
+
+ virtual doctok::Reference<Stream>::Pointer_t getSubDocument() const;
+
+ /** Return if the text the iterator points to is complex.
+
+ @attention The definition of a complex run of text in Word is
+ counter-intuitive: Complex runs use 8-bit encoding for characters,
+ non-complex ones use 16 bits.
+ */
+ bool isComplex() const;
+ virtual PropertyType getPropertyType() const;
+
+ virtual WW8Stream::Sequence getText();
+ virtual bool equal(const WW8DocumentIterator & rIt) const;
+
+ virtual string toString() const;
+ virtual void dump(ostream & o) const;
+
+ /**
+ Return pointer to the shape at character position the iterator
+ is pointing to.
+ */
+ virtual doctok::Reference<Properties>::Pointer_t getShape() const;
+
+ /**
+ Return pointer to section description at character position the
+ iterator points to.
+ */
+ WW8SED * getSED() const;
+};
+
+/**
+ Return string for property type.
+ */
+string propertyTypeToString(PropertyType nType);
+
+}
+#endif // INCLUDED_WW8_DOCUMENT_IMPL_HXX
diff --git a/writerfilter/source/doctok/WW8FKP.hxx b/writerfilter/source/doctok/WW8FKP.hxx
new file mode 100644
index 000000000000..dc7633f10568
--- /dev/null
+++ b/writerfilter/source/doctok/WW8FKP.hxx
@@ -0,0 +1,105 @@
+#ifndef INCLUDED_WW8_FKP_HXX
+#define INCLUDED_WW8_FKP_HXX
+
+#ifndef INCLUDES_WW8_CP_AND_FC_HXX
+#include <WW8CpAndFc.hxx>
+#endif
+#ifndef INCLUDE_WW8_STRUCT_BASE_HXX
+#include <WW8StructBase.hxx>
+#endif
+
+namespace doctok
+{
+
+/**
+ A formated diskpage (FKP).
+
+ Formatted diskpages are used by Word to store runs of SPRMs (single
+ property modifier). A FKP contains a list of file character
+ positions (FC). For each FC there is an entry containing the run of
+ SPRMs stored for that FC.
+ */
+class WW8FKP : public WW8StructBase
+{
+public:
+ /**
+ Shared pointer to an FKP.
+ */
+ typedef boost::shared_ptr<WW8FKP> Pointer_t;
+
+ /**
+ Create FKP from stream.
+
+ @param rStream stream to create FKP from
+ @param nOffset offset in stream where the FKP starts.
+ */
+ WW8FKP(WW8Stream & rStream, sal_uInt32 nOffset)
+ : WW8StructBase(rStream, nOffset, 512)
+ {
+ }
+
+ /**
+ Return count of entries.
+ */
+ virtual sal_uInt32 getEntryCount() const = 0;
+
+ /**
+ Return an FC.
+
+ @param nIndex index of the FC to return
+ */
+ virtual Fc getFc(sal_uInt32 nIndex) const = 0;
+
+ /**
+ Returns the first FC of the FKP.
+ */
+ virtual Fc getFirstFc() const = 0;
+
+ /**
+ Returns the last FC of the FKP.
+ */
+ virtual Fc getLastFc() const = 0;
+
+ /**
+ Check if an FKP contains an FC.
+
+ @param rFc FC to look for
+
+ @retval true FKP contains FC
+ @retval false else
+ */
+ virtual bool contains(const Fc & rFc) const = 0;
+
+ /**
+ Return properties stored in an FKP for a FC.
+
+ @param rFc FC to look for
+ */
+ virtual doctok::Reference<Properties>::Pointer_t
+ getProperties(const Fc & rFc)
+ const = 0;
+};
+
+/**
+ Cache providing FKPs.
+ */
+class WW8FKPCache
+{
+public:
+ /**
+ Shared pointer to cache.
+ */
+ typedef boost::shared_ptr<WW8FKPCache> Pointer_t;
+
+ virtual ~WW8FKPCache();
+
+ /**
+ Return FKP.
+
+ @param nPageNumber number of page to return
+ */
+ virtual WW8FKP::Pointer_t get(sal_uInt32 nPageNumber, bool bComplex) = 0;
+};
+}
+
+#endif // INCLUDED_WW8_FKP_HXX
diff --git a/writerfilter/source/doctok/WW8FKPImpl.cxx b/writerfilter/source/doctok/WW8FKPImpl.cxx
new file mode 100644
index 000000000000..d4ab991e3fe9
--- /dev/null
+++ b/writerfilter/source/doctok/WW8FKPImpl.cxx
@@ -0,0 +1,213 @@
+#include "WW8FKPImpl.hxx"
+#include "WW8PropertySetImpl.hxx"
+
+namespace doctok
+{
+#if 0
+sal_uInt32 WW8FKPImpl::getIndex(const Fc & rFc) const
+{
+ sal_uInt32 nLeft = 0;
+ sal_uInt32 nRight = getEntryCount();
+
+ while (nRight - nLeft > 1)
+ {
+ sal_uInt32 nMiddle = (nLeft + nRight) / 2;
+ Fc aFcMiddle = getFc(nMiddle);
+
+ if (! (rFc < aFcMiddle))
+ {
+ nLeft = nMiddle;
+ }
+ else
+ {
+ nRight = nMiddle;
+ }
+ }
+
+ return nLeft;
+}
+#else
+sal_uInt32 WW8FKPImpl::getIndex(const Fc & rFc) const
+{
+ sal_uInt32 nResult = getEntryCount();
+
+ while (rFc < getFc(nResult))
+ nResult--;
+
+ return nResult;
+}
+#endif
+
+
+doctok::Reference<Properties>::Pointer_t WW8CHPFKPImpl::getProperties(const Fc & rFc) const
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ sal_uInt32 n = getIndex(rFc);
+
+ sal_uInt16 nOffset = 2 * getU8(getRgb() + n);
+
+ if (nOffset > getRgb() + getEntryCount())
+ {
+ sal_uInt16 nCbChpx = getU8(nOffset);
+
+ if (nCbChpx > 1 && nOffset + nCbChpx + 1 <= 511)
+ {
+ pResult = doctok::Reference<Properties>::Pointer_t
+ (new WW8PropertySetImpl(*this, nOffset + 1, nCbChpx));
+ }
+ }
+#if 0
+ else
+ {
+ clog << "outsider!!!" << endl;
+ }
+#endif
+
+ return pResult;
+}
+
+void WW8CHPFKPImpl::dump(WW8OutputWithDepth & o) const
+{
+ o.addItem("<fkp type='CHP'>");
+
+ sal_uInt32 nCount = getEntryCount();
+ for (sal_uInt32 n = 0; n < nCount; ++n)
+ {
+ char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer),
+ "<fkpentry fc='%lx' offsetInFkp='%x'/>",
+ getFc(n).get(), 2 * getU8(getRgb() + n));
+
+ o.addItem(sBuffer);
+ }
+
+ WW8StructBase::dump(o);
+ o.addItem("</fkp>");
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8PAPFKPImpl::getProperties(const Fc & rFc) const
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ sal_uInt32 n = getIndex(rFc);
+
+ sal_uInt16 nOffset = 2 * getU8(getRgb() + n * 13);
+
+ if (nOffset != 0)
+ {
+ if (nOffset > getRgb() + getEntryCount() * 13)
+ {
+ sal_uInt32 nOffsetIStd = nOffset + 1;
+ sal_uInt16 nCbPapx = getU8(nOffset) * 2;
+
+ if (nCbPapx == 0)
+ {
+ nOffsetIStd = nOffset + 2;
+ nCbPapx = getU8(nOffset + 1) * 2 + 2;
+ }
+
+ sal_uInt32 nOffsetEnd = nOffset + nCbPapx;
+ //sal_uInt32 nOffsetSprms = nOffsetIStd + 2;
+
+ if (nCbPapx > 1 && nOffset + nCbPapx <= 511)
+ {
+ pResult = doctok::Reference<Properties>::Pointer_t
+ (new WW8PropertySetImpl(*this, nOffsetIStd,
+ nOffsetEnd - nOffsetIStd,
+ true));
+ }
+ }
+#if 0
+ else
+ {
+ clog << "outsider!!!" << endl;
+ }
+#endif
+ }
+
+ return pResult;
+}
+
+void WW8PAPFKPImpl::dump(WW8OutputWithDepth & o) const
+{
+ o.addItem("<fkp type='PAP'>");
+
+ sal_uInt32 nCount = getEntryCount();
+ for (sal_uInt32 n = 0; n < nCount; ++n)
+ {
+ char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer),
+ "<fkpentry fc='%lx' offsetInFKP='%x'/>",
+ getFc(n).get(), 2 * getU8(getRgb() + n * 13));
+
+ o.addItem(sBuffer);
+ }
+
+ WW8StructBase::dump(o);
+
+ o.addItem("</fkp>");
+}
+
+bool operator < (const PageNumberAndFKP & rA,
+ const PageNumberAndFKP & rB)
+{
+ return rA.mnPageNumber < rB.mnPageNumber;
+}
+
+WW8FKPCache::~WW8FKPCache()
+{
+}
+
+WW8FKP::Pointer_t WW8FKPCacheImpl::get(sal_uInt32 nPageNumber,
+ bool bComplex)
+{
+ WW8FKP::Pointer_t pResult;
+
+ PageNumbersAndFKPs::iterator aIt;
+ aIt = mPageNumbersAndFKPs.find
+ (PageNumberAndFKP(nPageNumber, WW8FKP::Pointer_t()));
+
+ if (aIt != mPageNumbersAndFKPs.end())
+ pResult = aIt->getFKP();
+ else
+ {
+ if (mPageNumbersAndFKPs.size() > mnCacheSize)
+ {
+ PageNumbersAndFKPs::iterator aItDel =
+ mPageNumbersAndFKPs.find
+ (PageNumberAndFKP(mPageNumbers.front(),
+ WW8FKP::Pointer_t()));
+
+ mPageNumbersAndFKPs.erase(aItDel);
+ mPageNumbers.pop_front();
+ }
+
+ pResult = createFKP(nPageNumber, bComplex);
+
+ PageNumberAndFKP aPageNumberAndFKP(nPageNumber, pResult);
+ mPageNumbersAndFKPs.insert(aPageNumberAndFKP);
+ mPageNumbers.push_back(nPageNumber);
+ }
+
+ return pResult;
+}
+
+WW8FKP::Pointer_t WW8CHPFKPCacheImpl::createFKP(sal_uInt32 nPageNumber,
+ bool bComplex)
+{
+ return WW8FKP::Pointer_t(new WW8CHPFKPImpl
+ (*mpStream, nPageNumber, bComplex));
+}
+
+WW8FKP::Pointer_t WW8PAPFKPCacheImpl::createFKP(sal_uInt32 nPageNumber,
+ bool bComplex)
+{
+ return WW8FKP::Pointer_t(new WW8PAPFKPImpl
+ (*mpStream, nPageNumber, bComplex));
+}
+}
+
diff --git a/writerfilter/source/doctok/WW8FKPImpl.hxx b/writerfilter/source/doctok/WW8FKPImpl.hxx
new file mode 100644
index 000000000000..bd2465956c77
--- /dev/null
+++ b/writerfilter/source/doctok/WW8FKPImpl.hxx
@@ -0,0 +1,188 @@
+#ifndef INCLUDED_WW8_FKP_IMPL_HXX
+#define INCLUDED_WW8_FKP_IMPL_HXX
+
+#include <set>
+#include <deque>
+#ifndef INCLUDED_WW8_FKP_HXX
+#include <WW8FKP.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_OUTPUT_WITH_DEPTH_HXX
+#include <WW8OutputWithDepth.hxx>
+#endif
+
+namespace doctok
+{
+/**
+ Implementation class for formatted disk pages.
+ */
+class WW8FKPImpl : public WW8FKP
+{
+ sal_uInt32 mnPageNumber;
+ bool mbComplex;
+
+public:
+ WW8FKPImpl(WW8Stream & rStream, sal_uInt32 nPageNumber, bool bComplex)
+ : WW8FKP(rStream, nPageNumber * 512), mnPageNumber(nPageNumber),
+ mbComplex(bComplex)
+ {
+ }
+
+ virtual sal_uInt32 getPageNumber() const { return mnPageNumber; }
+
+ virtual sal_uInt32 getEntryCount() const { return getU8(511); }
+ virtual sal_uInt32 getRgb() const { return 4 * (getEntryCount() + 1); }
+ virtual Fc getFc(sal_uInt32 nIndex) const
+ { return Fc(getU32(nIndex * 4), mbComplex); }
+ virtual Fc getFirstFc() const { return getFc(0); }
+ virtual Fc getLastFc() const { return getFc(getEntryCount()); }
+
+ virtual bool contains(const Fc & rFc) const
+ { return getFirstFc() <= rFc && rFc < getLastFc(); }
+
+ virtual sal_uInt32 getIndex(const Fc & rFc) const;
+
+ friend bool operator < (const WW8FKPImpl & rA,
+ const WW8FKPImpl & rB);
+};
+
+/**
+ Implementation class for formatted disk pages containing character
+ properties.
+ */
+class WW8CHPFKPImpl : public WW8FKPImpl
+{
+public:
+ WW8CHPFKPImpl(WW8Stream & rStream, sal_uInt32 nPageNumber,
+ bool bComplex)
+ : WW8FKPImpl(rStream, nPageNumber, bComplex)
+ {
+ }
+
+ virtual doctok::Reference<Properties>::Pointer_t
+ getProperties(const Fc & rFc) const;
+
+ virtual void dump(WW8OutputWithDepth & o) const;
+};
+
+/**
+ Implementation class for formatted disk pages containing paragraph
+ properties.
+ */
+class WW8PAPFKPImpl : public WW8FKPImpl
+{
+public:
+ WW8PAPFKPImpl(WW8Stream & rStream, sal_uInt32 nPageNumber,
+ bool bComplex)
+ : WW8FKPImpl(rStream, nPageNumber, bComplex)
+ {
+ }
+
+ virtual doctok::Reference<Properties>::Pointer_t
+ getProperties(const Fc & rFc) const;
+
+ virtual void dump(WW8OutputWithDepth & o) const;
+};
+
+/**
+ Tuple of page number and formattet disk page.
+ */
+class PageNumberAndFKP
+{
+ /// page number
+ sal_uInt32 mnPageNumber;
+
+ /// pointer to formatted disk page
+ WW8FKP::Pointer_t mpFKP;
+
+public:
+ PageNumberAndFKP(sal_uInt32 nPageNumber, WW8FKP::Pointer_t pFKP)
+ : mnPageNumber(nPageNumber), mpFKP(pFKP)
+ {
+ }
+
+ /**
+ Return page number.
+ */
+ sal_uInt32 getPageNumber() const { return mnPageNumber; }
+
+ /**
+ Return formatted disk page.
+ */
+ const WW8FKP::Pointer_t getFKP() const { return mpFKP; }
+
+ friend bool operator < (const PageNumberAndFKP & rA,
+ const PageNumberAndFKP & rB);
+};
+
+/**
+ Cache for formatted disk pages.
+ */
+class WW8FKPCacheImpl : public WW8FKPCache
+{
+ /// size of the cache
+ sal_uInt32 mnCacheSize;
+
+ /// set of tuples of page number and FKP
+ typedef set<PageNumberAndFKP> PageNumbersAndFKPs;
+
+ ///
+ typedef deque<sal_uInt32> PageNumbers;
+
+ PageNumbers mPageNumbers;
+ PageNumbersAndFKPs mPageNumbersAndFKPs;
+
+protected:
+ WW8Stream::Pointer_t mpStream;
+ virtual WW8FKP::Pointer_t createFKP(sal_uInt32 nPageNumber,
+ bool bComplex) = 0;
+
+public:
+ WW8FKPCacheImpl(WW8Stream::Pointer_t rpStream, sal_uInt32 nCacheSize)
+ : mnCacheSize(nCacheSize), mpStream(rpStream)
+ {
+ }
+
+ virtual ~WW8FKPCacheImpl()
+ {
+ }
+
+ WW8FKP::Pointer_t get(sal_uInt32 nPageNumber, bool bComplex);
+};
+
+class WW8CHPFKPCacheImpl : public WW8FKPCacheImpl
+{
+ virtual WW8FKP::Pointer_t createFKP(sal_uInt32 nPageNumber,
+ bool bComplex);
+
+public:
+ WW8CHPFKPCacheImpl(WW8Stream::Pointer_t rpStream,
+ sal_uInt32 nCacheSize)
+ : WW8FKPCacheImpl(rpStream, nCacheSize)
+ {
+ }
+
+ virtual ~WW8CHPFKPCacheImpl()
+ {
+ }
+};
+
+class WW8PAPFKPCacheImpl : public WW8FKPCacheImpl
+{
+ virtual WW8FKP::Pointer_t createFKP(sal_uInt32 nPageNumber,
+ bool bComplex);
+
+public:
+ WW8PAPFKPCacheImpl(WW8Stream::Pointer_t rpStream,
+ sal_uInt32 nCacheSize)
+ : WW8FKPCacheImpl(rpStream, nCacheSize)
+ {
+ }
+
+ virtual ~WW8PAPFKPCacheImpl()
+ {
+ }
+};
+}
+
+#endif // INCLUDED_WW8_FKP_IMPL_HXX
diff --git a/writerfilter/source/doctok/WW8FontTable.cxx b/writerfilter/source/doctok/WW8FontTable.cxx
new file mode 100644
index 000000000000..98559d81d9ff
--- /dev/null
+++ b/writerfilter/source/doctok/WW8FontTable.cxx
@@ -0,0 +1,90 @@
+#include <resources.hxx>
+
+namespace doctok {
+
+void WW8FontTable::initPayload()
+{
+ sal_uInt32 nCount = getU8(0);
+
+ sal_uInt32 nOffset = 1;
+
+ while (nCount > 0)
+ {
+ entryOffsets.push_back(nOffset);
+
+ sal_uInt32 nFFNSize = getU8(nOffset) + 1;
+
+ if (nFFNSize > 1)
+ nCount--;
+
+ nOffset += nFFNSize;
+ }
+
+ entryOffsets.push_back(nOffset);
+ mnPlcfPayloadOffset = nOffset;
+}
+
+sal_uInt32 WW8FontTable::calcPayloadOffset()
+{
+ return 0;
+}
+
+sal_uInt32 WW8FontTable::getEntryCount()
+{
+ return entryOffsets.size() - 1;
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8FontTable::getEntry(sal_uInt32 nIndex)
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ sal_uInt32 nCount = entryOffsets[nIndex + 1] - entryOffsets[nIndex];
+
+ if (nCount > 1)
+ {
+ WW8Font * pFont = new WW8Font(this,
+ entryOffsets[nIndex], nCount);
+
+ pFont->setIndex(nIndex);
+
+ pResult = doctok::Reference<Properties>::Pointer_t(pFont);
+ }
+
+ return pResult;
+}
+
+sal_uInt32 WW8Font::get_f()
+{
+ return mnIndex;
+}
+
+rtl::OUString WW8Font::get_xszFfn()
+{
+ sal_uInt32 nOffset = 0x28;
+ sal_uInt32 nCount = get_cbFfnM1() - nOffset;
+
+ Sequence aSeq(mSequence, nOffset, nCount);
+
+ rtl_uString * pNew = 0;
+ rtl_uString_newFromStr
+ (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0]));
+
+ return rtl::OUString(pNew);
+}
+
+rtl::OUString WW8Font::get_altName()
+{
+ sal_uInt32 nOffset = 0x28 + get_ixchSzAlt();
+ sal_uInt32 nCount = get_cbFfnM1() - nOffset;
+
+ Sequence aSeq(mSequence, nOffset, nCount);
+
+ rtl_uString * pNew = 0;
+ rtl_uString_newFromStr
+ (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0]));
+
+ return rtl::OUString(pNew);
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8LFOLevel.cxx b/writerfilter/source/doctok/WW8LFOLevel.cxx
new file mode 100644
index 000000000000..2113d53a4c25
--- /dev/null
+++ b/writerfilter/source/doctok/WW8LFOLevel.cxx
@@ -0,0 +1,24 @@
+/**
+ $RCSfile: WW8LFOLevel.cxx,v $
+
+ $Revision: 1.1 $
+
+ */
+#include "resources.hxx"
+
+sal_uInt32 WW8LFOLevel::calcSize()
+{
+ sal_uInt32 nResult = WW8LFOLevel::getSize();
+
+ if (get_fFormatting())
+ {
+ WW8ListLevel aLevel(parent, mnOffsetInParent + nResult)
+ nResult += aLevel.calcSize();
+
+ sal_uInt32 nXstSize = parent->getU16(nOffset);
+
+ nResult += (nXstSize + 1) * 2;
+ }
+
+ return nResult;
+}
diff --git a/writerfilter/source/doctok/WW8LFOTable.cxx b/writerfilter/source/doctok/WW8LFOTable.cxx
new file mode 100644
index 000000000000..5b126f2ff690
--- /dev/null
+++ b/writerfilter/source/doctok/WW8LFOTable.cxx
@@ -0,0 +1,108 @@
+/*
+ $RCSfile: WW8LFOTable.cxx,v $
+
+ $Revision: 1.1 $
+
+*/
+
+#include "resources.hxx"
+
+namespace doctok {
+
+void WW8LFOTable::initPayload()
+{
+ sal_uInt32 nCount = getEntryCount();
+
+ sal_uInt32 nOffset = 4;
+ sal_uInt32 nOffsetLevel = mnPlcfPayloadOffset;
+
+ for (sal_uInt32 n = 0; n < nCount; ++n)
+ {
+ WW8LFO aLFO(this, nOffset);
+
+ entryOffsets.push_back(nOffset);
+ payloadIndices.push_back(payloadOffsets.size());
+ nOffset += WW8LFO::getSize();
+
+ sal_uInt32 nLvlCount = aLFO.get_lfolevel_count();
+
+ for (sal_uInt32 i = 0; i < nLvlCount; ++i)
+ {
+ WW8LFOLevel aLevel(this, nOffsetLevel);
+
+ payloadOffsets.push_back(nOffsetLevel);
+
+ nOffsetLevel += aLevel.calcSize();
+ }
+ }
+
+ entryOffsets.push_back(nOffset);
+ payloadOffsets.push_back(nOffsetLevel);
+}
+
+sal_uInt32 WW8LFOTable::calcPayloadOffset()
+{
+ sal_uInt32 nResult = 4 + getEntryCount() * WW8LFO::getSize();
+
+ while (getU32(nResult) == 0xffffffff)
+ nResult += 4;
+
+ return nResult;
+}
+
+sal_uInt32 WW8LFOTable::getEntryCount()
+{
+ return getU32(0);
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8LFOTable::getEntry(sal_uInt32 nIndex)
+{
+ WW8LFO * pLFO = new WW8LFO(this, entryOffsets[nIndex]);
+
+ pLFO->setIndex(nIndex);
+
+ return doctok::Reference<Properties>::Pointer_t(pLFO);
+}
+
+sal_uInt32 WW8LFO::get_lfolevel_count()
+{
+ return get_clfolvl();
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8LFO::get_lfolevel(sal_uInt32 nIndex)
+{
+ WW8LFOTable * pLFOTable = dynamic_cast<WW8LFOTable *>(mpParent);
+ sal_uInt32 nPayloadIndex = pLFOTable->getPayloadIndex(mnIndex) + nIndex;
+ sal_uInt32 nPayloadOffset = pLFOTable->getPayloadOffset(nPayloadIndex);
+ sal_uInt32 nPayloadSize = pLFOTable->getPayloadSize(nPayloadIndex);
+
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8LFOLevel(mpParent, nPayloadOffset, nPayloadSize));
+}
+
+void WW8LFOLevel::resolveNoAuto(Properties & /*rHandler*/)
+{
+
+}
+
+sal_uInt32 WW8LFOLevel::calcSize()
+{
+ sal_uInt32 nResult = WW8LFOLevel::getSize();
+
+ if (get_fFormatting())
+ {
+ WW8ListLevel aLevel(mpParent, mnOffsetInParent + nResult);
+
+ nResult += aLevel.calcSize();
+
+ sal_uInt32 nXstSize = mpParent->getU16(mnOffsetInParent + nResult);
+
+ nResult += (nXstSize + 1) * 2;
+ }
+
+ return nResult;
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8ListTable.cxx b/writerfilter/source/doctok/WW8ListTable.cxx
new file mode 100644
index 000000000000..5775685b64be
--- /dev/null
+++ b/writerfilter/source/doctok/WW8ListTable.cxx
@@ -0,0 +1,125 @@
+#include <resources.hxx>
+
+namespace doctok {
+
+void WW8ListTable::initPayload()
+{
+ sal_uInt32 nCount = getEntryCount();
+
+ sal_uInt32 nOffset = 2;
+ sal_uInt32 nOffsetLevel = mnPlcfPayloadOffset;
+ for (sal_uInt32 n = 0; n < nCount; ++n)
+ {
+ WW8List aList(this, nOffset);
+
+ entryOffsets.push_back(nOffset);
+ payloadIndices.push_back(payloadOffsets.size());
+ nOffset += WW8List::getSize();
+
+ sal_uInt32 nLvlCount = aList.get_fSimpleList() ? 1 : 9;
+
+ for (sal_uInt32 i = 0; i < nLvlCount; ++i)
+ {
+ WW8ListLevel aLevel(this, nOffsetLevel);
+
+ payloadOffsets.push_back(nOffsetLevel);
+
+ nOffsetLevel += aLevel.calcSize();
+
+ sal_uInt32 nXstSize = getU16(nOffsetLevel);
+
+ nOffsetLevel += 2 + nXstSize * 2;
+ }
+
+ if (nOffsetLevel > getCount())
+ {
+ nOffsetLevel = getCount();
+
+ break;
+ }
+ }
+
+ payloadOffsets.push_back(nOffsetLevel);
+ entryOffsets.push_back(nOffset);
+}
+
+sal_uInt32 WW8ListTable::calcPayloadOffset()
+{
+ return 0;
+}
+
+sal_uInt32 WW8ListTable::getEntryCount()
+{
+ return getU16(0);
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8ListTable::getEntry(sal_uInt32 nIndex)
+{
+ WW8List * pList = new WW8List(this, entryOffsets[nIndex]);
+
+ pList->setIndex(nIndex);
+
+ return doctok::Reference<Properties>::Pointer_t
+ (pList);
+}
+
+sal_uInt32 WW8List::get_listlevel_count()
+{
+ if (get_fSimpleList())
+ return 1;
+
+ return 9;
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8List::get_listlevel(sal_uInt32 nIndex)
+{
+ WW8ListTable * pListTable = dynamic_cast<WW8ListTable *>(mpParent);
+ sal_uInt32 nPayloadIndex = pListTable->getPayloadIndex(mnIndex) + nIndex;
+ sal_uInt32 nPayloadOffset = pListTable->getPayloadOffset(nPayloadIndex);
+ sal_uInt32 nPayloadSize = pListTable->getPayloadSize(nPayloadIndex);
+
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8ListLevel(mpParent, nPayloadOffset, nPayloadSize));
+}
+
+void WW8ListLevel::resolveNoAuto(Properties & rHandler)
+{
+ sal_uInt32 nOffset = getSize();
+
+ {
+ WW8PropertySet::Pointer_t pSet
+ (new WW8PropertySetImpl(*this, nOffset, get_cbGrpprlPapx()));
+
+ WW8PropertiesReference aRef(pSet);
+ aRef.resolve(rHandler);
+ }
+
+ nOffset += get_cbGrpprlPapx();
+
+ {
+ WW8PropertySet::Pointer_t pSet
+ (new WW8PropertySetImpl(*this, nOffset, get_cbGrpprlChpx()));
+
+ WW8PropertiesReference aRef(pSet);
+ aRef.resolve(rHandler);
+ }
+
+ nOffset += get_cbGrpprlChpx();
+
+ WW8StringValue aVal(getString(nOffset));
+
+ rHandler.attribute(0, aVal);
+}
+
+sal_uInt32 WW8ListLevel::calcSize()
+{
+ sal_uInt32 nResult = WW8ListLevel::getSize();
+
+ nResult += get_cbGrpprlPapx();
+ nResult += get_cbGrpprlChpx();
+
+ return nResult;
+}
+}
diff --git a/writerfilter/source/doctok/WW8OutputWithDepth.cxx b/writerfilter/source/doctok/WW8OutputWithDepth.cxx
new file mode 100644
index 000000000000..cdef7b6588d5
--- /dev/null
+++ b/writerfilter/source/doctok/WW8OutputWithDepth.cxx
@@ -0,0 +1,18 @@
+#include <iostream>
+#include "WW8OutputWithDepth.hxx"
+
+namespace doctok
+{
+
+using namespace ::std;
+
+WW8OutputWithDepth::WW8OutputWithDepth()
+: OutputWithDepth<string>("<tablegroup>", "</tablegroup>")
+{
+}
+
+void WW8OutputWithDepth::output(const string & str) const
+{
+ cout << str << endl;
+}
+}
diff --git a/writerfilter/source/doctok/WW8OutputWithDepth.hxx b/writerfilter/source/doctok/WW8OutputWithDepth.hxx
new file mode 100644
index 000000000000..ad9702ca23b4
--- /dev/null
+++ b/writerfilter/source/doctok/WW8OutputWithDepth.hxx
@@ -0,0 +1,25 @@
+#ifndef INCLUDED_WW8_OUTPUT_WITH_DEPTH
+#define INCLUDED_WW8_OUTPUT_WITH_DEPTH
+
+#ifndef INCLUDED_OUTPUT_WITH_DEPTH
+#include <doctok/OutputWithDepth.hxx>
+#endif
+
+#include <string>
+
+using namespace ::std;
+
+namespace doctok
+{
+class WW8OutputWithDepth : public OutputWithDepth<string>
+{
+protected:
+ void output(const string & output) const;
+public:
+ WW8OutputWithDepth();
+ virtual ~WW8OutputWithDepth() { finalize(); }
+};
+
+}
+
+#endif // INCLUDED_WW8_OUTPUT_WITH_DEPTH
diff --git a/writerfilter/source/doctok/WW8Picture.cxx b/writerfilter/source/doctok/WW8Picture.cxx
new file mode 100644
index 000000000000..c62d16e9fe44
--- /dev/null
+++ b/writerfilter/source/doctok/WW8Picture.cxx
@@ -0,0 +1,20 @@
+#include <resources.hxx>
+#include <WW8DocumentImpl.hxx>
+
+namespace doctok
+{
+
+doctok::Reference<Properties>::Pointer_t
+WW8PICF::get_DffRecord()
+{
+ return doctok::Reference<Properties>::Pointer_t
+ (new DffBlock(this, get_cbHeader(), getCount() - get_cbHeader(), 0));
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8FSPA::get_shape()
+{
+ return getDocument()->getShape(get_spid());
+}
+}
+
diff --git a/writerfilter/source/doctok/WW8PieceTable.hxx b/writerfilter/source/doctok/WW8PieceTable.hxx
new file mode 100644
index 000000000000..c8de7cb843df
--- /dev/null
+++ b/writerfilter/source/doctok/WW8PieceTable.hxx
@@ -0,0 +1,128 @@
+#ifndef INCLUDED_WW8_PIECE_TABLE_HXX
+#define INCLUDED_WW8_PIECE_TABLE_HXX
+
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif // _SAL_TYPES_H_
+#include <boost/shared_ptr.hpp>
+#include <iostream>
+
+namespace doctok {
+
+using namespace ::std;
+
+struct Cp;
+struct Fc;
+
+/**
+ The piece table of a Word document.
+
+ The piece table associates character positions (CP) and File
+ character positions (FC). In a FC based view the piece table
+ defines intervals of FCs that contain consecutive text.
+
+ CPs and FCs can be complex, i.e. the associated text is stored in
+ bytes. Otherwise the text encoding is UTF-16.
+ */
+class WW8PieceTable
+{
+public:
+ virtual ~WW8PieceTable() {}
+ /**
+ Shared pointer to piece table
+ */
+ typedef boost::shared_ptr<WW8PieceTable> Pointer_t;
+
+ /**
+ Convert CP to FC.
+
+ @param aCpIn CP to convert
+
+ @return FC associated with CP
+ */
+ virtual Fc cp2fc(const Cp & aCpIn) const = 0;
+
+ /**
+ Convert FC to CP.
+
+ @param aFcIn FC to convert
+
+ @return CP associated with FC
+ */
+ virtual Cp fc2cp(const Fc & aFcIn) const = 0;
+
+ /**
+ Check if CP is complex.
+
+ @param aCp CP to check
+ @retval true CP is complex
+ @retval false else
+ */
+ virtual bool isComplex(const Cp & aCp) const = 0;
+
+ /**
+ Check if FC is complex.
+
+ @param aFc FC to check
+ @retval true FC is complex
+ @retval false else
+ */
+ virtual bool isComplex(const Fc & aFc) const = 0;
+
+ /**
+ Return number of entries.
+ */
+ virtual sal_uInt32 getCount() const = 0;
+
+ /**
+ Return first CP.
+ */
+ virtual Cp getFirstCp() const = 0;
+
+ /**
+ Return first FC.
+ */
+ virtual Fc getFirstFc() const = 0;
+
+ /**
+ Return last CP.
+ */
+ virtual Cp getLastCp() const = 0;
+
+ /**
+ Return last FC.
+ */
+ virtual Fc getLastFc() const = 0;
+
+ /**
+ Return CP at index.
+
+ @param nIndex index of CP to return
+ */
+ virtual Cp getCp(sal_uInt32 nIndex) const = 0;
+
+ /**
+ Return FC at index.
+
+ @param nIndex index of FC to return
+ */
+ virtual Fc getFc(sal_uInt32 nIndex) const = 0;
+
+ /**
+ Dump piece table.
+
+ @param o stream to dump to
+ */
+ virtual void dump(ostream & o) const = 0;
+};
+
+/**
+ Dump piece table.
+
+ @param o stream to dump to
+ @param rPieceTable piece table to dump
+*/
+ostream & operator << (ostream & o, const WW8PieceTable & rPieceTable);
+}
+
+#endif // INCLUDED_WW8_PIECE_TABLE_HXX
diff --git a/writerfilter/source/doctok/WW8PieceTableImpl.cxx b/writerfilter/source/doctok/WW8PieceTableImpl.cxx
new file mode 100644
index 000000000000..1ab593df3ae5
--- /dev/null
+++ b/writerfilter/source/doctok/WW8PieceTableImpl.cxx
@@ -0,0 +1,263 @@
+#include <algorithm>
+#include <iterator>
+
+#ifndef INCLUDED_DOCTOK_EXCEPTIONS
+#include <doctok/exceptions.hxx>
+#endif
+#ifndef INCLUDED_WW8_PIECE_TABLE_IMPL_HXX
+#include <WW8PieceTableImpl.hxx>
+#endif
+#ifndef INCLUDED_WW8_CLX_HXX
+#include <WW8Clx.hxx>
+#endif
+
+namespace doctok
+{
+using namespace ::std;
+
+ostream & operator << (ostream & o, const WW8PieceTable & rPieceTable)
+{
+ rPieceTable.dump(o);
+
+ return o;
+}
+
+WW8PieceTableImpl::WW8PieceTableImpl(WW8Stream & rStream,
+ sal_uInt32 nOffset,
+ sal_uInt32 nCount)
+{
+ WW8Clx aClx(rStream, nOffset, nCount);
+
+ sal_uInt32 nPieceCount = aClx.getPieceCount();
+
+ if (nPieceCount > 0)
+ {
+ for (sal_uInt32 n = 0; n < nPieceCount; n++)
+ {
+ Cp aCp(aClx.getCp(n));
+ Fc aFc(aClx.getFc(n), aClx.isComplexFc(n));
+
+ CpAndFc aCpAndFc(aCp, aFc, PROP_DOC);
+
+ mEntries.push_back(aCpAndFc);
+ }
+
+ CpAndFc aBack = mEntries.back();
+ Cp aCp(aClx.getCp(aClx.getPieceCount()));
+ Fc aFc(aBack.getFc() + (aCp - aBack.getCp()));
+
+ CpAndFc aCpAndFc(aCp, aFc, PROP_DOC);
+
+ mEntries.push_back(aCpAndFc);
+ }
+}
+
+sal_uInt32 WW8PieceTableImpl::getCount() const
+{
+ return mEntries.size();
+}
+
+WW8PieceTableImpl::tEntries::const_iterator
+WW8PieceTableImpl::findCp(const Cp & rCp) const
+{
+ tEntries::const_iterator aResult = mEntries.end();
+ tEntries::const_iterator aEnd = mEntries.end();
+
+ for (tEntries::const_iterator aIt = mEntries.begin(); aIt != aEnd;
+ aIt++)
+ {
+ if (aIt->getCp() <= rCp)
+ {
+ aResult = aIt;
+
+ //break;
+ }
+ }
+
+ return aResult;
+}
+
+WW8PieceTableImpl::tEntries::const_iterator
+WW8PieceTableImpl::findFc(const Fc & rFc) const
+{
+ tEntries::const_iterator aResult = mEntries.end();
+ tEntries::const_iterator aEnd = mEntries.end();
+
+ if (mEntries.size() > 0)
+ {
+ if (rFc < mEntries.begin()->getFc())
+ aResult = mEntries.begin();
+ else
+ {
+ for (tEntries::const_iterator aIt = mEntries.begin();
+ aIt != aEnd; aIt++)
+ {
+ if (aIt->getFc() <= rFc)
+ {
+ tEntries::const_iterator aItNext = aIt;
+ aItNext++;
+
+ if (aItNext != aEnd)
+ {
+ sal_uInt32 nOffset = rFc.get() - aIt->getFc().get();
+ sal_uInt32 nLength = aItNext->getCp() - aIt->getCp();
+
+ if (! aIt->isComplex())
+ nLength *= 2;
+
+ if (nOffset < nLength)
+ {
+ aResult = aIt;
+
+ break;
+ }
+ }
+
+ }
+ }
+ }
+ }
+
+ return aResult;
+}
+
+Cp WW8PieceTableImpl::getFirstCp() const
+{
+ Cp aResult;
+
+ if (getCount() > 0)
+ aResult = getCp(0);
+ else
+ throw ExceptionNotFound("WW8PieceTableImpl::getFirstCp");
+
+ return aResult;
+}
+
+Fc WW8PieceTableImpl::getFirstFc() const
+{
+ Fc aResult;
+
+ if (getCount() > 0)
+ aResult = getFc(0);
+ else
+ throw ExceptionNotFound(" WW8PieceTableImpl::getFirstFc");
+
+ return aResult;
+}
+
+Cp WW8PieceTableImpl::getLastCp() const
+{
+ Cp aResult;
+
+ if (getCount() > 0)
+ aResult = getCp(getCount() - 1);
+ else
+ throw ExceptionNotFound("WW8PieceTableImpl::getLastCp");
+
+ return aResult;
+}
+
+Fc WW8PieceTableImpl::getLastFc() const
+{
+ Fc aResult;
+
+ if (getCount() > 0)
+ aResult = getFc(getCount() - 1);
+ else
+ throw ExceptionNotFound("WW8PieceTableImpl::getLastFc");
+
+ return aResult;
+}
+
+Cp WW8PieceTableImpl::getCp(sal_uInt32 nIndex) const
+{
+ return mEntries[nIndex].getCp();
+}
+
+Fc WW8PieceTableImpl::getFc(sal_uInt32 nIndex) const
+{
+ return mEntries[nIndex].getFc();
+}
+
+Cp WW8PieceTableImpl::fc2cp(const Fc & rFc) const
+{
+ Cp cpResult;
+
+ if (mEntries.size() > 0)
+ {
+ Fc aFc;
+
+ if (rFc < mEntries.begin()->getFc())
+ aFc = mEntries.begin()->getFc();
+ else
+ aFc = rFc;
+
+ tEntries::const_iterator aIt = findFc(aFc);
+
+ if (aIt != mEntries.end())
+ {
+ cpResult = aIt->getCp() + (aFc - aIt->getFc());
+ }
+ else
+ throw ExceptionNotFound("WW8PieceTableImpl::fc2cp: " + aFc.toString());
+ }
+
+ return cpResult;
+}
+
+Fc WW8PieceTableImpl::cp2fc(const Cp & rCp) const
+{
+ Fc aResult;
+
+ Cp2FcHashMap_t::iterator aItCp = mCp2FcCache.find(rCp);
+
+ if (aItCp == mCp2FcCache.end())
+ {
+ tEntries::const_iterator aIt = findCp(rCp);
+
+ if (aIt != mEntries.end())
+ {
+ aResult = aIt->getFc() + (rCp - aIt->getCp());
+ mCp2FcCache[rCp] = aResult;
+ }
+ else
+ throw ExceptionNotFound
+ ("WW8PieceTableImpl::cp2fc: " + rCp.toString());
+ }
+ else
+ aResult = mCp2FcCache[rCp];
+
+ return aResult;
+}
+
+bool WW8PieceTableImpl::isComplex(const Cp & rCp) const
+{
+ bool bResult = false;
+
+ tEntries::const_iterator aIt = findCp(rCp);
+
+ if (aIt != mEntries.end())
+ bResult = aIt->isComplex();
+
+ return bResult;
+}
+
+bool WW8PieceTableImpl::isComplex(const Fc & rFc) const
+{
+ bool bResult = false;
+
+ tEntries::const_iterator aIt = findFc(rFc);
+
+ if (aIt != mEntries.end())
+ bResult = aIt->isComplex();
+
+ return bResult;
+}
+
+void WW8PieceTableImpl::dump(ostream & o) const
+{
+ o << "<piecetable>" << endl;
+ copy(mEntries.begin(), mEntries.end(), ostream_iterator<CpAndFc>(o, "\n"));
+ o << "</piecetable>" << endl;
+}
+}
diff --git a/writerfilter/source/doctok/WW8PieceTableImpl.hxx b/writerfilter/source/doctok/WW8PieceTableImpl.hxx
new file mode 100644
index 000000000000..73166b582491
--- /dev/null
+++ b/writerfilter/source/doctok/WW8PieceTableImpl.hxx
@@ -0,0 +1,47 @@
+#ifndef INCLUDED_WW8_PIECE_TABLE_IMPL_HXX
+#define INCLUDED_WW8_PIECE_TABLE_IMPL_HXX
+
+#include <vector>
+#ifndef INCLUDED_WW8_CP_AND_FC_HXX
+#include <WW8CpAndFc.hxx>
+#endif
+#ifndef INCLUDE_WW8_PIECE_TABLE_HXX
+#include <WW8PieceTable.hxx>
+#endif
+
+namespace doctok
+{
+using namespace ::std;
+
+class WW8PieceTableImpl : public WW8PieceTable
+{
+ typedef std::vector<CpAndFc> tEntries;
+ tEntries mEntries;
+
+ tEntries::const_iterator findCp(const Cp & rCp) const;
+ tEntries::const_iterator findFc(const Fc & rFc) const;
+
+ mutable Cp2FcHashMap_t mCp2FcCache;
+
+public:
+ WW8PieceTableImpl(WW8Stream & rStream, sal_uInt32 nOffset,
+ sal_uInt32 nCount);
+
+ virtual Fc cp2fc(const Cp & aCpIn) const;
+ virtual Cp fc2cp(const Fc & aFcIn) const;
+ virtual bool isComplex(const Cp & aCp) const;
+ virtual bool isComplex(const Fc & aFc) const;
+
+ virtual sal_uInt32 getCount() const;
+ virtual Cp getFirstCp() const;
+ virtual Fc getFirstFc() const;
+ virtual Cp getLastCp() const;
+ virtual Fc getLastFc() const;
+ virtual Cp getCp(sal_uInt32 nIndex) const;
+ virtual Fc getFc(sal_uInt32 nIndex) const;
+
+ virtual void dump(ostream & o) const;
+};
+}
+
+#endif // INCLUDED_WW8_PIECE_TABLE_IMPL_HXX
diff --git a/writerfilter/source/doctok/WW8PropertySetImpl.cxx b/writerfilter/source/doctok/WW8PropertySetImpl.cxx
new file mode 100644
index 000000000000..30ee729b594f
--- /dev/null
+++ b/writerfilter/source/doctok/WW8PropertySetImpl.cxx
@@ -0,0 +1,382 @@
+#include "WW8DocumentImpl.hxx"
+#include "WW8ResourceModelImpl.hxx"
+#include <doctok/resourceids.hxx>
+
+namespace doctok
+{
+bool operator != (const WW8PropertySetIterator & rA,
+ const WW8PropertySetIterator & rB)
+{
+ return ! (rA.equal(rB));
+}
+
+WW8Property::~WW8Property()
+{
+}
+
+WW8PropertySet::~WW8PropertySet()
+{
+}
+
+WW8PropertySetIterator::~WW8PropertySetIterator()
+{
+}
+
+WW8PropertyImpl::WW8PropertyImpl(WW8Stream & rStream,
+ sal_uInt32 nOffset, sal_uInt32 nCount)
+: WW8StructBase(rStream, nOffset, nCount)
+{
+}
+
+WW8PropertyImpl::WW8PropertyImpl(const WW8StructBase & rBase,
+ sal_uInt32 nOffset,
+ sal_uInt32 nCount)
+: WW8StructBase(rBase, nOffset, nCount)
+{
+}
+
+WW8PropertyImpl::WW8PropertyImpl(WW8StructBase * pBase,
+ sal_uInt32 nOffset,
+ sal_uInt32 nCount)
+: WW8StructBase(pBase, nOffset, nCount)
+{
+}
+
+WW8PropertyImpl::~WW8PropertyImpl()
+{
+}
+
+sal_uInt32 WW8PropertyImpl::getParam() const
+{
+ sal_uInt32 nResult = 0;
+
+ switch (get_spra())
+ {
+ case 0:
+ case 1:
+ nResult = getU8(2);
+
+ break;
+
+ case 2:
+ case 4:
+ case 5:
+ nResult = getU16(2);
+
+ break;
+
+ case 3:
+ nResult = getU32(2);
+
+ break;
+
+ case 7:
+ nResult = getU16(2) + (getU8(4) << 16);
+
+ break;
+
+ default:
+ break;
+ }
+
+ return nResult;
+}
+
+WW8Stream::Sequence WW8PropertyImpl::getParams() const
+{
+ return WW8Stream::Sequence(mSequence, 2, getCount() - 2);
+}
+
+sal_uInt32 WW8PropertyImpl::getByteLength() const
+{
+ sal_uInt32 nParamSize = 0;
+
+ switch (get_spra())
+ {
+ case 0:
+ case 1:
+ nParamSize = 1;
+
+ break;
+
+ case 2:
+ case 4:
+ case 5:
+ nParamSize = 2;
+
+ break;
+
+ case 3:
+ nParamSize = 4;
+
+ break;
+
+ case 7:
+ nParamSize = 3;
+
+ break;
+ default:
+ nParamSize = getU8(2) + 1;
+
+ break;
+ }
+
+ return nParamSize + 2;
+}
+
+sal_uInt32 WW8PropertyImpl::getParamOffset() const
+{
+ sal_uInt32 nReturn = 0;
+
+ if (get_spra() == 6)
+ nReturn = 1;
+
+ switch (getId())
+ {
+ case 0xd608:
+ case 0xd609:
+ nReturn = 3;
+
+ break;
+
+ default:
+ break;
+ }
+
+ return nReturn;
+}
+
+void WW8PropertyImpl::dump(OutputWithDepth<string> & o) const
+{
+ o.addItem(toString());
+}
+
+string WW8PropertyImpl::toString() const
+{
+ string aResult;
+
+ aResult += "<sprmcommon";
+
+ char sBuffer[256];
+ snprintf(sBuffer, sizeof(sBuffer), " id=\"%lx\"", getId());
+ aResult += sBuffer;
+ aResult += " name=\"";
+ aResult += (*SprmIdToString::Instance())(getId());
+ aResult += "\"";
+ snprintf(sBuffer, sizeof(sBuffer), " sgc=\"%x\"", get_sgc());
+ aResult += sBuffer;
+ snprintf(sBuffer, sizeof(sBuffer), " spra=\"%x\"", get_spra());
+ aResult += sBuffer;
+ snprintf(sBuffer, sizeof(sBuffer), " size=\"%lx\"", getByteLength());
+ aResult += sBuffer;
+ snprintf(sBuffer, sizeof(sBuffer), " param=\"%lx\"", getParam());
+ aResult += sBuffer;
+ aResult += ">\n";
+
+ aResult += mSequence.toString();
+
+ aResult += "</sprmcommon>";
+
+ return aResult;
+}
+
+WW8PropertySetImpl::WW8PropertySetImpl(WW8Stream & rStream,
+ sal_uInt32 nOffset,
+ sal_uInt32 nCount,
+ bool bPap)
+: WW8StructBase(rStream, nOffset, nCount), mbPap(bPap)
+{
+}
+
+WW8PropertySetImpl::WW8PropertySetImpl(const WW8StructBase & rBase,
+ sal_uInt32 nOffset,
+ sal_uInt32 nCount,
+ bool bPap)
+: WW8StructBase(rBase, nOffset, nCount), mbPap(bPap)
+{
+}
+
+WW8PropertySetImpl::~WW8PropertySetImpl()
+{
+}
+
+bool WW8PropertySetImpl::isPap() const
+{
+ return mbPap;
+}
+
+sal_uInt32 WW8PropertySetImpl::get_istd() const
+{
+ sal_uInt32 nResult = 0;
+
+ if (mbPap)
+ nResult = getU16(0);
+
+ return nResult;
+}
+
+WW8PropertySetIterator::Pointer_t WW8PropertySetImpl::begin()
+{
+ return WW8PropertySetIterator::Pointer_t
+ (new WW8PropertySetIteratorImpl(this, mbPap ? 2 : 0));
+}
+
+WW8PropertySetIterator::Pointer_t WW8PropertySetImpl::end()
+{
+ return WW8PropertySetIterator::Pointer_t
+ (new WW8PropertySetIteratorImpl(this, getCount()));
+}
+
+WW8PropertySetIteratorImpl::~WW8PropertySetIteratorImpl()
+{
+}
+
+WW8Property::Pointer_t
+WW8PropertySetImpl::getAttribute(sal_uInt32 nOffset) const
+{
+ WW8PropertyImpl aTmpAttr(*this, nOffset, 3);
+
+ sal_uInt32 nLength = aTmpAttr.getByteLength();
+
+ if (nOffset + nLength > getCount())
+ nLength = getCount() - nOffset;
+
+ return WW8Property::Pointer_t
+ (new WW8PropertyImpl(*this, nOffset, nLength));
+}
+
+void WW8PropertySetImpl::dump(OutputWithDepth<string> & o) const
+{
+ WW8StructBase::dump(o);
+
+ WW8PropertySetIterator::Pointer_t pIt =
+ const_cast<WW8PropertySetImpl *>(this)->begin();
+ WW8PropertySetIterator::Pointer_t pItEnd =
+ const_cast<WW8PropertySetImpl *>(this)->end();
+
+ while((*pIt) != (*pItEnd))
+ {
+ WW8Property::Pointer_t pAttr = pIt->get();
+
+ pAttr->dump(o);
+ ++(*pIt);
+ }
+}
+
+void WW8PropertySetImpl::dots(ostream & o)
+{
+ WW8PropertySetIterator::Pointer_t pIt = begin();
+ WW8PropertySetIterator::Pointer_t pItEnd = end();
+
+ while((*pIt) != (*pItEnd))
+ {
+ WW8Property::Pointer_t pAttr = pIt->get();
+
+ o << "." << endl;
+
+ ++(*pIt);
+ }
+}
+
+string WW8PropertySetImpl::getType() const
+{
+ return "WW8PropertySetImpl";
+}
+
+void WW8PropertySetImpl::resolveLocal(Sprm & sprm)
+{
+ switch (sprm.getId())
+ {
+ case 0x6a03:
+ {
+ Value::Pointer_t pValue = sprm.getValue();
+ getDocument()->setPicLocation(pValue->getInt());
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void WW8PropertySetImpl::resolve(Properties & rHandler)
+{
+ if (getCount() >= (isPap() ? 5U : 3U))
+ {
+ WW8PropertySetIterator::Pointer_t pIt = begin();
+ WW8PropertySetIterator::Pointer_t pItEnd = end();
+
+ if (isPap())
+ {
+ WW8Value::Pointer_t pValue = createValue(getU16(0));
+ rHandler.attribute(NS_rtf::LN_ISTD, *pValue);
+ }
+
+ while((*pIt) != (*pItEnd))
+ {
+ WW8Sprm aSprm(pIt->get());
+
+ rHandler.sprm(aSprm);
+
+ resolveLocal(aSprm);
+
+ ++(*pIt);
+ }
+ }
+}
+
+WW8PropertySetIterator & WW8PropertySetIteratorImpl::operator++ ()
+{
+ WW8Property::Pointer_t pTmpAttr = mpAttrSet->getAttribute(mnOffset);
+
+ mnOffset += dynamic_cast<WW8PropertyImpl *>(pTmpAttr.get())->
+ getByteLength();
+
+ if (mnOffset > mpAttrSet->getCount() ||
+ mpAttrSet->getCount() - mnOffset < 3)
+ mnOffset = mpAttrSet->getCount();
+
+ return *this;
+}
+
+WW8Property::Pointer_t WW8PropertySetIteratorImpl::get() const
+{
+ return mpAttrSet->getAttribute(mnOffset);
+}
+
+bool WW8PropertySetIteratorImpl::equal
+(const WW8PropertySetIterator & rIt) const
+{
+ const WW8PropertySetIteratorImpl & rMyIt =
+ dynamic_cast<const WW8PropertySetIteratorImpl &>(rIt);
+
+ return mpAttrSet == rMyIt.mpAttrSet && mnOffset == rMyIt.mnOffset;
+}
+
+string WW8PropertySetIteratorImpl::toString() const
+{
+ string sResult = "";
+
+ char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer), "(%ld)", mnOffset);
+ sResult += sBuffer;
+
+ return sResult;
+}
+
+SprmIdToString::Pointer_t SprmIdToString::pInstance;
+
+SprmIdToString::Pointer_t SprmIdToString::Instance()
+{
+ if (pInstance.get() == NULL)
+ pInstance = SprmIdToString::Pointer_t(new SprmIdToString());
+
+ return pInstance;
+}
+
+string SprmIdToString::operator()(sal_uInt32 nId)
+{
+ return mMap[nId];
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8PropertySetImpl.hxx b/writerfilter/source/doctok/WW8PropertySetImpl.hxx
new file mode 100644
index 000000000000..a1877c162a4b
--- /dev/null
+++ b/writerfilter/source/doctok/WW8PropertySetImpl.hxx
@@ -0,0 +1,147 @@
+#ifndef INCLUDED_WW8_PROPERTY_SET_IMPL_HXX
+#define INCLUDED_WW8_PROEPRTY_SET_IMPL_HXX
+
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX
+#include <doctok/WW8ResourceModel.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_DOCUMENT_HXX
+#include <doctok/WW8Document.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_STRUCT_BASE_HXX
+#include <WW8StructBase.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_OUTPUT_WITH_DEPTH
+#include <WW8OutputWithDepth.hxx>
+#endif
+
+#include <map>
+
+namespace doctok
+{
+
+class WW8PropertyImpl : public WW8Property, public WW8StructBase
+{
+ sal_uInt8 get_ispmd() const
+ { return sal::static_int_cast<sal_uInt8>(getId() & 0xff); }
+ bool get_fSpec() const { return (getId() & 0x100) != 0; }
+ sal_uInt8 get_sgc() const
+ { return sal::static_int_cast<sal_uInt8>((getId() >> 10) & 0x7); }
+ sal_uInt8 get_spra() const
+ { return sal::static_int_cast<sal_uInt8>((getId() >> 13) & 0x7); }
+
+public:
+ WW8PropertyImpl(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount);
+ WW8PropertyImpl(const WW8StructBase & rBase, sal_uInt32 nOffset,
+ sal_uInt32 nCount);
+
+ WW8PropertyImpl(WW8StructBase * pBase, sal_uInt32 nOffset,
+ sal_uInt32 nCount);
+
+ virtual ~WW8PropertyImpl();
+
+ sal_uInt32 getId() const { return getU16(0); }
+ sal_uInt32 getParam() const;
+ WW8Stream::Sequence getParams() const;
+
+ sal_uInt32 getByteLength() const;
+ sal_uInt32 getParamOffset() const;
+
+ virtual void dump(OutputWithDepth<string> & o) const;
+ string toString() const;
+};
+
+class WW8PropertySetImpl : public WW8PropertySet, public WW8StructBase,
+ public ::doctok::Reference<Properties>
+{
+ bool mbPap;
+
+public:
+ typedef boost::shared_ptr<WW8PropertySet> Pointer_t;
+
+ WW8PropertySetImpl(WW8Stream & rStream, sal_uInt32 nOffset,
+ sal_uInt32 nCount, bool bPap = false);
+
+ WW8PropertySetImpl(const WW8StructBase & rBase, sal_uInt32 nOffset,
+ sal_uInt32 nCount, bool bPap = false);
+
+ virtual ~WW8PropertySetImpl();
+
+ virtual WW8PropertySetIterator::Pointer_t begin();
+ virtual WW8PropertySetIterator::Pointer_t end();
+
+ virtual void dump(OutputWithDepth<string> & o) const;
+ virtual void dots(ostream & o);
+
+ virtual string getType() const;
+
+ virtual WW8Property::Pointer_t getAttribute(sal_uInt32 nOffset) const;
+
+ virtual bool isPap() const;
+ virtual sal_uInt32 get_istd() const;
+
+ virtual void insert(WW8PropertySet::Pointer_t /*pSet*/) {}
+
+ virtual void resolve(Properties & rHandler);
+
+ /**
+ Get and distribute information from sprm that is used
+ internally by the document.
+
+ @param rSprm sprm to process
+ */
+ virtual void resolveLocal(Sprm & rSprm);
+};
+
+class WW8PropertySetIteratorImpl : public WW8PropertySetIterator
+{
+ WW8PropertySetImpl * mpAttrSet;
+ sal_uInt32 mnOffset;
+
+public:
+ WW8PropertySetIteratorImpl(WW8PropertySetImpl * pAttrSet,
+ sal_uInt32 nOffset)
+ : mpAttrSet(pAttrSet), mnOffset(nOffset)
+ {
+ }
+
+ virtual ~WW8PropertySetIteratorImpl();
+
+ virtual WW8PropertySetIterator & operator++();
+
+ virtual WW8Property::Pointer_t get() const;
+
+ virtual bool equal(const WW8PropertySetIterator & rIt) const;
+
+ virtual string toString() const;
+};
+
+
+class SprmIdToString
+{
+ typedef boost::shared_ptr<SprmIdToString> Pointer_t;
+
+ static Pointer_t pInstance;
+
+ map<sal_uInt32, string> mMap;
+
+protected:
+ /**
+ Generated automatically.
+ */
+ SprmIdToString();
+
+public:
+ static Pointer_t Instance();
+ string operator()(sal_uInt32 nId);
+};
+
+::doctok::Reference<Properties>::Pointer_t createSprmProps
+(WW8PropertyImpl & rProp);
+::doctok::Reference<BinaryObj>::Pointer_t createSprmBinary
+(WW8PropertyImpl & rProp);
+}
+
+#endif // INCLUDED_WW8_PROPERTY_SET_IMPL_HXX
diff --git a/writerfilter/source/doctok/WW8ResourceModelImpl.cxx b/writerfilter/source/doctok/WW8ResourceModelImpl.cxx
new file mode 100644
index 000000000000..ee945b39d30f
--- /dev/null
+++ b/writerfilter/source/doctok/WW8ResourceModelImpl.cxx
@@ -0,0 +1,761 @@
+#include <WW8ResourceModelImpl.hxx>
+#include <WW8Analyzer.hxx>
+#include <resources.hxx>
+#include <util.hxx>
+#include <WW8OutputWithDepth.hxx>
+#include <doctok/TableManager.hxx>
+#include <rtl/string.hxx>
+
+namespace doctok
+{
+using namespace ::std;
+
+WW8OutputWithDepth output;
+string gInfo = "";
+
+typedef WW8PropertySet::Pointer_t TablePropsPointer_t;
+
+string xmlify(string str)
+{
+ string result = "";
+ char sBuffer[16];
+
+ for (string::iterator aIt = str.begin(); aIt != str.end(); ++aIt)
+ {
+ char c = *aIt;
+
+ if (isprint(c))
+ result += c;
+ else
+ {
+ snprintf(sBuffer, sizeof(sBuffer), "\\%03d", c);
+ result += sBuffer;
+ }
+ }
+
+ return result;
+}
+
+// ------- WW8TableDataHandler ---------
+
+class WW8TableDataHandler : public TableDataHandler<string,
+ TablePropsPointer_t>
+{
+public:
+ typedef boost::shared_ptr<WW8TableDataHandler> Pointer_t;
+ virtual void startTable(unsigned int nRows, unsigned int nDepth,
+ TablePropsPointer_t pProps);
+ virtual void endTable();
+ virtual void startRow(unsigned int nCols,
+ TablePropsPointer_t pProps);
+ virtual void endRow();
+ virtual void startCell(const string & start, TablePropsPointer_t pProps);
+ virtual void endCell(const string & end);
+};
+
+void WW8TableDataHandler::startTable(unsigned int nRows, unsigned int nDepth,
+ TablePropsPointer_t /*pProps*/)
+{
+ char sBuffer[256];
+
+ string tmpStr = "<tabledata.table rows=\"";
+ snprintf(sBuffer, sizeof(sBuffer), "%d", nRows);
+ tmpStr += sBuffer;
+ tmpStr += "\" depth=\"";
+ snprintf(sBuffer, sizeof(sBuffer), "%d", nDepth);
+ tmpStr += sBuffer;
+ tmpStr += "\">";
+
+ output.addItem(tmpStr);
+}
+
+void WW8TableDataHandler::endTable()
+{
+ output.addItem("</tabledata.table>");
+}
+
+void WW8TableDataHandler::startRow
+(unsigned int nCols, TablePropsPointer_t /*pProps*/)
+{
+ char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer), "%d", nCols);
+ string tmpStr = "<tabledata.row cells=\"";
+ tmpStr += sBuffer;
+ tmpStr += "\">";
+ output.addItem(tmpStr);
+}
+
+void WW8TableDataHandler::endRow()
+{
+ output.addItem("</tabledata.row>");
+}
+
+void WW8TableDataHandler::startCell(const string & start,
+ TablePropsPointer_t /*pProps*/)
+{
+ output.addItem("<tabledata.cell>");
+ output.addItem(start);
+ output.addItem(", ");
+}
+
+void WW8TableDataHandler::endCell(const string & end)
+{
+ output.addItem(end);
+ output.addItem("</tabledata.cell>");
+}
+
+// ----- WW8TableDataManager -------------------------------
+
+class WW8TableManager :
+ public TableManager<string, TablePropsPointer_t>
+{
+ typedef TableDataHandler<string, TablePropsPointer_t>
+ TableDataHandlerPointer_t;
+
+public:
+ WW8TableManager();
+ virtual ~WW8TableManager() {}
+ virtual void endParagraphGroup();
+ virtual void sprm(Sprm & rSprm);
+};
+
+WW8TableManager::WW8TableManager()
+{
+ TableDataHandler<string, TablePropsPointer_t>::Pointer_t pHandler(new WW8TableDataHandler());
+ setHandler(pHandler);
+}
+
+void WW8TableManager::sprm(Sprm & rSprm)
+{
+ TableManager<string, TablePropsPointer_t>::sprm(rSprm);
+ output.setDepth(getTableDepthNew());
+}
+
+void WW8TableManager::endParagraphGroup()
+{
+ string tmpStr = "<tabledepth depth=\"";
+ char sBuffer[256];
+ snprintf(sBuffer, sizeof(sBuffer), "%ld", getTableDepthNew());
+ tmpStr += sBuffer;
+ tmpStr += "\"/>";
+ output.addItem(tmpStr);
+ TableManager<string, TablePropsPointer_t>::endParagraphGroup();
+}
+
+WW8TableManager gTableManager;
+
+//-------- WW8TableReference -----------------------------------
+
+void WW8TableReference::resolve(Table & /*rHandler*/)
+{
+ output.addItem("<table/>");
+}
+
+string WW8TableReference::getType() const
+{
+ return "WW8TableReference";
+}
+
+void WW8PropertiesReference::resolve(Properties & rHandler)
+{
+ if (mpPropSet != NULL)
+ {
+ //mpPropSet->dump(clog);
+
+ if (mpPropSet->isPap())
+ {
+ WW8IntValue aValue(mpPropSet->get_istd());
+
+ rHandler.attribute(NS_rtf::LN_ISTD, aValue);
+ }
+
+ WW8PropertySetIterator::Pointer_t pIt = mpPropSet->begin();
+ WW8PropertySetIterator::Pointer_t pItEnd = mpPropSet->end();
+
+ try
+ {
+ while (! pIt->equal(*pItEnd))
+ {
+ WW8Sprm aSprm(pIt->get());
+ rHandler.sprm(aSprm);
+
+ ++(*pIt);
+ }
+ }
+ catch (ExceptionOutOfBounds e)
+ {
+ }
+ }
+}
+
+string WW8PropertiesReference::getType() const
+{
+ return "WW8PropertiesReference";
+}
+
+WW8BinaryObjReference::WW8BinaryObjReference
+(WW8StructBase & rParent, sal_uInt32 nOffset, sal_uInt32 nCount)
+: WW8StructBase(rParent, nOffset, nCount)
+{
+}
+
+WW8BinaryObjReference::WW8BinaryObjReference
+(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 nCount)
+: WW8StructBase(pParent, nOffset, nCount)
+{
+}
+
+doctok::Reference<BinaryObj>::Pointer_t
+WW8BinaryObjReference::getBinary()
+{
+ return doctok::Reference<BinaryObj>::Pointer_t
+ (new WW8BinaryObjReference(*this));
+}
+
+void WW8BinaryObjReference::resolve(BinaryObj & rHandler)
+{
+ doctok::Reference<Properties>::Pointer_t pRef =
+ doctok::Reference<Properties>::Pointer_t();
+
+ if (getCount() > 0)
+ rHandler.data(get(0), getCount(), pRef);
+}
+
+string WW8BinaryObjReference::getType() const
+{
+ return "WW8BinaryObjReference";
+}
+
+void WW8BinaryObjHandler::data
+(const sal_uInt8 * /*buf*/, size_t /*length*/,
+ doctok::Reference<Properties>::Pointer_t /*pRef*/)
+{
+#if 0
+ SubSequence<sal_uInt8> aSeq(buf, length);
+
+ aSeq.dump(output);
+#endif
+}
+
+sal_uInt32 WW8Sprm::getId() const
+{
+ sal_uInt32 nResult = 0;
+
+ if (mpProperty.get() != NULL)
+ nResult = mpProperty->getId();
+ else if (mpBinary.get() != NULL)
+ nResult = NS_rtf::LN_blob;
+
+ return nResult;
+}
+
+string WW8Sprm::toString() const
+{
+ string sResult = "";
+
+ if (mpProperty.get() != NULL)
+ sResult = mpProperty->toString();
+
+ return sResult;
+}
+
+Value::Pointer_t WW8Sprm::getValue()
+{
+ Value::Pointer_t pResult;
+
+ if (mpProperty.get() != NULL)
+ pResult = Value::Pointer_t(createValue(mpProperty->getParam()));
+
+ return pResult;
+}
+
+doctok::Reference<BinaryObj>::Pointer_t WW8Sprm::getBinary()
+{
+ doctok::Reference<BinaryObj>::Pointer_t pResult;
+
+ if (mpBinary.get() != NULL)
+ pResult = doctok::Reference<BinaryObj>::Pointer_t(mpBinary->clone());
+ else if (mpProperty.get() != NULL)
+ pResult = createSprmBinary
+ (dynamic_cast<WW8PropertyImpl &>(*(mpProperty.get())));
+
+ return pResult;
+}
+
+doctok::Reference<Stream>::Pointer_t WW8Sprm::getStream()
+{
+ return doctok::Reference<Stream>::Pointer_t();
+}
+
+doctok::Reference<Properties>::Pointer_t WW8Sprm::getProps()
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ if (mpProperty.get() != NULL)
+ {
+ pResult = createSprmProps
+ (dynamic_cast<WW8PropertyImpl &>(*(mpProperty.get())));
+ }
+
+ return pResult;
+}
+
+string WW8Sprm::getName() const
+{
+ return (*SprmIdToString::Instance())(getId());
+}
+
+int WW8Value::getInt() const
+{
+ return 0;
+}
+
+uno::Any WW8Value::getAny() const
+{
+ return uno::Any();
+}
+
+::rtl::OUString WW8Value::getString() const
+{
+ return ::rtl::OUString();
+}
+
+string WW8Value::toString() const
+{
+ return string();
+}
+
+doctok::Reference<Properties>::Pointer_t WW8Value::getProperties()
+{
+ return doctok::Reference<Properties>::Pointer_t();
+}
+
+int WW8IntValue::getInt() const
+{
+ return mValue;
+}
+
+::rtl::OUString WW8IntValue::getString() const
+{
+ return ::rtl::OUString::valueOf(static_cast<sal_Int32>(mValue));
+}
+
+uno::Any WW8IntValue::getAny() const
+{
+ uno::Any aResult;
+
+ aResult <<= static_cast<sal_uInt32>(mValue);
+
+ return aResult;
+}
+
+string WW8IntValue::toString() const
+{
+ char sBuffer[255];
+
+ snprintf(sBuffer, sizeof(sBuffer), "%x", mValue);
+
+ return string(sBuffer);
+}
+
+WW8Value::Pointer_t createValue(int value)
+{
+ return WW8Value::Pointer_t(new WW8IntValue(value));
+}
+
+WW8Value::Pointer_t createValue(WW8Value::Pointer_t value)
+{
+ return value;
+}
+
+int WW8StringValue::getInt() const
+{
+ return 0;
+}
+
+::rtl::OUString WW8StringValue::getString() const
+{
+ return mString;
+}
+
+uno::Any WW8StringValue::getAny() const
+{
+ uno::Any aResult;
+
+ aResult <<= mString;
+
+ return aResult;
+}
+
+string WW8StringValue::toString() const
+{
+ string result;
+
+ sal_uInt32 nCount = mString.getLength();
+ for (sal_uInt32 n = 0; n < nCount; ++n)
+ {
+ if (mString[n] <= 0xff && isprint(mString[n]))
+ {
+ sal_Unicode nC = mString[n];
+
+ if (nC < 256)
+ result += sal::static_int_cast<char>(nC);
+ else
+ result += ".";
+ }
+ else
+ {
+ char sBuffer[64];
+
+ snprintf(sBuffer, sizeof(sBuffer), "\\u%04x", mString[n]);
+ result += sBuffer;
+ }
+ }
+
+ return result;
+}
+
+WW8Value::Pointer_t createValue(const rtl::OUString & rStr)
+{
+ return WW8Value::Pointer_t(new WW8StringValue(rStr));
+}
+
+doctok::Reference<Properties>::Pointer_t WW8PropertiesValue::getProperties()
+{
+ return mRef;
+}
+
+string WW8PropertiesValue::toString() const
+{
+ return "properties";
+}
+
+WW8Value::Pointer_t createValue(doctok::Reference<Properties>::Pointer_t rRef)
+{
+ return WW8Value::Pointer_t(new WW8PropertiesValue(rRef));
+}
+
+WW8StreamHandler::WW8StreamHandler()
+{
+ output.addItem("<stream>");
+ gTableManager.startLevel();
+}
+
+WW8StreamHandler::~WW8StreamHandler()
+{
+ gTableManager.endLevel();
+
+ output.addItem("</stream>");
+ output.closeGroup();
+}
+
+void WW8StreamHandler::startSectionGroup()
+{
+ output.addItem("<section-group>");
+}
+
+void WW8StreamHandler::endSectionGroup()
+{
+ output.addItem("</section-group>");
+}
+
+void WW8StreamHandler::startParagraphGroup()
+{
+ output.openGroup();
+ output.addItem("<paragraph-group>");
+
+ gTableManager.startParagraphGroup();
+ gTableManager.handle(gInfo);
+}
+
+void WW8StreamHandler::endParagraphGroup()
+{
+ gTableManager.endParagraphGroup();
+
+ output.addItem("</paragraph-group>");
+ output.closeGroup();
+
+}
+
+void WW8StreamHandler::startCharacterGroup()
+{
+ output.addItem("<character-group>");
+}
+
+void WW8StreamHandler::endCharacterGroup()
+{
+ output.addItem("</character-group>");
+}
+
+void WW8StreamHandler::text(const sal_uInt8 * data, size_t len)
+{
+ string tmpStr = "<text>";
+
+ for (unsigned int n = 0; n < len; ++n)
+ {
+ switch (static_cast<unsigned char>(data[n]))
+ {
+ case '<':
+ tmpStr += "&lt;";
+
+ break;
+ case '>':
+ tmpStr += "&gt;";
+
+ break;
+
+ case '&':
+ tmpStr += "&amp;";
+
+ break;
+ default:
+ if (isprint(data[n]))
+ tmpStr += static_cast<char>(data[n]);
+ else
+ {
+ char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer), "\\0x%02x", data[n]);
+
+ tmpStr += sBuffer;
+ }
+ }
+ }
+
+ tmpStr += "</text>";
+
+ output.addItem(tmpStr);
+
+ gTableManager.text(data, len);
+}
+
+void WW8StreamHandler::utext(const sal_uInt8 * data, size_t len)
+{
+ string tmpStr = "<utext>";
+
+ for (unsigned int n = 0; n < len; ++n)
+ {
+ sal_Unicode nChar = data[n * 2] + (data[n * 2 + 1] << 8);
+ if (nChar < 0xff && isprint(nChar))
+ {
+ switch (nChar)
+ {
+ case '&':
+ tmpStr += "&amp;";
+ break;
+ case '<':
+ tmpStr += "&lt;";
+ break;
+ case '>':
+ tmpStr += "&gt;";
+ break;
+ default:
+ tmpStr += static_cast<char>(nChar);
+ }
+ }
+ else
+ {
+ char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer), "\\0x%04x", nChar);
+
+ tmpStr += sBuffer;
+ }
+ }
+
+ tmpStr += "</utext>";
+
+ output.addItem(tmpStr);
+
+ gTableManager.utext(data, len);
+}
+
+void WW8StreamHandler::props(doctok::Reference<Properties>::Pointer_t ref)
+{
+ WW8PropertiesHandler aHandler;
+
+ output.addItem("<properties type=\"" + ref->getType() + "\">");
+ ref->resolve(aHandler);
+
+ //gTableManager.props(ref);
+
+ output.addItem("</properties>");
+}
+
+void WW8StreamHandler::table(Id name, doctok::Reference<Table>::Pointer_t ref)
+{
+ WW8TableHandler aHandler;
+
+ output.addItem("<table id=\"" + (*QNameToString::Instance())(name)
+ + "\">");
+
+ try
+ {
+ ref->resolve(aHandler);
+ }
+ catch (doctok::Exception e)
+ {
+ output.addItem("<exception>" + e.getText() + "</exception>");
+ }
+
+ output.addItem("</table>");
+}
+
+void WW8StreamHandler::substream(Id name,
+ doctok::Reference<Stream>::Pointer_t ref)
+{
+ output.addItem("<substream name=\"" + (*QNameToString::Instance())(name)
+ + "\">");
+
+ gTableManager.startLevel();
+
+ ref->resolve(*this);
+
+ gTableManager.endLevel();
+
+ output.addItem("</substream>");
+}
+
+void WW8StreamHandler::info(const string & info_)
+{
+ gInfo = info_;
+ output.addItem("<info>" + info_ + "</info>");
+}
+
+void WW8PropertiesHandler::attribute(Id name, Value & val)
+{
+ doctok::Reference<Properties>::Pointer_t pProps = val.getProperties();
+
+ if (pProps.get() != NULL)
+ {
+ output.addItem("<properties name=\"" +
+ (*QNameToString::Instance())(name)
+ + "\" type=\"" + pProps->getType() + "\">");
+
+ try
+ {
+ pProps->resolve(*this);
+ }
+ catch (ExceptionOutOfBounds e)
+ {
+ }
+
+ output.addItem("</properties>");
+ }
+ else
+ {
+ boost::shared_ptr<rtl::OString> pStr(new ::rtl::OString());
+ ::rtl::OUString aStr = val.getString();
+ aStr.convertToString(pStr.get(), RTL_TEXTENCODING_ASCII_US,
+ OUSTRING_TO_OSTRING_CVTFLAGS);
+ string sXMLValue = xmlify(pStr->getStr());
+
+ output.addItem("<attribute name=\"" +
+ (*QNameToString::Instance())(name) +
+ "\" value=\"" +
+ sXMLValue +
+ + "\"/>");
+ }
+}
+
+void WW8PropertiesHandler::sprm(Sprm & sprm_)
+{
+ string tmpStr = "<sprm id=\"";
+ char buffer[256];
+ snprintf(buffer, sizeof(buffer), "0x%lx", sprm_.getId());
+ tmpStr += buffer;
+ tmpStr += "\" name=\"";
+ tmpStr += sprm_.getName();
+ tmpStr += "\">";
+ output.addItem(tmpStr);
+ output.addItem(sprm_.toString());
+
+ doctok::Reference<Properties>::Pointer_t pProps = sprm_.getProps();
+
+ if (pProps.get() != NULL)
+ {
+ output.addItem("<properties type=\"" + pProps->getType() + "\">");
+ pProps->resolve(*this);
+ output.addItem("</properties>");
+ }
+
+ doctok::Reference<BinaryObj>::Pointer_t pBinObj = sprm_.getBinary();
+
+ if (pBinObj.get() != NULL)
+ {
+ output.addItem("<binary>");
+ WW8BinaryObjHandler aHandler;
+ pBinObj->resolve(aHandler);
+ output.addItem("</binary>");
+ }
+
+ gTableManager.sprm(sprm_);
+
+ output.addItem("</sprm>");
+}
+
+void WW8TableHandler::entry(int /*pos*/, doctok::Reference<Properties>::Pointer_t ref)
+{
+ output.addItem("<tableentry>");
+
+ WW8PropertiesHandler aHandler;
+
+ try
+ {
+ ref->resolve(aHandler);
+ }
+ catch (doctok::Exception e)
+ {
+ output.addItem("<exception>" + e.getText() + "</exception>");
+ output.addItem("</tableentry>");
+
+ throw e;
+ }
+
+ output.addItem("</tableentry>");
+}
+
+Stream::Pointer_t createStreamHandler()
+{
+ return Stream::Pointer_t(new WW8StreamHandler());
+}
+
+Stream::Pointer_t createAnalyzer()
+{
+ return Stream::Pointer_t(new WW8Analyzer());
+}
+
+QNameToString::Pointer_t QNameToString::pInstance;
+
+QNameToString::Pointer_t QNameToString::Instance()
+{
+ if (pInstance.get() == NULL)
+ pInstance = QNameToString::Pointer_t(new QNameToString());
+
+ return pInstance;
+}
+
+string QNameToString::operator()(writerfilter::QName_t qName)
+{
+ return mMap[qName];
+}
+
+void dump(OutputWithDepth<string> & /*o*/, const char * /*name*/,
+ doctok::Reference<Properties>::Pointer_t /*props*/)
+{
+}
+
+void dump(OutputWithDepth<string> & o, const char * name, sal_uInt32 n)
+{
+ char sBuffer[256];
+ snprintf(sBuffer, sizeof(sBuffer), "%ld", n);
+ string tmpStr = name;
+ tmpStr += "=";
+ tmpStr += sBuffer;
+
+ o.addItem(tmpStr);
+}
+
+}
+
diff --git a/writerfilter/source/doctok/WW8ResourceModelImpl.hxx b/writerfilter/source/doctok/WW8ResourceModelImpl.hxx
new file mode 100644
index 000000000000..794a7fd594b3
--- /dev/null
+++ b/writerfilter/source/doctok/WW8ResourceModelImpl.hxx
@@ -0,0 +1,319 @@
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX
+#define INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX
+
+#ifndef INCLUDED_WW8_DOCUMENT_HXX
+#include <doctok/WW8Document.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX
+#include <doctok/WW8ResourceModel.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_STRUCT_BASE_HXX
+#include <WW8StructBase.hxx>
+#endif
+
+#ifndef INCLUDED_OUTPUT_WITH_DEPTH_HXX
+#include <doctok/OutputWithDepth.hxx>
+#endif
+
+#include <odiapi/qname/QName.hxx>
+#include <map>
+
+namespace doctok
+{
+using namespace ::std;
+
+class WW8PropertiesReference : public doctok::Reference<Properties>
+{
+ WW8PropertySet::Pointer_t mpPropSet;
+
+public:
+
+ WW8PropertiesReference(WW8PropertySet::Pointer_t pPropSet)
+ : mpPropSet(pPropSet)
+ {
+ }
+
+ ~WW8PropertiesReference()
+ {
+ }
+
+ virtual void resolve(Properties & rHandler);
+
+ virtual string getType() const;
+};
+
+class WW8TableReference : public doctok::Reference<Table>
+{
+public:
+ WW8TableReference()
+ {
+ }
+
+ ~WW8TableReference()
+ {
+ }
+
+ virtual void resolve(Table & rHandler);
+
+ virtual string getType() const;
+};
+
+class WW8BinaryObjReference : public doctok::Reference<BinaryObj>,
+ public WW8StructBase
+{
+public:
+ typedef boost::shared_ptr<WW8BinaryObjReference> Pointer_t;
+ WW8BinaryObjReference(WW8StructBase & rParent, sal_uInt32 nOffset,
+ sal_uInt32 nCount);
+ WW8BinaryObjReference(WW8StructBase * rParent, sal_uInt32 nOffset,
+ sal_uInt32 nCount);
+
+ WW8BinaryObjReference()
+ : WW8StructBase(WW8StructBase::Sequence())
+ {
+ }
+
+ ~WW8BinaryObjReference()
+ {
+ }
+
+ virtual doctok::Reference<BinaryObj>::Pointer_t getBinary();
+
+ virtual void resolve(BinaryObj & rHandler);
+
+ virtual string getType() const;
+
+ virtual WW8BinaryObjReference * clone() { return new WW8BinaryObjReference(*this); }
+};
+
+class WW8Sprm : public Sprm
+{
+ WW8Property::Pointer_t mpProperty;
+ WW8BinaryObjReference::Pointer_t mpBinary;
+
+public:
+ WW8Sprm(WW8Property::Pointer_t pProperty)
+ : mpProperty(pProperty)
+ {
+ }
+
+ WW8Sprm(WW8BinaryObjReference::Pointer_t pBinary)
+ : mpBinary(pBinary)
+ {
+ }
+
+ WW8Sprm()
+ {
+ }
+
+ WW8Sprm(const WW8Sprm & rSprm)
+ : Sprm(rSprm), mpProperty(rSprm.mpProperty), mpBinary(rSprm.mpBinary)
+ {
+ }
+
+ virtual ~WW8Sprm()
+ {
+ }
+
+ virtual Value::Pointer_t getValue();
+ virtual doctok::Reference<BinaryObj>::Pointer_t getBinary();
+ virtual doctok::Reference<Stream>::Pointer_t getStream();
+ virtual doctok::Reference<Properties>::Pointer_t getProps();
+
+ virtual sal_uInt32 getId() const;
+ virtual string toString() const;
+ virtual string getName() const;
+
+ virtual WW8Sprm * clone() const { return new WW8Sprm(*this); }
+};
+
+class WW8Value : public Value
+{
+public:
+ WW8Value() {}
+ virtual ~WW8Value() {}
+
+ virtual string toString() const;
+ virtual int getInt() const;
+ virtual ::rtl::OUString getString() const;
+ virtual uno::Any getAny() const;
+ virtual doctok::Reference<Properties>::Pointer_t getProperties();
+ virtual WW8Value * clone() const = 0;
+};
+
+class WW8IntValue : public WW8Value
+{
+ int mValue;
+public:
+ WW8IntValue(int value) : mValue(value) {}
+ virtual ~WW8IntValue() {}
+
+ virtual int getInt() const;
+ virtual ::rtl::OUString getString() const;
+ virtual uno::Any getAny() const;
+
+ virtual string toString() const;
+
+ virtual WW8Value * clone() const { return new WW8IntValue(*this); }
+};
+
+/**
+ Creates value from an integer.
+
+ @param value integer to create value from.
+*/
+WW8Value::Pointer_t createValue(int value);
+
+ostream & operator << (ostream & o, const WW8Value & rValue);
+
+class WW8StringValue : public WW8Value
+{
+ ::rtl::OUString mString;
+
+public:
+ WW8StringValue(::rtl::OUString string_) : mString(string_) {}
+ virtual ~WW8StringValue() {}
+
+ virtual int getInt() const;
+ virtual ::rtl::OUString getString() const;
+ virtual uno::Any getAny() const;
+
+ virtual string toString() const;
+
+ virtual WW8Value * clone() const { return new WW8StringValue(*this); }
+};
+
+/**
+ Creates value from a string.
+
+ @param rStr string to create value from.
+*/
+WW8Value::Pointer_t createValue(const rtl::OUString & rStr);
+
+class WW8PropertiesValue : public WW8Value
+{
+ mutable doctok::Reference<Properties>::Pointer_t mRef;
+
+public:
+ WW8PropertiesValue(doctok::Reference<Properties>::Pointer_t rRef)
+ : mRef(rRef)
+ {
+ }
+
+ virtual ~WW8PropertiesValue()
+ {
+ }
+
+ virtual doctok::Reference<Properties>::Pointer_t getProperties();
+
+ virtual string toString() const;
+
+ virtual WW8Value * clone() const { return new WW8PropertiesValue(mRef); }
+};
+
+/**
+ Creates value from a properties reference.
+
+ @param rRef reference to create value from.
+*/
+WW8Value::Pointer_t createValue(doctok::Reference<Properties>::Pointer_t rRef);
+
+WW8Value::Pointer_t createValue(WW8Value::Pointer_t value);
+
+class WW8StreamHandler : public Stream
+{
+
+public:
+ WW8StreamHandler();
+ virtual ~WW8StreamHandler();
+
+ virtual void startSectionGroup();
+ virtual void endSectionGroup();
+ virtual void startParagraphGroup();
+ virtual void endParagraphGroup();
+ virtual void startCharacterGroup();
+ virtual void endCharacterGroup();
+ virtual void text(const sal_uInt8 * data, size_t len);
+ virtual void utext(const sal_uInt8 * data, size_t len);
+
+ virtual void props(doctok::Reference<Properties>::Pointer_t ref);
+ virtual void table(Id name,
+ doctok::Reference<Table>::Pointer_t ref);
+
+ virtual void substream(Id name, doctok::Reference<Stream>::Pointer_t ref);
+
+ virtual void info(const string & info);
+};
+
+class WW8PropertiesHandler : public Properties
+{
+public:
+ WW8PropertiesHandler()
+ {
+ }
+
+ virtual ~WW8PropertiesHandler()
+ {
+ }
+
+ virtual void attribute(Id name, Value & val);
+ virtual void sprm(Sprm & sprm);
+};
+
+class WW8BinaryObjHandler : public BinaryObj
+{
+public:
+ WW8BinaryObjHandler()
+ {
+ }
+
+ virtual ~WW8BinaryObjHandler()
+ {
+ }
+
+ virtual void data(const sal_uInt8* buf, size_t len,
+ doctok::Reference<Properties>::Pointer_t ref);
+};
+
+class WW8TableHandler : public Table
+{
+public:
+ WW8TableHandler()
+ {
+ }
+
+ virtual ~WW8TableHandler()
+ {
+ }
+
+ void entry(int pos, doctok::Reference<Properties>::Pointer_t ref);
+};
+
+class QNameToString
+{
+ typedef boost::shared_ptr<QNameToString> Pointer_t;
+
+ static Pointer_t pInstance;
+
+ map < writerfilter::QName_t, string > mMap;
+
+protected:
+ /**
+ Generated.
+ */
+ QNameToString();
+
+public:
+ static Pointer_t Instance();
+
+ string operator()(writerfilter::QName_t qName);
+};
+
+void dump(OutputWithDepth<string> & o, const char * name, doctok::Reference<Properties>::Pointer_t props);
+void dump(OutputWithDepth<string> & o, const char * name, sal_uInt32 n);
+
+}
+
+#endif // INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX
diff --git a/writerfilter/source/doctok/WW8StreamImpl.cxx b/writerfilter/source/doctok/WW8StreamImpl.cxx
new file mode 100644
index 000000000000..fd4c33572af4
--- /dev/null
+++ b/writerfilter/source/doctok/WW8StreamImpl.cxx
@@ -0,0 +1,144 @@
+#include <WW8StreamImpl.hxx>
+
+#include <com/sun/star/uno/Reference.h>
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/io/XStream.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+
+namespace doctok
+{
+using namespace ::com::sun::star;
+
+WW8StreamImpl::WW8StreamImpl(uno::Reference<uno::XComponentContext> rContext,
+ uno::Reference<io::XInputStream> rStream)
+: mrComponentContext(rContext), mrStream(rStream)
+{
+ xFactory = uno::Reference<lang::XMultiComponentFactory>
+ (mrComponentContext->getServiceManager());
+
+ uno::Sequence<uno::Any> aArgs( 1 );
+ aArgs[0] <<= mrStream;
+
+ xOLESimpleStorage = uno::Reference<container::XNameContainer>
+ (xFactory->createInstanceWithArgumentsAndContext
+ (::rtl::OUString::createFromAscii
+ ("com.sun.star.embed.OLESimpleStorage"),
+ aArgs, mrComponentContext ),
+ uno::UNO_QUERY );
+}
+
+WW8Stream::Sequence WW8StreamImpl::get(sal_uInt32 nOffset,
+ sal_uInt32 nCount) const
+{
+ uno::Sequence<sal_Int8> aSequence;
+
+ if (nCount > 0)
+ {
+ uno::Reference< io::XSeekable > xSeek( mrStream, uno::UNO_QUERY_THROW );
+
+ xSeek->seek(nOffset);
+
+ sal_Int32 nRead = mrStream->readBytes(aSequence, nCount);
+
+ Sequence aReturnSequence(const_cast<const sal_uInt8 *>
+ (reinterpret_cast<sal_uInt8 *>
+ (&(aSequence[0]))), nRead);
+
+ return aReturnSequence;
+ }
+
+ return WW8Stream::Sequence();
+}
+
+WW8Stream::Pointer_t WW8StreamImpl::getSubStream(const ::rtl::OUString & sId)
+{
+ WW8Stream::Pointer_t pResult;
+
+ try
+ {
+ if (xOLESimpleStorage.is())
+ {
+ if (xOLESimpleStorage->hasByName(sId))
+ {
+ uno::Reference<io::XStream> xNewStream;
+ {
+ uno::Any aValue = xOLESimpleStorage->getByName(sId);
+ aValue >>= xNewStream;
+ }
+
+ if (xNewStream.is())
+ {
+ WW8Stream::Pointer_t
+ pNew(new WW8StreamImpl(mrComponentContext,
+ xNewStream->getInputStream()));
+
+ pResult = pNew;
+ }
+ }
+ }
+ }
+ catch (...)
+ {
+ }
+
+ if (pResult.get() == NULL)
+ throw ExceptionNotFound("Stream not found");
+
+ return pResult;
+}
+
+string WW8StreamImpl::getSubStreamNames() const
+{
+ string sResult;
+
+ if (xOLESimpleStorage.is())
+ {
+ uno::Sequence<rtl::OUString> aSeq = xOLESimpleStorage->getElementNames();
+
+ for (sal_uInt32 n = 0;
+ n < sal::static_int_cast<sal_uInt32>(aSeq.getLength()); ++n)
+ {
+ rtl::OUString aOUStr = aSeq[n];
+
+ if (n > 0)
+ sResult += ", ";
+
+#if 0
+ rtl::OString aOStr;
+ aOUStr.convertToString(&aOStr, RTL_TEXTENCODING_ASCII_US,
+ OUSTRING_TO_OSTRING_CVTFLAGS);
+
+
+ sResult += aOStr.getStr();
+#endif
+ char sBuffer[256];
+ for (sal_uInt32 j = 0;
+ j < sal::static_int_cast<sal_uInt32>(aOUStr.getLength()); ++j)
+ {
+ if (isprint(aOUStr[j]))
+ {
+ sal_Unicode nC = aOUStr[j];
+
+ if (nC < 255)
+ sResult += sal::static_int_cast<char>(nC);
+ else
+ sResult += ".";
+ }
+ else
+ {
+ snprintf(sBuffer, sizeof(sBuffer), "\\u%x", aOUStr[j]);
+ sResult += sBuffer;
+ }
+ }
+ }
+ }
+
+ return sResult;
+}
+
+uno::Sequence<rtl::OUString> WW8StreamImpl::getSubStreamUNames() const
+{
+ return xOLESimpleStorage->getElementNames();
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8StreamImpl.hxx b/writerfilter/source/doctok/WW8StreamImpl.hxx
new file mode 100644
index 000000000000..8210a6352513
--- /dev/null
+++ b/writerfilter/source/doctok/WW8StreamImpl.hxx
@@ -0,0 +1,40 @@
+#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_
+#include <com/sun/star/uno/XComponentContext.hpp>
+#endif
+#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
+#include <com/sun/star/io/XInputStream.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_
+#include <com/sun/star/container/XNameContainer.hpp>
+#endif
+#ifndef INCLUDED_WW8_DOCUMENT_HXX
+#include <doctok/WW8Document.hxx>
+#endif
+
+namespace doctok
+{
+using namespace ::com::sun::star;
+
+class WW8StreamImpl : public WW8Stream
+{
+ uno::Reference<uno::XComponentContext> mrComponentContext;
+ uno::Reference<io::XInputStream> mrStream;
+ uno::Reference<container::XNameContainer> xOLESimpleStorage;
+ uno::Reference<lang::XMultiComponentFactory> xFactory;
+
+public:
+ WW8StreamImpl(uno::Reference<uno::XComponentContext> rContext,
+ uno::Reference<io::XInputStream> rStream);
+ virtual ~WW8StreamImpl() {}
+
+ virtual WW8Stream::Pointer_t getSubStream(const ::rtl::OUString & rId);
+
+ virtual Sequence get(sal_uInt32 nOffset, sal_uInt32 nCount)
+ const;
+
+ //virtual bool put(sal_uInt32 nOffset, const Sequence & rSeq);
+
+ virtual string getSubStreamNames() const;
+ virtual uno::Sequence<rtl::OUString> getSubStreamUNames() const;
+};
+}
diff --git a/writerfilter/source/doctok/WW8StructBase.cxx b/writerfilter/source/doctok/WW8StructBase.cxx
new file mode 100644
index 000000000000..0c65cbee8fc2
--- /dev/null
+++ b/writerfilter/source/doctok/WW8StructBase.cxx
@@ -0,0 +1,148 @@
+#include <WW8StructBase.hxx>
+#include <util.hxx>
+
+namespace doctok {
+using namespace ::com::sun::star;
+
+WW8StructBase::WW8StructBase(const WW8StructBase & rParent,
+ sal_uInt32 nOffset, sal_uInt32 nCount)
+: mSequence(rParent.mSequence, nOffset, nCount), mpParent(0),
+ mpDocument(rParent.getDocument())
+{
+ if (nOffset + nCount > rParent.getCount())
+ {
+ throw ExceptionOutOfBounds("WW8StructBase");
+ }
+}
+
+WW8StructBase & WW8StructBase::Assign(const WW8StructBase & rSrc)
+{
+ mSequence = rSrc.mSequence;
+ mpDocument = rSrc.mpDocument;
+
+ return *this;
+}
+
+void WW8StructBase::setDocument(WW8DocumentImpl * pDocument)
+{
+ mpDocument = pDocument;
+}
+
+WW8DocumentImpl * WW8StructBase::getDocument() const
+{
+ return mpDocument;
+}
+
+sal_uInt8 WW8StructBase::getU8(sal_uInt32 nOffset) const
+{
+ return doctok::getU8(mSequence, nOffset);
+}
+
+sal_uInt16 WW8StructBase::getU16(sal_uInt32 nOffset) const
+{
+ return doctok::getU16(mSequence, nOffset);
+}
+
+sal_uInt32 WW8StructBase::getU32(sal_uInt32 nOffset) const
+{
+ return doctok::getU32(mSequence, nOffset);
+}
+
+sal_Bool WW8StructBase::getBit(sal_uInt32 nValue, sal_uInt16 nBit) const
+{
+ return (nValue & (1 << nBit)) != 0;
+}
+
+sal_uInt8 WW8StructBase::getNibble(sal_uInt32 nValue,
+ sal_uInt16 nShift) const
+{
+ return sal::static_int_cast<sal_uInt8>((nValue >> nShift) & 0xf);
+}
+
+sal_uInt8 getU8(const WW8StructBase::Sequence & rSeq,
+ sal_uInt32 nOffset)
+{
+ return rSeq[nOffset];
+}
+
+sal_uInt16 getU16(const WW8StructBase::Sequence & rSeq,
+ sal_uInt32 nOffset)
+{
+ return getU8(rSeq, nOffset) | (getU8(rSeq, nOffset + 1) << 8);
+}
+
+sal_uInt32 getU32(const WW8StructBase::Sequence & rSeq,
+ sal_uInt32 nOffset)
+{
+ sal_uInt32 nResult = getU8(rSeq, nOffset);
+ nResult |= (getU8(rSeq, nOffset + 1) << 8);
+ nResult |= (getU8(rSeq, nOffset + 2) << 16);
+ nResult |= (getU8(rSeq, nOffset + 3) << 24);
+
+ return nResult;
+}
+
+rtl::OUString WW8StructBase::getString(sal_uInt32 nOffset, sal_uInt32 nCount)
+ const
+{
+ rtl::OUString aResult;
+
+ Sequence aSeq(mSequence, nOffset, nCount * 2);
+
+ if (nCount > 0)
+ {
+ rtl_uString * pNew = 0;
+ rtl_uString_newFromStr_WithLength
+ (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0]),
+ nCount);
+
+ aResult = rtl::OUString(pNew);
+ }
+
+ return aResult;
+}
+
+rtl::OUString WW8StructBase::getString(sal_uInt32 nOffset) const
+{
+ sal_uInt32 nCount = getU16(nOffset);
+
+ return getString(nOffset + 2, nCount);
+}
+
+WW8StructBaseTmpOffset::WW8StructBaseTmpOffset
+(WW8StructBase * pStructBase)
+: mnOffset(0), mpStructBase(pStructBase)
+{
+}
+
+sal_uInt32 WW8StructBaseTmpOffset::set(sal_uInt32 nOffset)
+{
+ if (nOffset >= mpStructBase->getCount())
+ throw ExceptionOutOfBounds("WW8StructBaseTmpOffset::set");
+
+ mnOffset = nOffset;
+
+ return mnOffset;
+}
+
+sal_uInt32 WW8StructBaseTmpOffset::get() const
+{
+ return mnOffset;
+}
+
+sal_uInt32 WW8StructBaseTmpOffset::inc(sal_uInt32 nOffset)
+{
+ if (mpStructBase->getCount() - mnOffset < nOffset)
+ throw ExceptionOutOfBounds("WW8StructBaseTmpOffset::inc");
+
+ mnOffset += nOffset;
+
+ return mnOffset;
+}
+
+WW8StructBaseTmpOffset::operator sal_uInt32() const
+{
+ return mnOffset;
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8StructBase.hxx b/writerfilter/source/doctok/WW8StructBase.hxx
new file mode 100644
index 000000000000..945fc6c2857b
--- /dev/null
+++ b/writerfilter/source/doctok/WW8StructBase.hxx
@@ -0,0 +1,287 @@
+#ifndef INCLUDED_WW8_STRUCT_BASE_HXX
+#define INCLUDED_WW8_STRUCT_BASE_HXX
+
+#include <boost/shared_ptr.hpp>
+
+#ifndef INCLUDED_WW8_DOCUMENT_HXX
+#include <doctok/WW8Document.hxx>
+#endif
+
+#ifndef INCLUDED_OUTPUT_WITH_DEPTH
+#include <OutputWithDepth.hxx>
+#endif
+
+namespace doctok {
+
+class WW8DocumentImpl;
+
+/**
+ Part of a stream.
+
+ A part can have a parent, meaning its sequence of data is a
+ subsequence of its parent's sequence of data.
+ */
+class WW8StructBase
+{
+public:
+ typedef SubSequence<sal_uInt8> Sequence;
+ typedef boost::shared_ptr<WW8StructBase> Pointer_t;
+
+protected:
+ /**
+ Stream this part was created from.
+ */
+ ::com::sun::star::uno::Reference<com::sun::star::io::
+ XInputStream> mrStream;
+
+ /**
+ The data.
+ */
+ mutable Sequence mSequence;
+
+ /**
+ This part's parent.
+ */
+ WW8StructBase * mpParent;
+
+ /**
+ This part's offset in parent.
+ */
+ sal_uInt32 mnOffsetInParent;
+
+ /**
+ The document of this struct.
+ */
+ WW8DocumentImpl * mpDocument;
+
+public:
+ WW8StructBase(sal_Int32 nLength)
+ : mSequence(nLength)
+ {
+ }
+
+ /**
+ Creates a part from a steam.
+
+ @param rStream the stream
+ @param nOffset offset in @a rStream to start at
+ @param nCount count of bytes in the new part
+ */
+ WW8StructBase(WW8Stream & rStream,
+ sal_Int32 nOffset, sal_Int32 nCount)
+ : mSequence(rStream.get(nOffset, nCount)), mpParent(0), mpDocument(0)
+ {
+ }
+
+ /**
+ Creates a part from a sequence.
+
+ @param rSequence the sequence
+ @param nOffset offset in @a rSequence to start at
+ @param nCount count of bytes in the new part
+ */
+ WW8StructBase(const Sequence & rSequence, sal_uInt32 nOffset = 0,
+ sal_uInt32 nCount = 0)
+ : mSequence(rSequence, nOffset, nCount), mpParent(0), mpDocument(0)
+ {
+ }
+
+ /**
+ Creates a part from a parent part.
+
+ @param pParent the parent
+ @param nOffset offset in @a pParent to start at
+ @param nCount count of bytes in the new part
+ */
+ WW8StructBase(const WW8StructBase & rParent,
+ sal_uInt32 nOffset, sal_uInt32 nCount);
+
+ /**
+ Creates a part from a parent part.
+
+ @param pParent the parent
+ @param nOffset offset in @a pParent to start at
+ @param nCount count of bytes in the new part
+ */
+ WW8StructBase(WW8StructBase * pParent,
+ sal_uInt32 nOffset, sal_uInt32 nCount)
+ : mSequence(pParent->mSequence, nOffset, nCount), mpParent(pParent),
+ mnOffsetInParent(nOffset), mpDocument(pParent->getDocument())
+ {
+ if (nOffset + nCount > pParent->mSequence.getCount())
+ throw ExceptionOutOfBounds("WW8StructBase");
+ }
+
+
+ virtual ~WW8StructBase()
+ {
+ }
+
+ /**
+ Assign a part to this part.
+
+ After assignment this part has the same content as the assigned
+ part.
+
+ @param rSrc part to assign
+
+ @return this part after assignment
+ */
+ virtual WW8StructBase & Assign(const WW8StructBase & rSrc);
+
+ /**
+ Set the document of this struct.
+ */
+ void setDocument(WW8DocumentImpl * pDocument);
+
+ /**
+ Return the document of this struct.
+ */
+ WW8DocumentImpl * getDocument() const;
+
+ /**
+ Return count of bytes in this part.
+ */
+ sal_uInt32 getCount() const { return mSequence.getCount(); }
+
+ /**
+ Return unsigned byte value at an offset.
+
+ @param offset offset to get value from
+ */
+ sal_uInt8 getU8(sal_uInt32 nOffset) const;
+
+ /**
+ Return unsigned 16-bit value at an offset.
+
+ @param offset offset to get value from
+ */
+ sal_uInt16 getU16(sal_uInt32 nOffset) const;
+
+ /**
+ Return unsigned 32-bit value at an offset.
+
+ @param offset offset to get value from
+ */
+ sal_uInt32 getU32(sal_uInt32 nOffset) const;
+
+ /**
+ Return signed 8-bit value at an offset.
+
+ @param offset offset to get value from
+ */
+ sal_Int8 getS8(sal_uInt32 nOffset) const
+ { return (sal_Int8) getU8(nOffset); }
+
+ /**
+ Return signed 16-bit value at an offset.
+
+ @param offset offset to get value from
+ */
+ sal_Int16 getS16(sal_uInt32 nOffset) const
+ {return (sal_Int16) getU16(nOffset); }
+
+ /**
+ Return signed 32-bit value at an offset.
+
+ @param offset offset to get value from
+ */
+ sal_Int32 getS32(sal_uInt32 nOffset) const
+ { return (sal_Int32) getU32(nOffset); }
+
+ /**
+ Return bit value from a 32-bit unsigned value.
+
+ @param nValue value to retreive bit from
+ @param nBit number of bit to retreive (0 = least significant)
+ */
+ sal_Bool getBit(sal_uInt32 nValue, sal_uInt16 nBit) const;
+
+ /**
+ Return nibble from a 32-bit unsigned value.
+
+ @param nValue value to retreive nibble from (most significant bit left)
+ @param nShift amount of bits to shift right before returning least significant nibble
+ */
+ sal_uInt8 getNibble(sal_uInt32 nValue, sal_uInt16 nShift) const;
+
+ /**
+ Returns byte at an index.
+
+ @param nIndex index in this part of the byte to return
+ */
+ const sal_uInt8 * get(sal_uInt32 nIndex) const
+ { return &((mSequence.getSequence())[nIndex + mSequence.getOffset()]); }
+
+ /**
+ Returns two byte character string starting at an offset.
+
+ The string has to be Pascal like, e.g. the first word contains
+ the lengthof the string in characters and is followed by the
+ string's characters.
+
+ @param nOffset offset the string starts at
+
+ @return the string
+ */
+ rtl::OUString getString(sal_uInt32 nOffset) const;
+
+ /**
+ Returns two byte character string starting at an offset with a
+ given length.
+
+ @param nOffset offset the string starts at
+ @param nLength number of characters in the string
+ */
+ rtl::OUString getString(sal_uInt32 nOffset, sal_uInt32) const;
+
+ /**
+ Dump the part.
+
+ @param o stream to dump to
+ */
+ virtual void dump(OutputWithDepth<string> & o) const { mSequence.dump(o); }
+};
+
+class WW8StructBaseTmpOffset
+{
+ sal_uInt32 mnOffset;
+ WW8StructBase * mpStructBase;
+
+public:
+ WW8StructBaseTmpOffset(WW8StructBase * pStructBase);
+
+ sal_uInt32 set(sal_uInt32 nOffset);
+ sal_uInt32 get() const;
+ sal_uInt32 inc(sal_uInt32 nOffset);
+
+ operator sal_uInt32 () const;
+};
+
+/**
+ Return unsigned byte from a sequence.
+
+ @param rSeq sequence to get value from
+ @param nOffset offset in sequence to get value from
+ */
+sal_uInt8 getU8(const WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset);
+
+/**
+ Return unsigned 16-bit value from a sequence.
+
+ @param rSeq sequence to get value from
+ @param nOffset offset in sequence to get value from
+ */
+sal_uInt16 getU16(const WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset);
+
+/**
+ Return unsigned 32-bit value from a sequence.
+
+ @param rSeq sequence to get value from
+ @param nOffset offset in sequence to get value from
+ */
+sal_uInt32 getU32(const WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset);
+
+}
+
+#endif // INCLUDED_WW8_STRUCT_BASE_HXX
diff --git a/writerfilter/source/doctok/WW8Sttbf.cxx b/writerfilter/source/doctok/WW8Sttbf.cxx
new file mode 100644
index 000000000000..baa71af1772c
--- /dev/null
+++ b/writerfilter/source/doctok/WW8Sttbf.cxx
@@ -0,0 +1,61 @@
+#include <WW8Sttbf.hxx>
+
+namespace doctok
+{
+
+WW8Sttbf::WW8Sttbf(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount)
+: WW8StructBase(rStream, nOffset, nCount)
+{
+ sal_uInt32 nComplexOffset = 0;
+ if (getU16(0) == 0xffff)
+ {
+ mbComplex = true;
+ nComplexOffset = 2;
+ }
+
+ mnCount = getU16(nComplexOffset);
+ mnExtraDataCount = getU16(nComplexOffset + 2);
+
+ nOffset = (mbComplex ? 2 : 0) + 4;
+
+ for (sal_uInt32 n = 0; n < mnCount; ++n)
+ {
+ mEntryOffsets.push_back(nOffset);
+
+ sal_uInt32 nStringLength = getU16(nOffset);
+
+ nOffset += 2 + nStringLength * (mbComplex ? 2 : 1);
+
+ mExtraOffsets.push_back(nOffset);
+
+ nOffset += mnExtraDataCount;
+ }
+}
+
+sal_uInt32 WW8Sttbf::getEntryOffset(sal_uInt32 nPos) const
+{
+ return mEntryOffsets[nPos];
+}
+
+sal_uInt32 WW8Sttbf::getExtraOffset(sal_uInt32 nPos) const
+{
+ return mExtraOffsets[nPos];
+}
+
+sal_uInt32 WW8Sttbf::getEntryCount() const
+{
+ return mnCount;
+}
+
+rtl::OUString WW8Sttbf::getEntry(sal_uInt32 nPos) const
+{
+ return getString(getEntryOffset(nPos));
+}
+
+WW8StructBase::Pointer_t WW8Sttbf::getExtraData(sal_uInt32 nPos)
+{
+ return WW8StructBase::Pointer_t
+ (new WW8StructBase(*this, getExtraOffset(nPos), mnExtraDataCount));
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8Sttbf.hxx b/writerfilter/source/doctok/WW8Sttbf.hxx
new file mode 100644
index 000000000000..6d73d6a55eab
--- /dev/null
+++ b/writerfilter/source/doctok/WW8Sttbf.hxx
@@ -0,0 +1,77 @@
+#ifndef INCLUDED_WW8_STTBF_HXX
+#define INCLUDED_WW8_STTBF_HXX
+
+#ifndef INCLUDED_WW8_STRUCT_BASE_HXX
+#include <WW8StructBase.hxx>
+#endif
+
+#include <boost/shared_ptr.hpp>
+#include <vector>
+
+namespace doctok
+{
+
+using namespace ::std;
+
+/**
+ A string table in file.
+
+ The string table contains strings that each can have extra data.
+ */
+class WW8Sttbf : public WW8StructBase
+{
+ /// true if strings contain two-byte characters
+ bool mbComplex;
+
+ /// the number of entries
+ sal_uInt32 mnCount;
+
+ /// the size of the extra data (per string)
+ sal_uInt32 mnExtraDataCount;
+
+ /// offsets for the strings
+ vector<sal_uInt32> mEntryOffsets;
+
+ /// offsets for the extra data
+ vector<sal_uInt32> mExtraOffsets;
+
+ /**
+ Return offset of an entry.
+
+ @param nPos the index of the entry
+ */
+ sal_uInt32 getEntryOffset(sal_uInt32 nPos) const;
+
+ /**
+ Return offset of extra data of an entry.
+
+ @param nPos the index of the entry
+ */
+ sal_uInt32 getExtraOffset(sal_uInt32 nPos) const;
+
+public:
+ typedef boost::shared_ptr<WW8Sttbf> Pointer_t;
+
+ WW8Sttbf(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount);
+
+ /**
+ Return the number of entries.
+ */
+ sal_uInt32 getEntryCount() const;
+
+ /**
+ Return the string of an entry.
+
+ @param nPos the index of the entry
+ */
+ rtl::OUString getEntry(sal_uInt32 nPos) const;
+
+ /**
+ Return the extra data of an entry.
+
+ @param nPos the index of the entry
+ */
+ WW8StructBase::Pointer_t getExtraData(sal_uInt32 nPos);
+};
+}
+#endif // INCLUDED_WW8_STTBF
diff --git a/writerfilter/source/doctok/WW8StyleSheet.cxx b/writerfilter/source/doctok/WW8StyleSheet.cxx
new file mode 100644
index 000000000000..3b43413bc8f9
--- /dev/null
+++ b/writerfilter/source/doctok/WW8StyleSheet.cxx
@@ -0,0 +1,182 @@
+#include <resources.hxx>
+
+namespace doctok {
+
+void WW8StyleSheet::initPayload()
+{
+ sal_uInt32 nCount = getEntryCount();
+
+ sal_uInt32 nOffset = get_size() + 2;
+ for (sal_uInt32 n = 0; n < nCount; ++n)
+ {
+ entryOffsets.push_back(nOffset);
+
+ sal_uInt32 cbStd = getU16(nOffset);
+ nOffset += cbStd + 2;
+ }
+
+ entryOffsets.push_back(nOffset);
+}
+
+sal_uInt32 WW8StyleSheet::calcPayloadOffset()
+{
+ return 0;
+}
+
+sal_uInt32 WW8StyleSheet::calcSize()
+{
+ return getCount();
+}
+
+sal_uInt32 WW8StyleSheet::getEntryCount()
+{
+ return get_cstd();
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8StyleSheet::getEntry(sal_uInt32 nIndex)
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ sal_uInt32 nCount = entryOffsets[nIndex + 1] - entryOffsets[nIndex];
+
+ if (nCount > get_cbSTDBaseInFile() + 2U)
+ {
+ WW8Style * pStyle = new WW8Style(this, entryOffsets[nIndex], nCount);
+
+ pStyle->setIndex(nIndex);
+
+ pResult = doctok::Reference<Properties>::Pointer_t(pStyle);
+ }
+
+ return pResult;
+}
+
+rtl::OUString WW8Style::get_xstzName()
+{
+ sal_uInt32 nCount = getU8(0xc);
+
+ if (nCount > 0)
+ {
+ Sequence aSeq(mSequence, 0xe, nCount * 2);
+
+ rtl_uString * pNew = 0;
+ rtl_uString_newFromStr
+ (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0]));
+
+ return rtl::OUString(pNew);
+
+ }
+
+ return rtl::OUString();
+}
+
+rtl::OUString WW8Style::get_xstzName1()
+{
+ WW8StyleSheet * pParentStyleSheet = dynamic_cast<WW8StyleSheet *>(mpParent);
+
+ if (mpParent != NULL)
+ {
+ sal_uInt32 nOffset = pParentStyleSheet->get_cbSTDBaseInFile() + 2;
+
+ if (nOffset < getCount())
+ {
+ sal_uInt32 nCount = getU16(nOffset);
+
+ if (nCount > 0)
+ {
+ Sequence aSeq(mSequence, nOffset + 2, nCount * 2);
+
+ rtl_uString * pNew = 0;
+ rtl_uString_newFromStr
+ (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0]));
+
+ return rtl::OUString(pNew);
+
+ }
+ }
+ }
+
+ return rtl::OUString();
+}
+
+sal_uInt32 WW8Style::get_upxstart()
+{
+ sal_uInt32 nResult = 0;
+ sal_uInt32 nCount = getU8(0xc);
+
+ if (nCount > 0)
+ {
+ nResult = 0xc + 1 + nCount * 2;
+
+ nResult += nResult % 2;
+ }
+ else
+ {
+ WW8StyleSheet * pParentStyleSheet =
+ dynamic_cast<WW8StyleSheet *>(mpParent);
+
+ nResult = pParentStyleSheet->get_cbSTDBaseInFile() + 2;
+
+ if (nResult < getCount())
+ {
+ sal_uInt32 nCountTmp = getU16(nResult);
+
+ nResult += 4 + nCountTmp * 2;
+ }
+ }
+
+ return nResult;
+}
+
+sal_uInt32 WW8Style::get_upx_count()
+{
+ return get_cupx();
+}
+
+doctok::Reference<Properties>::Pointer_t WW8Style::get_upx(sal_uInt32 nIndex)
+{
+ doctok::Reference<Properties>::Pointer_t pResult;
+
+ WW8StructBaseTmpOffset aOffset(this);
+
+ aOffset.set(get_upxstart());
+
+ if (aOffset.get() > 0 )
+ {
+ sal_uInt32 nCount;
+
+ for (sal_uInt32 n = 0; n < nIndex; ++n)
+ {
+ nCount = getU16(aOffset);
+
+ aOffset.inc(nCount + 2);
+ aOffset.inc(aOffset.get() % 2);
+ }
+
+ nCount = getU16(aOffset);
+
+ if (nCount > 0)
+ {
+ aOffset.inc(2);
+
+ bool bIsPap = get_cupx() == 2 && nIndex == 0;
+ WW8PropertySet::Pointer_t
+ pProps(new WW8PropertySetImpl(*this, aOffset.get(), nCount,
+ bIsPap));
+
+ WW8PropertiesReference * pRef =
+ new WW8PropertiesReference(pProps);
+
+ pResult = doctok::Reference<Properties>::Pointer_t(pRef);
+ }
+ }
+
+ return pResult;
+}
+
+void WW8Style::resolveNoAuto(doctok::Properties & /*rHandler*/)
+{
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8Table.cxx b/writerfilter/source/doctok/WW8Table.cxx
new file mode 100644
index 000000000000..bcf210712858
--- /dev/null
+++ b/writerfilter/source/doctok/WW8Table.cxx
@@ -0,0 +1,176 @@
+#include <resources.hxx>
+
+namespace doctok {
+
+/* WW8sprmTDefTable */
+
+sal_uInt32 WW8sprmTDefTable::get_cellx_count()
+{
+ return getU8(0x4) + 1;
+}
+
+sal_uInt16 WW8sprmTDefTable::get_cellx(sal_uInt32 nIndex)
+{
+ return getU16(0x5 + nIndex * 2);
+}
+
+sal_uInt32 WW8sprmTDefTable::get_tc_count()
+{
+ return get_cellx_count() - 1;
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8sprmTDefTable::get_tc(sal_uInt32 pos)
+{
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8TC(this,
+ 0x5 + get_cellx_count() * 2 + pos * WW8TC::getSize()));
+}
+
+/* WW8sprmTTableBorders */
+
+sal_uInt32 WW8sprmTTableBorders::get_rgbbrc_count()
+{
+ return 6;
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8sprmTTableBorders::get_rgbbrc(sal_uInt32 pos)
+{
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8BRC(*this, 0x3 + pos * WW8BRC::getSize()));
+}
+
+/* WW8sprmTCellBottomColor */
+
+sal_uInt32 WW8sprmTCellBottomColor::calcSize()
+{
+ return get_cellBottomColor_count() * 4 + 3;
+}
+
+sal_uInt32 WW8sprmTCellBottomColor::get_cellBottomColor_count()
+{
+ return getU8(0x2) / 4;
+}
+
+sal_uInt32 WW8sprmTCellBottomColor::get_cellBottomColor(sal_uInt32 pos)
+{
+ return getU32(0x3 + 4 * pos);
+}
+
+/* WW8sprmTCellLeftColor */
+
+sal_uInt32 WW8sprmTCellLeftColor::calcSize()
+{
+ return get_cellLeftColor_count() * 4 + 3;
+}
+
+sal_uInt32 WW8sprmTCellLeftColor::get_cellLeftColor_count()
+{
+ return getU8(0x2) / 4;
+}
+
+sal_uInt32 WW8sprmTCellLeftColor::get_cellLeftColor(sal_uInt32 pos)
+{
+ return getU32(0x3 + 4 * pos);
+}
+
+/* WW8sprmTCellTopColor */
+
+sal_uInt32 WW8sprmTCellTopColor::calcSize()
+{
+ return get_cellTopColor_count() * 4 + 3;
+}
+
+sal_uInt32 WW8sprmTCellTopColor::get_cellTopColor_count()
+{
+ return getU8(0x2) / 4;
+}
+
+sal_uInt32 WW8sprmTCellTopColor::get_cellTopColor(sal_uInt32 pos)
+{
+ return getU32(0x3 + 4 * pos);
+}
+
+/* WW8sprmTCellRightColor */
+
+sal_uInt32 WW8sprmTCellRightColor::calcSize()
+{
+ return get_cellRightColor_count() * 4 + 3;
+}
+
+sal_uInt32 WW8sprmTCellRightColor::get_cellRightColor_count()
+{
+ return getU8(0x2) / 4;
+}
+
+sal_uInt32 WW8sprmTCellRightColor::get_cellRightColor(sal_uInt32 pos)
+{
+ return getU32(0x3 + 4 * pos);
+}
+
+/* WW8sprmTGridLineProps */
+
+sal_uInt32 WW8sprmTGridLineProps::calcSize()
+{
+ return getSize();
+}
+
+/* WW8sprmTDefTableShd */
+
+sal_uInt32 WW8sprmTDefTableShd::calcSize()
+{
+ return get_shd_count() * WW8SHD::getSize() + 3;
+}
+
+sal_uInt32 WW8sprmTDefTableShd::get_shd_count()
+{
+ return getU8(0x2) / WW8SHD::getSize();
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8sprmTDefTableShd::get_shd(sal_uInt32 pos)
+{
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8SHD(*this, 0x3 + pos * WW8SHD::getSize()));
+}
+
+/* WW8sprmTCellShd */
+
+sal_uInt32 WW8sprmTCellShd::calcSize()
+{
+ return get_shd_count() * WW8CellShd::getSize();
+}
+
+sal_uInt32 WW8sprmTCellShd::get_shd_count()
+{
+ return getU8(0x2) / WW8CellShd::getSize();
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8sprmTCellShd::get_shd(sal_uInt32 pos)
+{
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8CellShd(*this, 0x3 + pos * WW8CellShd::getSize()));
+}
+
+/* WW8sprmTCellShadow */
+
+sal_uInt32 WW8sprmTCellShadow::calcSize()
+{
+ return get_cellShadow_count() * WW8CellShd::getSize();
+}
+
+sal_uInt32 WW8sprmTCellShadow::get_cellShadow_count()
+{
+ return getU8(0x2) / WW8CellShd::getSize();
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8sprmTCellShadow::get_cellShadow(sal_uInt32 pos)
+{
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8CellShd(*this, 0x3 + pos * WW8CellShd::getSize()));
+}
+
+}
diff --git a/writerfilter/source/doctok/WW8Text.cxx b/writerfilter/source/doctok/WW8Text.cxx
new file mode 100644
index 000000000000..a0fbeec0a55a
--- /dev/null
+++ b/writerfilter/source/doctok/WW8Text.cxx
@@ -0,0 +1,42 @@
+#include <resources.hxx>
+
+namespace doctok {
+sal_uInt32 WW8sprmPChgTabsPapx::calcSize()
+{
+ return getS8(0x2) + 3;
+}
+
+sal_uInt32 WW8sprmPChgTabsPapx::get_dxaDel_count()
+{
+ return getS8(0x3);
+}
+
+sal_Int16 WW8sprmPChgTabsPapx::get_dxaDel(sal_uInt32 pos)
+{
+ return getS16(0x4 + pos * 2);
+}
+
+sal_uInt32 WW8sprmPChgTabsPapx::get_dxaAdd_count()
+{
+ return getS8(0x4 + get_dxaDel_count() * 2);
+}
+
+sal_Int16 WW8sprmPChgTabsPapx::get_dxaAdd(sal_uInt32 pos)
+{
+ return getS16(0x4 + get_dxaDel_count() * 2 + 1 + pos * 2);
+}
+
+sal_uInt32 WW8sprmPChgTabsPapx::get_tbdAdd_count()
+{
+ return get_dxaAdd_count();
+}
+
+doctok::Reference<Properties>::Pointer_t
+WW8sprmPChgTabsPapx::get_tbdAdd(sal_uInt32 pos)
+{
+ return doctok::Reference<Properties>::Pointer_t
+ (new WW8TBD(this,
+ 0x4 + get_dxaDel_count() * 2 + 1 + get_dxaAdd_count() * 2
+ + pos, 1));
+}
+}
diff --git a/writerfilter/source/doctok/WW8inc.xsl b/writerfilter/source/doctok/WW8inc.xsl
new file mode 100644
index 000000000000..0fea94892a00
--- /dev/null
+++ b/writerfilter/source/doctok/WW8inc.xsl
@@ -0,0 +1,79 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+<xsl:output method="text" encoding="iso-8859-1"/>
+
+<xsl:template match="/">
+<xsl:apply-templates select="//xhtml:body/xhtml:table"/>
+</xsl:template>
+
+<xsl:template match="xhtml:table">
+<xsl:apply-templates select="xhtml:tbody/xhtml:tr[2]"/>
+</xsl:template>
+
+<xsl:template name="handleTR">
+<xsl:param name="offset"/>
+<xsl:param name="shift"/>
+<xsl:variable name="name"><xsl:value-of select="xhtml:td[3]"/></xsl:variable>
+<xsl:variable name="type"><xsl:value-of select="xhtml:td[4]"/></xsl:variable>
+<xsl:variable name="saltype">
+<xsl:choose>
+ <xsl:when test="$type='U8'">sal_uInt8</xsl:when>
+ <xsl:when test="$type='S8'">sal_Int8</xsl:when>
+ <xsl:when test="$type='U16'">sal_uInt16</xsl:when>
+ <xsl:when test="$type='S16'">sal_Int16</xsl:when>
+ <xsl:when test="$type='U32'">sal_uInt32</xsl:when>
+ <xsl:when test="$type='S32'">sal_Int32</xsl:when>
+ <xsl:otherwise>void *</xsl:otherwise>
+</xsl:choose>
+</xsl:variable>
+<xsl:variable name="bits"><xsl:value-of select="xhtml:td[5]"/></xsl:variable>
+<xsl:variable name="mask"><xsl:value-of select="xhtml:td[6]"/></xsl:variable>
+<xsl:variable name="comment"><xsl:value-of select="xhtml:td[7]"/></xsl:variable>
+/**
+<xsl:value-of select="$comment"/>
+
+offset : <xsl:value-of select="$offset"/>
+name : <xsl:value-of select="$name"/>
+type : <xsl:value-of select="$type"/>
+shift : <xsl:value-of select="concat($shift, '&#xa;')"/>
+*/
+
+<xsl:value-of select="$saltype"/> get_<xsl:value-of select="$name"/>() const<xsl:choose>
+<xsl:when test="$saltype='void *'">;
+</xsl:when>
+<xsl:otherwise> { return (get<xsl:value-of select="$type"/>(0x<xsl:value-of select="$offset"/>)<xsl:if test="string-length($mask)>0"> &amp; 0x<xsl:value-of select="translate($mask, 'ABCDEF', 'abcdef')"/></xsl:if>)<xsl:if test="$shift>0"> &gt;&gt; <xsl:value-of select="$shift"/></xsl:if>; }
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="xhtml:tr[./xhtml:td[position()=1]/text()]">
+<xsl:variable name="offset"><xsl:value-of select="xhtml:td[2]"/></xsl:variable>
+<xsl:call-template name="handleTR">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift">0</xsl:with-param>
+</xsl:call-template>
+<xsl:variable name="shift1"><xsl:value-of select="substring-after(xhtml:td[5], ':')"/></xsl:variable>
+<xsl:apply-templates select="following-sibling::xhtml:tr[position()=1]">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift1"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="xhtml:tr[not(./xhtml:td[position()=1]/text())]">
+<xsl:param name="offset"/>
+<xsl:param name="shift"/>
+<xsl:call-template name="handleTR">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift"/>
+</xsl:call-template>
+<xsl:variable name="shift1"><xsl:value-of select="$shift+substring-after(xhtml:td[5], ':')"/></xsl:variable>
+<xsl:apply-templates select="following-sibling::xhtml:tr[position()=1]">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift1"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*">
+<xsl:copy-of select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/WW8sprms.xsl b/writerfilter/source/doctok/WW8sprms.xsl
new file mode 100644
index 000000000000..5e9c9df2d458
--- /dev/null
+++ b/writerfilter/source/doctok/WW8sprms.xsl
@@ -0,0 +1,39 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="/">
+<out>
+<xsl:apply-templates select=".//xhtml:tr[position() > 2]"/>
+</out>
+</xsl:template>
+
+<xsl:template match='xhtml:tr'>
+<xsl:variable name='sprmname'><xsl:value-of select='xhtml:td[1]'/></xsl:variable>
+<xsl:variable name='sprmid'><xsl:value-of select='xhtml:td[2]'/></xsl:variable>
+<UML:Class>
+<xsl:attribute name='xmi.id'><xsl:value-of select='$sprmname'/></xsl:attribute>
+<xsl:attribute name='name'><xsl:value-of select='$sprmname'/></xsl:attribute>
+<UML:ModelElement.stereotype>
+<UML:Stereotype xmi.idref="ww8sprm"/>
+</UML:ModelElement.stereotype>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue><xsl:value-of select='$sprmid'/></UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="sprmcode"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>rtf:<xsl:value-of select='$sprmname'/></UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="sprmid"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+</UML:Class>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/doctok/WW8xmi.xsl b/writerfilter/source/doctok/WW8xmi.xsl
new file mode 100644
index 000000000000..39be35afce3c
--- /dev/null
+++ b/writerfilter/source/doctok/WW8xmi.xsl
@@ -0,0 +1,155 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="/">
+<UML:Class xmi.id="dummy" name="dummy">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref='access'/>
+ </UML:ModelElement.stereotype>
+<xsl:apply-templates select="//xhtml:body/xhtml:table"/>
+</UML:Class>
+</xsl:template>
+
+<xsl:template match="xhtml:table">
+<xsl:apply-templates select="xhtml:tbody/xhtml:tr[2]"/>
+</xsl:template>
+
+<xsl:template name="handleTR">
+<xsl:param name="offset"/>
+<xsl:param name="shift"/>
+<xsl:variable name="name"><xsl:value-of select="xhtml:td[3]"/></xsl:variable>
+<xsl:variable name="type">
+<xsl:choose>
+<xsl:when test='contains(xhtml:td[4], "[")'>
+<xsl:value-of select='substring-before(xhtml:td[4], "[")'/>
+</xsl:when>
+<xsl:otherwise>
+<xsl:value-of select="xhtml:td[4]"/>
+<xsl:variable name="stereotype">attribute</xsl:variable>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:variable>
+<xsl:variable name='stereotype'>
+<xsl:choose>
+<xsl:when test='contains(xhtml:td[4], "[")'>array</xsl:when>
+<xsl:otherwise>attribute</xsl:otherwise>
+</xsl:choose>
+</xsl:variable>
+<xsl:variable name="saltype">
+<xsl:choose>
+ <xsl:when test="$type='U8'">sal_uInt8</xsl:when>
+ <xsl:when test="$type='S8'">sal_Int8</xsl:when>
+ <xsl:when test="$type='U16'">sal_uInt16</xsl:when>
+ <xsl:when test="$type='S16'">sal_Int16</xsl:when>
+ <xsl:when test="$type='U32'">sal_uInt32</xsl:when>
+ <xsl:when test="$type='S32'">sal_Int32</xsl:when>
+ <xsl:otherwise>void *</xsl:otherwise>
+</xsl:choose>
+</xsl:variable>
+<xsl:variable name="bits"><xsl:value-of select="xhtml:td[5]"/></xsl:variable>
+<xsl:variable name="mask"><xsl:value-of select="xhtml:td[6]"/></xsl:variable>
+<xsl:variable name="comment"><xsl:value-of select="xhtml:td[7]"/></xsl:variable>
+ <UML:Classifier.feature>
+ <UML:Attribute><xsl:attribute name="name"><xsl:value-of select="$name"/></xsl:attribute>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$comment"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'comment'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$offset"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'offset'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$shift"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'shift'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$mask"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'mask'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$bits"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'bits'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:<xsl:value-of select='translate($name, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")'/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'attrid'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+<xsl:if test='$stereotype = "array"'>
+<xsl:variable name='arraycount'><xsl:value-of select='substring-before(substring-after(xhtml:td[4], "["), "]")'/></xsl:variable>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$arraycount"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'arraycount'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+</xsl:if>
+ <UML:StructuralFeature.type>
+ <UML:DataType><xsl:attribute name="xmi.idref"><xsl:value-of select="$type"/></xsl:attribute></UML:DataType>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype><xsl:attribute name="xmi.idref"><xsl:value-of select="$stereotype"/></xsl:attribute></UML:Stereotype>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+</xsl:template>
+
+<xsl:template match="xhtml:tr[./xhtml:td[position()=1]/text()]">
+<xsl:variable name="offset"><xsl:value-of select="xhtml:td[2]"/></xsl:variable>
+<xsl:call-template name="handleTR">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift">0</xsl:with-param>
+</xsl:call-template>
+<xsl:variable name="shift1"><xsl:value-of select="substring-after(xhtml:td[5], ':')"/></xsl:variable>
+<xsl:apply-templates select="following-sibling::xhtml:tr[position()=1]">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift1"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="xhtml:tr[not(./xhtml:td[position()=1]/text())]">
+<xsl:param name="offset"/>
+<xsl:param name="shift"/>
+<xsl:call-template name="handleTR">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift"/>
+</xsl:call-template>
+<xsl:variable name="shift1"><xsl:value-of select="$shift+substring-after(xhtml:td[5], ':')"/></xsl:variable>
+<xsl:apply-templates select="following-sibling::xhtml:tr[position()=1]">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift1"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*">
+<xsl:copy-of select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/XNoteHelper.hxx b/writerfilter/source/doctok/XNoteHelper.hxx
new file mode 100644
index 000000000000..ca43a0a6b304
--- /dev/null
+++ b/writerfilter/source/doctok/XNoteHelper.hxx
@@ -0,0 +1,118 @@
+#ifndef INCLUDED_X_NOTE_HELPER_HXX
+#define INCLUDED_X_NOTE_HELPER_HXX
+
+#ifndef INLCUED_PLCF_HXX
+#include <PLCF.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_DOCUMENT_IMPL_HXX
+#include <WW8DocumentImpl.hxx>
+#endif
+
+namespace doctok
+{
+/**
+ A helper class for footnotes and endnotes and annotations(aka X-notes).
+ */
+template <class T>
+class XNoteHelper
+{
+ /// Character positions of X-notes in footnote document
+ WW8StructBase::Pointer_t mpCps;
+
+ /// Character positions of references to X-notes
+ typename PLCF<T>::Pointer_t mpRefs;
+
+ /// piece table for CP to FC conversion
+ WW8PieceTable::Pointer_t mpPieceTable;
+
+ /// the document
+ WW8DocumentImpl * mpDocument;
+
+ /// type of X-notes handled by this helper (PROP_FOOTNOTE, PROP_ENDNOTE)
+ PropertyType meType;
+
+ /// offset in document where X-note subdocument starts
+ CpAndFc mCpAndFcOffset;
+
+ /**
+ Return CpAndFc in document for X-note.
+
+ @param nPos index of X-note
+ */
+ CpAndFc getCpAndFc(sal_uInt32 nPos);
+
+ /**
+ Return CpAndFc in document for reference to a certain X-note.
+
+ @param nPos index of the X-note
+ */
+ CpAndFc getRefCpAndFc(sal_uInt32 nPos);
+
+public:
+ typedef boost::shared_ptr<XNoteHelper> Pointer_t;
+
+ XNoteHelper(WW8StructBase::Pointer_t pCps,
+ typename PLCF<T>::Pointer_t pRefs,
+ WW8PieceTable::Pointer_t pPieceTable,
+ WW8DocumentImpl * pDocument,
+ PropertyType eType,
+ CpAndFc cpAndFcOffset)
+ : mpCps(pCps), mpRefs(pRefs), mpPieceTable(pPieceTable),
+ mpDocument(pDocument), meType(eType), mCpAndFcOffset(cpAndFcOffset)
+ {
+ }
+
+ /**
+ Initialize.
+
+ Generates CpAndFcs in document for X-notes.
+ */
+ void init();
+
+ /**
+ Return number of X-notes.
+ */
+ sal_uInt32 getCount() const;
+
+ /**
+ Return index of CpAndFc.
+
+ @param rCpAndFc the CpAndFc to search
+
+ @return the index of the rCpAndFc found or getCount() otherwise
+ */
+ sal_uInt32 getIndexOfCpAndFc(const CpAndFc & rCpAndFc);
+
+ /**
+ Return subdocument containing X-note.
+
+ @param nIndex index of X-note.
+ */
+ doctok::Reference<Stream>::Pointer_t get(sal_uInt32 nIndex);
+
+ /**
+ Return subdocument containing X-note.
+
+ @param rCpAndFc CpAndFc of the X-note's reference
+ */
+ doctok::Reference<Stream>::Pointer_t get(const CpAndFc & rCpAndFc);
+
+ /**
+ Return reference data structure of X-note.
+
+ @param nIndex index of X-note
+ */
+ T * getRef(sal_uInt32 nIndex);
+
+ /**
+ Return reference data structure of X-note.
+
+ @param rCpAndFc CpAndFc for the X-note's reference
+ */
+ T * getRef(const CpAndFc & rCpAndFc);
+};
+
+}
+
+#endif // INCLUDED_X_NOTE_HELPER_HXX
diff --git a/writerfilter/source/doctok/XNoteHelperImpl.hxx b/writerfilter/source/doctok/XNoteHelperImpl.hxx
new file mode 100644
index 000000000000..00575dcd996b
--- /dev/null
+++ b/writerfilter/source/doctok/XNoteHelperImpl.hxx
@@ -0,0 +1,136 @@
+#ifndef INCLUDED_X_NOTE_HELPER_IMPL_HXX
+#define INCLUDED_X_NOTE_HELPER_IMPL_HXX
+
+namespace doctok
+{
+template <class T>
+sal_uInt32 XNoteHelper<T>::getCount() const
+{
+ sal_uInt32 nResult = 0;
+
+ if (mpCps.get() != NULL && mpCps->getCount() > 8)
+ nResult = ( mpCps->getCount() / 4) - 2;
+
+ return nResult;
+}
+
+template <class T>
+CpAndFc XNoteHelper<T>::getCpAndFc(sal_uInt32 nPos)
+{
+ // There are getCount() + 1 entries in mpOffsets => greater
+ if (nPos > getCount())
+ throw ExceptionNotFound("getCpAndFc");
+
+ Cp aCp(mCpAndFcOffset.getCp() + mpCps->getU32(nPos * 4));
+ Fc aFc(mpPieceTable->cp2fc(aCp));
+ CpAndFc aCpAndFc(aCp, aFc, meType);
+
+ return aCpAndFc;
+}
+
+template <class T>
+CpAndFc XNoteHelper<T>::getRefCpAndFc(sal_uInt32 nPos)
+{
+ // There are getCount() entries in mpRefs => greater or equal
+ if (nPos >= getCount())
+ throw ExceptionNotFound("");
+
+ Cp aCp(mpRefs->getFc(nPos));
+ Fc aFc(mpPieceTable->cp2fc(aCp));
+ CpAndFc aCpAndFc(aCp, aFc, meType);
+
+ return aCpAndFc;
+}
+
+template <class T>
+doctok::Reference<Stream>::Pointer_t
+XNoteHelper<T>::get(sal_uInt32 nPos)
+{
+ // There are getCount() entries => greater or equal
+ if (nPos >= getCount())
+ throw ExceptionNotFound("get");
+
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ CpAndFc aCpAndFcStart(getCpAndFc(nPos));
+ CpAndFc aCpAndFcEnd(getCpAndFc(nPos + 1));
+
+ if (aCpAndFcStart < aCpAndFcEnd)
+ pResult = doctok::Reference<Stream>::Pointer_t
+ (new WW8DocumentImpl(*mpDocument, aCpAndFcStart, aCpAndFcEnd));
+
+ return pResult;
+}
+
+template <class T>
+sal_uInt32 XNoteHelper<T>::getIndexOfCpAndFc(const CpAndFc & rCpAndFc)
+{
+ sal_uInt32 n = getCount();
+
+ if (n > 0)
+ {
+ --n;
+
+ Cp aCp(mpRefs->getFc(n));
+ Fc aFc(mpPieceTable->cp2fc(aCp));
+ CpAndFc aCpAndFc(aCp, aFc, meType);
+
+ while (n > 0 && rCpAndFc < aCpAndFc)
+ --n;
+ }
+
+ return n;
+}
+
+template <class T>
+doctok::Reference<Stream>::Pointer_t
+XNoteHelper<T>::get(const CpAndFc & rCpAndFc)
+{
+ doctok::Reference<Stream>::Pointer_t pResult;
+
+ sal_uInt32 n = getIndexOfCpAndFc(rCpAndFc);
+
+ if (n < getCount())
+ pResult = get(n);
+
+ return pResult;
+}
+
+template <class T>
+T *
+XNoteHelper<T>::getRef(sal_uInt32 nIndex)
+{
+ return mpRefs->getEntryPointer(nIndex);
+}
+
+template <class T>
+T *
+XNoteHelper<T>::getRef(const CpAndFc & rCpAndFc)
+{
+ T * pResult = NULL;
+
+ sal_uInt32 n = getIndexOfCpAndFc(rCpAndFc);
+
+ if (n < getCount())
+ {
+ pResult = getRef(n);
+ }
+
+ return pResult;
+}
+
+template <class T>
+void XNoteHelper<T>::init()
+{
+ for (sal_uInt32 n = 0; n < getCount(); ++n)
+ {
+ CpAndFc aCpAndFc(getCpAndFc(n));
+ mpDocument->insertCpAndFc(aCpAndFc);
+
+ CpAndFc aCpAndFcRef(getRefCpAndFc(n));
+ mpDocument->insertCpAndFc(aCpAndFcRef);
+ }
+}
+}
+
+#endif // INCLUDED_X_NOTE_HELPER_IMPL_HXX
diff --git a/writerfilter/source/doctok/doctokutil.cxx b/writerfilter/source/doctok/doctokutil.cxx
new file mode 100644
index 000000000000..c39fe6678b89
--- /dev/null
+++ b/writerfilter/source/doctok/doctokutil.cxx
@@ -0,0 +1,26 @@
+#include <util.hxx>
+
+using namespace ::std;
+
+namespace doctok {
+void util_assert(bool bTest)
+{
+ if (! bTest)
+ clog << "ASSERT!\n" << endl;
+}
+
+void printBytes(ostream & o, const string & str)
+{
+ unsigned int nCount = str.size();
+ for (unsigned int n = 0; n < nCount; ++n)
+ {
+ unsigned char c = static_cast<unsigned char>(str[n]);
+ if (c < 128 && isprint(c))
+ o << str[n];
+ else
+ o << ".";
+ }
+}
+
+}
+
diff --git a/writerfilter/source/doctok/escher.html b/writerfilter/source/doctok/escher.html
new file mode 100644
index 000000000000..7d82c773d54f
--- /dev/null
+++ b/writerfilter/source/doctok/escher.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <title></title>
+ </head>
+
+ <body>
+ <h1></h1>
+
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">rotation</font><p></p></td><td valign="top"><font face=" , " size="2">4</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">fixed point: 16.16 degrees<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockRotation</font><p></p></td><td valign="top"><font face=" , " size="2">119</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">No rotation</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockAspectRatio</font><p></p></td><td valign="top"><font face=" , " size="2">120</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Don't allow changes in aspect ratio</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockPosition</font><p></p></td><td valign="top"><font face=" , " size="2">121</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Don't allow the shape to be moved</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockAgainstSelect</font><p></p></td><td valign="top"><font face=" , " size="2">122</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Shape may not be selected</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockCropping</font><p></p></td><td valign="top"><font face=" , " size="2">123</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">No cropping this shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockVertices</font><p></p></td><td valign="top"><font face=" , " size="2">124</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Edit Points not allowed</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockText</font><p></p></td><td valign="top"><font face=" , " size="2">125</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not edit text</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockAdjustHandles</font><p></p></td><td valign="top"><font face=" , " size="2">126</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not adjust</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockAgainstGrouping</font><p></p></td><td valign="top"><font face=" , " size="2">127</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not group this shape<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lTxid</font><p></p></td><td valign="top"><font face=" , " size="2">128</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">id for the text, value determined by the host</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxTextLeft</font><p></p></td><td valign="top"><font face=" , " size="2">129</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/10 inch</font><p></p></td><td valign="top"><font face=" , " size="2">margins relative to shape's inscribed text rectangle (in EMUs)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dyTextTop</font><p></p></td><td valign="top"><font face=" , " size="2">130</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/20 inch</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxTextRight</font><p></p></td><td valign="top"><font face=" , " size="2">131</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/10 inch</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dyTextBottom</font><p></p></td><td valign="top"><font face=" , " size="2">132</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/20 inch</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">WrapText</font><p></p></td><td valign="top"><font face=" , " size="2">133</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOWRAPMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Wrap text at shape margins</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">scaleText</font><p></p></td><td valign="top"><font face=" , " size="2">134</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Text zoom/scale (used if fFitTextToShape)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">anchorText</font><p></p></td><td valign="top"><font face=" , " size="2">135</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOANCHOR</b></font><p></p></td><td valign="top"><font face=" , " size="2">Top</font><p></p></td><td valign="top"><font face=" , " size="2">How to anchor the text</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">txflTextFlow</font><p></p></td><td valign="top"><font face=" , " size="2">136</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOTXFL</b></font><p></p></td><td valign="top"><font face=" , " size="2">HorzN</font><p></p></td><td valign="top"><font face=" , " size="2">Text flow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cdirFont</font><p></p></td><td valign="top"><font face=" , " size="2">137</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCDIR</b></font><p></p></td><td valign="top"><font face=" , " size="2">msocdir0</font><p></p></td><td valign="top"><font face=" , " size="2">Font rotation</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">hspNext</font><p></p></td><td valign="top"><font face=" , " size="2">138</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOHSP</b></font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">ID of the next shape (used by Word for linked textboxes)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">txdir</font><p></p></td><td valign="top"><font face=" , " size="2">139</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOTXDIR</b></font><p></p></td><td valign="top"><font face=" , " size="2">LTR</font><p></p></td><td valign="top"><font face=" , " size="2">Bi-Di Text direction</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fSelectText</font><p></p></td><td valign="top"><font face=" , " size="2">187</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE if single click selects text, FALSE if two clicks</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fAutoTextMargin</font><p></p></td><td valign="top"><font face=" , " size="2">188</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">use host's margin calculations</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fRotateText</font><p></p></td><td valign="top"><font face=" , " size="2">189</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Rotate text with shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fFitShapeToText</font><p></p></td><td valign="top"><font face=" , " size="2">190</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Size shape to fit text size</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fFitTextToShape</font><p></p></td><td valign="top"><font face=" , " size="2">191</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Size text to fit shape size<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextUNICODE</font><p></p></td><td valign="top"><font face=" , " size="2">192</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">UNICODE text string</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextRTF</font><p></p></td><td valign="top"><font face=" , " size="2">193</font><p></p></td><td valign="top"><font face=" , " size="2">char*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">RTF text string</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextAlign</font><p></p></td><td valign="top"><font face=" , " size="2">194</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOGEOTEXTALIGN</b></font><p></p></td><td valign="top"><font face=" , " size="2">Center</font><p></p></td><td valign="top"><font face=" , " size="2">alignment on curve</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextSize</font><p></p></td><td valign="top"><font face=" , " size="2">195</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">36&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2">default point size</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextSpacing</font><p></p></td><td valign="top"><font face=" , " size="2">196</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2">fixed point 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFont</font><p></p></td><td valign="top"><font face=" , " size="2">197</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">font family name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFReverseRows</font><p></p></td><td valign="top"><font face=" , " size="2">240</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Reverse row order</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fGtext</font><p></p></td><td valign="top"><font face=" , " size="2">241</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Has text effect</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFVertical</font><p></p></td><td valign="top"><font face=" , " size="2">242</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Rotate characters</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFKern</font><p></p></td><td valign="top"><font face=" , " size="2">243</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Kern characters</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFTight</font><p></p></td><td valign="top"><font face=" , " size="2">244</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Tightening or tracking</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFStretch</font><p></p></td><td valign="top"><font face=" , " size="2">245</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Stretch to fit shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFShrinkFit</font><p></p></td><td valign="top"><font face=" , " size="2">246</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Char bounding box</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFBestFit</font><p></p></td><td valign="top"><font face=" , " size="2">247</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Scale text-on-path</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFNormalize</font><p></p></td><td valign="top"><font face=" , " size="2">248</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Stretch char height</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFDxMeasure</font><p></p></td><td valign="top"><font face=" , " size="2">249</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not measure along path</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFBold</font><p></p></td><td valign="top"><font face=" , " size="2">250</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Bold font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFItalic</font><p></p></td><td valign="top"><font face=" , " size="2">251</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Italic font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFUnderline</font><p></p></td><td valign="top"><font face=" , " size="2">252</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Underline font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFShadow</font><p></p></td><td valign="top"><font face=" , " size="2">253</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Shadow font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFSmallcaps</font><p></p></td><td valign="top"><font face=" , " size="2">254</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Small caps font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFStrikethrough</font><p></p></td><td valign="top"><font face=" , " size="2">255</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Strike through font<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="7"><colgroup><col valign="top" width="96"><col valign="top" width="45"><col valign="top" width="49"><col valign="top" width="49"><col valign="top" width="0"><col valign="top" width="192"><col valign="top" width="1"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cropFromTop</font><p></p></td><td valign="top"><font face=" , " size="2">256</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">16.16 fraction times total image width or height, as appropriate.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cropFromBottom</font><p></p></td><td valign="top"><font face=" , " size="2">257</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cropFromLeft</font><p></p></td><td valign="top"><font face=" , " size="2">258</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cropFromRight</font><p></p></td><td valign="top"><font face=" , " size="2">259</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pib</font><p></p></td><td valign="top"><font face=" , " size="2">260</font><p></p></td><td valign="top"><font face=" , " size="2">IMsoBlip*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip to display</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibName</font><p></p></td><td valign="top"><font face=" , " size="2">261</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip file name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibFlags</font><p></p></td><td valign="top"><font face=" , " size="2">262</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBLIPFLAGS</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Comment</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip flags</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureTransparent</font><p></p></td><td valign="top"><font face=" , " size="2">263</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">~0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">transparent color (none if ~0UL) </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureContrast</font><p></p></td><td valign="top"><font face=" , " size="2">264</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">contrast setting</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureBrightness</font><p></p></td><td valign="top"><font face=" , " size="2">265</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">brightness setting</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureGamma</font><p></p></td><td valign="top"><font face=" , " size="2">266</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">16.16 gamma</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureId</font><p></p></td><td valign="top"><font face=" , " size="2">267</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Host-defined ID for OLE objects (usually a pointer)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureDblCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">268</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">This</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Modification used if shape has double shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureFillCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">269</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">undefined</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureLineCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">270</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">undefined</font><p></p></td><td colspan="3" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibPrint</font><p></p></td><td valign="top"><font face=" , " size="2">271</font><p></p></td><td valign="top"><font face=" , " size="2">IMsoBlip*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip to display when printing</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibPrintName</font><p></p></td><td valign="top"><font face=" , " size="2">272</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip file name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibPrintFlags</font><p></p></td><td valign="top"><font face=" , " size="2">273</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBLIPFLAGS</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Comment</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip flags</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fNoHitTestPicture</font><p></p></td><td valign="top"><font face=" , " size="2">316</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Do not hit test the picture</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureGray</font><p></p></td><td valign="top"><font face=" , " size="2">317</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">grayscale display</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureBiLevel</font><p></p></td><td valign="top"><font face=" , " size="2">318</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">bi-level display</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureActive</font><p></p></td><td valign="top"><font face=" , " size="2">319</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Server is active (OLE objects only)<p></p></font></td></tr></tbody></table>
+<table border="1" cellpadding="1" cols="5">
+ <tbody><tr><td valign="top"><font face=" , " size="2">Property</font></td>
+ <td valign="top"><font face=" , " size="2">PID</font></td>
+ <td valign="top"><font face=" , " size="2">Type</font></td>
+ <td valign="top"><font face=" , " size="2">Default</font></td>
+ <td valign="top"><font face=" , " size="2">Description</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">geoLeft</font></td>
+ <td valign="top"><font face=" , " size="2">320</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">Defines the G (geometry) coordinate
+ space.</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">geoTop</font></td>
+ <td valign="top"><font face=" , " size="2">321</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">geoRight</font></td>
+ <td valign="top"><font face=" , " size="2">322</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">21600</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">geoBottom</font></td>
+ <td valign="top"><font face=" , " size="2">323</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">21600</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">shapePath</font></td>
+ <td valign="top"><font face=" , " size="2">324</font></td>
+ <td valign="top"><font face=" , " size="2"><b>MSOSHAPEPATH</b></font></td>
+ <td valign="top"><font face=" , " size="2">msoshapeLinesClosed</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">pVertices</font></td>
+ <td valign="top"><font face=" , " size="2">325</font></td>
+ <td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font></td>
+ <td valign="top"><font face=" , " size="2">NULL</font></td>
+ <td valign="top"><font face=" , " size="2">An array of points, in G units.</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">pSegmentInfo</font></td>
+ <td valign="top"><font face=" , " size="2">326</font></td>
+ <td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font></td>
+ <td valign="top"><font face=" , " size="2">NULL</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjustValue</font></td>
+ <td valign="top"><font face=" , " size="2">327</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">Adjustment values corresponding to the
+ positions of the adjust handles of the shape. The number
+ of values used and their allowable ranges vary from shape
+ type to shape type.</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust2Value</font></td>
+ <td valign="top"><font face=" , " size="2">328</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust3Value</font></td>
+ <td valign="top"><font face=" , " size="2">329</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust4Value</font></td>
+ <td valign="top"><font face=" , " size="2">330</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust5Value</font></td>
+ <td valign="top"><font face=" , " size="2">331</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust6Value</font></td>
+ <td valign="top"><font face=" , " size="2">332</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust7Value</font></td>
+ <td valign="top"><font face=" , " size="2">333</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust8Value</font></td>
+ <td valign="top"><font face=" , " size="2">334</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust9Value</font></td>
+ <td valign="top"><font face=" , " size="2">335</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust10Value</font></td>
+ <td valign="top"><font face=" , " size="2">336</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fShadowOK</font></td>
+ <td valign="top"><font face=" , " size="2">378</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">TRUE</font></td>
+ <td valign="top"><font face=" , " size="2">Shadow may be set</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">f3DOK</font></td>
+ <td valign="top"><font face=" , " size="2">379</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">TRUE</font></td>
+ <td valign="top"><font face=" , " size="2">3D may be set</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fLineOK</font></td>
+ <td valign="top"><font face=" , " size="2">380</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">TRUE</font></td>
+ <td valign="top"><font face=" , " size="2">Line style may be set</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fGtextOK</font></td>
+ <td valign="top"><font face=" , " size="2">381</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">FALSE</font></td>
+ <td valign="top"><font face=" , " size="2">Text effect (WordArt) supported</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fFillShadeShapeOK</font></td>
+ <td valign="top"><font face=" , " size="2">382</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">FALSE</font></td>
+ <td valign="top"><font face=" , " size="2">&nbsp;</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fFillOK</font></td>
+ <td valign="top"><font face=" , " size="2">383</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">TRUE</font></td>
+ <td valign="top"><font face=" , " size="2">OK to fill the shape through the UI or
+ VBA?</font></td>
+ </tr>
+</tbody></table>
+<table border="0" cellpadding="7" cols="6"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="0"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillType</font><p></p></td><td valign="top"><font face=" , " size="2">384</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOFILLTYPE</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Solid</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Type of fill</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillColor</font><p></p></td><td valign="top"><font face=" , " size="2">385</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">white</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Foreground color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillOpacity</font><p></p></td><td valign="top"><font face=" , " size="2">386</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fixed 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBackColor</font><p></p></td><td valign="top"><font face=" , " size="2">387</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">white</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Background color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBackOpacity</font><p></p></td><td valign="top"><font face=" , " size="2">388</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Shades only</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">389</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">undefined</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Modification for BW views</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBlip</font><p></p></td><td valign="top"><font face=" , " size="2">390</font><p></p></td><td valign="top"><font face=" , " size="2">IMsoBlip*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Pattern/texture</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBlipName</font><p></p></td><td valign="top"><font face=" , " size="2">391</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip file name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBlipFlags</font><p></p></td><td valign="top"><font face=" , " size="2">392</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBLIPFLAGS</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Comment</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip flags</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillWidth</font><p></p></td><td valign="top"><font face=" , " size="2">393</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">How big (A units) to make a metafile texture.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillHeight</font><p></p></td><td valign="top"><font face=" , " size="2">394</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillAngle</font><p></p></td><td valign="top"><font face=" , " size="2">395</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fade angle - degrees in 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillFocus</font><p></p></td><td valign="top"><font face=" , " size="2">396</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Linear shaded fill focus percent</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillToLeft</font><p></p></td><td valign="top"><font face=" , " size="2">397</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fraction 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillToTop</font><p></p></td><td valign="top"><font face=" , " size="2">398</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fraction 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillToRight</font><p></p></td><td valign="top"><font face=" , " size="2">399</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fraction 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillToBottom</font><p></p></td><td valign="top"><font face=" , " size="2">400</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fraction 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillRectLeft</font><p></p></td><td valign="top"><font face=" , " size="2">401</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">For shaded fills, use the specified rectangle instead of the shape's bounding rect to define how large the fade is going to be.</font><p></p>
+<p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillRectTop</font><p></p></td><td valign="top"><font face=" , " size="2">402</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillRectRight</font><p></p></td><td valign="top"><font face=" , " size="2">403</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillRectBottom</font><p></p></td><td valign="top"><font face=" , " size="2">404</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillDztype</font><p></p></td><td valign="top"><font face=" , " size="2">405</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSODZTYPE</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShadePreset</font><p></p></td><td valign="top"><font face=" , " size="2">406</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Special shades</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShadeColors</font><p></p></td><td valign="top"><font face=" , " size="2">407</font><p></p></td><td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">a preset array of colors</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">408</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">409</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShapeOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">410</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShapeOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">411</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShadeType</font><p></p></td><td valign="top"><font face=" , " size="2">412</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSHADETYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Type of shading, if a shaded (gradient) fill.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fFilled</font><p></p></td><td valign="top"><font face=" , " size="2">443</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Is shape filled?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fHitTestFill</font><p></p></td><td valign="top"><font face=" , " size="2">444</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Should we hit test fill? </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShape</font><p></p></td><td valign="top"><font face=" , " size="2">445</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Register pattern on shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillUseRect</font><p></p></td><td valign="top"><font face=" , " size="2">446</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Use the large rect?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fNoFillHitTest</font><p></p></td><td valign="top"><font face=" , " size="2">447</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Hit test a shape as though filled<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineColor</font><p></p></td><td valign="top"><font face=" , " size="2">448</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">black</font><p></p></td><td valign="top"><font face=" , " size="2">Color of line</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineOpacity</font><p></p></td><td valign="top"><font face=" , " size="2">449</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2">Not implemented</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineBackColor</font><p></p></td><td valign="top"><font face=" , " size="2">450</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">white</font><p></p></td><td valign="top"><font face=" , " size="2">Background color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">451</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">undefined</font><p></p></td><td valign="top"><font face=" , " size="2">Modification for BW views</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineType</font><p></p></td><td valign="top"><font face=" , " size="2">452</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINETYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Solid</font><p></p></td><td valign="top"><font face=" , " size="2">Type of line</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillBlip</font><p></p></td><td valign="top"><font face=" , " size="2">453</font><p></p></td><td valign="top"><font face=" , " size="2">IMsoBlip*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">Pattern/texture</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillBlipName</font><p></p></td><td valign="top"><font face=" , " size="2">454</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">Blip file name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillBlipFlags</font><p></p></td><td valign="top"><font face=" , " size="2">455</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBLIPFLAGS</b></font><p></p></td><td valign="top"><font face=" , " size="2">Comment</font><p></p></td><td valign="top"><font face=" , " size="2">Blip flags</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillWidth</font><p></p></td><td valign="top"><font face=" , " size="2">456</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">How big (A units) to make a metafile texture.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillHeight</font><p></p></td><td valign="top"><font face=" , " size="2">457</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillDztype</font><p></p></td><td valign="top"><font face=" , " size="2">458</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSODZTYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">How to interpret fillWidth/Height numbers.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineWidth</font><p></p></td><td valign="top"><font face=" , " size="2">459</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">9525</font><p></p></td><td valign="top"><font face=" , " size="2">A units; 1pt == 12700 EMUs</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineMiterLimit</font><p></p></td><td valign="top"><font face=" , " size="2">460</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">8&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2">ratio (16.16) of width</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineStyle</font><p></p></td><td valign="top"><font face=" , " size="2">461</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINESTYLE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Simple</font><p></p></td><td valign="top"><font face=" , " size="2">Draw parallel lines?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineDashing</font><p></p></td><td valign="top"><font face=" , " size="2">462</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEDASHING</b></font><p></p></td><td valign="top"><font face=" , " size="2">Solid</font><p></p></td><td valign="top"><font face=" , " size="2">Can be overridden by:</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineDashStyle</font><p></p></td><td valign="top"><font face=" , " size="2">463</font><p></p></td><td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">As Win32 ExtCreatePen</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineStartArrowhead</font><p></p></td><td valign="top"><font face=" , " size="2">464</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEEND</b></font><p></p></td><td valign="top"><font face=" , " size="2">NoEnd</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at start</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineEndArrowhead</font><p></p></td><td valign="top"><font face=" , " size="2">465</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEEND</b></font><p></p></td><td valign="top"><font face=" , " size="2">NoEnd</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at end</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineStartArrowWidth</font><p></p></td><td valign="top"><font face=" , " size="2">466</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEENDWIDTH</b></font><p></p></td><td valign="top"><font face=" , " size="2">MediumWidthArrow</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at start</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineStartArrowLength</font><p></p></td><td valign="top"><font face=" , " size="2">467</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEENDLENGTH</b></font><p></p></td><td valign="top"><font face=" , " size="2">MediumLenArrow</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at end</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineEndArrowWidth</font><p></p></td><td valign="top"><font face=" , " size="2">468</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEENDWIDTH</b></font><p></p></td><td valign="top"><font face=" , " size="2">MediumWidthArrow</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at start</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineEndArrowLength</font><p></p></td><td valign="top"><font face=" , " size="2">469</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEENDLENGTH</b></font><p></p></td><td valign="top"><font face=" , " size="2">MediumLenArrow</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at end</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineJoinStyle</font><p></p></td><td valign="top"><font face=" , " size="2">470</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEJOIN</b></font><p></p></td><td valign="top"><font face=" , " size="2">JoinRound</font><p></p></td><td valign="top"><font face=" , " size="2">How to join lines</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineEndCapStyle</font><p></p></td><td valign="top"><font face=" , " size="2">471</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINECAP</b></font><p></p></td><td valign="top"><font face=" , " size="2">EndCapFlat</font><p></p></td><td valign="top"><font face=" , " size="2">How to end lines</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fArrowheadsOK</font><p></p></td><td valign="top"><font face=" , " size="2">507</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Allow arrowheads if prop. is set</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLine</font><p></p></td><td valign="top"><font face=" , " size="2">508</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">Any line?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fHitTestLine</font><p></p></td><td valign="top"><font face=" , " size="2">509</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">Should we hit test lines? </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillShape</font><p></p></td><td valign="top"><font face=" , " size="2">510</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">Register pattern on shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fNoLineDrawDash</font><p></p></td><td valign="top"><font face=" , " size="2">511</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Draw a dashed line if no line<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowType</font><p></p></td><td valign="top"><font face=" , " size="2">512</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSHADOWTYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Offset</font><p></p></td><td valign="top"><font face=" , " size="2">Type of effect</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowColor</font><p></p></td><td valign="top"><font face=" , " size="2">513</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">0x808080</font><p></p></td><td valign="top"><font face=" , " size="2">Foreground color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowHighlight</font><p></p></td><td valign="top"><font face=" , " size="2">514</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">0xCBCBCB</font><p></p></td><td valign="top"><font face=" , " size="2">Embossed color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">515</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">undefined</font><p></p></td><td valign="top"><font face=" , " size="2">Modification for BW views</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOpacity</font><p></p></td><td valign="top"><font face=" , " size="2">516</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2">Fixed 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOffsetX</font><p></p></td><td valign="top"><font face=" , " size="2">517</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">25400</font><p></p></td><td valign="top"><font face=" , " size="2">Offset shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOffsetY</font><p></p></td><td valign="top"><font face=" , " size="2">518</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">25400</font><p></p></td><td valign="top"><font face=" , " size="2">Offset shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowSecondOffsetX</font><p></p></td><td valign="top"><font face=" , " size="2">519</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Double offset shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowSecondOffsetY</font><p></p></td><td valign="top"><font face=" , " size="2">520</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Double offset shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowScaleXToX</font><p></p></td><td valign="top"><font face=" , " size="2">521</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2">16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowScaleYToX</font><p></p></td><td valign="top"><font face=" , " size="2">522</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowScaleXToY</font><p></p></td><td valign="top"><font face=" , " size="2">523</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowScaleYToY</font><p></p></td><td valign="top"><font face=" , " size="2">524</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2">16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowPerspectiveX</font><p></p></td><td valign="top"><font face=" , " size="2">525</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">16.16 / weight</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowPerspectiveY</font><p></p></td><td valign="top"><font face=" , " size="2">526</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">16.16 / weight</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowWeight</font><p></p></td><td valign="top"><font face=" , " size="2">527</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;8</font><p></p></td><td valign="top"><font face=" , " size="2">scaling factor</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">528</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">529</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fShadow</font><p></p></td><td valign="top"><font face=" , " size="2">574</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Any shadow?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fshadowObscured</font><p></p></td><td valign="top"><font face=" , " size="2">575</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Excel5-style shadow<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveType</font><p></p></td><td valign="top"><font face=" , " size="2">576</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOXFORMTYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Shape</font><p></p></td><td valign="top"><font face=" , " size="2">Where transform applies</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveOffsetX</font><p></p></td><td valign="top"><font face=" , " size="2">577</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">The LONG values define a transformation matrix, effectively, each value is scaled by the perspectiveWeight parameter.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveOffsetY</font><p></p></td><td valign="top"><font face=" , " size="2">578</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveScaleXToX</font><p></p></td><td valign="top"><font face=" , " size="2">579</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveScaleYToX</font><p></p></td><td valign="top"><font face=" , " size="2">580</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveScaleXToY</font><p></p></td><td valign="top"><font face=" , " size="2">581</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveScaleYToY</font><p></p></td><td valign="top"><font face=" , " size="2">582</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;16</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectivePerspectiveX</font><p></p></td><td valign="top"><font face=" , " size="2">583</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectivePerspectiveY</font><p></p></td><td valign="top"><font face=" , " size="2">584</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveWeight</font><p></p></td><td valign="top"><font face=" , " size="2">585</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;8</font><p></p></td><td valign="top"><font face=" , " size="2">Scaling factor</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">586</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;15</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">587</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1&lt;&lt;15</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fPerspective</font><p></p></td><td valign="top"><font face=" , " size="2">639</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">On/off<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="6"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="0"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DSpecularAmt</font><p></p></td><td valign="top"><font face=" , " size="2">640</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fixed-point 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DDiffuseAmt</font><p></p></td><td valign="top"><font face=" , " size="2">641</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">65536</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fixed-point 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DShininess</font><p></p></td><td valign="top"><font face=" , " size="2">642</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">5</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default gives OK results</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DEdgeThickness</font><p></p></td><td valign="top"><font face=" , " size="2">643</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">12700</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Specular edge thickness</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DExtrudeForward</font><p></p></td><td valign="top"><font face=" , " size="2">644</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Distance of extrusion in EMUs</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DExtrudeBackward</font><p></p></td><td valign="top"><font face=" , " size="2">645</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">457200</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DExtrudePlane</font><p></p></td><td valign="top"><font face=" , " size="2">646</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Extrusion direction</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DExtrusionColor</font><p></p></td><td valign="top"><font face=" , " size="2">647</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">FillThenLine</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Basic color of extruded part of shape; the lighting model used will determine the exact shades used when rendering. </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">648</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">undefined</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Modification for BW views</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">f3D</font><p></p></td><td valign="top"><font face=" , " size="2">700</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Does this shape have a 3D effect?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DMetallic</font><p></p></td><td valign="top"><font face=" , " size="2">701</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Use metallic specularity?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DUseExtrusionColor</font><p></p></td><td valign="top"><font face=" , " size="2">702</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DLightFace</font><p></p></td><td valign="top"><font face=" , " size="2">703</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"><p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DYRotationAngle</font><p></p></td><td valign="top"><font face=" , " size="2">704</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">degrees (16.16) about y axis</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DXRotationAngle</font><p></p></td><td valign="top"><font face=" , " size="2">705</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">degrees (16.16) about x axis</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationAxisX</font><p></p></td><td valign="top"><font face=" , " size="2">706</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">100</font><p></p></td><td valign="top"><font face=" , " size="2">These specify the rotation axis; only their relative magnitudes matter.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationAxisY</font><p></p></td><td valign="top"><font face=" , " size="2">707</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationAxisZ</font><p></p></td><td valign="top"><font face=" , " size="2">708</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationAngle</font><p></p></td><td valign="top"><font face=" , " size="2">709</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">degrees (16.16) about axis</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationCenterX</font><p></p></td><td valign="top"><font face=" , " size="2">710</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">rotation center x (16.16 or g-units)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationCenterY</font><p></p></td><td valign="top"><font face=" , " size="2">711</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">rotation center y (16.16 or g-units)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationCenterZ</font><p></p></td><td valign="top"><font face=" , " size="2">712</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">rotation center z (absolute (emus))</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRenderMode</font><p></p></td><td valign="top"><font face=" , " size="2">713</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSO3DRENDERMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">FullRender</font><p></p></td><td valign="top"><font face=" , " size="2">Full,wireframe, or bcube</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DTolerance</font><p></p></td><td valign="top"><font face=" , " size="2">714</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">30000</font><p></p></td><td valign="top"><font face=" , " size="2">pixels (16.16)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DXViewpoint</font><p></p></td><td valign="top"><font face=" , " size="2">715</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1250000</font><p></p></td><td valign="top"><font face=" , " size="2">X view point (emus)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DYViewpoint</font><p></p></td><td valign="top"><font face=" , " size="2">716</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">-1250000</font><p></p></td><td valign="top"><font face=" , " size="2">Y view point (emus)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DZViewpoint</font><p></p></td><td valign="top"><font face=" , " size="2">717</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">9000000</font><p></p></td><td valign="top"><font face=" , " size="2">Z view distance (emus)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">718</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">32768</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">719</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">-32768</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DSkewAngle</font><p></p></td><td valign="top"><font face=" , " size="2">720</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">-8847360</font><p></p></td><td valign="top"><font face=" , " size="2">degree (16.16) skew angle</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DSkewAmount</font><p></p></td><td valign="top"><font face=" , " size="2">721</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">50</font><p></p></td><td valign="top"><font face=" , " size="2">Percentage skew amount</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DAmbientIntensity</font><p></p></td><td valign="top"><font face=" , " size="2">722</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">20000</font><p></p></td><td valign="top"><font face=" , " size="2">Fixed point intensity</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DKeyX</font><p></p></td><td valign="top"><font face=" , " size="2">723</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">50000</font><p></p></td><td valign="top"><font face=" , " size="2">Key light source direc-</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DKeyY</font><p></p></td><td valign="top"><font face=" , " size="2">724</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">tion; only their relative</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DKeyZ</font><p></p></td><td valign="top"><font face=" , " size="2">725</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">10000</font><p></p></td><td valign="top"><font face=" , " size="2">magnitudes matter</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DKeyIntensity</font><p></p></td><td valign="top"><font face=" , " size="2">726</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">38000</font><p></p></td><td valign="top"><font face=" , " size="2">Fixed point intensity</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DFillX</font><p></p></td><td valign="top"><font face=" , " size="2">727</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">-50000</font><p></p></td><td valign="top"><font face=" , " size="2">Fill light source direc-</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DFillY</font><p></p></td><td valign="top"><font face=" , " size="2">728</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">tion; only their relative</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DFillZ</font><p></p></td><td valign="top"><font face=" , " size="2">729</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">10000</font><p></p></td><td valign="top"><font face=" , " size="2">magnitudes matter</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DFillIntensity</font><p></p></td><td valign="top"><font face=" , " size="2">730</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">38000</font><p></p></td><td valign="top"><font face=" , " size="2">Fixed point intensity</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DConstrainRotation</font><p></p></td><td valign="top"><font face=" , " size="2">763</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DRotationCenterAuto</font><p></p></td><td valign="top"><font face=" , " size="2">764</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DParallel</font><p></p></td><td valign="top"><font face=" , " size="2">765</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">1</font><p></p></td><td valign="top"><font face=" , " size="2">Parallel projection?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DKeyHarsh</font><p></p></td><td valign="top"><font face=" , " size="2">766</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">1</font><p></p></td><td valign="top"><font face=" , " size="2">Is key lighting harsh?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DFillHarsh</font><p></p></td><td valign="top"><font face=" , " size="2">767</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Is fill lighting harsh?<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="6"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="0"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">hspMaster</font><p></p></td><td valign="top"><font face=" , " size="2">769</font><p></p></td><td valign="top"><font face=" , " size="2">MSOHSP</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">master shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cxstyle</font><p></p></td><td valign="top"><font face=" , " size="2">771</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCXSTYLE</b></font><p></p></td><td valign="top"><font face=" , " size="2">None</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Type of connector</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">bWMode</font><p></p></td><td valign="top"><font face=" , " size="2">772</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBWMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Automatic</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Settings for modifications to be made when in different forms of black-and-white mode.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">bWModePureBW</font><p></p></td><td valign="top"><font face=" , " size="2">773</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBWMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Automatic</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">bWModeBW</font><p></p></td><td valign="top"><font face=" , " size="2">774</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBWMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Automatic</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fOleIcon</font><p></p></td><td valign="top"><font face=" , " size="2">826</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">For OLE objects, whether the object is in icon form</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fPreferRelativeResize</font><p></p></td><td valign="top"><font face=" , " size="2">827</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">For UI only. Prefer relative resizing. </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockShapeType</font><p></p></td><td valign="top"><font face=" , " size="2">828</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Lock the shape type (don't allow Change Shape)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fDeleteAttachedObject</font><p></p></td><td valign="top"><font face=" , " size="2">830</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fBackground</font><p></p></td><td valign="top"><font face=" , " size="2">831</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">If TRUE, this is the background shape.<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">spcot</font><p></p></td><td valign="top"><font face=" , " size="2">832</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSPCOT</b></font><p></p></td><td valign="top"><font face=" , " size="2">TwoSegment</font><p></p></td><td valign="top"><font face=" , " size="2">Callout type</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxyCalloutGap</font><p></p></td><td valign="top"><font face=" , " size="2">833</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/12 inch</font><p></p></td><td valign="top"><font face=" , " size="2">Distance from box to first point.(EMUs)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">spcoa</font><p></p></td><td valign="top"><font face=" , " size="2">834</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSPCOA</b></font><p></p></td><td valign="top"><font face=" , " size="2">Any</font><p></p></td><td valign="top"><font face=" , " size="2">Callout angle</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">spcod</font><p></p></td><td valign="top"><font face=" , " size="2">835</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSPCOD</b></font><p></p></td><td valign="top"><font face=" , " size="2">Specified</font><p></p></td><td valign="top"><font face=" , " size="2">Callout drop type</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxyCalloutDropSpecified</font><p></p></td><td valign="top"><font face=" , " size="2">836</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">9 points</font><p></p></td><td valign="top"><font face=" , " size="2">if msospcodSpecified, the actual drop distance</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxyCalloutLengthSpecified</font><p></p></td><td valign="top"><font face=" , " size="2">837</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">if fCalloutLengthSpecified, the actual distance</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCallout</font><p></p></td><td valign="top"><font face=" , " size="2">889</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Is the shape a callout?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutAccentBar</font><p></p></td><td valign="top"><font face=" , " size="2">890</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">does callout have accent bar</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutTextBorder</font><p></p></td><td valign="top"><font face=" , " size="2">891</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">does callout have a text border</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutMinusX</font><p></p></td><td valign="top"><font face=" , " size="2">892</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutMinusY</font><p></p></td><td valign="top"><font face=" , " size="2">893</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutDropAuto</font><p></p></td><td valign="top"><font face=" , " size="2">894</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">If true, then we occasionally invert the drop distance</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutLengthSpecified</font><p></p></td><td valign="top"><font face=" , " size="2">895</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">if true, we look at dxyCalloutLengthSpecified<p></p></font></td></tr></tbody></table>
+<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">wzName</font><p></p></td><td valign="top"><font face=" , " size="2">896</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">Shape Name (present only if explicitly set)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">wzDescription</font><p></p></td><td valign="top"><font face=" , " size="2">897</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">alternate text</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pihlShape</font><p></p></td><td valign="top"><font face=" , " size="2">898</font><p></p></td><td valign="top"><font face=" , " size="2">IHlink*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">The hyperlink in the shape.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pWrapPolygonVertices</font><p></p></td><td valign="top"><font face=" , " size="2">899</font><p></p></td><td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">The polygon that text will be wrapped around (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxWrapDistLeft</font><p></p></td><td valign="top"><font face=" , " size="2">900</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/8 inch</font><p></p></td><td valign="top"><font face=" , " size="2">Left wrapping distance from text (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dyWrapDistTop</font><p></p></td><td valign="top"><font face=" , " size="2">901</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Top wrapping distance from text (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxWrapDistRight</font><p></p></td><td valign="top"><font face=" , " size="2">902</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/8 inch</font><p></p></td><td valign="top"><font face=" , " size="2">Right wrapping distance from text (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dyWrapDistBottom</font><p></p></td><td valign="top"><font face=" , " size="2">903</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Bottom wrapping distance from text (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lidRegroup</font><p></p></td><td valign="top"><font face=" , " size="2">904</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Regroup ID </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fEditedWrap</font><p></p></td><td valign="top"><font face=" , " size="2">953</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Has the wrap polygon been edited?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fBehindDocument</font><p></p></td><td valign="top"><font face=" , " size="2">954</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Word-only (shape is behind text)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fOnDblClickNotify</font><p></p></td><td valign="top"><font face=" , " size="2">955</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Notify client on a double click</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fIsButton</font><p></p></td><td valign="top"><font face=" , " size="2">956</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">A button shape (i.e., clicking performs an action). Set for shapes with attached hyperlinks or macros.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fOneD</font><p></p></td><td valign="top"><font face=" , " size="2">957</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">1D adjustment</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fHidden</font><p></p></td><td valign="top"><font face=" , " size="2">958</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not display</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fPrint</font><p></p></td><td valign="top"><font face=" , " size="2">959</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">Print this shape</font><p></p></td></tr></tbody></table>
+
+ <hr>
+ <address><a href="mailto:Henning.Brinkmann@sun.com">Henning Brinkmann - Sun Germany - Software Engineer</a></address>
+<!-- Created: Mon Jul 10 13:57:58 CEST 2006 -->
+<!-- hhmts start -->
+Last modified: Mon Jul 10 17:55:06 CEST 2006
+<!-- hhmts end -->
+ </body>
+</html>
diff --git a/writerfilter/source/doctok/escherdoc.xsl b/writerfilter/source/doctok/escherdoc.xsl
new file mode 100644
index 000000000000..96f69467436e
--- /dev/null
+++ b/writerfilter/source/doctok/escherdoc.xsl
@@ -0,0 +1,118 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="/">
+ <out>
+ <xsl:for-each select="//xhtml:table">
+ <xsl:apply-templates select="." mode="eschertable"/>
+ </xsl:for-each>
+ </out>
+</xsl:template>
+
+<xsl:template match="xhtml:table" mode="eschertable">
+ <xsl:apply-templates select=".//xhtml:tr[position() > 1]" mode="eschertable"/>
+</xsl:template>
+
+<xsl:template match="xhtml:tr" mode="eschertable">
+ <xsl:variable name="name">
+ <xsl:value-of select=".//xhtml:td[1]"/>
+ </xsl:variable>
+ <UML:Class>
+ <xsl:attribute name="xmi.id">
+ <xsl:value-of select="$name"/>
+ </xsl:attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="$name"/>
+ </xsl:attribute>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt" />
+ </UML:ModelElement.stereotype>
+ <xsl:apply-templates select=".//xhtml:td[1]" mode="optname"/>
+ <xsl:apply-templates select=".//xhtml:td[2]" mode="fopid"/>
+ <xsl:apply-templates select=".//xhtml:td[3]" mode="type"/>
+ <xsl:apply-templates select=".//xhtml:td[4]" mode="default"/>
+ <xsl:apply-templates select=".//xhtml:td[5]" mode="comment"/>
+ </UML:Class>
+</xsl:template>
+
+<xsl:template match="xhtml:td" mode="optname">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shp<xsl:value-of select="."/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname" />
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+</xsl:template>
+
+<xsl:template match="xhtml:td" mode="fopid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="."/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid" />
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+</xsl:template>
+
+<xsl:template match="xhtml:td" mode="type">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>
+ <xsl:call-template name="saltype">
+ <xsl:with-param name="type" select="."/>
+ </xsl:call-template>
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type" />
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <xsl:if test=".='BOOL'">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool" />
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="xhtml:td" mode="default">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="."/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default" />
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+</xsl:template>
+
+<xsl:template match="xhtml:td" mode="comment">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="."/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment" />
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+</xsl:template>
+
+<xsl:template name="saltype">
+ <xsl:param name="type"/>
+ <xsl:choose>
+ <xsl:when test="$type='LONG'">U32</xsl:when>
+ <xsl:when test="$type='BOOL'">U8</xsl:when>
+ <xsl:when test="$type='WCHAR*'">String</xsl:when>
+ <xsl:otherwise>unknown</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/doctok/makefile.mk b/writerfilter/source/doctok/makefile.mk
new file mode 100644
index 000000000000..9de7caa0c286
--- /dev/null
+++ b/writerfilter/source/doctok/makefile.mk
@@ -0,0 +1,68 @@
+#
+# Copyright 2005 Sun Microsystems, Inc.
+#
+
+PRJ=..$/..
+PRJNAME=writerfilter
+TARGET=doctok
+#LIBTARGET=NO
+ENABLE_EXCEPTIONS=TRUE
+#USE_DEFFILE=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+#CFLAGS+=-DISOLATION_AWARE_ENABLED -DWIN32_LEAN_AND_MEAN -DXML_UNICODE -D_NTSDK -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0501
+#CFLAGS+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
+CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION #-DDEBUG_DOCTOK_DUMP
+
+
+# --- Files --------------------------------------------------------
+
+SLOFILES= \
+ $(SLO)$/WW8Annotation.obj \
+ $(SLO)$/WW8OutputWithDepth.obj \
+ $(SLO)$/WW8Text.obj \
+ $(SLO)$/DffImpl.obj \
+ $(SLO)$/Dff.obj \
+ $(SLO)$/WW8Analyzer.obj \
+ $(SLO)$/WW8Picture.obj \
+ $(SLO)$/WW8Sttbf.obj \
+ $(SLO)$/WW8Table.obj \
+ $(SLO)$/WW8StyleSheet.obj \
+ $(SLO)$/WW8FontTable.obj \
+ $(SLO)$/WW8LFOTable.obj \
+ $(SLO)$/WW8ListTable.obj \
+ $(SLO)$/resources.obj \
+ $(SLO)$/doctokutil.obj \
+ $(SLO)$/WW8CpAndFc.obj \
+ $(SLO)$/WW8StructBase.obj \
+ $(SLO)$/WW8Clx.obj \
+ $(SLO)$/WW8FKPImpl.obj \
+ $(SLO)$/WW8BinTableImpl.obj \
+ $(SLO)$/WW8StreamImpl.obj \
+ $(SLO)$/WW8PropertySetImpl.obj \
+ $(SLO)$/WW8DocumentImpl.obj \
+ $(SLO)$/WW8PieceTableImpl.obj \
+ $(SLO)$/WW8ResourceModelImpl.obj
+
+
+SHL1TARGET=$(TARGET)
+
+SHL1STDLIBS=$(SALLIB)\
+ $(CPPULIB)\
+ $(CPPUHELPERLIB)
+SHL1IMPLIB=i$(SHL1TARGET)
+#SHL1USE_EXPORTS=name
+SHL1USE_EXPORTS=ordinal
+
+SHL1OBJS=$(SLOFILES)
+
+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+DEF1NAME=$(SHL1TARGET)
+DEFLIB1NAME=$(TARGET)
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/writerfilter/source/doctok/resourceidmapper.xsl b/writerfilter/source/doctok/resourceidmapper.xsl
new file mode 100644
index 000000000000..b67b18af8920
--- /dev/null
+++ b/writerfilter/source/doctok/resourceidmapper.xsl
@@ -0,0 +1,101 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+ <xsl:output method="text" />
+
+ <!-- Key all attributes with the same name and same value -->
+ <xsl:key name="same-valued-tagged-data"
+ match="UML:TaggedValue.dataValue" use="." />
+
+ <xsl:template match="/">
+ <out>
+ <xsl:text>
+/*
+
+ THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT!
+
+ $RCSfile: resourceidmapper.xsl,v $
+
+ $Revision: 1.1 $
+*/
+
+package analyze;
+
+import java.util.LinkedHashMap;
+
+/**
+ *
+ * @author hb137859
+ */
+public class ResourceIdMap extends LinkedHashMap &lt;String, Integer &gt; {
+
+ static ResourceIdMap mInstance = new ResourceIdMap();
+
+ /** Creates a new instance of ResourceIdMap */
+ protected ResourceIdMap() {
+/* Attributes */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]'>
+ <xsl:choose>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <!-- <xsl:when test='.//UML:TaggedValue.dataValue = preceding::*//UML:TaggedValue.dataValue'/>-->
+ <xsl:otherwise>
+ <xsl:text>put("</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>", </xsl:text>
+ <xsl:value-of select='10000 + position()'/>
+ <xsl:text>);&#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+
+/* Operations */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Operation[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]'>
+ <xsl:choose>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <xsl:otherwise>
+ <xsl:text>put("</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>", </xsl:text>
+ <xsl:value-of select='20000 + position()'/>
+ <xsl:text>); &#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+
+/* Classes */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Class[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="classid"]'>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref="noqname"]'/>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <xsl:otherwise>
+ <xsl:text>put("</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>", </xsl:text>
+ <xsl:value-of select='30000 + position()'/>
+ <xsl:text>); &#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+ }
+
+ static ResourceIdMap instance() {
+ return mInstance;
+ }
+};
+</xsl:text>
+</out>
+</xsl:template>
+
+ <xsl:template name='idtoqname'>
+ <xsl:param name='id'/>rtf:<xsl:value-of select='substring-after($id, ":")'/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/resourceidmapperback.xsl b/writerfilter/source/doctok/resourceidmapperback.xsl
new file mode 100644
index 000000000000..99778b5b0dc5
--- /dev/null
+++ b/writerfilter/source/doctok/resourceidmapperback.xsl
@@ -0,0 +1,101 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+ <xsl:output method="text" />
+
+ <!-- Key all attributes with the same name and same value -->
+ <xsl:key name="same-valued-tagged-data"
+ match="UML:TaggedValue.dataValue" use="." />
+
+ <xsl:template match="/">
+ <out>
+ <xsl:text>
+/*
+
+ THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT!
+
+ $RCSfile: resourceidmapperback.xsl,v $
+
+ $Revision: 1.1 $
+*/
+
+package analyze;
+
+import java.util.LinkedHashMap;
+
+/**
+ *
+ * @author hb137859
+ */
+public class ResourceIdMapBackwards extends LinkedHashMap &lt;Integer, String &gt; {
+
+ static ResourceIdMapBackwards mInstance = new ResourceIdMapBackwards();
+
+ /** Creates a new instance of ResourceIdMapBackwards */
+ protected ResourceIdMapBackwards() {
+/* Attributes */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]'>
+ <xsl:choose>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <!-- <xsl:when test='.//UML:TaggedValue.dataValue = preceding::*//UML:TaggedValue.dataValue'/>-->
+ <xsl:otherwise>
+ <xsl:text>put(</xsl:text>
+ <xsl:value-of select='10000 + position()'/>
+ <xsl:text>, "</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>");&#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+
+/* Operations */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Operation[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]'>
+ <xsl:choose>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <xsl:otherwise>
+ <xsl:text>put(</xsl:text>
+ <xsl:value-of select='20000 + position()'/>
+ <xsl:text>, "</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>"); &#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+
+/* Classes */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Class[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="classid"]'>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref="noqname"]'/>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <xsl:otherwise>
+ <xsl:text>put(</xsl:text>
+ <xsl:value-of select='30000 + position()'/>
+ <xsl:text>, "</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>"); &#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+ }
+
+ static ResourceIdMapBackwards instance() {
+ return mInstance;
+ }
+};
+</xsl:text>
+</out>
+</xsl:template>
+
+ <xsl:template name='idtoqname'>
+ <xsl:param name='id'/>rtf:<xsl:value-of select='substring-after($id, ":")'/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/resourceids.xsl b/writerfilter/source/doctok/resourceids.xsl
new file mode 100644
index 000000000000..a2f3a3fdbff8
--- /dev/null
+++ b/writerfilter/source/doctok/resourceids.xsl
@@ -0,0 +1,97 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+ <xsl:output method="text" />
+
+ <!-- Key all attributes with the same name and same value -->
+ <xsl:key name="same-valued-tagged-data"
+ match="UML:TaggedValue.dataValue" use="." />
+
+ <xsl:template match="/">
+ <out>
+ <xsl:text>
+/*
+
+ THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT!
+
+ $RCSfile: resourceids.xsl,v $
+
+ $Revision: 1.1 $
+*/
+#ifndef INCLUDED_RESOURCESIDS
+#define INCLUDED_RESOURCESIDS
+
+#ifndef INCLUDED_QNAME_HXX
+#include &lt;odiapi/qname/QName.hxx&gt;
+#endif
+
+namespace writerfilter {
+using namespace ::std;
+
+namespace NS_rtf {
+
+/* Attributes */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]'>
+ <xsl:choose>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <!-- <xsl:when test='.//UML:TaggedValue.dataValue = preceding::*//UML:TaggedValue.dataValue'/>-->
+ <xsl:otherwise>
+ <xsl:text>const QName_t </xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select='10000 + position()'/>
+ <xsl:text>;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>&#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+
+/* Operations */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Operation[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]'>
+ <xsl:choose>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <xsl:otherwise>
+ <xsl:text>const QName_t </xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select='20000 + position()'/>
+ <xsl:text>; &#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+
+/* Classes */&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Class[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="classid"]'>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref="noqname"]'/>
+ <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/>
+ <xsl:otherwise>
+ <xsl:text>const QName_t </xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select='30000 + position()'/>
+ <xsl:text>; // </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>&#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:text>
+}
+}
+#endif // INCLUDED_RESOURCESIDS&#xa;</xsl:text></out>
+</xsl:template>
+
+ <xsl:template name='idtoqname'>
+ <xsl:param name='id'/>LN_<xsl:value-of select='substring-after($id, ":")'/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/resources.xmi b/writerfilter/source/doctok/resources.xmi
new file mode 100644
index 000000000000..059eff0d59c0
--- /dev/null
+++ b/writerfilter/source/doctok/resources.xmi
@@ -0,0 +1,50823 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XMI xmlns:UML="org.omg.xmi.namespace.UML" xmi.version="1.2">
+ <XMI.header>
+ <XMI.documentation/>
+ </XMI.header>
+ <XMI.content>
+ <UML:Model name="WW8Document">
+ <UML:Namespace.ownedElement>
+ <!--Stereotypes -->
+ <UML:Stereotype xmi.id="access" name="access">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="plcf" name="plcf">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="withindex" name="withindex">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="withmembers" name="withmembers">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="resolvenoauto" name="resolvenoauto">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="initimpl" name="initimpl">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="resource" name="resource">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="ww8resource" name="ww8resource">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="ww8sprm" name="ww8sprm">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="ww8sprmbinary" name="ww8sprmbinary">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="debug" name="debug">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="reference" name="reference">
+ <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="attribute" name="attribute">
+ <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="noresolve" name="noresolve">
+ <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="noqname" name="noqname">
+ <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="array" name="array">
+ <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="string" name="string">
+ <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="binary" name="binary">
+ <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="dffrecord" name="dffrecord">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="dffopt" name="dffopt">
+ <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <UML:Stereotype xmi.id="virtual" name="virtual">
+ <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
+ </UML:Stereotype>
+ <!--Stereotypes-->
+ <!--Datatypes -->
+ <UML:DataType xmi.id="U8" name="U8"/>
+ <UML:DataType xmi.id="U16" name="U16"/>
+ <UML:DataType xmi.id="U32" name="U32"/>
+ <UML:DataType xmi.id="String" name="String"/>
+ <UML:DataType xmi.id="Value" name="Value"/>
+ <UML:DataType xmi.id="Sprm" name="Sprm"/>
+ <!--Datatypes-->
+ <!--Tag definitions -->
+ <UML:TagDefinition tagType="String" xmi.id="comment" name="comment"/>
+ <UML:TagDefinition tagType="String" xmi.id="offset" name="offset"/>
+ <UML:TagDefinition tagType="String" xmi.id="shift" name="shift"/>
+ <UML:TagDefinition tagType="String" xmi.id="mask" name="mask"/>
+ <UML:TagDefinition tagType="String" xmi.id="arraycount" name="arraycount"/>
+ <UML:TagDefinition tagType="String" xmi.id="bits" name="bits"/>
+ <UML:TagDefinition tagType="String" xmi.id="attrid" name="attrid"/>
+ <UML:TagDefinition tagType="String" xmi.id="opid" name="opid"/>
+ <UML:TagDefinition tagType="String" xmi.id="classid" name="opid"/>
+ <UML:TagDefinition tagType="String" xmi.id="size" name="size"/>
+ <UML:TagDefinition tagType="String" xmi.id="sprmcode" name="sprmcode"/>
+ <UML:TagDefinition tagType="String" xmi.id="sprmid" name="sprmid"/>
+ <UML:TagDefinition tagType="String" xmi.id="dffid" name="dffid"/>
+ <!--Tag definitions -->
+ <!--Classes without stereotype-->
+ <!--Class UPX-->
+ <UML:Class xmi.id="UPX" name="UPX"/>
+ <UML:Generalization isSpecification="false" xmi.id="UPX-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="UPX"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class UPX-->
+ <!--Class SEPX-->
+ <UML:Class xmi.id="SEPX" name="SEPX"/>
+ <UML:Generalization isSpecification="false" xmi.id="SEPX-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="SEPX"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class SEPX-->
+ <!--Class DffRecord-->
+ <UML:Class xmi.id="DffRecord" name="DffRecord"/>
+ <UML:Generalization isSpecification="false" xmi.id="DffRecord-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="DffRecord"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class DffRecord-->
+ <!--Class Papx-->
+ <UML:Class xmi.id="Papx" name="Papx">
+ <UML:Classifier.feature>
+ <UML:Attribute name="istd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ISTD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <!--Class Papx-->
+ <!--Class dummy-->
+ <UML:Class xmi.id="dummy" name="dummy">
+ <UML:Classifier.feature>
+ <UML:Attribute name="header">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:header</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="footer">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:footer</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="headerr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:headerr</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="headerl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:headerl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="footerr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:footerr</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="footerl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:footerl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="headerf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:headerf</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="footerf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:footerf</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="footnote">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:footnote</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="endnote">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:endnote</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="annotation">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:annotation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="bookmarkname">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BOOKMARKNAME</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dffrecord">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DffRecord</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dffattribute">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DffAttribute</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dfftype">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:dfftype</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="instance">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:dffinstance</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dffversion">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:dffversion</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="blob">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:blob</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <!--Class dummy-->
+ <!--Classes without stereotype-->
+ <!--Resources-->
+ <UML:Class xmi.id="Properties" name="Properties">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="resource"/>
+ </UML:ModelElement.stereotype>
+ </UML:Class>
+ <UML:Class xmi.id="Table" name="Table">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="resource"/>
+ </UML:ModelElement.stereotype>
+ </UML:Class>
+ <UML:Class xmi.id="Stream" name="Stream">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="resource"/>
+ </UML:ModelElement.stereotype>
+ </UML:Class>
+ <UML:Class xmi.id="BinaryObj" name="BinaryObj">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="resource"/>
+ </UML:ModelElement.stereotype>
+ </UML:Class>
+ <!--Resources-->
+ <!--WW8 resources-->
+ <!--Class ListLevel-->
+ <UML:Class xmi.id="ListLevel" name="ListLevel">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="resolvenoauto"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="iStartAt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>start at value for this list level</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ISTARTAT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="nfc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>number format code (see anld.nfc for a list of options)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:NFC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="jc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>alignment (left, right, or centered) of the paragraph
+ number.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x03</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:JC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fLegal">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>true (==1) if the level turns all inherited numbers to arabic,
+ false if it preserves their number format code (nfc)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FLEGAL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fNoRestart">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>true if the level's number sequence is not restarted by higher
+ (more significant) levels in the list</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x08</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FNORESTART</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fPrev">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.fPrev (see
+ ANLD)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FPREV</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fPrevSpace">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.fPrevSpace (see
+ ANLD)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FPREVSPACE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fWord6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>true if this level was from a converted Word 6 document. If it
+ is true, all of the Word 6 compability options become valid;
+ otherwise they are ignored.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x40</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FWORD6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused5_7">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unused.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x80</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED5_7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="rgbxchNums">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>contains the character offsets into the LVL's XST of the
+ inherited numbers of previous levels. This array should be zero
+ terminated unless it is full (all 9 levels full). The XST contains
+ place holders for any paragraph numbers contained in the text of
+ the number, and the place holder contains the ilvl of the inherited
+ number, so lvl.xst[lvl.rgbxchNums[0]] == the level of the first
+ inherited number in this level.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x06</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:RGBXCHNUMS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ixchFollow">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the type of character following the number text for the
+ paragraph: 0 == tab, 1 == space, 2 == nothing.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:IXCHFOLLOW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dxaSpace">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.dxaSpace (see
+ ANLD)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DXASPACE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dxaIndent">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Word 6 compatibility optino: equivalent to anld.dxaIndent (see
+ ANLD)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DXAINDENT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cbGrpprlChpx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length, in bytes, of the LVL's grpprlChpx</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x18</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CBGRPPRLCHPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cbGrpprlPapx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length, in bytes, of the LVL's grpprlPapx</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x19</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CBGRPPRLPAPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="reserved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0X1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="ListLevel-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="ListLevel"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class ListLevel-->
+ <!--Class List-->
+ <UML:Class xmi.id="List" name="List">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="withindex"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="listlevel">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LISTLEVEL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="ListLevel"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Attribute name="lsid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Unique List ID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LSID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="tplc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Unique template code</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:TPLC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="rgistd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Array of shorts containing the istd's linked to each level of
+ the list, or istdNil (4095) if no style is linked.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x08</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>18</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:RGISTD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fSimpleList">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>true if this is a simple (one-level) list; false if this is a
+ multilevel (nine-level) list.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x01</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FSIMPLELIST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fRestartHdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Word 6 compatibility option: true if the list should start
+ numbering over at the beginning of each section</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x02</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FRESTARTHDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unsigned26_2">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xFC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNSIGNED26_2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="reserved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="List-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="List"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class List-->
+ <!--Class ListTable-->
+ <UML:Class xmi.id="ListTable" name="ListTable">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="plcf"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LISTTABLE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="classid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="ListTable-Table">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="ListTable"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Table"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class ListTable-->
+ <!--Class LFOLevel-->
+ <UML:Class xmi.id="LFOLevel" name="LFOLevel">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="resolvenoauto"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="iStartAt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>start-at value if fFormatting == false and fStartAt == true.
+ (if fFormatting == true, the start-at is stored in the LVL)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ISTARTAT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ilvl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the level to be overridden</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ILVL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fStartAt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>true if the start-at value is overridden</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FSTARTAT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fFormatting">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>true if the formatting is overriden (in which case the LFOLVL
+ should contain a pointer to a LVL)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FFORMATTING</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unsigned4_6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNSIGNED4_6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="reserved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="LFOLevel-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="LFOLevel"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class LFOLevel-->
+ <!--Class LFO-->
+ <UML:Class xmi.id="LFO" name="LFO">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="withindex"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="lfolevel">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LFO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="LFOLevel"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Attribute name="lsid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>List ID of corresponding LSTF (see LSTF)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LSID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused4">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused8">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="clfolvl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of levels whose format is overridden (see LFOLVL)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CLFOLVL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="reserved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="LFO-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="LFO"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class LFO-->
+ <!--Class LFOTable-->
+ <UML:Class xmi.id="LFOTable" name="LFOTable">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="plcf"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LFOTABLE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="classid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="LFOTable-Table">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="LFOTable"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Table"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class LFOTable-->
+ <!--Class FontTable-->
+ <UML:Class xmi.id="FontTable" name="FontTable">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="plcf"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FONTTABLE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="classid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FontTable-Table">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FontTable"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Table"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FontTable-->
+ <!--Class Font-->
+ <UML:Class xmi.id="Font" name="Font">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="withindex"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>40</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="f">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="U32"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="altName">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ALTFONTNAME</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="xszFfn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:XSZFFN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>zero terminated string that records name of font. Possibly
+ followed by a second xsz which records the name of an alternate
+ font to use if the first named font does not exist on this system.
+ Maximal size of xszFfn is 65 characters.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Attribute name="cbFfnM1">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>total length of FFN - 1.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CBFFNM1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="prq">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>pitch request</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>03</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PRQ</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fTrueType">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when 1, font is a TrueType font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FTRUETYPE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused1_3">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>08</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED1_3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ff">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>font family id</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>70</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused1_7">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>80</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED1_7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wWeight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>base weight of font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:WWEIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="chs">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>character set identifier</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CHS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ixchSzAlt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>index into ffn.szFfn to the name of the alternate font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:IXCHSZALT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="panose">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>? This is supposed to be of type PANOSE.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PANOSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fs">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>? This is supposed to be of type FONTSIGNATURE.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>24</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="Font-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="Font"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class Font-->
+ <!--Class Style-->
+ <UML:Class xmi.id="Style" name="Style">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="resolvenoauto"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="withindex"/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute name="sti">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>invariant style identifier</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0FFF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:STI</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fScratch">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>spare field for any temporary use, always reset back to
+ zero!</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FSCRATCH</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fInvalHeight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>PHEs of all text with this style are wrong</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FINVALHEIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fHasUpe">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>UPEs have been generated</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FHASUPE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fMassCopy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>std has been mass-copied; if unused at save time, style should
+ be deleted</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FMASSCOPY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="sgc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>style type code</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:SGC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="istdBase">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>base style</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FFF0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ISTDBASE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cupx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue># of UPXs (and UPEs)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CUPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="istdNext">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>next style</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FFF0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ISTDNEXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="bchUpe">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset to end of upx's, start of upe's</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BCHUPE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fAutoRedef">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>auto redefine style when appropriate</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xa</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FAUTOREDEF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fHidden">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>hidden from UI?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xa</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FHIDDEN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused8_3">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unused bits</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xa</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FFFC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED8_3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="xstzName">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:XSTZNAME</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="xstzName1">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:XSTZNAME1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="upxstart">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UPXSTART</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="U32"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noresolve"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="upx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="UPX"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="Style-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="Style"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class Style-->
+ <!--Class StyleSheet-->
+ <UML:Class xmi.id="StyleSheet" name="StyleSheet">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="plcf"/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute name="size">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Size of style sheet info</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CSTD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ <UML:Attribute name="cstd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Count of styles in stylesheet</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CSTD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cbSTDBaseInFile">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Length of STD Base as stored in a file</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CBSTDBASEINFILE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fStdStylenamesWritten">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Are built-in stylenames stored?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FSTDSTYLENAMESWRITTEN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused4_2">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Spare flags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FFFE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED4_2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="stiMaxWhenSaved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Max sti known when this file was written</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:STIMAXWHENSAVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="istdMaxFixedWhenSaved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>How many fixed-index istds are there?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ISTDMAXFIXEDWHENSAVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="nVerBuiltInNamesWhenSaved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Current version of built-in stylenames</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:NVERBUILTINNAMESWHENSAVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="rgftcStandardChpStsh">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>ftc used by StandardChpStsh for this document</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:RGFTCSTANDARDCHPSTSH</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:STYLESHEET</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="classid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="StyleSheet-Table">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="StyleSheet"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Table"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class StyleSheet-->
+ <!--Class Fib-->
+ <UML:Class xmi.id="Fib" name="Fib">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="withmembers"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>898</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wIdent">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>(fibh) FIBH Beginning of the FIB header magic number</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:WIDENT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="nFib">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FIB version written. This will be &gt;= 101 for all Word 6.0
+ for Windows and after documents.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:NFIB</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="nProduct">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>product version written by</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0004</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:NPRODUCT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>language stamp -- localized version
+ In pre-WinWord 2.0 files this value was the nLocale. If value is
+ &lt; 999, then it is the nLocale, otherwise it is the lid.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0006</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnNext">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0008</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNNEXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fDot">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Set if this document is a template</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FDOT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fGlsy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Set if this document is a glossary</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FGLSY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fComplex">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when 1, file is in complex, fast-saved format.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0004</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCOMPLEX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fHasPic">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>set if file contains 1 or more pictures</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0008</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FHASPIC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cQuickSaves">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of times file was quicksaved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00F0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CQUICKSAVES</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fEncrypted">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Set if file is encrypted</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0100</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FENCRYPTED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fWhichTblStm">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>When 0, this fib refers to the table stream named "0Table",
+ when 1, this fib refers to the table stream named "1Table".
+ Normally, a file will have only one table stream, but under unusual
+ circumstances a file may have table streams with both names. In
+ that case, this flag must be used to decide which table stream is
+ valid.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0200</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FWHICHTBLSTM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fReadOnlyRecommended">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Set when user has recommended that file be read read-only</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0400</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FREADONLYRECOMMENDED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fWriteReservation">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Set when file owner has made the file write reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>11</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0800</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FWRITERESERVATION</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fExtChar">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Set when using extended character set in file</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FEXTCHAR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fLoadOverride">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>REVIEW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FLOADOVERRIDE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fFarEast">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>REVIEW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FFAREAST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fCrypto">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>REVIEW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCRYPTO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="nFibBack">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>This file format it compatible with readers that understand
+ nFib at or above this value.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:NFIBBACK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lKey">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>File encrypted key, only valid if fEncrypted.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LKEY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="envr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>environment in which file was created
+ 0 created by Win Word
+ 1 created by Mac Word</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0012</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ENVR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fMac">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when 1, this file was last saved in the Mac environment</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FMAC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fEmptySpecial">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FEMPTYSPECIAL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fLoadOverridePage">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FLOADOVERRIDEPAGE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fFutureSavedUndo">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>08</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FFUTURESAVEDUNDO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fWord97Saved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FWORD97SAVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fSpare0">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FSPARE0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="chs">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Default extended character set id for text in document stream.
+ (overridden by chp.chse)
+ 0 by default characters in doc stream should be interpreted using
+ the ANSI character set used by Windows
+ 256 characters in doc stream should be interpreted using the
+ Macintosh character set.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0014</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CHS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="chsTables">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Default extended character set id for text in internal data
+ structures
+ 0 by default characters stored in internal data structures should
+ be interpreted using the ANSI character set used by Windows
+ 256 characters stored in internal data structures should be
+ interpreted using the Macintosh character set.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0016</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CHSTABLES</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcMin">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>file offset of first character of text. In non-complex
+ files a CP can be transformed into an FC by the
+ following transformation:
+ fc = cp + fib.fcMin.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0018</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCMIN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcMac">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>file offset of last character of text in document text stream +
+ 1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>001C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCMAC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="csw">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Count of fields in the array of "shorts"</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0020</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CSW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wMagicCreated">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>[Beginning of the array of shorts, rgls]
+ Unique number Identifying the File's creator 6A62 is the creator ID
+ for Word and is reserved. Other creators should choose a different
+ value.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0022</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:WMAGICCREATED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wMagicRevised">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>identifies the File's last modifier</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0024</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:WMAGICREVISED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wMagicCreatedPrivate">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>private data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0026</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:WMAGICCREATEDPRIVATE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wMagicRevisedPrivate">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>private data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0028</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:WMAGICREVISEDPRIVATE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnFbpChpFirst_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>002A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNFBPCHPFIRST_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnChpFirst_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>002C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNCHPFIRST_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cpnBteChp_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>002E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CPNBTECHP_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnFbpPapFirst_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0030</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNFBPPAPFIRST_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnPapFirst_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0032</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNPAPFIRST_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cpnBtePap_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0034</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CPNBTEPAP_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnFbpLvcFirst_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0036</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNFBPLVCFIRST_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnLvcFirst_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0038</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNLVCFIRST_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cpnBteLvc_W6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>003A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CPNBTELVC_W6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lidFE">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Language id if document was written by Far East version of Word
+ (i.e. FIB.fFarEast is on)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>003C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LIDFE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="clw">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Number of fields in the array of longs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>003E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CLW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cbMac">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>[Beginning of the array of longs, rglw]
+ file offset of last byte written to file + 1.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0040</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CBMAC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lProductCreated">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>contains the build date of the creator. 10695 indicates the
+ creator program was compiled on Jan 6, 1995</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0044</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LPRODUCTCREATED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lProductRevised">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>contains the build date of the File's last modifier</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0048</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LPRODUCTREVISED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ccpText">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of main document text stream</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>004C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CCPTEXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ccpFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of footnote subdocument text stream</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0050</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CCPFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ccpHdd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of header subdocument text stream</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0054</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CCPHDD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ccpMcr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of macro subdocument text stream, which should now
+ always be 0.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0058</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CCPMCR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ccpAtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of annotation subdocument text stream</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>005C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CCPATN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ccpEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of endnote subdocument text stream</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0060</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CCPEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ccpTxbx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of textbox subdocument text stream</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0064</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CCPTXBX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ccpHdrTxbx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of header textbox subdocument text stream.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0068</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CCPHDRTXBX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnFbpChpFirst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when there was insufficient memory for Word to expand the
+ plcfbte at save time, the plcfbte is written to the file in a
+ linked list of 512-byte pieces starting with this pn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>006C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNFBPCHPFIRST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnChpFirst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the page number of the lowest numbered page in the document
+ that records CHPX FKP information</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0070</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNCHPFIRST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cpnBteChp">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of CHPX FKPs recorded in file. In non-complex files if
+ the number of entries in the plcfbteChpx is less than this, the
+ plcfbteChpx is incomplete.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0074</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CPNBTECHP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnFbpPapFirst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when there was insufficient memory for Word to expand the
+ plcfbte at save time, the plcfbte is written to the file in a
+ linked list of 512-byte pieces starting with this pn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0078</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNFBPPAPFIRST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnPapFirst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the page number of the lowest numbered page in the document
+ that records PAPX FKP information</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>007C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNPAPFIRST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cpnBtePap">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of PAPX FKPs recorded in file. In non-complex files if
+ the number of entries in the plcfbtePapx is less than this, the
+ plcfbtePapx is incomplete.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CPNBTEPAP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnFbpLvcFirst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when there was insufficient memory for Word to expand the
+ plcfbte at save time, the plcfbte is written to the file in a
+ linked list of 512-byte pieces starting with this pn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0084</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNFBPLVCFIRST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pnLvcFirst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the page number of the lowest numbered page in the document
+ that records LVC FKP information</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0088</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:PNLVCFIRST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cpnBteLvc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of LVC FKPs recorded in file. In non-complex files if the
+ number of entries in the plcfbtePapx is less than this, the
+ plcfbtePapx is incomplete.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>008C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CPNBTELVC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcIslandFirst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0090</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCISLANDFIRST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcIslandLim">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0094</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCISLANDLIM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cfclcb">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Number of fields in the array of FC/LCB pairs.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0098</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CFCLCB</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcStshfOrig">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>[Beginning of array of FC/LCB pairs, rgfclcb]
+ file offset of original allocation for STSH in table stream. During
+ fast save Word will attempt to reuse this allocation if STSH is
+ small enough to fit.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>009A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTSHFORIG</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbStshfOrig">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of original STSH allocation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>009E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTSHFORIG</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcStshf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset of STSH in table stream.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00A2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTSHF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbStshf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of current STSH allocation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00A6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTSHF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffndRef">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of footnote reference PLCF of FRD
+ structures. CPs in PLC are relative to main document text stream
+ and give location of footnote references.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00AA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFNDREF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffndRef">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of footnote reference PLC== 0 if no footnotes
+ defined in document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00AE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFNDREF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffndTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of footnote text PLC. CPs in PLC are
+ relative to footnote subdocument text stream and give location of
+ beginnings of footnote text for corresponding references recorded
+ in plcffndRef. No structure is stored in this plc. There will just
+ be n+1 FC entries in this PLC when there are n
+ footnotes</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00B2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFNDTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffndTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of footnote text PLC. == 0 if no footnotes
+ defined in document</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00B6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFNDTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfandRef">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of annotation reference ATRD PLC. The
+ CPs recorded in this PLC give the offset of annotation references
+ in the main document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00BA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFANDREF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfandRef">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of annotation reference PLC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00BE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFANDREF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfandTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of annotation text PLC. The Cps recorded
+ in this PLC give the offset of the annotation text in the
+ annotation sub document corresponding to the references stored in
+ the plcfandRef. There is a 1 to 1 correspondence between entries
+ recorded in the plcfandTxt and the plcfandRef. No structure is
+ stored in this PLC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00C2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFANDTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfandTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of the annotation text PLC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00C6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFANDTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfsed">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of section descriptor SED PLC. CPs in
+ PLC are relative to main document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00CA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFSED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfsed">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of section descriptor PLC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00CE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFSED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfpad">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00D2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFPAD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfpad">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00D6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFPAD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfphe">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of PHE PLC of paragraph heights. CPs in
+ PLC are relative to main document text stream. Only written for
+ files in complex format. Should not be written by third
+ party creators of Word files.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00DA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFPHE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfphe">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of paragraph height PLC. ==0 when file is
+ non-complex.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00DE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFPHE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfglsy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of glossary string table. This table
+ consists of Pascal style strings (strings stored prefixed with a
+ length byte) concatenated one after another.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00E2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFGLSY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfglsy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of glossary string table. == 0 for non-glossary
+ documents.!=0 for glossary documents.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00E6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFGLSY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfglsy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of glossary PLC. CPs in PLC are relative
+ to main document and mark the beginnings of glossary entries and
+ are in 1-1 correspondence with entries of sttbfglsy. No structure
+ is stored in this PLC. There will be n+1 FC entries
+ in this PLC when there are n glossary entries.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00EA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFGLSY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfglsy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of glossary PLC.== 0 for non-glossary
+ documents.!=0 for glossary documents.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00EE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFGLSY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfhdd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>byte offset in table stream of header HDD PLC. CPs are relative
+ to header subdocument and mark the beginnings of individual headers
+ in the header subdocument. No structure is stored in this PLC.
+ There will be n+1FC entries in this PLC when there are
+ n headers stored for the document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00F2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFHDD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfhdd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of header PLC.
+ == 0 if document contains no headers</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00F6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFHDD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfbteChpx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of character property bin table.PLC. FCs
+ in PLC are file offsets in the main stream. Describes text of main
+ document and all subdocuments.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00FA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFBTECHPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfbteChpx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of character property bin table PLC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00FE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFBTECHPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfbtePapx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of paragraph property bin table.PLC. FCs
+ in PLC are file offsets in the main stream. Describes text of main
+ document and all subdocuments.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0102</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFBTEPAPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfbtePapx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of paragraph property bin table PLC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0106</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFBTEPAPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfsea">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of PLC reserved for private use. The
+ SEA is 6 bytes long.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>010A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFSEA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfsea">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of private use PLC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>010E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFSEA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfffn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of font information STTBF. The sttbfffn
+ is a STTBF where is string is actually an FFN structure. The
+ nth entry in the STTBF describes the font that will be
+ displayed when the chp.ftc for text is equal to n. See the
+ FFN file structure definition.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0112</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFFFN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfffn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes in sttbfffn.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0116</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFFFN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffldMom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to the FLD PLC of field positions in the
+ main document. The CPs point to the beginning CP of a field, the CP
+ of field separator character inside a field and the ending CP of
+ the field. A field may be nested within another field. 20 levels of
+ field nesting are allowed.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>011A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFLDMOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffldMom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes in plcffldMom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>011E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDMOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffldHdr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to the FLD PLC of field positions in the
+ header subdocument.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0122</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFLDHDR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffldHdr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes in plcffldHdr</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0126</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDHDR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffldFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to the FLD PLC of field positions in the
+ footnote subdocument.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>012A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFLDFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffldFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes in plcffldFtn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>012E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffldAtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to the FLD PLC of field positions in the
+ annotation subdocument.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0132</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFLDATN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffldAtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes in plcffldAtn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0136</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDATN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffldMcr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>013A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFLDMCR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffldMcr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>013E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDMCR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfbkmk">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the STTBF that records bookmark names
+ in the main document</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0142</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFBKMK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfbkmk">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0146</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFBKMK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfbkf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the beginning
+ CP offsets of bookmarks in the main document. See BKF structure
+ definition</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>014A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFBKF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfbkf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>014E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFBKF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfbkl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the ending CP
+ offsets of bookmarks recorded in the main document. No structure is
+ stored in this PLCF.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0152</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFBKL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfbkl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0156</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFBKL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcCmds">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the macro commands. These commands
+ are private and undocumented.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>015A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCCMDS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbCmds">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>undocument size of undocument structure not documented
+ above</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>015E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBCMDS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcmcr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0162</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCMCR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcmcr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0166</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCMCR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfmcr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>016A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFMCR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfmcr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>016E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFMCR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPrDrvr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the printer driver information (names
+ of drivers, port, etc.)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0172</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPRDRVR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPrDrvr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of the printer driver information (names of
+ drivers, port, etc.)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0176</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPRDRVR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPrEnvPort">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the print environment in portrait
+ mode.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>017A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPRENVPORT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPrEnvPort">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of the print environment in portrait mode.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>017E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPRENVPORT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPrEnvLand">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the print environment in landscape
+ mode.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0182</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPRENVLAND</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPrEnvLand">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of the print environment in landscape mode.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0186</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPRENVLAND</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcWss">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of Window Save
+ State data structure. WSS contains dimensions of
+ document's main text window and the last selection made by Word
+ user.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>018A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCWSS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbWss">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of WSS. ==0 if unable to store the window state.
+ Should not be written by third party creators of Word files.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>018E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBWSS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcDop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of document property data
+ structure.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0192</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCDOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbDop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of document properties.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0196</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBDOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfAssoc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of STTBF of associated strings. The
+ strings in this table specify document summary info and the paths
+ to special documents related to this document. See documentation of
+ the STTBFASSOC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>019A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFASSOC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfAssoc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>019E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFASSOC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcClx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of beginning of information for
+ complex files. Consists of an encoding of all of the
+ prms quoted by the document followed by the plcpcd
+ (piece table) for the document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01A2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCCLX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbClx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of complex file information == 0 if file is
+ non-complex.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01A6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBCLX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfpgdFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01AA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFPGDFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfpgdFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01AE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFPGDFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcAutosaveSource">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the name of the original file.
+ fcAutosaveSource and cbAutosaveSource should both be 0 if autosave
+ is off.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01B2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCAUTOSAVESOURCE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbAutosaveSource">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of the name of the original file.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01B6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBAUTOSAVESOURCE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcGrpXstAtnOwners">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of group of strings recording the names
+ of the owners of annotations stored in the document</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01BA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCGRPXSTATNOWNERS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbGrpXstAtnOwners">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of bytes of the group of strings</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01BE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBGRPXSTATNOWNERS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfAtnbkmk">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the sttbf that records names of
+ bookmarks for the annotation subdocument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01C2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFATNBKMK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfAtnbkmk">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length in bytes of the sttbf that records names of bookmarks
+ for the annotation subdocument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01C6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFATNBKMK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcdoaMom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01CA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCDOAMOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcdoaMom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01CE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCDOAMOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcdoaHdr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01D2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCDOAHDR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcdoaHdr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01D6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCDOAHDR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcspaMom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the FSPA PLC for main
+ document. == 0 if document has no office art objects.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01DA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCSPAMOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcspaMom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length in bytes of the FSPA PLC of the main
+ document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01DE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCSPAMOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcspaHdr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the FSPA PLC for header
+ document. == 0 if document has no office art objects.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01E2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCSPAHDR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcspaHdr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length in bytes of the FSPA PLC of the header
+ document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01E6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCSPAHDR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfAtnbkf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of BKF (bookmark first) PLC of the
+ annotation subdocument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01EA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFATNBKF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfAtnbkf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length in bytes of BKF (bookmark first) PLC of the annotation
+ subdocument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01EE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFATNBKF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfAtnbkl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of BKL (bookmark last) PLC of the
+ annotation subdocument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01F2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFATNBKL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfAtnbkl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length in bytes of PLC marking the CP limits of the annotation
+ bookmarks. No structure is stored in this PLC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01F6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFATNBKL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPms">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of PMS (Print Merge State) information
+ block. This contains the current state of a print merge
+ operation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01FA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPMS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPms">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length in bytes of PMS. ==0 if no current print merge state.
+ Should not be written by third party creators of Word files.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01FE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPMS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcFormFldSttbf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of form field Sttbf which contains
+ strings used in form field dropdown controls</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0202</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCFORMFLDSTTBF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbFormFldSttbf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length in bytes of form field Sttbf</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0206</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBFORMFLDSTTBF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfendRef">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of endnote reference PLCF of FRD
+ structures. CPs in PLCF are relative to main document text stream
+ and give location of endnote references.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>020A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFENDREF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfendRef">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>020E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFENDREF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfendTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of PlcfendRef which points to endnote
+ text in the endnote document stream which corresponds with the
+ plcfendRef. No structure is stored in this PLC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0212</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFENDTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfendTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0216</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFENDTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffldEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to FLD PLCF of field positions in the
+ endnote subdoc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>021A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFLDEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffldEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>021E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfpgdEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0222</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFPGDEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfpgdEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0226</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFPGDEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcDggInfo">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the office art object table data. The
+ format of office art object table data is found in a separate
+ document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>022A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCDGGINFO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbDggInfo">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length in bytes of the office art object table data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>022E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBDGGINFO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfRMark">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to STTBF that records the author
+ abbreviations for authors who have made revisions in the
+ document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0232</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFRMARK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfRMark">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0236</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFRMARK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfCaption">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to STTBF that records caption titles
+ used in the document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>023A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFCAPTION</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfCaption">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>023E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFCAPTION</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfAutoCaption">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to the STTBF that records the object
+ names and indices into the caption STTBF for objects which get auto
+ captions.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0242</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFAUTOCAPTION</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfAutoCaption">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0246</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFAUTOCAPTION</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfwkb">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream to WKB PLCF that describes the
+ boundaries of contributing documents in a master document</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>024A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFWKB</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfwkb">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>024E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFWKB</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfspl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of PLCF (of SPLS structures) that
+ records spell check state</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0252</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFSPL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfspl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0256</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFSPL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcftxbxTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of PLCF that records the beginning CP in
+ the text box subdoc of the text of individual text box entries. No
+ structure is stored in this PLCF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>025A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFTXBXTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcftxbxTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>025E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFTXBXTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffldTxbx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the FLD PLCF that records field
+ boundaries recorded in the textbox subdoc.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0262</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFLDTXBX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffldTxbx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0266</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDTXBX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfHdrtxbxTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of PLCF that records the beginning CP in
+ the header text box subdoc of the text of individual header text
+ box entries. No structure is stored in this PLC.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>026A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFHDRTXBXTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfHdrtxbxTxt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>026E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFHDRTXBXTXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcffldHdrTxbx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the FLD PLCF that records field
+ boundaries recorded in the header textbox subdoc.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0272</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFFLDHDRTXBX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcffldHdrTxbx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0276</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDHDRTXBX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcStwUser">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Macro User storage</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>027A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTWUSER</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbStwUser">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>027E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTWUSER</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbttmbd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of embedded true type font data.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0282</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBTTMBD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbttmbd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0286</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBTTMBD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcUnused">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>028A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCUNUSED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbUnused">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>028E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBUNUSED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPgdMother">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>(FCPGD, beginning of array of fcPgd / fcBkd pairs
+ rgpgdbkd).
+ offset in table stream of the PLF that records the page descriptors
+ for the main text of the doc.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0292</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPGDMOTHER</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPgdMother">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0296</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPGDMOTHER</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcBkdMother">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the break
+ descriptors for the main text of the doc.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>029A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCBKDMOTHER</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbBkdMother">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>029E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBBKDMOTHER</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPgdFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the PLF that records the page
+ descriptors for the footnote text of the doc.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02A2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPGDFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPgdFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02A6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPGDFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcBkdFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the break
+ descriptors for the footnote text of the doc.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02AA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCBKDFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbBkdFtn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02AE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBBKDFTN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPgdEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the PLF that records the page
+ descriptors for the endnote text of the doc.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02B2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPGDEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPgdEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02B6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPGDEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcBkdEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the break
+ descriptors for the endnote text of the doc.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02BA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCBKDEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbBkdEdn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02BE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBBKDEDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfIntlFld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of the STTBF containing field keywords.
+ This is only used in a small number of the international versions
+ of word. This field is no longer written to the file for nFib &gt;=
+ 167.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02C2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFINTLFLD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfIntlFld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Always 0 for nFib &gt;= 167.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02C6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFINTLFLD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcRouteSlip">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of a mailer routing slip.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02CA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCROUTESLIP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbRouteSlip">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02CE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBROUTESLIP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbSavedBy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of STTBF recording the names of the
+ users who have saved this document alternating with the save
+ locations.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02D2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBSAVEDBY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbSavedBy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02D6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBSAVEDBY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbFnm">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of STTBF recording filenames of
+ documents which are referenced by this document.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02DA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFNM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbFnm">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02DE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFNM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfLst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in the table stream of list format information.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02E2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFLST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfLst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02E6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFLST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlfLfo">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in the table stream of list format override
+ information.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02EA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLFLFO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlfLfo">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02EE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLFLFO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcftxbxBkd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in the table stream of the textbox break table (a PLCF
+ of BKDs) for the main document</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02F2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFTXBXBKD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcftxbxBkd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02F6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFTXBXBKD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcftxbxHdrBkd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in the table stream of the textbox break table (a PLCF
+ of BKDs) for the header subdocument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02FA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFTXBXHDRBKD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcftxbxHdrBkd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>02FE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFTXBXHDRBKD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcDocUndo">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in main stream of undocumented undo / versioning
+ data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0302</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCDOCUNDO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbDocUndo">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0306</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBDOCUNDO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcRgbuse">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in main stream of undocumented undo / versioning
+ data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>030A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCRGBUSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbRgbuse">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>030E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBRGBUSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcUsp">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in main stream of undocumented undo / versioning
+ data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0312</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCUSP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbUsp">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0316</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBUSP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcUskf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of undocumented undo / versioning
+ data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>031A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCUSKF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbUskf">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>031E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBUSKF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcupcRgbuse">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of undocumented undo / versioning
+ data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0322</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCUPCRGBUSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcupcRgbuse">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0326</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCUPCRGBUSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcupcUsp">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of undocumented undo / versioning
+ data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>032A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCUPCUSP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcupcUsp">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>032E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCUPCUSP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbGlsyStyle">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of string table of style names for
+ glossary entries</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0332</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBGLSYSTYLE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbGlsyStyle">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0336</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBGLSYSTYLE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlgosl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of undocumented grammar options PL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>033A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLGOSL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlgosl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>033E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLGOSL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcocx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of undocumented ocx data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0342</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCOCX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcocx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0346</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCOCX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfbteLvc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of character property bin table.PLC. FCs
+ in PLC are file offsets. Describes text of main document and all
+ subdocuments.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>034A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFBTELVC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfbteLvc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>034E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFBTELVC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dwLowDateTime">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>(a.k.a FILETIME ftModified)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0352</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DWLOWDATETIME</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dwHighDateTime">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0356</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DWHIGHDATETIME</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcflvc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of LVC PLCF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>035A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFLVC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcflvc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>size of LVC PLCF, ==0 for non-complex files</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>035E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFLVC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcasumy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of autosummary ASUMY PLCF.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0362</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCASUMY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcasumy">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0366</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCASUMY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfgram">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of PLCF (of SPLS structures) which
+ records grammar check state</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>036A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCPLCFGRAM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfgram">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>036E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBPLCFGRAM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbListNames">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of list names string table</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0372</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBLISTNAMES</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbListNames">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0376</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBLISTNAMES</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbfUssr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>offset in table stream of undocumented undo / versioning
+ data</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>037A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSTTBFUSSR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbfUssr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>037E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCBSTTBFUSSR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="Fib-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="Fib"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class Fib-->
+ <!--Class BKD-->
+<UML:Class xmi.id="BKD" name="BKD">
+<UML:ModelElement.stereotype>
+<UML:Stereotype xmi.idref="ww8resource"/>
+</UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+<UML:Classifier.feature>
+<UML:Attribute name="ibkl">
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>index to BKL entry in plcfbkl that describes the
+ending position of this bookmark in the CP stream.</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="comment"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="offset"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="shift"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue/>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="mask"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue/>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="bits"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>rtf:IBKL</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="attrid"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:StructuralFeature.type>
+<UML:DataType xmi.idref="S16"/>
+</UML:StructuralFeature.type>
+<UML:ModelElement.stereotype>
+<UML:Stereotype xmi.idref="attribute"/>
+</UML:ModelElement.stereotype>
+</UML:Attribute>
+</UML:Classifier.feature>
+<UML:Classifier.feature>
+<UML:Attribute name="itcFirst">
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>when bkf.fCol is 1, this is the index to the first column of a
+table column bookmark.</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="comment"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="offset"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="shift"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>007F</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="mask"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="bits"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>rtf:ITCFIRST</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="attrid"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:StructuralFeature.type>
+<UML:DataType xmi.idref="U16"/>
+</UML:StructuralFeature.type>
+<UML:ModelElement.stereotype>
+<UML:Stereotype xmi.idref="attribute"/>
+</UML:ModelElement.stereotype>
+</UML:Attribute>
+</UML:Classifier.feature>
+<UML:Classifier.feature>
+<UML:Attribute name="fPub">
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>when 1, this indicates that this bookmark is marking the range
+of a Macintosh Publisher section.</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="comment"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="offset"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="shift"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="mask"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="bits"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>rtf:FPUB</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="attrid"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:StructuralFeature.type>
+<UML:DataType xmi.idref="U16"/>
+</UML:StructuralFeature.type>
+<UML:ModelElement.stereotype>
+<UML:Stereotype xmi.idref="attribute"/>
+</UML:ModelElement.stereotype>
+</UML:Attribute>
+</UML:Classifier.feature>
+<UML:Classifier.feature>
+<UML:Attribute name="itcLim">
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>when bkf.fCol is 1, this is the index to limit column of a
+table column bookmark.</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="comment"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="offset"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="shift"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>7F00</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="mask"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="bits"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>rtf:ITCLIM</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="attrid"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:StructuralFeature.type>
+<UML:DataType xmi.idref="U16"/>
+</UML:StructuralFeature.type>
+<UML:ModelElement.stereotype>
+<UML:Stereotype xmi.idref="attribute"/>
+</UML:ModelElement.stereotype>
+</UML:Attribute>
+</UML:Classifier.feature>
+<UML:Classifier.feature>
+<UML:Attribute name="fCol">
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>when 1, this bookmark marks a range of columns in a table
+specified by [bkf.itcFirst, bkf.itcLim).</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="comment"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="offset"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="shift"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="mask"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="bits"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:ModelElement.taggedValue>
+<UML:TaggedValue>
+<UML:TaggedValue.dataValue>rtf:FCOL</UML:TaggedValue.dataValue>
+<UML:TaggedValue.type>
+<UML:TagDefinition xmi.idref="attrid"/>
+</UML:TaggedValue.type>
+</UML:TaggedValue>
+</UML:ModelElement.taggedValue>
+<UML:StructuralFeature.type>
+<UML:DataType xmi.idref="U16"/>
+</UML:StructuralFeature.type>
+<UML:ModelElement.stereotype>
+<UML:Stereotype xmi.idref="attribute"/>
+</UML:ModelElement.stereotype>
+</UML:Attribute>
+</UML:Classifier.feature>
+</UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="BKD-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="BKD"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class BKD-->
+ <!--Class SED-->
+ <UML:Class xmi.id="SED" name="SED">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="needsdocument"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>used internally by Word</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSepx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>file offset in main stream to beginning of SEPX stored for
+ section. If sed.fcSepx == 0xFFFFFFFF, the section properties for
+ the section are equal to the standard SEP (see SEP
+ definition).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCSEPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fnMpr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>used internally by Word</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FNMPR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcMpr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>points to offset in FC space of main stream where the Macintosh
+ Print Record for a document created on a Mac will be stored</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCMPR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="sepx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sed</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="SEPX"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="SED-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="SED"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class SED-->
+ <!--Class SHD-->
+ <UML:Class xmi.id="SHD" name="SHD">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="icoFore">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>foreground color (see chp.ico)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>001F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ICOFORE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="icoBack">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>background color (see chp.ico)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>03E0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ICOBACK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ipat">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>shading pattern (see ipat table below)
+ 0 Automatic
+ 1 Solid
+ 2 5 Percent
+ 3 10 Percent
+ 4 20 Percent
+ 5 25 Percent
+ 6 30 Percent
+ 7 40 Percent
+ 8 50 Percent
+ 9 60 Percent
+ 10 70 Percent
+ 11 75 Percent
+ 12 80 Percent
+ 13 90 Percent
+ 14 Dark Horizontal
+ 15 Dark Vertical
+ 16 Dark Forward Diagonal
+ 17 Dark Backward Diagonal
+ 18 Dark Cross
+ 19 Dark Diagonal Cross
+ 20 Horizontal
+ 21 Vertical
+ 22 Forward Diagonal
+ 23 Backward Diagonal
+ 24 Cross
+ 25 Diagonal Cross
+ 35 2.5 Percent
+ 36 7.5 Percent
+ 37 12.5 Percent
+ 38 15 Percent
+ 39 17.5 Percent
+ 40 22.5 Percent
+ 41 27.5 Percent
+ 42 32.5 Percent
+ 43 35 Percent
+ 44 37.5 Percent
+ 45 42.5 Percent
+ 46 45 Percent
+ 47 47.5 Percent
+ 48 52.5 Percent
+ 49 55 Percent
+ 50 57.5 Percent
+ 51 62.5 Percent
+ 52 65 Percent
+ 53 67.5 Percent
+ 54 72.5 Percent
+ 55 77.5 Percent
+ 56 82.5 Percent
+ 57 85 Percent
+ 58 87.5 Percent
+ 59 92.5 Percent
+ 60 95 Percent
+ 61 97.5 Percent
+ 62 97 Percent</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FC00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:IPAT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="SHD-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="SHD"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class SHD-->
+ <!--Class CellShd-->
+ <UML:Class xmi.id="CellShd" name="CellShd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shdForeColor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>foreground color</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:SHDFORECOLOR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shdBackColor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>background color</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:SHDBACKCOLOR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shdPattern">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>pattern</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:SHDPATTERN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="cellShd-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="CellShd"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class CellShd-->
+ <!--Class BRC-->
+ <UML:Class xmi.id="BRC" name="BRC">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dptLineWidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>width of a single line in 1/8 pt, max of 32 pt.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00FF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DPTLINEWIDTH</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcType">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>border type code:
+ 0 none
+ 1 single
+ 2 thick
+ 3 double
+ 5 hairline
+ 6 dot
+ 7 dash large gap
+ 8 dot dash
+ 9 dot dot dash
+ 10 triple
+ 11 thin-thick small gap
+ 12 thick-thin small gap
+ 13 thin-thick-thin small gap
+ 14 thin-thick medium gap
+ 15 thick-thin medium gap
+ 16 thin-thick-thin medium gap
+ 17 thin-thick large gap
+ 18 thick-thin large gap
+ 19 thin-thick-thin large gap
+ 20 wave
+ 21 double wave
+ 22 dash small gap
+ 23 dash dot stroked
+ 24 emboss 3D
+ 25 engrave 3D
+ codes 64 - 230 represent border art types and are used only for
+ page borders.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FF00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCTYPE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ico">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>color code (see chp.ico)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>00FF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ICO</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dptSpace">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>width of space to maintain between border and text within
+ border. Must be 0 when BRC is a substructure of TC. Stored in
+ points.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1F00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DPTSPACE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fShadow">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when 1, border is drawn with shadow. Must be 0 when BRC is a
+ substructure of the TC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FSHADOW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fFrame">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FFRAME</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused2_15">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED2_15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="BRC-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="BRC"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class BRC-->
+ <!--Class TC-->
+ <UML:Class xmi.id="TC" name="TC">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fFirstMerged">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>set to 1 when cell is first cell of a range of cells that have
+ been merged. When a cell is merged, the display areas of the merged
+ cells are consolidated and the text within the cells is interpreted
+ as belonging to one text stream for purposes of calculating line
+ breaks.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FFIRSTMERGED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fMerged">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>set to 1 when cell has been merged with preceding cell.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FMERGED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fVertical">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>set to 1 when cell has vertical text flow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0004</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FVERTICAL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fBackward">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>for a vertical table cell, text flow is bottom to top when 1
+ and is bottom to top when 0.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0008</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FBACKWARD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fRotateFont">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>set to 1 when cell has rotated characters (i.e. uses
+ @font)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0010</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FROTATEFONT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fVertMerge">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>set to 1 when cell is vertically merged with the cell(s) above
+ and/or below. When cells are vertically merged, the display area of
+ the merged cells are consolidated. The consolidated area is used to
+ display the contents of the first vertically merged cell (the cell
+ with fVertRestart set to 1), and all other vertically merged cells
+ (those with fVertRestart set to 0) must be empty. Cells can only be
+ merged vertically if their left and right boundaries are (nearly)
+ identical (i.e. if corresponding entries in rgdxaCenter of the
+ table rows differ by at most 3).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0020</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FVERTMERGE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fVertRestart">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>set to 1 when the cell is the first of a set of vertically
+ merged cells. The contents of a cell with fVertStart set to 1 are
+ displayed in the consolidated area belonging to the entire set of
+ vertically merged cells. Vertically merged cells with fVertRestart
+ set to 0 must be empty.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0040</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FVERTRESTART</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="vertAlign">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>specifies the alignment of the cell contents relative to text
+ flow (e.g. in a cell with bottom to top text flow and bottom
+ vertical alignment, the text is shifted horizontally to match the
+ cell's right boundary):
+ 0 top
+ 1 center
+ 2 bottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0180</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:VERTALIGN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fUnused">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FE00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FUNUSED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="CellPreferredSize">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>preferred size of cell</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CellPrefferedSize</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcTop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>BRC[cbrcTc] rgbrc: notational convenience for referring to
+ brcTop, brcLeft, etc. fields.
+ specification of the top border of a table cell</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCTOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcLeft">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>specification of left border of table row</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCLEFT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcBottom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>specification of bottom border of table row</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>c</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCBOTTOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcRight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>specification of right border of table row.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCRIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="TC-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="TC"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class TC-->
+ <!--Class BKF-->
+ <UML:Class name="BKF" xmi.id="BKF">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ibkl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>index to BKL entry in plcfbkl that describes the
+ ending position of this bookmark in the CP stream.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:IBKL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="itcFirst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when bkf.fCol is 1, this is the index to the first column of a
+ table column bookmark.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>007F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ITCFIRST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fPub">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when 1, this indicates that this bookmark is marking the range
+ of a Macintosh Publisher section.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FPUB</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="itcLim">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when bkf.fCol is 1, this is the index to limit column of a
+ table column bookmark.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>7F00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ITCLIM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fCol">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when 1, this bookmark marks a range of columns in a table
+ specified by [bkf.itcFirst, bkf.itcLim).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FCOL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="BKF-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="BKF"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class BKF-->
+ <!--Class LineProps-->
+ <UML:Class name="LineProps" xmi.id="LineProps">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linecolor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>color of line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINECOLOR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linewidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>width of line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEWIDTH</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linetype">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>type of line, see border type code (BRC)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINETYPE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="LineProps-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="LineProps"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class LineProps-->
+ <!--Class TBD-->
+ <UML:Class xmi.id="TBD" name="TBD">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute name="jc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>justification code
+ 0 left tab
+ 1 centered tab
+ 2 right tab
+ 3 decimal tab
+ 4 bar</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>07</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:JC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="tlc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>tab leader code
+ 0 no leader
+ 1 dotted leader
+ 2 hyphenated leader
+ 3 single line leader
+ 4 heavy line leader</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>38</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:TLC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused0_6">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>C0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED0_6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="TBD-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="TBD"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class TBD-->
+ <!--Class METAFILEPICT-->
+ <UML:Class xmi.id="METAFILEPICT" name="METAFILEPICT">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute name="mm">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Specifies the mapping mode in which the picture is drawn. </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:MM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="xExt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Specifies the size of the metafile picture for all modes except
+ the MM_ISOTROPIC and MM_ANISOTROPIC modes. (For more information
+ about these modes, see the yExt member.) The x-extent specifies the
+ width of the rectangle within which the picture is drawn. The
+ coordinates are in units that correspond to the mapping mode.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:XEXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="yExt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Specifies the size of the metafile picture for all modes except
+ the MM_ISOTROPIC and MM_ANISOTROPIC modes. The y-extent specifies
+ the height of the rectangle within which the picture is drawn. The
+ coordinates are in units that correspond to the mapping mode.
+ For MM_ISOTROPIC and MM_ANISOTROPIC modes, which can be scaled,
+ the xExt and yExt members contain an optional suggested size in
+ MM_HIMETRIC units.
+ For MM_ANISOTROPIC pictures, xExt and yExt can be zero when no
+ suggested size is supplied. For MM_ISOTROPIC pictures, an aspect
+ ratio must be supplied even when no suggested size is given. (If a
+ suggested size is given, the aspect ratio is implied by the size.)
+ To give an aspect ratio without implying a suggested size, set xExt
+ and yExt to negative values whose ratio is the appropriate aspect
+ ratio. The magnitude of the negative xExt and yExt values is
+ ignored; only the ratio is used.
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:YEXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="hMF">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Identifies a memory metafile.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:HMF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="METAFILEPICT-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="METAFILEPICT"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class METAFILEPICT-->
+ <!--Class PICF-->
+ <UML:Class xmi.id="PICF" name="PICF">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcb">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>number of bytes in the PIC structure plus size of following
+ picture data which may be a Window's metafile, a bitmap, or the
+ filename of a TIFF file. In the case of a Macintosh PICT picture,
+ this includes the size of the PIC, the standard "x" metafile, and
+ the Macintosh PICT data. See Appendix B for more information.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LCB</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cbHeader">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>number of bytes in the PIC (to allow for future
+ expansion).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CBHEADER</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="mfp">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>If a Windows metafile is stored immediately following the PIC
+ structure, the mfp is a Window's METAFILEPICT structure. When the
+ data immediately following the PIC is a TIFF filename, mfp.mm == 98
+ If a bitmap is stored after the pic, mfp.mm == 99
+ When the PIC describes a bitmap, mfp.xExt is the width of the
+ bitmap in pixels and mfp.yExt is the height of the bitmap in
+ pixels..
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:MFP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="METAFILEPICT"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="bm_rcWinMF">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Window's bitmap structure when PIC describes a BITMAP (14
+ bytes).
+ Rect for window origin and extents when metafile is stored --
+ ignored if 0 (8 bytes).</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BM_RCWINMF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dxaGoal">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>horizontal measurement in twips of the rectangle the picture
+ should be imaged within. when scaling bitmaps, dxaGoal and dyaGoal
+ may be ignored if the operation would cause the bitmap to shrink or
+ grow by a non -power-of-two factor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DXAGOAL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dyaGoal">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>vertical measurement in twips of the rectangle the picture
+ should be imaged within.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DYAGOAL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="mx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>horizontal scaling factor supplied by user expressed in .001%
+ units.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:MX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="my">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>vertical scaling factor supplied by user expressed in .001%
+ units.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>22</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:MY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dxaCropLeft">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the amount the picture has been cropped on the left in twips.
+ for all of the Crop values, a positive measurement means the
+ specified border has been moved inward from its original setting
+ and a negative measurement means the border has been moved outward
+ from its original setting.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>24</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DXACROPLEFT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dyaCropTop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the amount the picture has been cropped on the top in
+ twips.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>26</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DYACROPTOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dxaCropRight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the amount the picture has been cropped on the right in
+ twips.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DXACROPRIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dyaCropBottom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the amount the picture has been cropped on the bottom in
+ twips.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DYACROPBOTTOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Obsolete, superseded by brcTop, etc. In WinWord 1.x, it was the
+ type of border to place around picture
+ 0 single
+ 1 thick
+ 2 double
+ 3 shadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>000F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fFrameEmpty">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>picture consists of a single frame</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0010</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FFRAMEEMPTY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fBitmap">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>==1, when picture is just a bitmap</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0020</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FBITMAP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fDrawHatch">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>==1, when picture is an active OLE object</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0040</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FDRAWHATCH</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fError">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>==1, when picture is just an error message</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FERROR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="bpp">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>bits per pixel
+ 0 unknown
+ 1 monochrome
+ 4 VGA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FF00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BPP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcTop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>specification for border above picture</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCTOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcLeft">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>specification for border to the left of picture</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCLEFT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcBottom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>specification for border below picture</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>36</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCBOTTOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcRight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>specification for border to the right of picture</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCRIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dxaOrigin">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>horizontal offset of hand annotation origin</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DXAORIGIN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dyaOrigin">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>vertical offset of hand annotation origin</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>40</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DYAORIGIN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cProps">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>42</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CPROPS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="DffRecord">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:DffRecord</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="DffRecord"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="PICF-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="PICF"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class PICF-->
+ <!--Class FSPA-->
+ <UML:Class xmi.id="FSPA" name="FSPA">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>26</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="spid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape Identifier. Used in conjunction with the office art data
+ (found via fcDggInfo in the FIB) to find the actual
+ data for this shape.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:SPID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="xaLeft">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>xa left of rectangle enclosing shape relative to the origin of
+ the shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:XALEFT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="yaTop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>ya top of rectangle enclosing shape relative to the origin of
+ the shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:YATOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="xaRight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>xa right of rectangle enclosing shape relative to the origin of
+ the shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:XARIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="yaBottom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>ya bottom of the rectangle enclosing shape relative to the
+ origin of the shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:YABOTTOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fHdr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1 in the undo doc when shape is from the header doc, 0
+ otherwise (undefined when not in the undo doc)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FHDR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="bx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>x position of shape relative to anchor CP
+ 0 relative to page margin
+ 1 relative to top of page
+ 2 relative to text (column for horizontal text; paragraph for
+ vertical text)
+ 3 reserved for future use</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0006</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="by">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>y position of shape relative to anchor CP
+ 0 relative to page margin
+ 1 relative to top of page
+ 2 relative to text (paragraph for horizontal text; column for
+ vertical text)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0018</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>text wrapping mode
+ 0 like 2, but doesn't require absolute object
+ 1 no text next to shape
+ 2 wrap around absolute object
+ 3 wrap as if no object present
+ 4 wrap tightly around object
+ 5 wrap tightly, but allow holes
+ 6-15 reserved for future use</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>01E0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:WR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wrk">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>text wrapping mode type (valid only for wrapping modes 2 and
+ 4
+ 0 wrap both sides
+ 1 wrap only on left
+ 2 wrap only on right
+ 3 wrap only on largest side</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1E00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:WRK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fRcaSimple">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when set, temporarily overrides bx, by, forcing the xaLeft,
+ xaRight, yaTop, and yaBottom fields to all be page relative.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FRCASIMPLE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fBelowText">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1 shape is below text
+ 0 shape is above text</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FBELOWTEXT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fAnchorLock">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1 anchor is locked
+ 0 anchor is not locked</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FANCHORLOCK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cTxbx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>count of textboxes in shape (undo doc only)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CTXBX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="shape">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="DffRecord"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FSPA-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FSPA"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FSPA-->
+ <!--Class FLD-->
+ <UML:Class xmi.id="FLD" name="FLD">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ch">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>type of field boundary the FLD describes:
+ 19 field begin mark
+ 20 field separator mark
+ 21 field end mark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CH</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused0_5">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>E0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED0_5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="flt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>fld.ch == 19 (field begin mark) -&gt; U8 field type (see flt
+ table below).
+ fld.ch == 20 (field separator mark) -&gt; not present
+ fld.ch == 21 (field end mark) -&gt;
+ fDiffer:1 - ignored for saved file
+ fZombieEmbed:1 - 1 when result still believes this field is an
+ EMBED or LINK field.
+ fResultDirty:1 - when user has edited or formatted the result. ==
+ 0 otherwise.
+ fResultEdited:1 - 1 when user has inserted text into or deleted
+ text from the result.
+ fLocked:1 - 1 when field is locked from recalc.
+ fPrivateResult:1 - 1 whenever the result of the field is never to
+ be shown.
+ fNested:1 - 1 when field is nested within another field.
+ fHasSep:1 - 1 when field has a field separator.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FLT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FLD-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FLD"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FLD-->
+ <!--Class Rectangle-->
+ <UML:Class xmi.id="Rectangle" name="Rectangle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="left">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>left margin</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="top">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>top margin</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="right">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>right margin</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="bottom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>bottom margin</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="Rectangle-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="Rectangle"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class Rectangle-->
+ <!--Class FOPTE-->
+ <UML:Class xmi.id="FOPTE" name="FOPTE">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="withindex"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="resolvenoauto"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Property ID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3fff</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fBid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>value is a blip ID u2013 only valid if fComplex is FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfBid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fComplex">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>complex property, value is length</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfComplex</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="op">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="name">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpname</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="value">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpvalue</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="Value"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FOPTE-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FOPTE"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FOPTE-->
+ <!--Class FDGG-->
+ <UML:Class xmi.id="FDGG" name="FDGG">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="spidMax">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The current maximum shape ID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpspidMax</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cidcl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The number of ID clusters (FIDCLs)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcidcl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cspSaved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The total number of shapes saved (including deleted shapes, if undo information was saved)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcspSaved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cdgSaved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The total number of drawings saved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcdgSaved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FDGG-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FDGG"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FDGG-->
+ <!--Class FIDCL-->
+ <UML:Class xmi.id="FIDCL" name="FIDCL">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="dgid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>DG owning the SPIDs in this cluster</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdgid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cspidCur">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>number of SPIDs used so far</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcspidCur</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FIDCL-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FIDCL"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FIDCL-->
+ <!--Class FBSE-->
+ <UML:Class xmi.id="FBSE" name="FBSE">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x24</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="btWin32">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Required type on Win32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpbtWin32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="btMacOS">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Required type on Mac</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpbtMacOS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="rgbUid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Identifier of blip</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shprgbUid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="tag">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>currently unused</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shptag</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="size">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip size in stream</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpsize</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cRef">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Reference count on the blip</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x18</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcRef</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="foDelay">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>File offset in the delay stream</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1c</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfoDelay</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="usage">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>How this blip is used (MSOBLIPUSAGE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpusage</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cbName">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>length of the blip name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x21</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcbName</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused2">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>for the future</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x22</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpunused2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused3">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>for the future</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x23</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpunused3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FBSE-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FBSE"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FBSE-->
+ <!--Class FRD-->
+ <UML:Class xmi.id="FRD" name="FRD">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="pid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:FRD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FRD-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FRD"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FRD-->
+ <!--Class ATRD-->
+ <UML:Class xmi.id="ATRD" name="ATRD">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ibst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>index into GrpXstAtnOwners</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:IBST</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ak">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0003</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:AK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unused22_2">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FFFC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>:14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:UNUSED22_2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="grfbmc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>18</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:GRFBMC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lTagBkmk">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>when not -1, this tag identifies the annotation bookmark that
+ locates the range of CPs in the main document which this annotation
+ references.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LTAGBKMK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="S32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="xstUsrInitl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:xstUsrInitl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>pascal-style string holding initials of annotation author</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="ATRD-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="ATRD"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class ATRD-->
+ <!--WW8 resources-->
+ <!--SPRMS-->
+ <!--SPRM sprmPIstdPermute-->
+ <UML:Class xmi.id="sprmPIstdPermute" name="sprmPIstdPermute">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC601</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPIstdPermute</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPIstdPermute-->
+ <!--SPRM sprmPIncLvl-->
+ <UML:Class xmi.id="sprmPIncLvl" name="sprmPIncLvl">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2602</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPIncLvl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPIncLvl-->
+ <!--SPRM sprmPJcExtra-->
+ <UML:Class xmi.id="sprmPJcExtra" name="sprmPJcExtra">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2461</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPJcExtra</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPJcExtra-->
+ <!--SPRM sprmPJc-->
+ <UML:Class xmi.id="sprmPJc" name="sprmPJc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2403</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPJc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPJc-->
+ <!--SPRM sprmPFSideBySide-->
+ <UML:Class xmi.id="sprmPFSideBySide" name="sprmPFSideBySide">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2404</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFSideBySide</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFSideBySide-->
+ <!--SPRM sprmPFKeep-->
+ <UML:Class xmi.id="sprmPFKeep" name="sprmPFKeep">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2405</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFKeep</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFKeep-->
+ <!--SPRM sprmPFKeepFollow-->
+ <UML:Class xmi.id="sprmPFKeepFollow" name="sprmPFKeepFollow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2406</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFKeepFollow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFKeepFollow-->
+ <!--SPRM sprmPFPageBreakBefore-->
+ <UML:Class xmi.id="sprmPFPageBreakBefore" name="sprmPFPageBreakBefore">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2407</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFPageBreakBefore</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFPageBreakBefore-->
+ <!--SPRM sprmPBrcl-->
+ <UML:Class xmi.id="sprmPBrcl" name="sprmPBrcl">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2408</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPBrcl-->
+ <!--SPRM sprmPBrcp-->
+ <UML:Class xmi.id="sprmPBrcp" name="sprmPBrcp">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2409</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcp</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPBrcp-->
+ <!--SPRM sprmPIlvl-->
+ <UML:Class xmi.id="sprmPIlvl" name="sprmPIlvl">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x260A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPIlvl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPIlvl-->
+ <!--SPRM sprmPIlfo-->
+ <UML:Class xmi.id="sprmPIlfo" name="sprmPIlfo">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x460B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPIlfo</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPIlfo-->
+ <!--SPRM sprmPFNoLineNumb-->
+ <UML:Class xmi.id="sprmPFNoLineNumb" name="sprmPFNoLineNumb">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x240C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFNoLineNumb</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFNoLineNumb-->
+ <!--SPRM sprmPChgTabsPapx-->
+ <UML:Class xmi.id="sprmPChgTabsPapx" name="sprmPChgTabsPapx">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC60D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPChgTabsPapx</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="dxaDel">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:dxaDel</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>array of tab positions for which tabs should be deleted</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="S16"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="dxaAdd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:dxaAdd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>array of tab positions for which tabs should be added</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="S16"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="tbdAdd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:tbdAdd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>array of tab descriptors corresponding to rgdxaAdd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="TBD"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPChgTabsPapx-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPChgTabsPapx"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPChgTabsPapx-->
+ <!--SPRM sprmPDxaRight-->
+ <UML:Class xmi.id="sprmPDxaRight" name="sprmPDxaRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x840E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDxaRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDxaRight-->
+ <!--SPRM sprmPDxaLeft-->
+ <UML:Class xmi.id="sprmPDxaLeft" name="sprmPDxaLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x840F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDxaLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDxaLeft-->
+ <!--SPRM sprmPNest-->
+ <UML:Class xmi.id="sprmPNest" name="sprmPNest">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4610</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPNest</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPNest-->
+ <!--SPRM sprmPDxaLeft1-->
+ <UML:Class xmi.id="sprmPDxaLeft1" name="sprmPDxaLeft1">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8411</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDxaLeft1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDxaLeft1-->
+ <!--SPRM sprmPDyaLine-->
+ <UML:Class xmi.id="sprmPDyaLine" name="sprmPDyaLine">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6412</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDyaLine</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDyaLine-->
+ <!--SPRM sprmPDyaBefore-->
+ <UML:Class xmi.id="sprmPDyaBefore" name="sprmPDyaBefore">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xA413</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDyaBefore</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDyaBefore-->
+ <!--SPRM sprmPDyaAfter-->
+ <UML:Class xmi.id="sprmPDyaAfter" name="sprmPDyaAfter">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xA414</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDyaAfter</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDyaAfter-->
+ <!--SPRM sprmPChgTabs-->
+ <UML:Class xmi.id="sprmPChgTabs" name="sprmPChgTabs">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC615</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPChgTabs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPChgTabs-->
+ <!--SPRM sprmPFInTable-->
+ <UML:Class xmi.id="sprmPFInTable" name="sprmPFInTable">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2416</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFInTable</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFInTable-->
+ <!--SPRM sprmPCell-->
+ <UML:Class xmi.id="sprmPCell" name="sprmPCell">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x244b</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPCell</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPCell-->
+ <!--SPRM sprmPRow-->
+ <UML:Class xmi.id="sprmPRow" name="sprmPRow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x244c</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPRow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPRow-->
+ <!--SPRM sprmPFTtp-->
+ <UML:Class xmi.id="sprmPFTtp" name="sprmPFTtp">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2417</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFTtp</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFTtp-->
+ <!--SPRM sprmPDxaAbs-->
+ <UML:Class xmi.id="sprmPDxaAbs" name="sprmPDxaAbs">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8418</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDxaAbs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDxaAbs-->
+ <!--SPRM sprmPDyaAbs-->
+ <UML:Class xmi.id="sprmPDyaAbs" name="sprmPDyaAbs">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8419</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDyaAbs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDyaAbs-->
+ <!--SPRM sprmPDxaWidth-->
+ <UML:Class xmi.id="sprmPDxaWidth" name="sprmPDxaWidth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x841A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDxaWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDxaWidth-->
+ <!--SPRM sprmPPc-->
+ <UML:Class xmi.id="sprmPPc" name="sprmPPc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x261B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPPc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPPc-->
+ <!--SPRM sprmPBrcTop10-->
+ <UML:Class xmi.id="sprmPBrcTop10" name="sprmPBrcTop10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x461C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcTop10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPBrcTop10-->
+ <!--SPRM sprmPBrcLeft10-->
+ <UML:Class xmi.id="sprmPBrcLeft10" name="sprmPBrcLeft10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x461D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcLeft10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPBrcLeft10-->
+ <!--SPRM sprmPBrcBottom10-->
+ <UML:Class xmi.id="sprmPBrcBottom10" name="sprmPBrcBottom10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x461E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcBottom10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPBrcBottom10-->
+ <!--SPRM sprmPBrcRight10-->
+ <UML:Class xmi.id="sprmPBrcRight10" name="sprmPBrcRight10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x461F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcRight10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPBrcRight10-->
+ <!--SPRM sprmPBrcBetween10-->
+ <UML:Class xmi.id="sprmPBrcBetween10" name="sprmPBrcBetween10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4620</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcBetween10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPBrcBetween10-->
+ <!--SPRM sprmPBrcBar10-->
+ <UML:Class xmi.id="sprmPBrcBar10" name="sprmPBrcBar10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4621</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcBar10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPBrcBar10-->
+ <!--SPRM sprmPDxaFromText10-->
+ <UML:Class xmi.id="sprmPDxaFromText10" name="sprmPDxaFromText10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4622</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDxaFromText10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDxaFromText10-->
+ <!--SPRM sprmPWr-->
+ <UML:Class xmi.id="sprmPWr" name="sprmPWr">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2423</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPWr</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPWr-->
+ <!--SPRM sprmPBrcBetween-->
+ <UML:Class xmi.id="sprmPBrcBetween" name="sprmPBrcBetween">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6428</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcBetween</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBetween-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBrcBetween"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBrcBetween-->
+ <!--SPRM sprmPBrcBar-->
+ <UML:Class xmi.id="sprmPBrcBar" name="sprmPBrcBar">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6629</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcBar</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBar-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBrcBar"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBrcBar-->
+ <!--SPRM sprmPFNoAutoHyph-->
+ <UML:Class xmi.id="sprmPFNoAutoHyph" name="sprmPFNoAutoHyph">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x242A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFNoAutoHyph</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFNoAutoHyph-->
+ <!--SPRM sprmPWHeightAbs-->
+ <UML:Class xmi.id="sprmPWHeightAbs" name="sprmPWHeightAbs">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x442B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPWHeightAbs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPWHeightAbs-->
+ <!--SPRM sprmPDcs-->
+ <UML:Class xmi.id="sprmPDcs" name="sprmPDcs">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x442C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDcs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDcs-->
+ <!--SPRM sprmPShd-->
+ <UML:Class xmi.id="sprmPShd" name="sprmPShd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x442D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPShd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPShd-->
+ <!--SPRM sprmPDyaFromText-->
+ <UML:Class xmi.id="sprmPDyaFromText" name="sprmPDyaFromText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x842E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDyaFromText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDyaFromText-->
+ <!--SPRM sprmPDxaFromText-->
+ <UML:Class xmi.id="sprmPDxaFromText" name="sprmPDxaFromText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x842F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDxaFromText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDxaFromText-->
+ <!--SPRM sprmPFLocked-->
+ <UML:Class xmi.id="sprmPFLocked" name="sprmPFLocked">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2430</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFLocked</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFLocked-->
+ <!--SPRM sprmPFWidowControl-->
+ <UML:Class xmi.id="sprmPFWidowControl" name="sprmPFWidowControl">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2431</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFWidowControl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFWidowControl-->
+ <!--SPRM sprmPRuler-->
+ <UML:Class xmi.id="sprmPRuler" name="sprmPRuler">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC632</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPRuler</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPRuler-->
+ <!--SPRM sprmPFKinsoku-->
+ <UML:Class xmi.id="sprmPFKinsoku" name="sprmPFKinsoku">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2433</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFKinsoku</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFKinsoku-->
+ <!--SPRM sprmPFWordWrap-->
+ <UML:Class xmi.id="sprmPFWordWrap" name="sprmPFWordWrap">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2434</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFWordWrap</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFWordWrap-->
+ <!--SPRM sprmPFOverflowPunct-->
+ <UML:Class xmi.id="sprmPFOverflowPunct" name="sprmPFOverflowPunct">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2435</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFOverflowPunct</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFOverflowPunct-->
+ <!--SPRM sprmPFTopLinePunct-->
+ <UML:Class xmi.id="sprmPFTopLinePunct" name="sprmPFTopLinePunct">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2436</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFTopLinePunct</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFTopLinePunct-->
+ <!--SPRM sprmPFAutoSpaceDE-->
+ <UML:Class xmi.id="sprmPFAutoSpaceDE" name="sprmPFAutoSpaceDE">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2437</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFAutoSpaceDE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFAutoSpaceDE-->
+ <!--SPRM sprmPFAutoSpaceDN-->
+ <UML:Class xmi.id="sprmPFAutoSpaceDN" name="sprmPFAutoSpaceDN">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2438</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFAutoSpaceDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFAutoSpaceDN-->
+ <!--SPRM sprmPWAlignFont-->
+ <UML:Class xmi.id="sprmPWAlignFont" name="sprmPWAlignFont">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4439</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPWAlignFont</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPWAlignFont-->
+ <!--SPRM sprmPFrameTextFlow-->
+ <UML:Class xmi.id="sprmPFrameTextFlow" name="sprmPFrameTextFlow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x443A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFrameTextFlow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFrameTextFlow-->
+ <!--SPRM sprmPISnapBaseLine-->
+ <UML:Class xmi.id="sprmPISnapBaseLine" name="sprmPISnapBaseLine">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x243B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPISnapBaseLine</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPISnapBaseLine-->
+ <!--SPRM sprmPAnld-->
+ <UML:Class xmi.id="sprmPAnld" name="sprmPAnld">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC63E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPAnld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPAnld-->
+ <!--SPRM sprmPPropRMark-->
+ <UML:Class xmi.id="sprmPPropRMark" name="sprmPPropRMark">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC63F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPPropRMark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPPropRMark-->
+ <!--SPRM sprmPOutLvl-->
+ <UML:Class xmi.id="sprmPOutLvl" name="sprmPOutLvl">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2640</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPOutLvl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPOutLvl-->
+ <!--SPRM sprmPFBiDi-->
+ <UML:Class xmi.id="sprmPFBiDi" name="sprmPFBiDi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2441</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFBiDi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFBiDi-->
+ <!--SPRM sprmPFNumRMIns-->
+ <UML:Class xmi.id="sprmPFNumRMIns" name="sprmPFNumRMIns">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2443</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFNumRMIns</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFNumRMIns-->
+ <!--SPRM sprmPCrLf-->
+ <UML:Class xmi.id="sprmPCrLf" name="sprmPCrLf">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2444</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPCrLf</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPCrLf-->
+ <!--SPRM sprmPNumRM-->
+ <UML:Class xmi.id="sprmPNumRM" name="sprmPNumRM">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xC645</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPNumRM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPNumRM-->
+ <!--SPRM sprmPHugePapx-->
+ <UML:Class xmi.id="sprmPHugePapx" name="sprmPHugePapx">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6645</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPHugePapx</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPHugePapx-->
+ <!--SPRM sprmPFUsePgsuSettings-->
+ <UML:Class xmi.id="sprmPFUsePgsuSettings" name="sprmPFUsePgsuSettings">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2447</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFUsePgsuSettings</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFUsePgsuSettings-->
+ <!--SPRM sprmPFAdjustRight-->
+ <UML:Class xmi.id="sprmPFAdjustRight" name="sprmPFAdjustRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2448</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPFAdjustRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPFAdjustRight-->
+ <!--SPRM sprmCFRMarkDel-->
+ <UML:Class xmi.id="sprmCFRMarkDel" name="sprmCFRMarkDel">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0800</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFRMarkDel</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFRMarkDel-->
+ <!--SPRM sprmCFRMark-->
+ <UML:Class xmi.id="sprmCFRMark" name="sprmCFRMark">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0801</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFRMark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFRMark-->
+ <!--SPRM sprmCFFldVanish-->
+ <UML:Class xmi.id="sprmCFFldVanish" name="sprmCFFldVanish">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0802</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFFldVanish</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFFldVanish-->
+ <!--SPRM sprmCPicLocation-->
+ <UML:Class xmi.id="sprmCPicLocation" name="sprmCPicLocation">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6A03</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCPicLocation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPic">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>picture location</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcPic</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmCPicLocation-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmCPicLocation"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmCPicLocation-->
+ <!--SPRM sprmCIbstRMark-->
+ <UML:Class xmi.id="sprmCIbstRMark" name="sprmCIbstRMark">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4804</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIbstRMark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIbstRMark-->
+ <!--SPRM sprmCDttmRMark-->
+ <UML:Class xmi.id="sprmCDttmRMark" name="sprmCDttmRMark">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6805</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCDttmRMark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCDttmRMark-->
+ <!--SPRM sprmCFData-->
+ <UML:Class xmi.id="sprmCFData" name="sprmCFData">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0806</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFData</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFData-->
+ <!--SPRM sprmCIdslRMark-->
+ <UML:Class xmi.id="sprmCIdslRMark" name="sprmCIdslRMark">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4807</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIdslRMark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIdslRMark-->
+ <!--SPRM sprmCChs-->
+ <UML:Class xmi.id="sprmCChs" name="sprmCChs">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xEA08</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCChs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCChs-->
+ <!--SPRM sprmCSymbol-->
+ <UML:Class xmi.id="sprmCSymbol" name="sprmCSymbol">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6A09</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCSymbol</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCSymbol-->
+ <!--SPRM sprmCFOle2-->
+ <UML:Class xmi.id="sprmCFOle2" name="sprmCFOle2">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x080A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFOle2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFOle2-->
+ <!--SPRM sprmCIdCharType-->
+ <UML:Class xmi.id="sprmCIdCharType" name="sprmCIdCharType">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x480B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIdCharType</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIdCharType-->
+ <!--SPRM sprmCHighlight-->
+ <UML:Class xmi.id="sprmCHighlight" name="sprmCHighlight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A0C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHighlight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHighlight-->
+ <!--SPRM sprmCObjLocation-->
+ <UML:Class xmi.id="sprmCObjLocation" name="sprmCObjLocation">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x680E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCObjLocation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCObjLocation-->
+ <!--SPRM sprmCFFtcAsciSymb-->
+ <UML:Class xmi.id="sprmCFFtcAsciSymb" name="sprmCFFtcAsciSymb">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFFtcAsciSymb</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFFtcAsciSymb-->
+ <!--SPRM sprmCIstd-->
+ <UML:Class xmi.id="sprmCIstd" name="sprmCIstd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A30</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIstd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIstd-->
+ <!--SPRM sprmCIstdPermute-->
+ <UML:Class xmi.id="sprmCIstdPermute" name="sprmCIstdPermute">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCA31</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIstdPermute</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIstdPermute-->
+ <!--SPRM sprmCDefault-->
+ <UML:Class xmi.id="sprmCDefault" name="sprmCDefault">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCDefault</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCDefault-->
+ <!--SPRM sprmCPlain-->
+ <UML:Class xmi.id="sprmCPlain" name="sprmCPlain">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A33</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCPlain</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCPlain-->
+ <!--SPRM sprmCKcd-->
+ <UML:Class xmi.id="sprmCKcd" name="sprmCKcd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A34</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCKcd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCKcd-->
+ <!--SPRM sprmCFBold-->
+ <UML:Class xmi.id="sprmCFBold" name="sprmCFBold">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0835</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFBold</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFBold-->
+ <!--SPRM sprmCFItalic-->
+ <UML:Class xmi.id="sprmCFItalic" name="sprmCFItalic">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0836</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFItalic</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFItalic-->
+ <!--SPRM sprmCFStrike-->
+ <UML:Class xmi.id="sprmCFStrike" name="sprmCFStrike">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0837</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFStrike</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFStrike-->
+ <!--SPRM sprmCFOutline-->
+ <UML:Class xmi.id="sprmCFOutline" name="sprmCFOutline">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0838</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFOutline</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFOutline-->
+ <!--SPRM sprmCFShadow-->
+ <UML:Class xmi.id="sprmCFShadow" name="sprmCFShadow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0839</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFShadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFShadow-->
+ <!--SPRM sprmCFSmallCaps-->
+ <UML:Class xmi.id="sprmCFSmallCaps" name="sprmCFSmallCaps">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x083A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFSmallCaps</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFSmallCaps-->
+ <!--SPRM sprmCFCaps-->
+ <UML:Class xmi.id="sprmCFCaps" name="sprmCFCaps">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x083B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFCaps</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFCaps-->
+ <!--SPRM sprmCFVanish-->
+ <UML:Class xmi.id="sprmCFVanish" name="sprmCFVanish">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x083C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFVanish</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFVanish-->
+ <!--SPRM sprmCFtcDefault-->
+ <UML:Class xmi.id="sprmCFtcDefault" name="sprmCFtcDefault">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A3D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFtcDefault</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFtcDefault-->
+ <!--SPRM sprmCKul-->
+ <UML:Class xmi.id="sprmCKul" name="sprmCKul">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A3E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCKul</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCKul-->
+ <!--SPRM sprmCSizePos-->
+ <UML:Class xmi.id="sprmCSizePos" name="sprmCSizePos">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xEA3F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCSizePos</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCSizePos-->
+ <!--SPRM sprmCDxaSpace-->
+ <UML:Class xmi.id="sprmCDxaSpace" name="sprmCDxaSpace">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8840</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCDxaSpace</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCDxaSpace-->
+ <!--SPRM sprmCLid-->
+ <UML:Class xmi.id="sprmCLid" name="sprmCLid">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A41</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCLid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCLid-->
+ <!--SPRM sprmCIco-->
+ <UML:Class xmi.id="sprmCIco" name="sprmCIco">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A42</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIco</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIco-->
+ <!--SPRM sprmCHps-->
+ <UML:Class xmi.id="sprmCHps" name="sprmCHps">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A43</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHps</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHps-->
+ <!--SPRM sprmCHpsInc-->
+ <UML:Class xmi.id="sprmCHpsInc" name="sprmCHpsInc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A44</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHpsInc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHpsInc-->
+ <!--SPRM sprmCHpsPos-->
+ <UML:Class xmi.id="sprmCHpsPos" name="sprmCHpsPos">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4845</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHpsPos</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHpsPos-->
+ <!--SPRM sprmCHpsPosAdj-->
+ <UML:Class xmi.id="sprmCHpsPosAdj" name="sprmCHpsPosAdj">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A46</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHpsPosAdj</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHpsPosAdj-->
+ <!--SPRM sprmCMajority-->
+ <UML:Class xmi.id="sprmCMajority" name="sprmCMajority">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCA47</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCMajority</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCMajority-->
+ <!--SPRM sprmCIss-->
+ <UML:Class xmi.id="sprmCIss" name="sprmCIss">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A48</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIss</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIss-->
+ <!--SPRM sprmCHpsNew50-->
+ <UML:Class xmi.id="sprmCHpsNew50" name="sprmCHpsNew50">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCA49</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHpsNew50</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHpsNew50-->
+ <!--SPRM sprmCHpsInc1-->
+ <UML:Class xmi.id="sprmCHpsInc1" name="sprmCHpsInc1">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCA4A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHpsInc1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHpsInc1-->
+ <!--SPRM sprmCHpsKern-->
+ <UML:Class xmi.id="sprmCHpsKern" name="sprmCHpsKern">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x484B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHpsKern</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHpsKern-->
+ <!--SPRM sprmCMajority50-->
+ <UML:Class xmi.id="sprmCMajority50" name="sprmCMajority50">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCA4C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCMajority50</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCMajority50-->
+ <!--SPRM sprmCHpsMul-->
+ <UML:Class xmi.id="sprmCHpsMul" name="sprmCHpsMul">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A4D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHpsMul</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHpsMul-->
+ <!--SPRM sprmCYsri-->
+ <UML:Class xmi.id="sprmCYsri" name="sprmCYsri">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x484E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCYsri</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCYsri-->
+ <!--SPRM sprmCRgFtc0-->
+ <UML:Class xmi.id="sprmCRgFtc0" name="sprmCRgFtc0">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A4F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCRgFtc0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCRgFtc0-->
+ <!--SPRM sprmCRgFtc1-->
+ <UML:Class xmi.id="sprmCRgFtc1" name="sprmCRgFtc1">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A50</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCRgFtc1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCRgFtc1-->
+ <!--SPRM sprmCRgFtc2-->
+ <UML:Class xmi.id="sprmCRgFtc2" name="sprmCRgFtc2">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A51</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCRgFtc2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCRgFtc2-->
+ <!--SPRM sprmCCharScale-->
+ <UML:Class xmi.id="sprmCCharScale" name="sprmCCharScale">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4852</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCCharScale</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCCharScale-->
+ <!--SPRM sprmCFDStrike-->
+ <UML:Class xmi.id="sprmCFDStrike" name="sprmCFDStrike">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2A53</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFDStrike</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFDStrike-->
+ <!--SPRM sprmCFImprint-->
+ <UML:Class xmi.id="sprmCFImprint" name="sprmCFImprint">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0854</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFImprint</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFImprint-->
+ <!--SPRM sprmCFSpec-->
+ <UML:Class xmi.id="sprmCFSpec" name="sprmCFSpec">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0855</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFSpec</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFSpec-->
+ <!--SPRM sprmCFObj-->
+ <UML:Class xmi.id="sprmCFObj" name="sprmCFObj">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0856</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFObj</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFObj-->
+ <!--SPRM sprmCPropRMark-->
+ <UML:Class xmi.id="sprmCPropRMark" name="sprmCPropRMark">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCA57</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCPropRMark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCPropRMark-->
+ <!--SPRM sprmCFEmboss-->
+ <UML:Class xmi.id="sprmCFEmboss" name="sprmCFEmboss">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0858</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFEmboss</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFEmboss-->
+ <!--SPRM sprmCSfxText-->
+ <UML:Class xmi.id="sprmCSfxText" name="sprmCSfxText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2859</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCSfxText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCSfxText-->
+ <!--SPRM sprmCFBiDi-->
+ <UML:Class xmi.id="sprmCFBiDi" name="sprmCFBiDi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x085A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFBiDi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFBiDi-->
+ <!--SPRM sprmCFDiacColor-->
+ <UML:Class xmi.id="sprmCFDiacColor" name="sprmCFDiacColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x085B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFDiacColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFDiacColor-->
+ <!--SPRM sprmCFBoldBi-->
+ <UML:Class xmi.id="sprmCFBoldBi" name="sprmCFBoldBi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x085C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFBoldBi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFBoldBi-->
+ <!--SPRM sprmCFItalicBi-->
+ <UML:Class xmi.id="sprmCFItalicBi" name="sprmCFItalicBi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x085D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFItalicBi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFItalicBi-->
+ <!--SPRM sprmCFtcBi-->
+ <UML:Class xmi.id="sprmCFtcBi" name="sprmCFtcBi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A5E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFtcBi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFtcBi-->
+ <!--SPRM sprmCLidBi-->
+ <UML:Class xmi.id="sprmCLidBi" name="sprmCLidBi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x485F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCLidBi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCLidBi-->
+ <!--SPRM sprmCIcoBi-->
+ <UML:Class xmi.id="sprmCIcoBi" name="sprmCIcoBi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A60</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIcoBi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIcoBi-->
+ <!--SPRM sprmCHpsBi-->
+ <UML:Class xmi.id="sprmCHpsBi" name="sprmCHpsBi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4A61</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCHpsBi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCHpsBi-->
+ <!--SPRM sprmCDispFldRMark-->
+ <UML:Class xmi.id="sprmCDispFldRMark" name="sprmCDispFldRMark">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCA62</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCDispFldRMark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCDispFldRMark-->
+ <!--SPRM sprmCIbstRMarkDel-->
+ <UML:Class xmi.id="sprmCIbstRMarkDel" name="sprmCIbstRMarkDel">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4863</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIbstRMarkDel</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIbstRMarkDel-->
+ <!--SPRM sprmCDttmRMarkDel-->
+ <UML:Class xmi.id="sprmCDttmRMarkDel" name="sprmCDttmRMarkDel">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6864</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCDttmRMarkDel</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCDttmRMarkDel-->
+ <!--SPRM sprmCBrc-->
+ <UML:Class xmi.id="sprmCBrc" name="sprmCBrc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6865</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCBrc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCBrc-->
+ <!--SPRM sprmCShd-->
+ <UML:Class xmi.id="sprmCShd" name="sprmCShd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4866</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCShd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCShd-->
+ <!--SPRM sprmCIdslRMarkDel-->
+ <UML:Class xmi.id="sprmCIdslRMarkDel" name="sprmCIdslRMarkDel">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4867</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIdslRMarkDel</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIdslRMarkDel-->
+ <!--SPRM sprmCFUsePgsuSettings-->
+ <UML:Class xmi.id="sprmCFUsePgsuSettings" name="sprmCFUsePgsuSettings">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0868</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCFUsePgsuSettings</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCFUsePgsuSettings-->
+ <!--SPRM sprmCCpg-->
+ <UML:Class xmi.id="sprmCCpg" name="sprmCCpg">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x486B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCCpg</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCCpg-->
+ <!--SPRM sprmCRgLid0-->
+ <UML:Class xmi.id="sprmCRgLid0" name="sprmCRgLid0">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x486D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCRgLid0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCRgLid0-->
+ <!--SPRM sprmCRgLid1-->
+ <UML:Class xmi.id="sprmCRgLid1" name="sprmCRgLid1">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x486E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCRgLid1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCRgLid1-->
+ <!--SPRM sprmCIdctHint-->
+ <UML:Class xmi.id="sprmCIdctHint" name="sprmCIdctHint">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x286F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCIdctHint</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCIdctHint-->
+ <!--SPRM sprmPicBrcl-->
+ <UML:Class xmi.id="sprmPicBrcl" name="sprmPicBrcl">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2E00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPicBrcl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPicBrcl-->
+ <!--SPRM sprmPicScale-->
+ <UML:Class xmi.id="sprmPicScale" name="sprmPicScale">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCE01</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPicScale</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPicScale-->
+ <!--SPRM sprmPicBrcTop-->
+ <UML:Class xmi.id="sprmPicBrcTop" name="sprmPicBrcTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6C02</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPicBrcTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPicBrcTop-->
+ <!--SPRM sprmPicBrcLeft-->
+ <UML:Class xmi.id="sprmPicBrcLeft" name="sprmPicBrcLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6C03</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPicBrcLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPicBrcLeft-->
+ <!--SPRM sprmPicBrcBottom-->
+ <UML:Class xmi.id="sprmPicBrcBottom" name="sprmPicBrcBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6C04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPicBrcBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPicBrcBottom-->
+ <!--SPRM sprmPicBrcRight-->
+ <UML:Class xmi.id="sprmPicBrcRight" name="sprmPicBrcRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6C05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPicBrcRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPicBrcRight-->
+ <!--SPRM sprmScnsPgn-->
+ <UML:Class xmi.id="sprmScnsPgn" name="sprmScnsPgn">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmScnsPgn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmScnsPgn-->
+ <!--SPRM sprmSiHeadingPgn-->
+ <UML:Class xmi.id="sprmSiHeadingPgn" name="sprmSiHeadingPgn">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3001</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSiHeadingPgn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSiHeadingPgn-->
+ <!--SPRM sprmSOlstAnm-->
+ <UML:Class xmi.id="sprmSOlstAnm" name="sprmSOlstAnm">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD202</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSOlstAnm</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSOlstAnm-->
+ <!--SPRM sprmSDxaColWidth-->
+ <UML:Class xmi.id="sprmSDxaColWidth" name="sprmSDxaColWidth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xF203</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDxaColWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDxaColWidth-->
+ <!--SPRM sprmSDxaColSpacing-->
+ <UML:Class xmi.id="sprmSDxaColSpacing" name="sprmSDxaColSpacing">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xF204</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDxaColSpacing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDxaColSpacing-->
+ <!--SPRM sprmSFEvenlySpaced-->
+ <UML:Class xmi.id="sprmSFEvenlySpaced" name="sprmSFEvenlySpaced">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3005</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFEvenlySpaced</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFEvenlySpaced-->
+ <!--SPRM sprmSFProtected-->
+ <UML:Class xmi.id="sprmSFProtected" name="sprmSFProtected">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3006</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFProtected</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFProtected-->
+ <!--SPRM sprmSDmBinFirst-->
+ <UML:Class xmi.id="sprmSDmBinFirst" name="sprmSDmBinFirst">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5007</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDmBinFirst</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDmBinFirst-->
+ <!--SPRM sprmSDmBinOther-->
+ <UML:Class xmi.id="sprmSDmBinOther" name="sprmSDmBinOther">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5008</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDmBinOther</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDmBinOther-->
+ <!--SPRM sprmSBkc-->
+ <UML:Class xmi.id="sprmSBkc" name="sprmSBkc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3009</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSBkc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSBkc-->
+ <!--SPRM sprmSFTitlePage-->
+ <UML:Class xmi.id="sprmSFTitlePage" name="sprmSFTitlePage">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x300A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFTitlePage</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFTitlePage-->
+ <!--SPRM sprmSCcolumns-->
+ <UML:Class xmi.id="sprmSCcolumns" name="sprmSCcolumns">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x500B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSCcolumns</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSCcolumns-->
+ <!--SPRM sprmSDxaColumns-->
+ <UML:Class xmi.id="sprmSDxaColumns" name="sprmSDxaColumns">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x900C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDxaColumns</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDxaColumns-->
+ <!--SPRM sprmSFAutoPgn-->
+ <UML:Class xmi.id="sprmSFAutoPgn" name="sprmSFAutoPgn">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x300D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFAutoPgn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFAutoPgn-->
+ <!--SPRM sprmSNfcPgn-->
+ <UML:Class xmi.id="sprmSNfcPgn" name="sprmSNfcPgn">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x300E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSNfcPgn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSNfcPgn-->
+ <!--SPRM sprmSDyaPgn-->
+ <UML:Class xmi.id="sprmSDyaPgn" name="sprmSDyaPgn">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB00F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDyaPgn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDyaPgn-->
+ <!--SPRM sprmSDxaPgn-->
+ <UML:Class xmi.id="sprmSDxaPgn" name="sprmSDxaPgn">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB010</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDxaPgn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDxaPgn-->
+ <!--SPRM sprmSFPgnRestart-->
+ <UML:Class xmi.id="sprmSFPgnRestart" name="sprmSFPgnRestart">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3011</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFPgnRestart</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFPgnRestart-->
+ <!--SPRM sprmSFEndnote-->
+ <UML:Class xmi.id="sprmSFEndnote" name="sprmSFEndnote">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3012</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFEndnote</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFEndnote-->
+ <!--SPRM sprmSLnc-->
+ <UML:Class xmi.id="sprmSLnc" name="sprmSLnc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSLnc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSLnc-->
+ <!--SPRM sprmSGprfIhdt-->
+ <UML:Class xmi.id="sprmSGprfIhdt" name="sprmSGprfIhdt">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3014</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSGprfIhdt</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSGprfIhdt-->
+ <!--SPRM sprmSNLnnMod-->
+ <UML:Class xmi.id="sprmSNLnnMod" name="sprmSNLnnMod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5015</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSNLnnMod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSNLnnMod-->
+ <!--SPRM sprmSDxaLnn-->
+ <UML:Class xmi.id="sprmSDxaLnn" name="sprmSDxaLnn">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x9016</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDxaLnn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDxaLnn-->
+ <!--SPRM sprmSDyaHdrTop-->
+ <UML:Class xmi.id="sprmSDyaHdrTop" name="sprmSDyaHdrTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB017</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDyaHdrTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDyaHdrTop-->
+ <!--SPRM sprmSDyaHdrBottom-->
+ <UML:Class xmi.id="sprmSDyaHdrBottom" name="sprmSDyaHdrBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB018</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDyaHdrBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDyaHdrBottom-->
+ <!--SPRM sprmSLBetween-->
+ <UML:Class xmi.id="sprmSLBetween" name="sprmSLBetween">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3019</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSLBetween</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSLBetween-->
+ <!--SPRM sprmSVjc-->
+ <UML:Class xmi.id="sprmSVjc" name="sprmSVjc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x301A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSVjc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSVjc-->
+ <!--SPRM sprmSLnnMin-->
+ <UML:Class xmi.id="sprmSLnnMin" name="sprmSLnnMin">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x501B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSLnnMin</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSLnnMin-->
+ <!--SPRM sprmSPgnStart-->
+ <UML:Class xmi.id="sprmSPgnStart" name="sprmSPgnStart">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x501C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSPgnStart</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSPgnStart-->
+ <!--SPRM sprmSBOrientation-->
+ <UML:Class xmi.id="sprmSBOrientation" name="sprmSBOrientation">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x301D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSBOrientation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSBOrientation-->
+ <!--SPRM sprmSBCustomize-->
+ <UML:Class xmi.id="sprmSBCustomize" name="sprmSBCustomize">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x301E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSBCustomize</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSBCustomize-->
+ <!--SPRM sprmSXaPage-->
+ <UML:Class xmi.id="sprmSXaPage" name="sprmSXaPage">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB01F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSXaPage</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSXaPage-->
+ <!--SPRM sprmSYaPage-->
+ <UML:Class xmi.id="sprmSYaPage" name="sprmSYaPage">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB020</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSYaPage</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSYaPage-->
+ <!--SPRM sprmSDxaLeft-->
+ <UML:Class xmi.id="sprmSDxaLeft" name="sprmSDxaLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB021</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDxaLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDxaLeft-->
+ <!--SPRM sprmSDxaRight-->
+ <UML:Class xmi.id="sprmSDxaRight" name="sprmSDxaRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB022</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDxaRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDxaRight-->
+ <!--SPRM sprmSDyaTop-->
+ <UML:Class xmi.id="sprmSDyaTop" name="sprmSDyaTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x9023</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDyaTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDyaTop-->
+ <!--SPRM sprmSDyaBottom-->
+ <UML:Class xmi.id="sprmSDyaBottom" name="sprmSDyaBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x9024</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDyaBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDyaBottom-->
+ <!--SPRM sprmSDzaGutter-->
+ <UML:Class xmi.id="sprmSDzaGutter" name="sprmSDzaGutter">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xB025</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDzaGutter</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDzaGutter-->
+ <!--SPRM sprmSDmPaperReq-->
+ <UML:Class xmi.id="sprmSDmPaperReq" name="sprmSDmPaperReq">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5026</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDmPaperReq</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDmPaperReq-->
+ <!--SPRM sprmSPropRMark-->
+ <UML:Class xmi.id="sprmSPropRMark" name="sprmSPropRMark">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD227</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSPropRMark</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSPropRMark-->
+ <!--SPRM sprmSFBiDi-->
+ <UML:Class xmi.id="sprmSFBiDi" name="sprmSFBiDi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3228</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFBiDi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFBiDi-->
+ <!--SPRM sprmSFFacingCol-->
+ <UML:Class xmi.id="sprmSFFacingCol" name="sprmSFFacingCol">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3229</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFFacingCol</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFFacingCol-->
+ <!--SPRM sprmSFRTLGutter-->
+ <UML:Class xmi.id="sprmSFRTLGutter" name="sprmSFRTLGutter">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x322A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSFRTLGutter</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSFRTLGutter-->
+ <!--SPRM sprmSBrcTop-->
+ <UML:Class xmi.id="sprmSBrcTop" name="sprmSBrcTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x702B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSBrcTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSBrcTop-->
+ <!--SPRM sprmSBrcLeft-->
+ <UML:Class xmi.id="sprmSBrcLeft" name="sprmSBrcLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x702C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSBrcLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSBrcLeft-->
+ <!--SPRM sprmSBrcBottom-->
+ <UML:Class xmi.id="sprmSBrcBottom" name="sprmSBrcBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x702D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSBrcBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSBrcBottom-->
+ <!--SPRM sprmSBrcRight-->
+ <UML:Class xmi.id="sprmSBrcRight" name="sprmSBrcRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x702E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSBrcRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSBrcRight-->
+ <!--SPRM sprmSPgbProp-->
+ <UML:Class xmi.id="sprmSPgbProp" name="sprmSPgbProp">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x522F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSPgbProp</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSPgbProp-->
+ <!--SPRM sprmSDxtCharSpace-->
+ <UML:Class xmi.id="sprmSDxtCharSpace" name="sprmSDxtCharSpace">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7030</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDxtCharSpace</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDxtCharSpace-->
+ <!--SPRM sprmSDyaLinePitch-->
+ <UML:Class xmi.id="sprmSDyaLinePitch" name="sprmSDyaLinePitch">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x9031</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSDyaLinePitch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSDyaLinePitch-->
+ <!--SPRM sprmSClm-->
+ <UML:Class xmi.id="sprmSClm" name="sprmSClm">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5032</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSClm</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSClm-->
+ <!--SPRM sprmSTextFlow-->
+ <UML:Class xmi.id="sprmSTextFlow" name="sprmSTextFlow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5033</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmSTextFlow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmSTextFlow-->
+ <!--SPRM sprmTJc-->
+ <UML:Class xmi.id="sprmTJc" name="sprmTJc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5400</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTJc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTJc-->
+ <!--SPRM sprmTDxaLeft-->
+ <UML:Class xmi.id="sprmTDxaLeft" name="sprmTDxaLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x9601</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDxaLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTDxaLeft-->
+ <!--SPRM sprmTDxaGapHalf-->
+ <UML:Class xmi.id="sprmTDxaGapHalf" name="sprmTDxaGapHalf">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x9602</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDxaGapHalf</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTDxaGapHalf-->
+ <!--SPRM sprmTFCantSplit-->
+ <UML:Class xmi.id="sprmTFCantSplit" name="sprmTFCantSplit">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3403</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTFCantSplit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTFCantSplit-->
+ <!--SPRM sprmTTableHeader-->
+ <UML:Class xmi.id="sprmTTableHeader" name="sprmTTableHeader">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3404</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTTableHeader</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTTableHeader-->
+ <!--SPRM sprmTTableBorders-->
+ <UML:Class xmi.id="sprmTTableBorders" name="sprmTTableBorders">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD605</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTTableBorders</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="rgbbrc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:rgbrc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="BRC"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTTableBorders-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTTableBorders"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTTableBorders-->
+ <!--SPRM sprmTDefTable10-->
+ <UML:Class xmi.id="sprmTDefTable10" name="sprmTDefTable10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD606</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDefTable10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTDefTable10-->
+ <!--SPRM sprmTDyaRowHeight-->
+ <UML:Class xmi.id="sprmTDyaRowHeight" name="sprmTDyaRowHeight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x9407</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDyaRowHeight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTDyaRowHeight-->
+ <!--SPRM sprmTDefTable-->
+ <UML:Class xmi.id="sprmTDefTable" name="sprmTDefTable">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD608</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDefTable</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="cellx">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:cellx</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="U16"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="tc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:tc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="TC"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTDefTable-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTDefTable"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTDefTable-->
+ <!--SPRM sprmTDefTableShd-->
+ <UML:Class xmi.id="sprmTDefTableShd" name="sprmTDefTableShd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD609</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDefTableShd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="shd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="SHD"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTDefTableShd-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTDefTableShd"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTDefTableShd-->
+ <!--SPRM sprmTCellShd-->
+ <UML:Class xmi.id="sprmTCellShd" name="sprmTCellShd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD612</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTCellShd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="shd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:cellShd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="CellShd"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTCelShd-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTCellShd"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTCellShd-->
+ <!--SPRM sprmTTlp-->
+ <UML:Class xmi.id="sprmTTlp" name="sprmTTlp">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x740A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTTlp</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTTlp-->
+ <!--SPRM sprmTFBiDi-->
+ <UML:Class xmi.id="sprmTFBiDi" name="sprmTFBiDi">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x560B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTFBiDi</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTFBiDi-->
+ <!--SPRM sprmTHTMLProps-->
+ <UML:Class xmi.id="sprmTHTMLProps" name="sprmTHTMLProps">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x740C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTHTMLProps</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTHTMLProps-->
+ <!--SPRM sprmTSetBrc-->
+ <UML:Class xmi.id="sprmTSetBrc" name="sprmTSetBrc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD620</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTSetBrc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTSetBrc-->
+ <!--SPRM sprmTInsert-->
+ <UML:Class xmi.id="sprmTInsert" name="sprmTInsert">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7621</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTInsert</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTInsert-->
+ <!--SPRM sprmTDelete-->
+ <UML:Class xmi.id="sprmTDelete" name="sprmTDelete">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5622</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDelete</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTDelete-->
+ <!--SPRM sprmTDxaCol-->
+ <UML:Class xmi.id="sprmTDxaCol" name="sprmTDxaCol">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7623</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDxaCol</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTDxaCol-->
+ <!--SPRM sprmTMerge-->
+ <UML:Class xmi.id="sprmTMerge" name="sprmTMerge">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5624</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTMerge</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTMerge-->
+ <!--SPRM sprmTSplit-->
+ <UML:Class xmi.id="sprmTSplit" name="sprmTSplit">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5625</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTSplit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTSplit-->
+ <!--SPRM sprmTSetBrc10-->
+ <UML:Class xmi.id="sprmTSetBrc10" name="sprmTSetBrc10">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD626</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTSetBrc10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTSetBrc10-->
+ <!--SPRM sprmTSetShd-->
+ <UML:Class xmi.id="sprmTSetShd" name="sprmTSetShd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7627</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTSetShd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTSetShd-->
+ <!--SPRM sprmTSetShdOdd-->
+ <UML:Class xmi.id="sprmTSetShdOdd" name="sprmTSetShdOdd">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7628</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTSetShdOdd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTSetShdOdd-->
+ <!--SPRM sprmTTextFlow-->
+ <UML:Class xmi.id="sprmTTextFlow" name="sprmTTextFlow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7629</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTTextFlow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTTextFlow-->
+ <!--SPRM sprmTDiagLine-->
+ <UML:Class xmi.id="sprmTDiagLine" name="sprmTDiagLine">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD62A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTDiagLine</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTDiagLine-->
+ <!--SPRM sprmTVertMerge-->
+ <UML:Class xmi.id="sprmTVertMerge" name="sprmTVertMerge">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD62B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTVertMerge</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTVertMerge-->
+ <!--SPRM sprmTVertAlign-->
+ <UML:Class xmi.id="sprmTVertAlign" name="sprmTVertAlign">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD62C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTVertAlign</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTVertAlign-->
+ <!--SPRM sprmTCellTopColor-->
+ <UML:Class xmi.id="sprmTCellTopColor" name="sprmTCellTopColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD61A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTCellTopColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="cellTopColor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:cellTopColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="U32"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTCellTopColor-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTCellTopColor"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTCellTopColor-->
+ <!--SPRM sprmTCellLeftColor-->
+ <UML:Class xmi.id="sprmTCellLeftColor" name="sprmTCellLeftColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD61B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTCellLeftColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="cellLeftColor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:cellLeftColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="U32"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTCellLeftColor-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTCellLeftColor"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTCellLeftColor-->
+ <!--SPRM sprmTCellBottomColor-->
+ <UML:Class xmi.id="sprmTCellBottomColor" name="sprmTCellBottomColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD61C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTCellBottomColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="cellBottomColor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:cellBottomColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="U32"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTCellBottomColor-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTCellBottomColor"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTCellBottomColor-->
+ <!--SPRM sprmTCellRightColor-->
+ <UML:Class xmi.id="sprmTCellRightColor" name="sprmTCellRightColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD61D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTCellRightColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="cellRightColor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:cellRightColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="U32"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTCellRightColor-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTCellRightColor"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTCellRightColor-->
+ <!--SPRM sprmTGridLineProps-->
+ <UML:Class xmi.id="sprmTGridLineProps" name="sprmTGridLineProps">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD613</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTGridLineProps</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x33</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <!--
+ <UML:Operation name="gridLineProps" >
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:gridLineProps</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid" />
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return" >
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="LineProps" />
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array" />
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ -->
+ <UML:Attribute name="linePropsTop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>top line properties</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSTOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsLeft">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>left line properties</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>b</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSLEFT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsBottom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>bottom line properties</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSBOTTOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsRight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>right line properties</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1b</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSRIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsHorizontal">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>horizontal line properties</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>23</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSHORIZONTAL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsVertical">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>vertical line properties</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2b</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSVERTICAL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTGridLineProps-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTGridLineProps"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTGridLineProps-->
+ <!--SPRM sprmCInsrsid-->
+ <UML:Class xmi.id="sprmCInsrsid" name="sprmCIndrsid">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6816</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:insrsid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCInsrsid-->
+ <!--SPRM sprmCdelrsid-->
+ <UML:Class xmi.id="sprmCdelrsid" name="sprmCdelrsid">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6817</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:delrsid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCdelrsid-->
+ <!--SPRM sprmPTableDepth-->
+ <UML:Class xmi.id="sprmPTableDepth" name="sprmPTableDepth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6649</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPTableDepth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPTableDepth-->
+ <!--SPRM sprmTCellShadow-->
+ <UML:Class xmi.id="sprmTCellShadow" name="sprmTCellShadow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xd670</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTCellShadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="cellShadow">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:CELLSHADOW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="CellShd"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTCellShadow-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTCellShadow"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTCellShadow-->
+ <!--SPRM sprmPBrcTop-->
+ <UML:Class xmi.id="sprmPBrcTop" name="sprmPBrcTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6424</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcTop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>BRC of top line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCTOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBrcTop-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBrcTop"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBrcTop-->
+ <!--SPRM sprmPBrcLeft-->
+ <UML:Class xmi.id="sprmPBrcLeft" name="sprmPBrcLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6425</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcLeft">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>BRC of left line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCLEFT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBrcLeft-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBrcLeft"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBrcLeft-->
+ <!--SPRM sprmPBrcBottom-->
+ <UML:Class xmi.id="sprmPBrcBottom" name="sprmPBrcBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6426</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcBottom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>BRC of bottom line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCLEFT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBottom-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBrcBottom"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBrcBottom-->
+ <!--SPRM sprmPBrcRight-->
+ <UML:Class xmi.id="sprmPBrcRight" name="sprmPBrcRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6427</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcRight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>BRC of top line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCRIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBrcRight-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBrcRight"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBrcRight-->
+ <!--SPRM sprmPBrcBetween-->
+ <UML:Class xmi.id="sprmPBrcBetween" name="sprmPBrcBetween">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6428</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcBetween</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcBetween">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>BRC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCBETWEEN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBetween-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBrcBetween"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBrcBetween-->
+ <!--SPRM sprmPBrcBar-->
+ <UML:Class xmi.id="sprmPBrcBar" name="sprmPBrcBar">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6429</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBrcBar</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="brcBar">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>BRC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:BRCBAR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="BRC"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBar-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBrcBar"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBrcBar-->
+ <!--SPRM sprmPBorderTop-->
+ <UML:Class xmi.id="sprmPBorderTop" name="sprmPBorderTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xc64e</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBorderTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsTop">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>properties of top line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSTOP</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBorderTop-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBorderTop"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBorderTop-->
+ <!--SPRM sprmPBorderLeft-->
+ <UML:Class xmi.id="sprmPBorderLeft" name="sprmPBorderLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xc64f</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBorderLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsLeft">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>properties of left line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSLEFT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBorderLeft-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBorderLeft"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBorderLeft-->
+ <!--SPRM sprmPBorderBottom-->
+ <UML:Class xmi.id="sprmPBorderBottom" name="sprmPBorderBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xc650</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBorderBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsBottom">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>properties of bottom line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSBOTTOM</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBorderBottom-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBorderBottom"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBorderBottom-->
+ <!--SPRM sprmPBorderRight-->
+ <UML:Class xmi.id="sprmPBorderRight" name="sprmPBorderRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xc651</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBorderRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsRight">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>properties of right line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSRIGHT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBorderRight-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBorderRight"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBorderRight-->
+ <!--SPRM sprmPBorderBetween-->
+ <UML:Class xmi.id="sprmPBorderBetween" name="sprmPBorderBetween">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xc652</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBorderBetween</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="linePropsBetween">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>properties of line in between</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPSBETWEEN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmPBorderBetween-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmPBorderBetween"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmPBorderBetween-->
+ <!--SPRM sprmCBorder-->
+ <UML:Class xmi.id="sprmCBorder" name="sprmCBorder">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xca72</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPBorderBetween</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lineProps">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>properties of line in between</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:LINEPROPS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="LineProps"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmCBorder-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmCBorder"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmCBorder-->
+ <!--SPRM sprmTTPreferredWidth-->
+ <UML:Class xmi.id="sprmTTPreferredWidth" name="sprmTTPreferredWidth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTTPreferredWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xf614</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unit">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:unit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="preferredWidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>preferred width</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:preferredWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTTPreferredWidth-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTTPreferredWidth"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTTPreferredWidth-->
+ <!--SPRM sprmTTRLeft-->
+ <UML:Class xmi.id="sprmTTRLeft" name="sprmTTRLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTTRLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xf661</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="unit">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:unit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="trleft">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>table indent from left</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:trleft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noqname"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTTRLeft-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTTRLeft"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTTRLeft-->
+ <!--SPRMS-->
+ <!--DFFS-->
+ <!--DFF FSPGR-->
+ <UML:Class xmi.id="FSPGR" name="FSPGR">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffrecord"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xf009</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="dffid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="rectangle">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the rectangle of the grouped shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:rectangle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="Rectangle"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FSPGR-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FSPGR"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--DFF FSPGR-->
+ <!--DFF OPT-->
+ <UML:Class xmi.id="OPT" name="OPT">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffrecord"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xf00b</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="dffid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Operation name="property">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpopt</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="FOPTE"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ <UML:Operation name="extraoffset">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpoptextraoffset</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="U32"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="noresolve"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="OPT-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="OPT"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--DFF OPT-->
+ <!--DFF FSP-->
+ <UML:Class xmi.id="FSP" name="FSP">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffrecord"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xf00a</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="dffid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shptype">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>shape type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xfff0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shptype</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="shptypename">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shptypename</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>shape id</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfGroup">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>This shape is a group shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfGroup</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfChild">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Not a top-level shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfChild</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfPatriarch">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>This is the topmost group shape. Exactly one of these per drawing.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfPatriarch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfDeleted">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The shape has been deleted</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfDeleted</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfOleShape">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The shape is an OLE object</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfOleShape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfHaveMaster">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape has a hspMaster property</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfHaveMaster</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfFlipH">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape is flipped horizontally</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x40</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfFlipH</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfFlipV">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape is flipped vertically</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x80</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfFlipV</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfConnector">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Connector type of shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x100</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfConnector</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfHaveAnchor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape has an anchor of some kind</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x200</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfHaveAnchor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfBackground">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Background shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x400</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfBackground</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="shpfHaveSpt">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape has a shape type property</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x800</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>11</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfHaveSpt</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="reserved">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Not yet used</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xfffff000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FSP-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FSP"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--DFF FSP-->
+ <!--DFF DGG-->
+ <UML:Class xmi.id="DGG" name="DGG">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffrecord"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xf006</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="dffid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fdgg">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the dgg structure</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdgg</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="FDGG"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="fidcl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdgg</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="FIDCL"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="DGG-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="DGG"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--DFF DGG-->
+ <!--DFF BSE-->
+ <UML:Class xmi.id="BSE" name="BSE">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffrecord"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xf007</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="dffid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fbse">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>the FBSE structure</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfbse</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="FBSE"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="blipname">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpblipbname</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="binary">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:binary</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="Binary"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="binary"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="BSE-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="BSE"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--DFF BSE-->
+ <!--DFF SpContainer-->
+ <UML:Class xmi.id="SpContainer" name="SpContainer">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffrecord"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xf004</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="dffid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="SpContainer-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="SpContainer"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--DFF SpContainer-->
+ <!--DFFS-->
+ <!--DFFOPT-->
+ <!--DFFOPT rotation-->
+ <UML:Class xmi.id="rotation" name="rotation">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shprotation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>fixed point: 16.16
+ degrees</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT rotation-->
+ <!--DFFOPT fLockRotation-->
+ <UML:Class xmi.id="fLockRotation" name="fLockRotation">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockRotation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>119</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>No rotation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockRotation-->
+ <!--DFFOPT fLockAspectRatio-->
+ <UML:Class xmi.id="fLockAspectRatio" name="fLockAspectRatio">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockAspectRatio</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>120</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Don't allow changes in
+ aspect ratio</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockAspectRatio-->
+ <!--DFFOPT fLockPosition-->
+ <UML:Class xmi.id="fLockPosition" name="fLockPosition">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockPosition</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>121</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Don't allow the shape to
+ be moved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockPosition-->
+ <!--DFFOPT fLockAgainstSelect-->
+ <UML:Class xmi.id="fLockAgainstSelect" name="fLockAgainstSelect">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockAgainstSelect</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>122</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape may not be
+ selected</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockAgainstSelect-->
+ <!--DFFOPT fLockCropping-->
+ <UML:Class xmi.id="fLockCropping" name="fLockCropping">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockCropping</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>123</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>No cropping this
+ shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockCropping-->
+ <!--DFFOPT fLockVertices-->
+ <UML:Class xmi.id="fLockVertices" name="fLockVertices">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockVertices</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>124</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Edit Points not
+ allowed</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockVertices-->
+ <!--DFFOPT fLockText-->
+ <UML:Class xmi.id="fLockText" name="fLockText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>125</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Do not edit
+ text</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockText-->
+ <!--DFFOPT fLockAdjustHandles-->
+ <UML:Class xmi.id="fLockAdjustHandles" name="fLockAdjustHandles">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockAdjustHandles</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>126</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Do not adjust</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockAdjustHandles-->
+ <!--DFFOPT fLockAgainstGrouping-->
+ <UML:Class xmi.id="fLockAgainstGrouping" name="fLockAgainstGrouping">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockAgainstGrouping</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>127</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Do not group this
+ shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockAgainstGrouping-->
+ <!--DFFOPT lTxid-->
+ <UML:Class xmi.id="lTxid" name="lTxid">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplTxid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>128</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>id for the text, value
+ determined by the host</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lTxid-->
+ <!--DFFOPT dxTextLeft-->
+ <UML:Class xmi.id="dxTextLeft" name="dxTextLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdxTextLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>129</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1/10 inch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>margins relative to
+ shape's inscribed text rectangle (in EMUs)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dxTextLeft-->
+ <!--DFFOPT dyTextTop-->
+ <UML:Class xmi.id="dyTextTop" name="dyTextTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdyTextTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>130</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1/20 inch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dyTextTop-->
+ <!--DFFOPT dxTextRight-->
+ <UML:Class xmi.id="dxTextRight" name="dxTextRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdxTextRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>131</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1/10 inch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dxTextRight-->
+ <!--DFFOPT dyTextBottom-->
+ <UML:Class xmi.id="dyTextBottom" name="dyTextBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdyTextBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>132</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1/20 inch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dyTextBottom-->
+ <!--DFFOPT WrapText-->
+ <UML:Class xmi.id="WrapText" name="WrapText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpWrapText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>133</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Wrap text at shape
+ margins</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT WrapText-->
+ <!--DFFOPT scaleText-->
+ <UML:Class xmi.id="scaleText" name="scaleText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpscaleText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>134</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Text zoom/scale (used if
+ fFitTextToShape)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT scaleText-->
+ <!--DFFOPT anchorText-->
+ <UML:Class xmi.id="anchorText" name="anchorText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpanchorText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>135</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Top</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>How to anchor the
+ text</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT anchorText-->
+ <!--DFFOPT txflTextFlow-->
+ <UML:Class xmi.id="txflTextFlow" name="txflTextFlow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shptxflTextFlow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>136</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>HorzN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Text flow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT txflTextFlow-->
+ <!--DFFOPT cdirFont-->
+ <UML:Class xmi.id="cdirFont" name="cdirFont">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcdirFont</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>137</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>msocdir0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Font rotation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT cdirFont-->
+ <!--DFFOPT hspNext-->
+ <UML:Class xmi.id="hspNext" name="hspNext">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shphspNext</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>138</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>ID of the next shape
+ (used by Word for linked textboxes)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT hspNext-->
+ <!--DFFOPT txdir-->
+ <UML:Class xmi.id="txdir" name="txdir">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shptxdir</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>139</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>LTR</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Bi-Di Text
+ direction</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT txdir-->
+ <!--DFFOPT fSelectText-->
+ <UML:Class xmi.id="fSelectText" name="fSelectText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfSelectText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>187</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE if single click
+ selects text, FALSE if two clicks</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fSelectText-->
+ <!--DFFOPT fAutoTextMargin-->
+ <UML:Class xmi.id="fAutoTextMargin" name="fAutoTextMargin">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfAutoTextMargin</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>188</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>use host's margin
+ calculations</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fAutoTextMargin-->
+ <!--DFFOPT fRotateText-->
+ <UML:Class xmi.id="fRotateText" name="fRotateText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfRotateText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>189</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Rotate text with
+ shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fRotateText-->
+ <!--DFFOPT fFitShapeToText-->
+ <UML:Class xmi.id="fFitShapeToText" name="fFitShapeToText">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfFitShapeToText</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>190</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Size shape to fit text
+ size</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fFitShapeToText-->
+ <!--DFFOPT fFitTextToShape-->
+ <UML:Class xmi.id="fFitTextToShape" name="fFitTextToShape">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfFitTextToShape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>191</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Size text to fit shape
+ size</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fFitTextToShape-->
+ <!--DFFOPT gtextUNICODE-->
+ <UML:Class xmi.id="gtextUNICODE" name="gtextUNICODE">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextUNICODE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>192</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>UNICODE text
+ string</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextUNICODE-->
+ <!--DFFOPT gtextRTF-->
+ <UML:Class xmi.id="gtextRTF" name="gtextRTF">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextRTF</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>193</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>RTF text
+ string</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextRTF-->
+ <!--DFFOPT gtextAlign-->
+ <UML:Class xmi.id="gtextAlign" name="gtextAlign">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextAlign</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>194</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Center</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>alignment on
+ curve</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextAlign-->
+ <!--DFFOPT gtextSize-->
+ <UML:Class xmi.id="gtextSize" name="gtextSize">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextSize</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>195</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>36&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>default point
+ size</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextSize-->
+ <!--DFFOPT gtextSpacing-->
+ <UML:Class xmi.id="gtextSpacing" name="gtextSpacing">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextSpacing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>196</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>fixed point
+ 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextSpacing-->
+ <!--DFFOPT gtextFont-->
+ <UML:Class xmi.id="gtextFont" name="gtextFont">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFont</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>197</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>font family
+ name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFont-->
+ <!--DFFOPT gtextFReverseRows-->
+ <UML:Class xmi.id="gtextFReverseRows" name="gtextFReverseRows">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFReverseRows</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>240</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Reverse row
+ order</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFReverseRows-->
+ <!--DFFOPT fGtext-->
+ <UML:Class xmi.id="fGtext" name="fGtext">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfGtext</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>241</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Has text
+ effect</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fGtext-->
+ <!--DFFOPT gtextFVertical-->
+ <UML:Class xmi.id="gtextFVertical" name="gtextFVertical">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFVertical</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>242</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Rotate
+ characters</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFVertical-->
+ <!--DFFOPT gtextFKern-->
+ <UML:Class xmi.id="gtextFKern" name="gtextFKern">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFKern</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>243</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Kern
+ characters</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFKern-->
+ <!--DFFOPT gtextFTight-->
+ <UML:Class xmi.id="gtextFTight" name="gtextFTight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFTight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>244</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Tightening or
+ tracking</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFTight-->
+ <!--DFFOPT gtextFStretch-->
+ <UML:Class xmi.id="gtextFStretch" name="gtextFStretch">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFStretch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>245</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Stretch to fit
+ shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFStretch-->
+ <!--DFFOPT gtextFShrinkFit-->
+ <UML:Class xmi.id="gtextFShrinkFit" name="gtextFShrinkFit">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFShrinkFit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>246</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Char bounding
+ box</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFShrinkFit-->
+ <!--DFFOPT gtextFBestFit-->
+ <UML:Class xmi.id="gtextFBestFit" name="gtextFBestFit">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFBestFit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>247</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Scale
+ text-on-path</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFBestFit-->
+ <!--DFFOPT gtextFNormalize-->
+ <UML:Class xmi.id="gtextFNormalize" name="gtextFNormalize">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFNormalize</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>248</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Stretch char
+ height</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFNormalize-->
+ <!--DFFOPT gtextFDxMeasure-->
+ <UML:Class xmi.id="gtextFDxMeasure" name="gtextFDxMeasure">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFDxMeasure</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>249</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Do not measure along
+ path</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFDxMeasure-->
+ <!--DFFOPT gtextFBold-->
+ <UML:Class xmi.id="gtextFBold" name="gtextFBold">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFBold</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>250</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Bold font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFBold-->
+ <!--DFFOPT gtextFItalic-->
+ <UML:Class xmi.id="gtextFItalic" name="gtextFItalic">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFItalic</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>251</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Italic font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFItalic-->
+ <!--DFFOPT gtextFUnderline-->
+ <UML:Class xmi.id="gtextFUnderline" name="gtextFUnderline">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFUnderline</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>252</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Underline
+ font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFUnderline-->
+ <!--DFFOPT gtextFShadow-->
+ <UML:Class xmi.id="gtextFShadow" name="gtextFShadow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFShadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>253</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shadow font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFShadow-->
+ <!--DFFOPT gtextFSmallcaps-->
+ <UML:Class xmi.id="gtextFSmallcaps" name="gtextFSmallcaps">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFSmallcaps</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>254</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Small caps
+ font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFSmallcaps-->
+ <!--DFFOPT gtextFStrikethrough-->
+ <UML:Class xmi.id="gtextFStrikethrough" name="gtextFStrikethrough">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgtextFStrikethrough</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>255</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Strike through
+ font</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT gtextFStrikethrough-->
+ <!--DFFOPT cropFromTop-->
+ <UML:Class xmi.id="cropFromTop" name="cropFromTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcropFromTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>256</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16.16
+ fraction times total image width or height, as
+ appropriate.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT cropFromTop-->
+ <!--DFFOPT cropFromBottom-->
+ <UML:Class xmi.id="cropFromBottom" name="cropFromBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcropFromBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>257</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT cropFromBottom-->
+ <!--DFFOPT cropFromLeft-->
+ <UML:Class xmi.id="cropFromLeft" name="cropFromLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcropFromLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>258</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT cropFromLeft-->
+ <!--DFFOPT cropFromRight-->
+ <UML:Class xmi.id="cropFromRight" name="cropFromRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcropFromRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>259</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT cropFromRight-->
+ <!--DFFOPT pib-->
+ <UML:Class xmi.id="pib" name="pib">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppib</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>260</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip to
+ display</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pib-->
+ <!--DFFOPT pibName-->
+ <UML:Class xmi.id="pibName" name="pibName">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppibName</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>261</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip file
+ name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pibName-->
+ <!--DFFOPT pibFlags-->
+ <UML:Class xmi.id="pibFlags" name="pibFlags">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppibFlags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>262</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Comment</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip
+ flags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pibFlags-->
+ <!--DFFOPT pictureTransparent-->
+ <UML:Class xmi.id="pictureTransparent" name="pictureTransparent">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureTransparent</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>263</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>~0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>transparent
+ color (none if ~0UL)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureTransparent-->
+ <!--DFFOPT pictureContrast-->
+ <UML:Class xmi.id="pictureContrast" name="pictureContrast">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureContrast</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>264</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>contrast
+ setting</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureContrast-->
+ <!--DFFOPT pictureBrightness-->
+ <UML:Class xmi.id="pictureBrightness" name="pictureBrightness">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureBrightness</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>265</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>brightness
+ setting</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureBrightness-->
+ <!--DFFOPT pictureGamma-->
+ <UML:Class xmi.id="pictureGamma" name="pictureGamma">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureGamma</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>266</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16.16
+ gamma</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureGamma-->
+ <!--DFFOPT pictureId-->
+ <UML:Class xmi.id="pictureId" name="pictureId">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureId</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>267</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Host-defined
+ ID for OLE objects (usually a pointer)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureId-->
+ <!--DFFOPT pictureDblCrMod-->
+ <UML:Class xmi.id="pictureDblCrMod" name="pictureDblCrMod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureDblCrMod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>268</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>This</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Modification
+ used if shape has double shadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureDblCrMod-->
+ <!--DFFOPT pictureFillCrMod-->
+ <UML:Class xmi.id="pictureFillCrMod" name="pictureFillCrMod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureFillCrMod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>269</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureFillCrMod-->
+ <!--DFFOPT pictureLineCrMod-->
+ <UML:Class xmi.id="pictureLineCrMod" name="pictureLineCrMod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureLineCrMod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>270</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureLineCrMod-->
+ <!--DFFOPT pibPrint-->
+ <UML:Class xmi.id="pibPrint" name="pibPrint">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppibPrint</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>271</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip to
+ display when printing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pibPrint-->
+ <!--DFFOPT pibPrintName-->
+ <UML:Class xmi.id="pibPrintName" name="pibPrintName">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppibPrintName</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>272</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip file
+ name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pibPrintName-->
+ <!--DFFOPT pibPrintFlags-->
+ <UML:Class xmi.id="pibPrintFlags" name="pibPrintFlags">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppibPrintFlags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>273</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Comment</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip
+ flags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pibPrintFlags-->
+ <!--DFFOPT fNoHitTestPicture-->
+ <UML:Class xmi.id="fNoHitTestPicture" name="fNoHitTestPicture">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfNoHitTestPicture</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>316</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Do not hit
+ test the picture</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fNoHitTestPicture-->
+ <!--DFFOPT pictureGray-->
+ <UML:Class xmi.id="pictureGray" name="pictureGray">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureGray</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>317</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>grayscale
+ display</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureGray-->
+ <!--DFFOPT pictureBiLevel-->
+ <UML:Class xmi.id="pictureBiLevel" name="pictureBiLevel">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureBiLevel</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>318</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>bi-level
+ display</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureBiLevel-->
+ <!--DFFOPT pictureActive-->
+ <UML:Class xmi.id="pictureActive" name="pictureActive">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppictureActive</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>319</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Server is
+ active (OLE objects only)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pictureActive-->
+ <!--DFFOPT geoLeft-->
+ <UML:Class xmi.id="geoLeft" name="geoLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgeoLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>320</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Defines the G (geometry)
+ coordinate space.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT geoLeft-->
+ <!--DFFOPT geoTop-->
+ <UML:Class xmi.id="geoTop" name="geoTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgeoTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>321</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT geoTop-->
+ <!--DFFOPT geoRight-->
+ <UML:Class xmi.id="geoRight" name="geoRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgeoRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>322</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>21600</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT geoRight-->
+ <!--DFFOPT geoBottom-->
+ <UML:Class xmi.id="geoBottom" name="geoBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpgeoBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>323</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>21600</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT geoBottom-->
+ <!--DFFOPT shapePath-->
+ <UML:Class xmi.id="shapePath" name="shapePath">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshapePath</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>324</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>msoshapeLinesClosed</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shapePath-->
+ <!--DFFOPT pVertices-->
+ <UML:Class xmi.id="pVertices" name="pVertices">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppVertices</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>325</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>An array of points, in G
+ units.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pVertices-->
+ <!--DFFOPT pSegmentInfo-->
+ <UML:Class xmi.id="pSegmentInfo" name="pSegmentInfo">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppSegmentInfo</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>326</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pSegmentInfo-->
+ <!--DFFOPT adjustValue-->
+ <UML:Class xmi.id="adjustValue" name="adjustValue">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjustValue</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>327</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Adjustment values
+ corresponding to the positions of the adjust handles of the shape.
+ The number of values used and their allowable ranges vary from
+ shape type to shape type.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjustValue-->
+ <!--DFFOPT adjust2Value-->
+ <UML:Class xmi.id="adjust2Value" name="adjust2Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust2Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>328</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust2Value-->
+ <!--DFFOPT adjust3Value-->
+ <UML:Class xmi.id="adjust3Value" name="adjust3Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust3Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>329</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust3Value-->
+ <!--DFFOPT adjust4Value-->
+ <UML:Class xmi.id="adjust4Value" name="adjust4Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust4Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>330</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust4Value-->
+ <!--DFFOPT adjust5Value-->
+ <UML:Class xmi.id="adjust5Value" name="adjust5Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust5Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>331</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust5Value-->
+ <!--DFFOPT adjust6Value-->
+ <UML:Class xmi.id="adjust6Value" name="adjust6Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust6Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>332</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust6Value-->
+ <!--DFFOPT adjust7Value-->
+ <UML:Class xmi.id="adjust7Value" name="adjust7Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust7Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>333</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust7Value-->
+ <!--DFFOPT adjust8Value-->
+ <UML:Class xmi.id="adjust8Value" name="adjust8Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust8Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>334</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust8Value-->
+ <!--DFFOPT adjust9Value-->
+ <UML:Class xmi.id="adjust9Value" name="adjust9Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust9Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>335</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust9Value-->
+ <!--DFFOPT adjust10Value-->
+ <UML:Class xmi.id="adjust10Value" name="adjust10Value">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpadjust10Value</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>336</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT adjust10Value-->
+ <!--DFFOPT fShadowOK-->
+ <UML:Class xmi.id="fShadowOK" name="fShadowOK">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfShadowOK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>378</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shadow may be
+ set</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fShadowOK-->
+ <!--DFFOPT f3DOK-->
+ <UML:Class xmi.id="f3DOK" name="f3DOK">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpf3DOK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>379</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3D may be set</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT f3DOK-->
+ <!--DFFOPT fLineOK-->
+ <UML:Class xmi.id="fLineOK" name="fLineOK">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLineOK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>380</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Line style may be
+ set</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLineOK-->
+ <!--DFFOPT fGtextOK-->
+ <UML:Class xmi.id="fGtextOK" name="fGtextOK">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfGtextOK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>381</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Text effect (WordArt)
+ supported</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fGtextOK-->
+ <!--DFFOPT fFillShadeShapeOK-->
+ <UML:Class xmi.id="fFillShadeShapeOK" name="fFillShadeShapeOK">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfFillShadeShapeOK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>382</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fFillShadeShapeOK-->
+ <!--DFFOPT fFillOK-->
+ <UML:Class xmi.id="fFillOK" name="fFillOK">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfFillOK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>383</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>OK to fill the shape
+ through the UI or VBA?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fFillOK-->
+ <!--DFFOPT fillType-->
+ <UML:Class xmi.id="fillType" name="fillType">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillType</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>384</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Solid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Type of
+ fill</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillType-->
+ <!--DFFOPT fillColor-->
+ <UML:Class xmi.id="fillColor" name="fillColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>385</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>white</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Foreground
+ color</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillColor-->
+ <!--DFFOPT fillOpacity-->
+ <UML:Class xmi.id="fillOpacity" name="fillOpacity">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillOpacity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>386</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fixed
+ 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillOpacity-->
+ <!--DFFOPT fillBackColor-->
+ <UML:Class xmi.id="fillBackColor" name="fillBackColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillBackColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>387</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>white</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Background
+ color</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillBackColor-->
+ <!--DFFOPT fillBackOpacity-->
+ <UML:Class xmi.id="fillBackOpacity" name="fillBackOpacity">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillBackOpacity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>388</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shades
+ only</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillBackOpacity-->
+ <!--DFFOPT fillCrMod-->
+ <UML:Class xmi.id="fillCrMod" name="fillCrMod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillCrMod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>389</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Modification
+ for BW views</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillCrMod-->
+ <!--DFFOPT fillBlip-->
+ <UML:Class xmi.id="fillBlip" name="fillBlip">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillBlip</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>390</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Pattern/texture</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillBlip-->
+ <!--DFFOPT fillBlipName-->
+ <UML:Class xmi.id="fillBlipName" name="fillBlipName">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillBlipName</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>391</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip file
+ name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillBlipName-->
+ <!--DFFOPT fillBlipFlags-->
+ <UML:Class xmi.id="fillBlipFlags" name="fillBlipFlags">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillBlipFlags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>392</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Comment</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip
+ flags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillBlipFlags-->
+ <!--DFFOPT fillWidth-->
+ <UML:Class xmi.id="fillWidth" name="fillWidth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>393</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>How big (A
+ units) to make a metafile texture.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillWidth-->
+ <!--DFFOPT fillHeight-->
+ <UML:Class xmi.id="fillHeight" name="fillHeight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillHeight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>394</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillHeight-->
+ <!--DFFOPT fillAngle-->
+ <UML:Class xmi.id="fillAngle" name="fillAngle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillAngle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>395</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fade angle -
+ degrees in 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillAngle-->
+ <!--DFFOPT fillFocus-->
+ <UML:Class xmi.id="fillFocus" name="fillFocus">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillFocus</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>396</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Linear shaded
+ fill focus percent</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillFocus-->
+ <!--DFFOPT fillToLeft-->
+ <UML:Class xmi.id="fillToLeft" name="fillToLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillToLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>397</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fraction
+ 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillToLeft-->
+ <!--DFFOPT fillToTop-->
+ <UML:Class xmi.id="fillToTop" name="fillToTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillToTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>398</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fraction
+ 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillToTop-->
+ <!--DFFOPT fillToRight-->
+ <UML:Class xmi.id="fillToRight" name="fillToRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillToRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>399</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fraction
+ 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillToRight-->
+ <!--DFFOPT fillToBottom-->
+ <UML:Class xmi.id="fillToBottom" name="fillToBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillToBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>400</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fraction
+ 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillToBottom-->
+ <!--DFFOPT fillRectLeft-->
+ <UML:Class xmi.id="fillRectLeft" name="fillRectLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillRectLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>401</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>For shaded
+ fills, use the specified rectangle instead of the shape's bounding
+ rect to define how large the fade is going to be.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillRectLeft-->
+ <!--DFFOPT fillRectTop-->
+ <UML:Class xmi.id="fillRectTop" name="fillRectTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillRectTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>402</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillRectTop-->
+ <!--DFFOPT fillRectRight-->
+ <UML:Class xmi.id="fillRectRight" name="fillRectRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillRectRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>403</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillRectRight-->
+ <!--DFFOPT fillRectBottom-->
+ <UML:Class xmi.id="fillRectBottom" name="fillRectBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillRectBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>404</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillRectBottom-->
+ <!--DFFOPT fillDztype-->
+ <UML:Class xmi.id="fillDztype" name="fillDztype">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillDztype</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>405</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Default</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillDztype-->
+ <!--DFFOPT fillShadePreset-->
+ <UML:Class xmi.id="fillShadePreset" name="fillShadePreset">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillShadePreset</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>406</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Special
+ shades</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillShadePreset-->
+ <!--DFFOPT fillShadeColors-->
+ <UML:Class xmi.id="fillShadeColors" name="fillShadeColors">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillShadeColors</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>407</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>a preset
+ array of colors</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillShadeColors-->
+ <!--DFFOPT fillOriginX-->
+ <UML:Class xmi.id="fillOriginX" name="fillOriginX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillOriginX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>408</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillOriginX-->
+ <!--DFFOPT fillOriginY-->
+ <UML:Class xmi.id="fillOriginY" name="fillOriginY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillOriginY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>409</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillOriginY-->
+ <!--DFFOPT fillShapeOriginX-->
+ <UML:Class xmi.id="fillShapeOriginX" name="fillShapeOriginX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillShapeOriginX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>410</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillShapeOriginX-->
+ <!--DFFOPT fillShapeOriginY-->
+ <UML:Class xmi.id="fillShapeOriginY" name="fillShapeOriginY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillShapeOriginY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>411</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillShapeOriginY-->
+ <!--DFFOPT fillShadeType-->
+ <UML:Class xmi.id="fillShadeType" name="fillShadeType">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillShadeType</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>412</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Default</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Type of
+ shading, if a shaded (gradient) fill.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillShadeType-->
+ <!--DFFOPT fFilled-->
+ <UML:Class xmi.id="fFilled" name="fFilled">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfFilled</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>443</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Is shape
+ filled?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fFilled-->
+ <!--DFFOPT fHitTestFill-->
+ <UML:Class xmi.id="fHitTestFill" name="fHitTestFill">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfHitTestFill</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>444</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Should we hit
+ test fill?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fHitTestFill-->
+ <!--DFFOPT fillShape-->
+ <UML:Class xmi.id="fillShape" name="fillShape">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillShape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>445</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Register
+ pattern on shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillShape-->
+ <!--DFFOPT fillUseRect-->
+ <UML:Class xmi.id="fillUseRect" name="fillUseRect">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfillUseRect</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>446</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Use the large
+ rect?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fillUseRect-->
+ <!--DFFOPT fNoFillHitTest-->
+ <UML:Class xmi.id="fNoFillHitTest" name="fNoFillHitTest">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfNoFillHitTest</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>447</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Hit test a
+ shape as though filled</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fNoFillHitTest-->
+ <!--DFFOPT lineColor-->
+ <UML:Class xmi.id="lineColor" name="lineColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>448</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>black</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Color of line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineColor-->
+ <!--DFFOPT lineOpacity-->
+ <UML:Class xmi.id="lineOpacity" name="lineOpacity">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineOpacity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>449</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Not
+ implemented</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineOpacity-->
+ <!--DFFOPT lineBackColor-->
+ <UML:Class xmi.id="lineBackColor" name="lineBackColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineBackColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>450</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>white</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Background
+ color</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineBackColor-->
+ <!--DFFOPT lineCrMod-->
+ <UML:Class xmi.id="lineCrMod" name="lineCrMod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineCrMod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>451</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Modification for BW
+ views</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineCrMod-->
+ <!--DFFOPT lineType-->
+ <UML:Class xmi.id="lineType" name="lineType">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineType</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>452</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Solid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Type of line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineType-->
+ <!--DFFOPT lineFillBlip-->
+ <UML:Class xmi.id="lineFillBlip" name="lineFillBlip">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineFillBlip</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>453</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Pattern/texture</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineFillBlip-->
+ <!--DFFOPT lineFillBlipName-->
+ <UML:Class xmi.id="lineFillBlipName" name="lineFillBlipName">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineFillBlipName</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>454</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip file
+ name</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineFillBlipName-->
+ <!--DFFOPT lineFillBlipFlags-->
+ <UML:Class xmi.id="lineFillBlipFlags" name="lineFillBlipFlags">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineFillBlipFlags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>455</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Comment</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Blip flags</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineFillBlipFlags-->
+ <!--DFFOPT lineFillWidth-->
+ <UML:Class xmi.id="lineFillWidth" name="lineFillWidth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineFillWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>456</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>How big (A units) to make
+ a metafile texture.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineFillWidth-->
+ <!--DFFOPT lineFillHeight-->
+ <UML:Class xmi.id="lineFillHeight" name="lineFillHeight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineFillHeight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>457</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineFillHeight-->
+ <!--DFFOPT lineFillDztype-->
+ <UML:Class xmi.id="lineFillDztype" name="lineFillDztype">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineFillDztype</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>458</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Default</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>How to interpret
+ fillWidth/Height numbers.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineFillDztype-->
+ <!--DFFOPT lineWidth-->
+ <UML:Class xmi.id="lineWidth" name="lineWidth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>459</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9525</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>A units; 1pt == 12700
+ EMUs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineWidth-->
+ <!--DFFOPT lineMiterLimit-->
+ <UML:Class xmi.id="lineMiterLimit" name="lineMiterLimit">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineMiterLimit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>460</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>ratio (16.16) of
+ width</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineMiterLimit-->
+ <!--DFFOPT lineStyle-->
+ <UML:Class xmi.id="lineStyle" name="lineStyle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineStyle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>461</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Simple</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Draw parallel
+ lines?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineStyle-->
+ <!--DFFOPT lineDashing-->
+ <UML:Class xmi.id="lineDashing" name="lineDashing">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineDashing</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>462</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Solid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Can be overridden
+ by:</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineDashing-->
+ <!--DFFOPT lineDashStyle-->
+ <UML:Class xmi.id="lineDashStyle" name="lineDashStyle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineDashStyle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>463</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>As Win32
+ ExtCreatePen</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineDashStyle-->
+ <!--DFFOPT lineStartArrowhead-->
+ <UML:Class xmi.id="lineStartArrowhead" name="lineStartArrowhead">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineStartArrowhead</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>464</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NoEnd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Arrow at
+ start</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineStartArrowhead-->
+ <!--DFFOPT lineEndArrowhead-->
+ <UML:Class xmi.id="lineEndArrowhead" name="lineEndArrowhead">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineEndArrowhead</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>465</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NoEnd</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Arrow at end</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineEndArrowhead-->
+ <!--DFFOPT lineStartArrowWidth-->
+ <UML:Class xmi.id="lineStartArrowWidth" name="lineStartArrowWidth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineStartArrowWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>466</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>MediumWidthArrow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Arrow at
+ start</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineStartArrowWidth-->
+ <!--DFFOPT lineStartArrowLength-->
+ <UML:Class xmi.id="lineStartArrowLength" name="lineStartArrowLength">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineStartArrowLength</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>467</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>MediumLenArrow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Arrow at end</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineStartArrowLength-->
+ <!--DFFOPT lineEndArrowWidth-->
+ <UML:Class xmi.id="lineEndArrowWidth" name="lineEndArrowWidth">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineEndArrowWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>468</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>MediumWidthArrow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Arrow at
+ start</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineEndArrowWidth-->
+ <!--DFFOPT lineEndArrowLength-->
+ <UML:Class xmi.id="lineEndArrowLength" name="lineEndArrowLength">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineEndArrowLength</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>469</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>MediumLenArrow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Arrow at end</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineEndArrowLength-->
+ <!--DFFOPT lineJoinStyle-->
+ <UML:Class xmi.id="lineJoinStyle" name="lineJoinStyle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineJoinStyle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>470</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>JoinRound</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>How to join
+ lines</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineJoinStyle-->
+ <!--DFFOPT lineEndCapStyle-->
+ <UML:Class xmi.id="lineEndCapStyle" name="lineEndCapStyle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineEndCapStyle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>471</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>EndCapFlat</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>How to end
+ lines</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineEndCapStyle-->
+ <!--DFFOPT fArrowheadsOK-->
+ <UML:Class xmi.id="fArrowheadsOK" name="fArrowheadsOK">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfArrowheadsOK</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>507</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Allow arrowheads if prop.
+ is set</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fArrowheadsOK-->
+ <!--DFFOPT fLine-->
+ <UML:Class xmi.id="fLine" name="fLine">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLine</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>508</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Any line?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLine-->
+ <!--DFFOPT fHitTestLine-->
+ <UML:Class xmi.id="fHitTestLine" name="fHitTestLine">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfHitTestLine</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>509</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Should we hit test
+ lines?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fHitTestLine-->
+ <!--DFFOPT lineFillShape-->
+ <UML:Class xmi.id="lineFillShape" name="lineFillShape">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplineFillShape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>510</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Register pattern on
+ shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lineFillShape-->
+ <!--DFFOPT fNoLineDrawDash-->
+ <UML:Class xmi.id="fNoLineDrawDash" name="fNoLineDrawDash">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfNoLineDrawDash</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>511</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Draw a dashed line if no
+ line</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fNoLineDrawDash-->
+ <!--DFFOPT shadowType-->
+ <UML:Class xmi.id="shadowType" name="shadowType">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowType</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>512</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Offset</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Type of
+ effect</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowType-->
+ <!--DFFOPT shadowColor-->
+ <UML:Class xmi.id="shadowColor" name="shadowColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>513</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x808080</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Foreground
+ color</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowColor-->
+ <!--DFFOPT shadowHighlight-->
+ <UML:Class xmi.id="shadowHighlight" name="shadowHighlight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowHighlight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>514</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xCBCBCB</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Embossed
+ color</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowHighlight-->
+ <!--DFFOPT shadowCrMod-->
+ <UML:Class xmi.id="shadowCrMod" name="shadowCrMod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowCrMod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>515</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Modification for BW
+ views</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowCrMod-->
+ <!--DFFOPT shadowOpacity-->
+ <UML:Class xmi.id="shadowOpacity" name="shadowOpacity">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowOpacity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>516</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fixed 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowOpacity-->
+ <!--DFFOPT shadowOffsetX-->
+ <UML:Class xmi.id="shadowOffsetX" name="shadowOffsetX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowOffsetX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>517</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>25400</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Offset shadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowOffsetX-->
+ <!--DFFOPT shadowOffsetY-->
+ <UML:Class xmi.id="shadowOffsetY" name="shadowOffsetY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowOffsetY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>518</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>25400</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Offset shadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowOffsetY-->
+ <!--DFFOPT shadowSecondOffsetX-->
+ <UML:Class xmi.id="shadowSecondOffsetX" name="shadowSecondOffsetX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowSecondOffsetX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>519</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Double offset
+ shadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowSecondOffsetX-->
+ <!--DFFOPT shadowSecondOffsetY-->
+ <UML:Class xmi.id="shadowSecondOffsetY" name="shadowSecondOffsetY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowSecondOffsetY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>520</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Double offset
+ shadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowSecondOffsetY-->
+ <!--DFFOPT shadowScaleXToX-->
+ <UML:Class xmi.id="shadowScaleXToX" name="shadowScaleXToX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowScaleXToX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>521</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowScaleXToX-->
+ <!--DFFOPT shadowScaleYToX-->
+ <UML:Class xmi.id="shadowScaleYToX" name="shadowScaleYToX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowScaleYToX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>522</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowScaleYToX-->
+ <!--DFFOPT shadowScaleXToY-->
+ <UML:Class xmi.id="shadowScaleXToY" name="shadowScaleXToY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowScaleXToY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>523</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowScaleXToY-->
+ <!--DFFOPT shadowScaleYToY-->
+ <UML:Class xmi.id="shadowScaleYToY" name="shadowScaleYToY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowScaleYToY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>524</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowScaleYToY-->
+ <!--DFFOPT shadowPerspectiveX-->
+ <UML:Class xmi.id="shadowPerspectiveX" name="shadowPerspectiveX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowPerspectiveX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>525</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16.16 /
+ weight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowPerspectiveX-->
+ <!--DFFOPT shadowPerspectiveY-->
+ <UML:Class xmi.id="shadowPerspectiveY" name="shadowPerspectiveY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowPerspectiveY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>526</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16.16 /
+ weight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowPerspectiveY-->
+ <!--DFFOPT shadowWeight-->
+ <UML:Class xmi.id="shadowWeight" name="shadowWeight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowWeight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>527</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>scaling
+ factor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowWeight-->
+ <!--DFFOPT shadowOriginX-->
+ <UML:Class xmi.id="shadowOriginX" name="shadowOriginX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowOriginX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>528</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowOriginX-->
+ <!--DFFOPT shadowOriginY-->
+ <UML:Class xmi.id="shadowOriginY" name="shadowOriginY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpshadowOriginY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>529</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT shadowOriginY-->
+ <!--DFFOPT fShadow-->
+ <UML:Class xmi.id="fShadow" name="fShadow">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfShadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>574</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Any shadow?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fShadow-->
+ <!--DFFOPT fshadowObscured-->
+ <UML:Class xmi.id="fshadowObscured" name="fshadowObscured">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfshadowObscured</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>575</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Excel5-style
+ shadow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fshadowObscured-->
+ <!--DFFOPT perspectiveType-->
+ <UML:Class xmi.id="perspectiveType" name="perspectiveType">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveType</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>576</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Where transform
+ applies</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveType-->
+ <!--DFFOPT perspectiveOffsetX-->
+ <UML:Class xmi.id="perspectiveOffsetX" name="perspectiveOffsetX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveOffsetX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>577</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The LONG values define a
+ transformation matrix, effectively, each value is scaled by the
+ perspectiveWeight parameter.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveOffsetX-->
+ <!--DFFOPT perspectiveOffsetY-->
+ <UML:Class xmi.id="perspectiveOffsetY" name="perspectiveOffsetY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveOffsetY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>578</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveOffsetY-->
+ <!--DFFOPT perspectiveScaleXToX-->
+ <UML:Class xmi.id="perspectiveScaleXToX" name="perspectiveScaleXToX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveScaleXToX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>579</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveScaleXToX-->
+ <!--DFFOPT perspectiveScaleYToX-->
+ <UML:Class xmi.id="perspectiveScaleYToX" name="perspectiveScaleYToX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveScaleYToX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>580</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveScaleYToX-->
+ <!--DFFOPT perspectiveScaleXToY-->
+ <UML:Class xmi.id="perspectiveScaleXToY" name="perspectiveScaleXToY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveScaleXToY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>581</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveScaleXToY-->
+ <!--DFFOPT perspectiveScaleYToY-->
+ <UML:Class xmi.id="perspectiveScaleYToY" name="perspectiveScaleYToY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveScaleYToY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>582</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveScaleYToY-->
+ <!--DFFOPT perspectivePerspectiveX-->
+ <UML:Class xmi.id="perspectivePerspectiveX" name="perspectivePerspectiveX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectivePerspectiveX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>583</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectivePerspectiveX-->
+ <!--DFFOPT perspectivePerspectiveY-->
+ <UML:Class xmi.id="perspectivePerspectiveY" name="perspectivePerspectiveY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectivePerspectiveY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>584</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectivePerspectiveY-->
+ <!--DFFOPT perspectiveWeight-->
+ <UML:Class xmi.id="perspectiveWeight" name="perspectiveWeight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveWeight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>585</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Scaling
+ factor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveWeight-->
+ <!--DFFOPT perspectiveOriginX-->
+ <UML:Class xmi.id="perspectiveOriginX" name="perspectiveOriginX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveOriginX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>586</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveOriginX-->
+ <!--DFFOPT perspectiveOriginY-->
+ <UML:Class xmi.id="perspectiveOriginY" name="perspectiveOriginY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpperspectiveOriginY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>587</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1&lt;&lt;15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT perspectiveOriginY-->
+ <!--DFFOPT fPerspective-->
+ <UML:Class xmi.id="fPerspective" name="fPerspective">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfPerspective</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>639</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>On/off</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fPerspective-->
+ <!--DFFOPT c3DSpecularAmt-->
+ <UML:Class xmi.id="c3DSpecularAmt" name="c3DSpecularAmt">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DSpecularAmt</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>640</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fixed-point
+ 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DSpecularAmt-->
+ <!--DFFOPT c3DDiffuseAmt-->
+ <UML:Class xmi.id="c3DDiffuseAmt" name="c3DDiffuseAmt">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DDiffuseAmt</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>641</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>65536</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fixed-point
+ 16.16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DDiffuseAmt-->
+ <!--DFFOPT c3DShininess-->
+ <UML:Class xmi.id="c3DShininess" name="c3DShininess">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DShininess</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>642</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Default gives
+ OK results</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DShininess-->
+ <!--DFFOPT c3DEdgeThickness-->
+ <UML:Class xmi.id="c3DEdgeThickness" name="c3DEdgeThickness">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DEdgeThickness</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>643</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>12700</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Specular edge
+ thickness</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DEdgeThickness-->
+ <!--DFFOPT c3DExtrudeForward-->
+ <UML:Class xmi.id="c3DExtrudeForward" name="c3DExtrudeForward">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DExtrudeForward</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>644</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Distance of
+ extrusion in EMUs</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DExtrudeForward-->
+ <!--DFFOPT c3DExtrudeBackward-->
+ <UML:Class xmi.id="c3DExtrudeBackward" name="c3DExtrudeBackward">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DExtrudeBackward</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>645</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>457200</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DExtrudeBackward-->
+ <!--DFFOPT c3DExtrudePlane-->
+ <UML:Class xmi.id="c3DExtrudePlane" name="c3DExtrudePlane">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DExtrudePlane</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>646</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Extrusion
+ direction</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DExtrudePlane-->
+ <!--DFFOPT c3DExtrusionColor-->
+ <UML:Class xmi.id="c3DExtrusionColor" name="c3DExtrusionColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DExtrusionColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>647</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FillThenLine</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Basic color
+ of extruded part of shape; the lighting model used will determine
+ the exact shades used when rendering.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DExtrusionColor-->
+ <!--DFFOPT c3DCrMod-->
+ <UML:Class xmi.id="c3DCrMod" name="c3DCrMod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DCrMod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>648</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Modification
+ for BW views</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DCrMod-->
+ <!--DFFOPT f3D-->
+ <UML:Class xmi.id="f3D" name="f3D">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpf3D</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>700</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Does this
+ shape have a 3D effect?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT f3D-->
+ <!--DFFOPT fc3DMetallic-->
+ <UML:Class xmi.id="fc3DMetallic" name="fc3DMetallic">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfc3DMetallic</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>701</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Use metallic
+ specularity?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fc3DMetallic-->
+ <!--DFFOPT fc3DUseExtrusionColor-->
+ <UML:Class xmi.id="fc3DUseExtrusionColor" name="fc3DUseExtrusionColor">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfc3DUseExtrusionColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>702</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fc3DUseExtrusionColor-->
+ <!--DFFOPT fc3DLightFace-->
+ <UML:Class xmi.id="fc3DLightFace" name="fc3DLightFace">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfc3DLightFace</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>703</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fc3DLightFace-->
+ <!--DFFOPT c3DYRotationAngle-->
+ <UML:Class xmi.id="c3DYRotationAngle" name="c3DYRotationAngle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DYRotationAngle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>704</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>degrees (16.16) about y
+ axis</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DYRotationAngle-->
+ <!--DFFOPT c3DXRotationAngle-->
+ <UML:Class xmi.id="c3DXRotationAngle" name="c3DXRotationAngle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DXRotationAngle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>705</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>degrees (16.16) about x
+ axis</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DXRotationAngle-->
+ <!--DFFOPT c3DRotationAxisX-->
+ <UML:Class xmi.id="c3DRotationAxisX" name="c3DRotationAxisX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DRotationAxisX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>706</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>100</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>These specify the
+ rotation axis; only their relative magnitudes matter.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DRotationAxisX-->
+ <!--DFFOPT c3DRotationAxisY-->
+ <UML:Class xmi.id="c3DRotationAxisY" name="c3DRotationAxisY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DRotationAxisY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>707</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DRotationAxisY-->
+ <!--DFFOPT c3DRotationAxisZ-->
+ <UML:Class xmi.id="c3DRotationAxisZ" name="c3DRotationAxisZ">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DRotationAxisZ</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>708</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DRotationAxisZ-->
+ <!--DFFOPT c3DRotationAngle-->
+ <UML:Class xmi.id="c3DRotationAngle" name="c3DRotationAngle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DRotationAngle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>709</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>degrees (16.16) about
+ axis</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DRotationAngle-->
+ <!--DFFOPT c3DRotationCenterX-->
+ <UML:Class xmi.id="c3DRotationCenterX" name="c3DRotationCenterX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DRotationCenterX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>710</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rotation center x (16.16
+ or g-units)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DRotationCenterX-->
+ <!--DFFOPT c3DRotationCenterY-->
+ <UML:Class xmi.id="c3DRotationCenterY" name="c3DRotationCenterY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DRotationCenterY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>711</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rotation center y (16.16
+ or g-units)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DRotationCenterY-->
+ <!--DFFOPT c3DRotationCenterZ-->
+ <UML:Class xmi.id="c3DRotationCenterZ" name="c3DRotationCenterZ">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DRotationCenterZ</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>712</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rotation center z
+ (absolute (emus))</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DRotationCenterZ-->
+ <!--DFFOPT c3DRenderMode-->
+ <UML:Class xmi.id="c3DRenderMode" name="c3DRenderMode">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DRenderMode</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>713</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FullRender</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Full,wireframe, or
+ bcube</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DRenderMode-->
+ <!--DFFOPT c3DTolerance-->
+ <UML:Class xmi.id="c3DTolerance" name="c3DTolerance">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DTolerance</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>714</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>30000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>pixels
+ (16.16)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DTolerance-->
+ <!--DFFOPT c3DXViewpoint-->
+ <UML:Class xmi.id="c3DXViewpoint" name="c3DXViewpoint">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DXViewpoint</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>715</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1250000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>X view point
+ (emus)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DXViewpoint-->
+ <!--DFFOPT c3DYViewpoint-->
+ <UML:Class xmi.id="c3DYViewpoint" name="c3DYViewpoint">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DYViewpoint</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>716</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>-1250000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Y view point
+ (emus)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DYViewpoint-->
+ <!--DFFOPT c3DZViewpoint-->
+ <UML:Class xmi.id="c3DZViewpoint" name="c3DZViewpoint">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DZViewpoint</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>717</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9000000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Z view distance
+ (emus)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DZViewpoint-->
+ <!--DFFOPT c3DOriginX-->
+ <UML:Class xmi.id="c3DOriginX" name="c3DOriginX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DOriginX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>718</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>32768</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DOriginX-->
+ <!--DFFOPT c3DOriginY-->
+ <UML:Class xmi.id="c3DOriginY" name="c3DOriginY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DOriginY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>719</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>-32768</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DOriginY-->
+ <!--DFFOPT c3DSkewAngle-->
+ <UML:Class xmi.id="c3DSkewAngle" name="c3DSkewAngle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DSkewAngle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>720</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>-8847360</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>degree (16.16) skew
+ angle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DSkewAngle-->
+ <!--DFFOPT c3DSkewAmount-->
+ <UML:Class xmi.id="c3DSkewAmount" name="c3DSkewAmount">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DSkewAmount</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>721</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>50</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Percentage skew
+ amount</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DSkewAmount-->
+ <!--DFFOPT c3DAmbientIntensity-->
+ <UML:Class xmi.id="c3DAmbientIntensity" name="c3DAmbientIntensity">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DAmbientIntensity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>722</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>20000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fixed point
+ intensity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DAmbientIntensity-->
+ <!--DFFOPT c3DKeyX-->
+ <UML:Class xmi.id="c3DKeyX" name="c3DKeyX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DKeyX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>723</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>50000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Key light source
+ direc-</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DKeyX-->
+ <!--DFFOPT c3DKeyY-->
+ <UML:Class xmi.id="c3DKeyY" name="c3DKeyY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DKeyY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>724</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>tion; only their
+ relative</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DKeyY-->
+ <!--DFFOPT c3DKeyZ-->
+ <UML:Class xmi.id="c3DKeyZ" name="c3DKeyZ">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DKeyZ</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>725</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>magnitudes
+ matter</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DKeyZ-->
+ <!--DFFOPT c3DKeyIntensity-->
+ <UML:Class xmi.id="c3DKeyIntensity" name="c3DKeyIntensity">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DKeyIntensity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>726</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>38000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fixed point
+ intensity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DKeyIntensity-->
+ <!--DFFOPT c3DFillX-->
+ <UML:Class xmi.id="c3DFillX" name="c3DFillX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DFillX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>727</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>-50000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fill light source
+ direc-</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DFillX-->
+ <!--DFFOPT c3DFillY-->
+ <UML:Class xmi.id="c3DFillY" name="c3DFillY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DFillY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>728</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>tion; only their
+ relative</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DFillY-->
+ <!--DFFOPT c3DFillZ-->
+ <UML:Class xmi.id="c3DFillZ" name="c3DFillZ">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DFillZ</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>729</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>magnitudes
+ matter</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DFillZ-->
+ <!--DFFOPT c3DFillIntensity-->
+ <UML:Class xmi.id="c3DFillIntensity" name="c3DFillIntensity">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpc3DFillIntensity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>730</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>38000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Fixed point
+ intensity</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT c3DFillIntensity-->
+ <!--DFFOPT fc3DConstrainRotation-->
+ <UML:Class xmi.id="fc3DConstrainRotation" name="fc3DConstrainRotation">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfc3DConstrainRotation</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>763</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fc3DConstrainRotation-->
+ <!--DFFOPT fc3DRotationCenterAuto-->
+ <UML:Class xmi.id="fc3DRotationCenterAuto" name="fc3DRotationCenterAuto">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfc3DRotationCenterAuto</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>764</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fc3DRotationCenterAuto-->
+ <!--DFFOPT fc3DParallel-->
+ <UML:Class xmi.id="fc3DParallel" name="fc3DParallel">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfc3DParallel</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>765</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Parallel
+ projection?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fc3DParallel-->
+ <!--DFFOPT fc3DKeyHarsh-->
+ <UML:Class xmi.id="fc3DKeyHarsh" name="fc3DKeyHarsh">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfc3DKeyHarsh</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>766</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Is key lighting
+ harsh?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fc3DKeyHarsh-->
+ <!--DFFOPT fc3DFillHarsh-->
+ <UML:Class xmi.id="fc3DFillHarsh" name="fc3DFillHarsh">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfc3DFillHarsh</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>767</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Is fill lighting
+ harsh?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fc3DFillHarsh-->
+ <!--DFFOPT hspMaster-->
+ <UML:Class xmi.id="hspMaster" name="hspMaster">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shphspMaster</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>769</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>master
+ shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT hspMaster-->
+ <!--DFFOPT cxstyle-->
+ <UML:Class xmi.id="cxstyle" name="cxstyle">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpcxstyle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>771</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>None</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Type of
+ connector</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT cxstyle-->
+ <!--DFFOPT bWMode-->
+ <UML:Class xmi.id="bWMode" name="bWMode">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpbWMode</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>772</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Automatic</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Settings for
+ modifications to be made when in different forms of black-and-white
+ mode.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT bWMode-->
+ <!--DFFOPT bWModePureBW-->
+ <UML:Class xmi.id="bWModePureBW" name="bWModePureBW">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpbWModePureBW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>773</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Automatic</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT bWModePureBW-->
+ <!--DFFOPT bWModeBW-->
+ <UML:Class xmi.id="bWModeBW" name="bWModeBW">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpbWModeBW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>774</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Automatic</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT bWModeBW-->
+ <!--DFFOPT fOleIcon-->
+ <UML:Class xmi.id="fOleIcon" name="fOleIcon">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfOleIcon</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>826</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>For OLE
+ objects, whether the object is in icon form</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fOleIcon-->
+ <!--DFFOPT fPreferRelativeResize-->
+ <UML:Class xmi.id="fPreferRelativeResize" name="fPreferRelativeResize">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfPreferRelativeResize</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>827</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>For UI only.
+ Prefer relative resizing.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fPreferRelativeResize-->
+ <!--DFFOPT fLockShapeType-->
+ <UML:Class xmi.id="fLockShapeType" name="fLockShapeType">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfLockShapeType</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>828</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Lock the
+ shape type (don't allow Change Shape)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fLockShapeType-->
+ <!--DFFOPT fDeleteAttachedObject-->
+ <UML:Class xmi.id="fDeleteAttachedObject" name="fDeleteAttachedObject">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfDeleteAttachedObject</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>830</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fDeleteAttachedObject-->
+ <!--DFFOPT fBackground-->
+ <UML:Class xmi.id="fBackground" name="fBackground">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfBackground</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>831</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>If TRUE, this
+ is the background shape.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fBackground-->
+ <!--DFFOPT spcot-->
+ <UML:Class xmi.id="spcot" name="spcot">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpspcot</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>832</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TwoSegment</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Callout type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT spcot-->
+ <!--DFFOPT dxyCalloutGap-->
+ <UML:Class xmi.id="dxyCalloutGap" name="dxyCalloutGap">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdxyCalloutGap</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>833</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1/12 inch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Distance from box to
+ first point.(EMUs)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dxyCalloutGap-->
+ <!--DFFOPT spcoa-->
+ <UML:Class xmi.id="spcoa" name="spcoa">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpspcoa</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>834</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Any</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Callout angle</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT spcoa-->
+ <!--DFFOPT spcod-->
+ <UML:Class xmi.id="spcod" name="spcod">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpspcod</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>835</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Specified</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Callout drop
+ type</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT spcod-->
+ <!--DFFOPT dxyCalloutDropSpecified-->
+ <UML:Class xmi.id="dxyCalloutDropSpecified" name="dxyCalloutDropSpecified">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdxyCalloutDropSpecified</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>836</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9 points</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>if msospcodSpecified, the
+ actual drop distance</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dxyCalloutDropSpecified-->
+ <!--DFFOPT dxyCalloutLengthSpecified-->
+ <UML:Class xmi.id="dxyCalloutLengthSpecified" name="dxyCalloutLengthSpecified">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdxyCalloutLengthSpecified</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>837</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>if
+ fCalloutLengthSpecified, the actual distance</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dxyCalloutLengthSpecified-->
+ <!--DFFOPT fCallout-->
+ <UML:Class xmi.id="fCallout" name="fCallout">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfCallout</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>889</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Is the shape a
+ callout?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fCallout-->
+ <!--DFFOPT fCalloutAccentBar-->
+ <UML:Class xmi.id="fCalloutAccentBar" name="fCalloutAccentBar">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfCalloutAccentBar</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>890</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>does callout have accent
+ bar</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fCalloutAccentBar-->
+ <!--DFFOPT fCalloutTextBorder-->
+ <UML:Class xmi.id="fCalloutTextBorder" name="fCalloutTextBorder">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfCalloutTextBorder</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>891</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>does callout have a text
+ border</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fCalloutTextBorder-->
+ <!--DFFOPT fCalloutMinusX-->
+ <UML:Class xmi.id="fCalloutMinusX" name="fCalloutMinusX">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfCalloutMinusX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>892</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fCalloutMinusX-->
+ <!--DFFOPT fCalloutMinusY-->
+ <UML:Class xmi.id="fCalloutMinusY" name="fCalloutMinusY">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfCalloutMinusY</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>893</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fCalloutMinusY-->
+ <!--DFFOPT fCalloutDropAuto-->
+ <UML:Class xmi.id="fCalloutDropAuto" name="fCalloutDropAuto">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfCalloutDropAuto</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>894</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>If true, then we
+ occasionally invert the drop distance</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fCalloutDropAuto-->
+ <!--DFFOPT fCalloutLengthSpecified-->
+ <UML:Class xmi.id="fCalloutLengthSpecified" name="fCalloutLengthSpecified">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfCalloutLengthSpecified</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>895</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>if true, we look at
+ dxyCalloutLengthSpecified</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fCalloutLengthSpecified-->
+ <!--DFFOPT wzName-->
+ <UML:Class xmi.id="wzName" name="wzName">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpwzName</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>896</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Shape Name (present only
+ if explicitly set)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT wzName-->
+ <!--DFFOPT wzDescription-->
+ <UML:Class xmi.id="wzDescription" name="wzDescription">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpwzDescription</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>897</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>alternate
+ text</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT wzDescription-->
+ <!--DFFOPT pihlShape-->
+ <UML:Class xmi.id="pihlShape" name="pihlShape">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppihlShape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>898</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The hyperlink in the
+ shape.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pihlShape-->
+ <!--DFFOPT pWrapPolygonVertices-->
+ <UML:Class xmi.id="pWrapPolygonVertices" name="pWrapPolygonVertices">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shppWrapPolygonVertices</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>899</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>The polygon that text
+ will be wrapped around (Word)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT pWrapPolygonVertices-->
+ <!--DFFOPT dxWrapDistLeft-->
+ <UML:Class xmi.id="dxWrapDistLeft" name="dxWrapDistLeft">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdxWrapDistLeft</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>900</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1/8 inch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Left wrapping distance
+ from text (Word)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dxWrapDistLeft-->
+ <!--DFFOPT dyWrapDistTop-->
+ <UML:Class xmi.id="dyWrapDistTop" name="dyWrapDistTop">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdyWrapDistTop</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>901</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Top wrapping distance
+ from text (Word)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dyWrapDistTop-->
+ <!--DFFOPT dxWrapDistRight-->
+ <UML:Class xmi.id="dxWrapDistRight" name="dxWrapDistRight">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdxWrapDistRight</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>902</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1/8 inch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Right wrapping distance
+ from text (Word)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dxWrapDistRight-->
+ <!--DFFOPT dyWrapDistBottom-->
+ <UML:Class xmi.id="dyWrapDistBottom" name="dyWrapDistBottom">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpdyWrapDistBottom</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>903</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Bottom wrapping distance
+ from text (Word)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT dyWrapDistBottom-->
+ <!--DFFOPT lidRegroup-->
+ <UML:Class xmi.id="lidRegroup" name="lidRegroup">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shplidRegroup</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>904</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Regroup ID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT lidRegroup-->
+ <!--DFFOPT fEditedWrap-->
+ <UML:Class xmi.id="fEditedWrap" name="fEditedWrap">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfEditedWrap</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>953</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Has the wrap polygon been
+ edited?</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fEditedWrap-->
+ <!--DFFOPT fBehindDocument-->
+ <UML:Class xmi.id="fBehindDocument" name="fBehindDocument">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfBehindDocument</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>954</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Word-only (shape is
+ behind text)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fBehindDocument-->
+ <!--DFFOPT fOnDblClickNotify-->
+ <UML:Class xmi.id="fOnDblClickNotify" name="fOnDblClickNotify">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfOnDblClickNotify</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>955</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Notify client on a double
+ click</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fOnDblClickNotify-->
+ <!--DFFOPT fIsButton-->
+ <UML:Class xmi.id="fIsButton" name="fIsButton">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfIsButton</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>956</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>A button shape (i.e.,
+ clicking performs an action). Set for shapes with attached
+ hyperlinks or macros.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fIsButton-->
+ <!--DFFOPT fOneD-->
+ <UML:Class xmi.id="fOneD" name="fOneD">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfOneD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>957</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1D adjustment</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fOneD-->
+ <!--DFFOPT fHidden-->
+ <UML:Class xmi.id="fHidden" name="fHidden">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfHidden</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>958</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Do not
+ display</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fHidden-->
+ <!--DFFOPT fPrint-->
+ <UML:Class xmi.id="fPrint" name="fPrint">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="dffopt"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:shpfPrint</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="optname"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>959</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="fopid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="type"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="isbool"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="default"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>Print this
+ shape</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--DFFOPT fPrint-->
+ <!--DFFOPT-->
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ </XMI.content>
+</XMI>
diff --git a/writerfilter/source/doctok/resources.xsl b/writerfilter/source/doctok/resources.xsl
new file mode 100644
index 000000000000..12be17986556
--- /dev/null
+++ b/writerfilter/source/doctok/resources.xsl
@@ -0,0 +1,838 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+ <xsl:output method="text" />
+
+ <xsl:template match="/">
+ <out xml:space="preserve">
+ <xsl:text>
+/*
+ THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT!
+
+ $RCSfile: resources.xsl,v $
+
+ $Revision: 1.1 $
+*/
+#ifndef INCLUDED_RESOURCES_HXX
+#define INCLUDED_RESOURCES_HXX
+
+#include &lt;vector&gt;
+#include &lt;boost/shared_ptr.hpp&gt;
+
+#ifndef INCLUDED_OUTPUT_WITH_DEPTH_HXX
+#include &lt;doctok/OutputWithDepth.hxx&gt;
+#endif
+
+#ifndef INCLUDED_RESOURCESIDS_HXX
+#include &lt;doctok/resourceids.hxx&gt;
+#endif
+
+#ifndef INCLUDED_WW8_STRUCT_BASE_HXX
+#include &lt;WW8StructBase.hxx&gt;
+#endif
+
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX
+#include &lt;WW8ResourceModelImpl.hxx&gt;
+#endif
+
+#ifndef INCLUDED_WW8_PROPERTY_SET_IMPL_HXX
+#include &lt;WW8PropertySetImpl.hxx&gt;
+#endif
+
+#ifndef INCLUDED_DFF_HXX
+#include &lt;Dff.hxx&gt;
+#endif
+
+namespace doctok {
+
+class WW8DocumentImpl;
+typedef const WW8DocumentImpl * WW8DocumentImplPointer;
+
+using namespace ::std;&#xa;</xsl:text>
+ <xsl:apply-templates select="//UML:Class" mode="class"/>
+ <xsl:text>
+rtl::OUString getDffOptName(sal_uInt32 nPid);
+bool isBooleanDffOpt(sal_uInt32 nId);
+}
+#endif // INCLUDED_RESOURCES_HXX&#xa;</xsl:text></out>
+</xsl:template>
+
+ <xsl:template match="UML:Class" mode="class">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8resource"]'>
+ <xsl:apply-templates select="." mode="ww8resource"/>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "dffrecord"]'>
+ <xsl:apply-templates select="." mode="dffrecord"/>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "dffopt"]'>
+ <xsl:apply-templates select="." mode="dffopt"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="UML:Class" mode="ww8resource">
+ <xsl:variable name="parentresource">
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'><xsl:value-of select='@xmi.id'/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='size_'><xsl:value-of select='./*/UML:TaggedValue[./*/UML:TagDefinition/@xmi.idref="size"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:variable name='size'>
+ <xsl:choose>
+ <xsl:when test='$size_ != ""'><xsl:value-of select='$size_'/></xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="classname">WW8<xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="superclass">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8sprm"]'>WW8PropertyImpl</xsl:when>
+ <xsl:otherwise>WW8StructBase</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="surroundclass">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8sprm"]'>WW8PropertyImpl</xsl:when>
+ <xsl:otherwise>WW8StructBase</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:text>
+/**
+ Automatically generated class: </xsl:text><xsl:value-of select="@name"/><xsl:text>
+ </xsl:text>
+ <xsl:for-each select='./UML:ModelElement.stereotype/UML:Stereotype'>
+ <xsl:text>
+ Stereotype </xsl:text>
+ <xsl:value-of select='@xmi.idref'/>
+ <xsl:text>&#xa;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ Parent Resource: </xsl:text>
+ <xsl:value-of select="$parentresource"/>
+ <xsl:text>
+ Size: </xsl:text><xsl:value-of select='$size'/>
+ <xsl:text>
+*/
+class </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>: public </xsl:text>
+ <xsl:value-of select='$superclass'/>
+ <xsl:if test='$parentresource != ""'>
+ <xsl:text>, public doctok::Reference&lt; </xsl:text>
+ <xsl:value-of select='$parentresource'/>
+ <xsl:text>&gt;</xsl:text>
+ </xsl:if>
+ <xsl:text>
+{</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text> sal_uInt32 mnIndex;</xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withmembers"]'>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='declmembers'/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="needsdocument"]'>
+ <xsl:text> WW8DocumentImplPointer mpDoc;&#xa;</xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="plcf"]'>
+ <xsl:text>
+ sal_uInt32 mnPlcfPayloadOffset;
+ vector&lt;sal_uInt32&gt; entryOffsets;
+ vector&lt;sal_uInt32&gt; payloadOffsets;
+ vector&lt;sal_uInt32&gt; payloadIndices;
+ </xsl:text>
+ </xsl:if>
+ <xsl:text>
+ public:
+ typedef boost::shared_ptr&lt;</xsl:text>
+ <xsl:value-of select='$classname'/>
+ <xsl:text>&gt; Pointer_t;
+
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(
+ WW8Stream &amp; rStream,
+ sal_uInt32 nOffset = 0,
+ sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='$size'/>
+ <xsl:text>)
+ : </xsl:text><xsl:value-of select='$superclass'/>
+ <xsl:text>(rStream, nOffset, nCount)</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>, mnIndex(0)</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ {
+ init();
+ }
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(
+ WW8StructBase * pParent,
+ sal_uInt32 nOffset = 0,
+ sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='$size'/>
+ <xsl:text>)
+ : </xsl:text>
+ <xsl:value-of select='$superclass'/>
+ <xsl:text>(pParent, nOffset, nCount)</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>, mnIndex(0)</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ {
+ init();
+ }&#xa; </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>( const </xsl:text>
+ <xsl:value-of select='$surroundclass'/>
+ <xsl:text>&amp; rSurround,
+ sal_uInt32 nOffset = 0, sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='$size'/>)
+ <xsl:text>
+ : </xsl:text>
+ <xsl:value-of select='$superclass'/>
+ <xsl:text>(rSurround, nOffset, nCount)</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>, mnIndex(0)</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ {
+ init();
+ }&#xa;
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(
+ const Sequence &amp;
+ rSequence, sal_uInt32 nOffset = 0,
+ sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='$size'/>
+ <xsl:text>)
+ : </xsl:text>
+ <xsl:value-of select='$superclass'/>
+ <xsl:text>(rSequence, nOffset, nCount)</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>, mnIndex(0)</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ {
+ init();
+ }
+
+ virtual ~</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>();&#xa;</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="initimpl"]'>
+ <xsl:text> void initImpl();&#xa;</xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="plcf"]'>
+ <xsl:text> void initPayload();</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ void init();
+
+ /**
+ Return type of resource.
+ */
+ virtual string getType() const
+ {
+ return "</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>";
+ }
+
+ /**
+ Return static size.
+ */
+ static sal_uInt32 getSize() { return </xsl:text>
+ <xsl:value-of select='$size'/>
+ <xsl:text>; }
+
+ /**
+ Calculate actual size.
+ */
+ sal_uInt32 calcSize();
+
+ </xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="plcf"]'>
+ <xsl:text>
+ /**
+ Return offset for entry of PLCF.
+
+ @param nIndex index of entry
+ */
+ sal_uInt32 getEntryOffset(sal_uInt32 nIndex)
+ {
+ return entryOffsets[nIndex];
+ }
+
+ /**
+ Calculate offset for payload.
+ */
+ sal_uInt32 calcPayloadOffset();
+
+ /**
+ Set offset for payloads.
+
+ @param nOffset the offset to set
+ */
+ void setPayloadOffset(sal_uInt32 nOffset)
+ {
+ mnPlcfPayloadOffset = nOffset;
+ }
+
+ /**
+ Return offset for payload of PLCF.
+
+ @param nIndex index of entry
+ */
+ sal_uInt32 getPayloadOffset(sal_uInt32 nIndex)
+ {
+ return payloadOffsets[nIndex];
+ }
+
+ /**
+ Return size of payload.
+ */
+ sal_uInt32 getPayloadSize(sal_uInt32 nIndex) const
+ {
+ return payloadOffsets[nIndex + 1] - payloadOffsets[nIndex];
+ }
+
+
+ /**
+ Return payload index of an entry.
+
+ */
+ sal_uInt32 getPayloadIndex(sal_uInt32 nIndex)
+ {
+ return payloadIndices[nIndex];
+ }
+ </xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>
+ /**
+ Set index in parent.
+
+ @param nIndex the index
+ */
+ void setIndex(sal_uInt32 nIndex) { mnIndex = nIndex; }
+ </xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="ww8sprm"]'>
+ <xsl:variable name='propsreftype'>doctok::Reference &lt; Properties &gt;::Pointer_t</xsl:variable>
+ <xsl:text> /**
+ Return reference to properties of Sprm.
+ */
+ </xsl:text>
+ <xsl:value-of select='$propsreftype'/>
+ <xsl:text> getProps()
+ {
+ return </xsl:text>
+ <xsl:value-of select='$propsreftype'/>
+ <xsl:text> (new </xsl:text>
+ <xsl:value-of select='$classname'/>
+ <xsl:text>(*this));
+ }
+ </xsl:text>
+ </xsl:if>
+
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="ww8sprmbinary"]'>
+ <xsl:text>
+ virtual doctok::Reference &lt; BinaryObj &gt; ::Pointer_t getBinary();
+ </xsl:text>
+ </xsl:if>
+
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="needsdocument"]'>
+ <xsl:text>
+ void setDoc(WW8DocumentImplPointer pDoc)
+ {
+ mpDoc = pDoc;
+ }
+ </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="declsProperties"/>
+ <xsl:if test='$parentresource="Table"'>
+ <xsl:apply-templates select="." mode="declsTable"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test='$parentresource="Properties"'>
+ <xsl:apply-templates select="." mode="resolveProperties"/>
+ </xsl:when>
+ <xsl:when test='$parentresource="Table"'>
+ <xsl:apply-templates select="." mode="resolveTable"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>
+ };
+ </xsl:text>
+ </xsl:template>
+
+<xsl:template match='UML:Class' mode='declsProperties'>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref ="withmembers"]'>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='accessmembers'/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="debug">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref="debug"]'>
+ <xsl:text>true</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>false</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='access'>
+ <xsl:with-param name="debug">
+ <xsl:value-of select="$debug"/>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:for-each select='.//UML:Operation[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='declsOperations'/>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="UML:Class" mode="resolveProperties">
+ <xsl:if test='.//UML:Stereotype[@xmi.idref = "resolvenoauto"]'>
+ void resolveNoAuto(Properties &amp; rHandler);
+ </xsl:if>
+
+ void dump(OutputWithDepth &lt; string &gt; &amp; o) const;
+
+ void resolve(Properties &amp; rHandler);
+</xsl:template>
+
+<xsl:template match="UML:Class" mode="declsTable">
+ sal_uInt32 getEntryCount();
+ doctok::Reference&lt; Properties &gt;::Pointer_t getEntry(sal_uInt32 nIndex);
+</xsl:template>
+
+<xsl:template match="UML:Class" mode="resolveTable">
+ void resolve(Table &amp; rHandler);
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode="access">
+ <xsl:param name="debug"/>
+ <xsl:variable name="stereotype"><xsl:value-of select=".//UML:Stereotype[1]/@xmi.idref"/></xsl:variable>
+ <xsl:variable name="offset_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="offset"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable>
+ <xsl:variable name="offset">
+ <xsl:if test='$offset_ != "" and not(starts-with($offset_, "0x"))'>0x</xsl:if>
+ <xsl:value-of select='$offset_'/>
+ </xsl:variable>
+ <xsl:variable name="shift"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="shift"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:variable name="mask_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="mask"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable>
+ <xsl:variable name="mask">
+ <xsl:if test='$mask_ != "" and not(starts-with($mask_, "0x"))'>0x</xsl:if>
+ <xsl:value-of select='$mask_'/>
+ </xsl:variable>
+ <xsl:variable name='type'>
+ <xsl:value-of select="UML:StructuralFeature.type/UML:DataType/@xmi.idref"/>
+ </xsl:variable>
+ <xsl:variable name="completetype">
+ <xsl:text>WW8</xsl:text>
+ <xsl:value-of select="$type"/>
+ </xsl:variable>
+ <xsl:variable name="saltype">
+ <xsl:apply-templates select="." mode="returntype"/>
+ </xsl:variable>
+ <xsl:variable name='typetype'>
+ <xsl:call-template name='typetype'>
+ <xsl:with-param name='type'><xsl:value-of select="$type"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ /**
+ <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="comment"]/UML:TaggedValue.dataValue'/>
+
+ &lt;table&gt;
+ &lt;tr&gt;
+ &lt;th&gt;
+ Name
+ &lt;/th&gt;
+ &lt;td&gt;
+ <xsl:value-of select='@name'/>(<xsl:value-of select='$stereotype'/>)
+ &lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;th&gt;
+ Offset
+ &lt;/th&gt;
+ &lt;td&gt;
+ <xsl:value-of select='$offset'/>
+ &lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;th&gt;
+ Mask
+ &lt;/th&gt;
+ &lt;td&gt;
+ <xsl:value-of select='$mask'/>
+ &lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;tr&gt;
+ &lt;th&gt;
+ Shift
+ &lt;/th&gt;
+ &lt;td&gt;
+ <xsl:value-of select='$shift'/>
+ &lt;/td&gt;
+ &lt;/tr&gt;
+ &lt;/table&gt;
+ */
+
+<xsl:choose>
+ <xsl:when test='$stereotype = "attribute"'>
+ <xsl:if test='././/UML:Stereotype[@xmi.idref="virtual"]'>
+ <xsl:text>virtual </xsl:text>
+ </xsl:if>
+ <xsl:value-of select='$saltype'/> get_<xsl:value-of select='@name'/>() const
+ {
+ <xsl:if test='$debug="true"'>
+ <xsl:text>
+ clog &lt;&lt; "&lt;called&gt;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>&lt;/called&gt;"
+ &lt;&lt; endl;&#xa;
+ </xsl:text>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test='$typetype = "complex"'>
+ <xsl:text> return </xsl:text>
+ <xsl:value-of select="$saltype"/>
+ <xsl:text>(new </xsl:text>
+ <xsl:value-of select="$completetype"/>
+ <xsl:text>(*this, </xsl:text>
+ <xsl:value-of select="$offset"/>
+ <xsl:text>));&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> return (get</xsl:text>
+ <xsl:value-of select="$type"/>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$offset"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="string-length($mask)>0">
+ <xsl:text>&amp; </xsl:text>
+ <xsl:value-of select="$mask"/>
+ </xsl:if>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="$shift>0">
+ <xsl:text>&gt;&gt; </xsl:text>
+ <xsl:value-of select="$shift"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:when>
+ <xsl:when test='$stereotype = "array"'>
+ <xsl:text>sal_uInt32 get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>_count() const </xsl:text>
+ <xsl:choose>
+ <xsl:when test='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref = "arraycount"]'>
+ <xsl:text>{ return </xsl:text>
+ <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref = "arraycount"]/UML:TaggedValue.dataValue'/>
+ <xsl:text>; }&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>;&#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select='$saltype'/>
+ <xsl:text> get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>(sal_uInt32 nIndex) const {</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$typetype='complex'">
+ <xsl:text> return </xsl:text>
+ <xsl:value-of select="$saltype"/>
+ <xsl:text>( new </xsl:text>
+ <xsl:value-of select="$completetype"/>
+ <xsl:text>(static_cast&lt;const WW8StructBase &gt;(*this), </xsl:text>
+ <xsl:value-of select="$offset"/>
+ <xsl:text> + nIndex * </xsl:text>
+ <xsl:value-of select="$completetype"/>
+ <xsl:text>::getSize()));</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> return get</xsl:text>
+ <xsl:value-of select='$type'/>
+ <xsl:text>(</xsl:text><xsl:value-of select='$offset'/>
+ <xsl:text>+ nIndex * sizeof(</xsl:text>
+ <xsl:value-of select='$saltype'/>
+ <xsl:text>))</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>; }&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:when test='$stereotype = "string"'>
+ rtl::OUString get_<xsl:value-of select='@name'/>() const { return getString(<xsl:value-of select='$offset'/>); }
+ </xsl:when>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match='UML:Attribute' mode='accessmembers'>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='.//UML:DataType/@xmi.idref'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>() const { return m</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>; }
+ </xsl:text>
+</xsl:template>
+
+
+<xsl:template match="UML:Operation" mode="declsOperations">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "array"'>
+ <xsl:variable name="elementtype">
+ <xsl:value-of select='.//UML:Parameter.type/UML:Class/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:variable name="parentclass">
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$elementtype'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='saltype'>
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$elementtype'/>
+ </xsl:with-param>
+ <xsl:with-param name='parenttype'>
+ <xsl:value-of select='$parentclass'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ /**
+ Array: <xsl:value-of select="@name"/>
+ ElementType: <xsl:value-of select="$elementtype"/>(<xsl:value-of select="$parentclass"/>)
+ */
+
+ sal_uInt32 get_<xsl:value-of select="@name"/>_count();
+
+ <xsl:text> </xsl:text><xsl:value-of select='$saltype'/> get_<xsl:value-of select="@name"/>(sal_uInt32 pos);
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "attribute" or .//UML:Stereotype/@xmi.idref = "binary"'>
+ <xsl:variable name="returntype_">
+ <xsl:value-of select='.//UML:Parameter.type/UML:Class/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:variable name="returntype">
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$returntype_'/>
+ </xsl:with-param>
+ <xsl:with-param name='parenttype'>
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$returntype_'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ /**
+ Operation: <xsl:value-of select="@name"/>
+ */
+
+ <xsl:text> </xsl:text>
+ <xsl:value-of select='$returntype'/>
+ <xsl:text> get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>();&#xa;</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode='declmembers'>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='.//UML:DataType/@xmi.idref'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> m</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>;
+ </xsl:text>
+</xsl:template>
+
+<xsl:template name='idtoqname'>
+ <xsl:param name='id'/>NS_<xsl:value-of select='substring-before($id, ":")'/>::LN_<xsl:value-of select='substring-after($id, ":")'/>
+</xsl:template>
+
+<xsl:template name='saltype'>
+ <xsl:param name='type'/>
+ <xsl:param name='parenttype'/>
+ <xsl:choose>
+ <xsl:when test="$type='U8'">sal_uInt8</xsl:when>
+ <xsl:when test="$type='S8'">sal_Int8</xsl:when>
+ <xsl:when test="$type='U16'">sal_uInt16</xsl:when>
+ <xsl:when test="$type='S16'">sal_Int16</xsl:when>
+ <xsl:when test="$type='U32'">sal_uInt32</xsl:when>
+ <xsl:when test="$type='S32'">sal_Int32</xsl:when>
+ <xsl:when test="$type='String'">rtl::OUString</xsl:when>
+ <xsl:when test="$type='Value'">WW8Value::Pointer_t</xsl:when>
+ <xsl:when test="$type='Binary'">WW8BinaryObjReference::Pointer_t</xsl:when>
+ <xsl:when test="$parenttype=''">
+ <xsl:value-of select="$type"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>doctok::Reference &lt; </xsl:text>
+ <xsl:value-of select='$parenttype'/>
+ <xsl:text> &gt;::Pointer_t</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name='typetype'>
+ <xsl:param name='type'/><xsl:choose>
+ <xsl:when test="$type='U8'">simple</xsl:when>
+ <xsl:when test="$type='S8'">simple</xsl:when>
+ <xsl:when test="$type='U16'">simple</xsl:when>
+ <xsl:when test="$type='S16'">simple</xsl:when>
+ <xsl:when test="$type='U32'">simple</xsl:when>
+ <xsl:when test="$type='S32'">simple</xsl:when>
+ <xsl:when test="$type='String'">string</xsl:when>
+ <xsl:when test="$type='Value'">value</xsl:when>
+ <xsl:otherwise>complex</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode="valuetype">
+ <xsl:variable name='type'>
+ <xsl:value-of select='.//UML:DataType/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test='$type="U8"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S8"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="U16"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S16"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="U32"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S32"'>WW8IntValue</xsl:when>
+ <xsl:otherwise>WW8PropertiesValue</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="UML:Class" mode="dffrecord">
+ <xsl:variable name="classname">
+ <xsl:text>Dff</xsl:text><xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:text>
+/**
+ Automaticallay generated class:
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>&#xa;
+*/&#xa;
+class </xsl:text>
+<xsl:value-of select="$classname"/>
+<xsl:text> : public DffRecord
+{
+public:
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 nCount)
+ : DffRecord(pParent, nOffset, nCount) {}
+ virtual </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::~</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>();
+
+ virtual void resolveLocal(Properties &amp; props);
+ virtual void dump(OutputWithDepth &lt; string &gt; &amp; o) const;
+
+ virtual DffRecord * clone() const { return new </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(*this); }&#xa;
+ virtual string getType() const
+ {
+ return "</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>";
+ }
+
+ virtual string getName() const { return ""; }
+ </xsl:text>
+ <xsl:apply-templates select="." mode="declsProperties"/>
+ <xsl:text>
+};
+</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="UML:Class" mode="dffopt">
+<!--
+ <xsl:variable name="classname">
+ <xsl:text>DffOpt</xsl:text><xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:text>
+/**
+ Automaticallay generated class:
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>&#xa;
+*/&#xa;
+class </xsl:text>
+<xsl:value-of select="$classname"/>
+<xsl:text> : public WW8FOPTE
+{
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(WW8FOPTE &amp; rOpt) : WW8FOPTE(rOpt) {}
+
+ virtual string getName() const
+ {
+ return "</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>";
+ }&#xa;</xsl:text>
+
+ <xsl:text>
+};
+</xsl:text>
+-->
+</xsl:template>
+
+<xsl:template name="parenttype">
+ <xsl:param name='type'/>
+ <xsl:value-of select='//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$type]/UML:Generalization.parent/UML:Class/@xmi.idref'/>
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode="returntype">
+ <xsl:variable name='type'>
+ <xsl:value-of select="UML:StructuralFeature.type/UML:DataType/@xmi.idref"/>
+ </xsl:variable>
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select="$type"/>
+ </xsl:with-param>
+ <xsl:with-param name='parenttype'>
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'><xsl:value-of select='$type'/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/resourcesimpl.xsl b/writerfilter/source/doctok/resourcesimpl.xsl
new file mode 100644
index 000000000000..7fe24b9aa530
--- /dev/null
+++ b/writerfilter/source/doctok/resourcesimpl.xsl
@@ -0,0 +1,817 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+<xsl:output method="text" />
+
+<xsl:template match="/">
+<xsl:text>
+/*
+
+ THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT!
+
+ $RCSfile: resourcesimpl.xsl,v $
+
+ $Revision: 1.1 $
+*/
+#include &lt;resources.hxx&gt;
+
+#ifndef WW8_OUTPUT_WITH_DEPTH
+#include &lt;WW8OutputWithDepth.hxx&gt;
+#endif
+
+namespace doctok {
+
+extern WW8OutputWithDepth output;
+
+using namespace ::std;
+</xsl:text>
+<xsl:apply-templates select='.//UML:Class' mode='class'/>
+<xsl:apply-templates select='//UML:Model' mode='qnametostr'/>
+<xsl:apply-templates select='//UML:Model' mode='sprmcodetostr'/>
+<xsl:apply-templates select='//UML:Model' mode='createsprmprops'/>
+<xsl:apply-templates select='//UML:Model' mode='createsprmbinary'/>
+<xsl:apply-templates select='//UML:Model' mode='createdffrecord'/>
+<xsl:apply-templates select='//UML:Model' mode='ww8foptename'/>
+<xsl:apply-templates select='//UML:Model' mode='isbooleandffopt'/>
+<xsl:text>
+}
+</xsl:text>
+</xsl:template>
+
+ <xsl:template match="UML:Class" mode="class">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8resource"]'>
+ <xsl:apply-templates select="." mode="ww8resource">
+ <xsl:with-param name="classprefix">WW8</xsl:with-param>
+ <xsl:with-param name="needsinit">true</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "dffrecord"]'>
+ <xsl:apply-templates select="." mode="ww8resource">
+ <xsl:with-param name="classprefix">Dff</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="UML:Class" mode="ww8resource">
+ <xsl:param name="classprefix"/>
+ <xsl:param name="needsinit"/>
+ <xsl:variable name="parentresource">
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'><xsl:value-of select='@xmi.id'/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='size_'><xsl:value-of select='./*/UML:TaggedValue[./*/UML:TagDefinition/@xmi.idref="size"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:variable name='size'>
+ <xsl:choose>
+ <xsl:when test='$size_ != ""'><xsl:value-of select='$size_'/></xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="classname"><xsl:value-of select="$classprefix"/><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="superclass">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8sprm"]'>WW8PropertyImpl</xsl:when>
+ <xsl:otherwise>WW8StructBase</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="surroundclass">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8sprm"]'>WW8PropertyImpl</xsl:when>
+ <xsl:otherwise>WW8StructBase</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:text>
+/*
+ Automatically generated class: </xsl:text><xsl:value-of select="@name"/><xsl:text>
+ </xsl:text>
+ <xsl:for-each select='./UML:ModelElement.stereotype/UML:Stereotype'>
+ <xsl:text>
+ Stereotype </xsl:text>
+ <xsl:value-of select='@xmi.idref'/>
+ <xsl:text>&#xa;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ Parent Resource: </xsl:text>
+ <xsl:value-of select="$parentresource"/>
+ <xsl:text>
+ Size: </xsl:text><xsl:value-of select='$size'/>
+ <xsl:text>
+*/
+ </xsl:text>
+
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::~</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>()
+ {
+ }
+ </xsl:text>
+ <xsl:if test="$needsinit='true'">
+ <xsl:text>
+ void </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::init()
+ {
+ </xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withmembers"]'>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='initmembers'/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="initimpl"]'>
+ <xsl:text> initImpl();&#xa;</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ }&#xa;</xsl:text>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test='$parentresource="Properties"'>
+ <xsl:apply-templates select="." mode="resolveProperties">
+ <xsl:with-param name="classname" select="$classname"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test='$parentresource="Table"'>
+ <xsl:apply-templates select="." mode="resolveTable">
+ <xsl:with-param name="classname" select="$classname"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <xsl:template match="UML:Class" mode="resolveProperties">
+ <xsl:param name="classname"/>
+ <xsl:variable name="rHandler">
+ <xsl:choose>
+ <xsl:when test='.//UML:Attribute[@name!="reserved"]//UML:Stereotype[@xmi.idref != "noresolve"]'>
+ <xsl:text>rHandler</xsl:text>
+ </xsl:when>
+ <xsl:when test='.//UML:Operation[@name!="reserved"]//UML:Stereotype[@xmi.idref != "noresolve"]'>
+ <xsl:text>rHandler</xsl:text>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "resolvenoauto"]'>
+ <xsl:text>rHandler</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:text>void </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:choose>
+ <xsl:when test=".//UML:Stereotype[@xmi.idref='ww8resource']">
+ <xsl:text>::resolve(Properties &amp; </xsl:text>
+ <xsl:value-of select="$rHandler"/>
+ <xsl:text>)&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:when test=".//UML:Stereotype[@xmi.idref='dffrecord']">
+ <xsl:text>::resolveLocal(Properties &amp; </xsl:text>
+ <xsl:value-of select="$rHandler"/>
+ <xsl:text>)&#xa;</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>
+ {
+ </xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref="debug"]'>
+ dump(output);
+ </xsl:if>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref="noresolve"]'>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select='.' mode='resolveAttribute'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:for-each select='.//UML:Operation[@name!="reserved"]'>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref="noresolve"]'>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select='.' mode='resolveOperation'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+
+ <xsl:if test='.//UML:Stereotype[@xmi.idref = "resolvenoauto"]'>
+ resolveNoAuto(rHandler);
+ </xsl:if>
+ <xsl:text>
+ }
+
+ void
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::dump(OutputWithDepth &lt; string &gt; &amp; o) const
+ {
+ o.addItem("&lt;dump type='</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>'&gt;");
+
+ WW8StructBase::dump(o);&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='dumpAttribute'/>
+ </xsl:for-each>
+
+ <xsl:text>
+ o.addItem("&lt;/dump&gt;");
+ }&#xa;</xsl:text>
+ </xsl:template>
+
+ <xsl:template match='UML:Attribute' mode='resolveAttribute'>
+ <xsl:variable name="attrid"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "attribute"'>
+ <xsl:text>
+ {
+ WW8Value::Pointer_t pVal = createValue(get_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>());
+ rHandler.attribute(</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='$attrid'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>, *pVal);
+ }
+ </xsl:text>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "array"'>
+ <xsl:variable name="elementtype">
+ <xsl:value-of select='.//UML:DataType/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:variable name="parentclass">
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$elementtype'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:text>
+ {
+ sal_uInt32 nCount = get_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>_count();
+
+ for (sal_uInt32 n = 0; n &lt; nCount; ++n)
+ {
+ WW8Value::Pointer_t pVal = createValue(get_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>(n));
+ rHandler.attribute(</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='$attrid'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>, *pVal);
+ }
+ }&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "string"'>
+ <xsl:text>
+ {
+ WW8StringValue aVal(get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>());
+ rHandler.attribute(</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='$attrid'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>, aVal);
+ }&#xa;
+ </xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match='UML:Attribute' mode='dumpAttribute'>
+ <xsl:variable name="type"><xsl:value-of select='.//UML:DataType/@xmi.idref'/></xsl:variable><xsl:variable name="saltype">
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$type'/>
+ </xsl:with-param>
+ <xsl:with-param name='parenttype'>
+ <xsl:apply-templates select="." mode="parentclass"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "array"'>
+ <xsl:text>
+ {
+ sal_uInt32 nCount = get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>_count();
+
+ for (sal_uInt32 n = 0; n &lt; nCount; ++n)
+ {
+ doctok::dump(o, "</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>", get_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>(n));
+ }
+ }&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "string"'>
+ <xsl:text>
+ {
+ WW8StringValue aVal(get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>());
+
+ o.addItem("</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>" &lt;&lt; "=\"" + aVal.toString() + "\"");
+ }&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ doctok::dump(o, "<xsl:value-of select='@name'/>", get_<xsl:value-of select="@name"/>());
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match='UML:Operation' mode='resolveOperation'>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "attribute"'>
+ <xsl:variable name="opid"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:text>
+ {
+ WW8Value::Pointer_t pVal = createValue(get_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>());
+ rHandler.attribute(</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='$opid'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>, *pVal);
+ }&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "array"'>
+ <xsl:variable name="elementtype">
+ <xsl:value-of select='.//UML:Parameter.type/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:variable name="opid"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:variable name="parentclass">
+ <xsl:value-of select='//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$elementtype]/UML:Generalization.parent/UML:Class/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:text>
+ {
+ sal_uInt32 nCount = get_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>_count();
+
+ for (sal_uInt32 n = 0; n &lt; nCount; ++n)
+ {
+ WW8Value::Pointer_t pVal = createValue(get_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>(n));
+ rHandler.attribute(</xsl:text>
+ <xsl:call-template name='idtoqname'>
+ <xsl:with-param name='id'><xsl:value-of select='$opid'/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>, *pVal);
+ }
+ }&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "binary"'>
+ <xsl:text>
+ {
+ WW8BinaryObjReference::Pointer_t pRef(get_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>());
+ WW8Sprm aSprm(pRef);
+
+ rHandler.sprm(aSprm);
+ }&#xa;
+ </xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="UML:Class" mode="resolveTable">
+ <xsl:param name="classname"/>
+ <xsl:text>void </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::resolve(Table &amp; rHandler)
+ {
+ sal_uInt32 nCount = getEntryCount();
+ doctok::Reference&lt; Properties &gt;::Pointer_t pEntry;
+ for (sal_uInt32 n = 0; n &lt; nCount; ++n)
+ {
+ pEntry = getEntry(n);
+
+ if (pEntry.get() != 0x0)
+ {
+ try
+ {
+ rHandler.entry(n, pEntry);
+ }
+ catch (ExceptionOutOfBounds e)
+ {
+ }
+ }
+ }
+ }
+ </xsl:text>
+ </xsl:template>
+
+<xsl:template match='UML:Model' mode='qnametostr'>
+QNameToString::QNameToString()
+{
+<xsl:variable name='tmp'>map &lt; sal_uInt32, string &gt; </xsl:variable>
+ /* Attributes */
+<xsl:for-each select='.//UML:Attribute[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]'>
+<xsl:choose>
+<xsl:when test='.//UML:Stereotype[@xmi.idref="noresolve"]'>
+</xsl:when>
+<xsl:otherwise>
+<xsl:text> mMap[</xsl:text>
+<xsl:call-template name='idtoqname'>
+<xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+</xsl:call-template>
+<xsl:text>]= "</xsl:text>
+<xsl:value-of select='.//UML:TaggedValue.dataValue'/>
+<xsl:text>";
+</xsl:text>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:for-each>
+ /* Operations */
+<xsl:for-each select='.//UML:Operation[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]'>
+<xsl:choose>
+<xsl:when test='.//UML:Stereotype[@xmi.idref="noresolve"]'>
+</xsl:when>
+<xsl:otherwise>
+<xsl:text> mMap[</xsl:text>
+<xsl:call-template name='idtoqname'>
+<xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+</xsl:call-template>
+<xsl:text>] = "</xsl:text>
+<xsl:value-of select='.//UML:TaggedValue.dataValue'/>
+<xsl:text>";
+</xsl:text>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:for-each>
+ /* Classes */
+<xsl:for-each select='.//UML:Class[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="classid"]'>
+<xsl:text> mMap[</xsl:text>
+<xsl:call-template name='idtoqname'>
+<xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param>
+</xsl:call-template>
+<xsl:text>] = "</xsl:text>
+<xsl:value-of select='.//UML:TaggedValue.dataValue'/>
+<xsl:text>";
+</xsl:text>
+</xsl:for-each>
+}
+</xsl:template>
+
+<xsl:template match='UML:Model' mode='sprmcodetostr'>
+SprmIdToString::SprmIdToString()
+{
+<xsl:variable name='tmp'>map &lt; sal_uInt32, string &gt; </xsl:variable>
+<xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="ww8sprm"]'>
+ mMap[<xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="sprmcode"]//UML:TaggedValue.dataValue'/>] = "<xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="sprmid"]//UML:TaggedValue.dataValue'/>";</xsl:for-each>
+}
+</xsl:template>
+
+<xsl:template match='UML:Model' mode='createsprmprops'>
+doctok::Reference &lt; Properties &gt; ::Pointer_t createSprmProps
+(WW8PropertyImpl &amp; rProp)
+{
+ doctok::Reference &lt; Properties &gt; ::Pointer_t pResult;
+
+ switch (rProp.getId())
+ {
+<xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="ww8sprm" and .//UML:Stereotype/@xmi.idref="ww8resource"]'>
+ case <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="sprmcode"]//UML:TaggedValue.dataValue'/>:
+ pResult = doctok::Reference &lt; Properties &gt; ::Pointer_t(new WW8<xsl:value-of select='@name'/>(rProp, 0, rProp.getCount()));
+
+ break;
+</xsl:for-each>
+ default:
+ break;
+ }
+
+ return pResult;
+}
+</xsl:template>
+
+<xsl:template match='UML:Model' mode='createsprmbinary'>
+<xsl:text>
+doctok::Reference &lt; BinaryObj &gt; ::Pointer_t createSprmBinary
+(WW8PropertyImpl &amp; rProp)
+{
+ doctok::Reference &lt; BinaryObj &gt; ::Pointer_t pResult;
+
+ switch (rProp.getId())
+ {&#xa;
+ // warnings....
+ case 0:
+ break;
+</xsl:text>
+<xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="ww8sprmbinary" and .//UML:Stereotype/@xmi.idref="ww8resource"]'>
+ case <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="sprmcode"]//UML:TaggedValue.dataValue'/>:
+ {
+ WW8<xsl:value-of select='@name'/>::Pointer_t p(new WW8<xsl:value-of select='@name'/>(rProp, 0, rProp.getCount()));
+
+ pResult = p->getBinary();
+ }
+
+ break;
+</xsl:for-each>
+<xsl:text>
+ default:
+ break;
+ }
+
+ return pResult;
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template match='UML:Model' mode='ww8foptename'>
+<xsl:text>
+rtl::OUString WW8FOPTE::get_name()
+{
+ return getDffOptName(get_pid());
+}
+
+rtl::OUString getDffOptName(sal_uInt32 nPid)
+{
+ rtl::OUString result;
+
+ switch (nPid)
+ {&#xa;</xsl:text>
+ <xsl:for-each select=".//UML:Class[.//UML:Stereotype/@xmi.idref='dffopt']">
+ <xsl:text>
+ case </xsl:text>
+ <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='fopid']//UML:TaggedValue.dataValue"/>
+ <xsl:text>:
+ result = rtl::OUString::createFromAscii("</xsl:text>
+ <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='optname']//UML:TaggedValue.dataValue"/>
+ <xsl:text>");
+ break;&#xa;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ default:
+ break;
+ }
+
+ return result;
+}
+
+WW8Value::Pointer_t WW8FOPTE::get_value()
+{
+ WW8Value::Pointer_t pResult;
+
+ switch (get_pid())
+ {&#xa;</xsl:text>
+ <xsl:for-each select=".//UML:Class[.//UML:Stereotype/@xmi.idref='dffopt']">
+ <xsl:variable name="type">
+ <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='type']//UML:TaggedValue.dataValue"/>
+ </xsl:variable>
+ <xsl:if test="$type != 'unknown'">
+ <xsl:variable name="typetype">
+ <xsl:call-template name="typetype">
+ <xsl:with-param name="type" select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='type']//UML:TaggedValue.dataValue"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="valuetype">
+ <xsl:call-template name="valuetype">
+ <xsl:with-param name="type" select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='type']//UML:TaggedValue.dataValue"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:text>
+ case </xsl:text>
+ <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='fopid']//UML:TaggedValue.dataValue"/>
+ <xsl:text>:
+ {
+ </xsl:text>
+ <xsl:choose>
+ <xsl:when test=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='isbool']">
+ <xsl:text>pResult = createValue(getU32(0x2) &amp; 1);&#xa;</xsl:text>
+
+ </xsl:when>
+ <xsl:when test="$typetype='complex'">
+ <xsl:text>pResult = createValue(new </xsl:text>
+ <xsl:value-of select="$valuetype"/>
+ <xsl:text>(getU32(0x2)));&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$typetype='string'">
+ <xsl:text>
+ DffOPT * pOpt = dynamic_cast &lt; DffOPT * &gt;(mpParent);
+ sal_uInt32 nExtraOffset = pOpt->get_extraoffset(mnIndex);
+ sal_uInt32 nExtraLength = pOpt->get_extraoffset(mnIndex + 1) - nExtraOffset;
+ pResult = createValue(mpParent->getString(nExtraOffset, nExtraLength / 2));&#xa;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>pResult = createValue(getU32(0x2));&#xa;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>
+ }
+ break;&#xa;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+ default:
+ pResult = createValue(getU32(0x2));
+
+ break;
+ }
+
+ return pResult;
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="UML:Model" mode="createdffrecord">
+<xsl:text>
+DffRecord * createDffRecord
+(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 * pCount)
+{
+ DffRecord * pResult = NULL;
+ DffRecord aTmpRec(pParent, nOffset, 8);
+ sal_uInt32 nSize = aTmpRec.calcSize();
+
+ if (pCount != NULL)
+ *pCount = nSize;
+
+ switch (aTmpRec.getRecordType())
+ {&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="dffrecord"]'>
+ <xsl:text> case </xsl:text>
+ <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='dffid']//UML:TaggedValue.dataValue"/>
+ <xsl:text>:
+ pResult = new Dff</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>(pParent, nOffset, nSize);
+
+ break;&#xa;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ default:
+ pResult = new DffRecord(pParent, nOffset, nSize);
+
+ break;
+ }
+
+ return pResult;
+}
+ </xsl:text>
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode="initmembers">
+ <xsl:variable name="stereotype"><xsl:value-of select=".//UML:Stereotype/@xmi.idref"/></xsl:variable>
+ <xsl:variable name="offset_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="offset"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable>
+ <xsl:variable name="offset">
+ <xsl:if test='$offset_ != "" and not(starts-with($offset_, "0x"))'>0x</xsl:if>
+ <xsl:value-of select='$offset_'/>
+ </xsl:variable>
+ <xsl:variable name="shift"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="shift"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:variable name="mask_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="mask"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable>
+ <xsl:variable name="mask">
+ <xsl:if test='$mask_ != "" and not(starts-with($mask_, "0x"))'>0x</xsl:if>
+ <xsl:value-of select='$mask_'/>
+ </xsl:variable>
+ <xsl:variable name="type"><xsl:value-of select='.//UML:DataType/@xmi.idref'/></xsl:variable><xsl:variable name="saltype">
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$type'/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:variable>
+
+/*
+<xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="comment"]/UML:TaggedValue.dataValue'/>
+
+Name: <xsl:value-of select='@name'/>(<xsl:value-of select='$stereotype'/>)
+Offset: <xsl:value-of select='$offset'/>
+Mask: <xsl:value-of select='$mask'/>
+Shift: <xsl:value-of select='$shift'/>
+*/
+
+<xsl:choose>
+ <xsl:when test='$stereotype = "attribute"'>
+ m<xsl:value-of select='@name'/> = (get<xsl:value-of select="$type"/>(<xsl:value-of select="$offset"/>)<xsl:if test="string-length($mask)>0"> &amp; <xsl:value-of select="$mask"/></xsl:if>)<xsl:if test="$shift>0"> &gt;&gt; <xsl:value-of select="$shift"/></xsl:if>;
+ </xsl:when>
+ <xsl:when test='$stereotype = "array"'>
+ <xsl:text>
+ {
+ sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref = "arraycount"]/UML:TaggedValue.dataValue'/>
+ <xsl:text>;
+ m</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text> = new </xsl:text><xsl:value-of select='$saltype'/><xsl:text>[nCount];
+
+ for (sal_uInt32 n = 0; n &lt; nCount; ++n)
+ m</xsl:text><xsl:value-of select='@name'/><xsl:text>[n] = get</xsl:text>
+ <xsl:value-of select='$type'/>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select='$offset'/>
+ <xsl:text> + nIndex * sizeof(</xsl:text>
+ <xsl:value-of select='$saltype'/>
+ <xsl:text>));
+ }
+ </xsl:text>
+ </xsl:when>
+ <xsl:when test='$stereotype = "string"'>
+ m<xsl:value-of select='@name'/> = getString(<xsl:value-of select='$offset'/>)
+ </xsl:when>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="UML:Model" mode="isbooleandffopt">
+<xsl:text>
+bool isBooleanDffOpt(sal_uInt32 nId)
+{
+ bool bResult = false;
+
+ switch (nId)
+ {&#xa;</xsl:text>
+ <xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="dffopt"]'>
+ <xsl:if test=".//UML:TagDefinition[@xmi.idref='isbool']">
+ <xsl:text> case </xsl:text>
+ <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='fopid']/UML:TaggedValue.dataValue"/>
+ <xsl:text>:&#xa;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+ bResult = true;
+ break;
+
+ default:
+ break;
+ }
+
+ return bResult;
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template name='idtoqname'>
+<xsl:param name='id'/>NS_<xsl:value-of select='substring-before($id, ":")'/>::LN_<xsl:value-of select='substring-after($id, ":")'/>
+</xsl:template>
+
+<xsl:template name="parenttype">
+ <xsl:param name='type'/>
+ <xsl:value-of select='//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$type]/UML:Generalization.parent/UML:Class/@xmi.idref'/>
+</xsl:template>
+
+<xsl:template name='saltype'>
+ <xsl:param name='type'/>
+ <xsl:param name='parenttype'/>
+ <xsl:choose>
+ <xsl:when test="$type='U8'">sal_uInt8</xsl:when>
+ <xsl:when test="$type='S8'">sal_Int8</xsl:when>
+ <xsl:when test="$type='U16'">sal_uInt16</xsl:when>
+ <xsl:when test="$type='S16'">sal_Int16</xsl:when>
+ <xsl:when test="$type='U32'">sal_uInt32</xsl:when>
+ <xsl:when test="$type='S32'">sal_Int32</xsl:when>
+ <xsl:when test="$type='String'">rtl::OUString</xsl:when>
+ <xsl:otherwise>
+ <xsl:text>doctok::Reference &lt; </xsl:text>
+ <xsl:value-of select='$parenttype'/>
+ <xsl:text> &gt;::Pointer_t</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name='typetype'>
+ <xsl:param name='type'/><xsl:choose>
+ <xsl:when test="$type='U8'">simple</xsl:when>
+ <xsl:when test="$type='S8'">simple</xsl:when>
+ <xsl:when test="$type='U16'">simple</xsl:when>
+ <xsl:when test="$type='S16'">simple</xsl:when>
+ <xsl:when test="$type='U32'">simple</xsl:when>
+ <xsl:when test="$type='S32'">simple</xsl:when>
+ <xsl:when test="$type='String'">string</xsl:when>
+ <xsl:when test="$type='Binary'">binary</xsl:when>
+ <xsl:otherwise>complex</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template name="valuetype">
+ <xsl:param name="type"/>
+ <xsl:choose>
+ <xsl:when test='$type="U8"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S8"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="U16"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S16"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="U32"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S32"'>WW8IntValue</xsl:when>
+ <xsl:otherwise>WW8PropertiesValue</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode="valuetype">
+ <xsl:call-template name="valuetype">
+ <xsl:with-param name="type" select='.//UML:DataType/@xmi.idref'/>
+ </xsl:call-template>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/writerfilter/source/doctok/tidyxmi.xsl b/writerfilter/source/doctok/tidyxmi.xsl
new file mode 100644
index 000000000000..01bb577362a3
--- /dev/null
+++ b/writerfilter/source/doctok/tidyxmi.xsl
@@ -0,0 +1,89 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+<xsl:output indent="yes"/>
+<xsl:template match="/">
+<XMI xmi.version="1.2">
+ <XMI.header>
+ <XMI.documentation/>
+ </XMI.header>
+ <XMI.content>
+ <UML:Model xmlns:UML="org.omg.xmi.namespace.UML" name="WW8Document" >
+ <UML:Namespace.ownedElement>
+ <xsl:apply-templates select=".//UML:Model/UML:Namespace.ownedElement"/>
+ </UML:Namespace.ownedElement>
+ </UML:Model>
+ </XMI.content>
+</XMI>
+
+</xsl:template>
+
+<xsl:template match="UML:Namespace.ownedElement">
+ <xsl:comment>Stereotypes </xsl:comment>
+ <xsl:copy-of select="UML:Stereotype"/>
+ <xsl:comment>Stereotypes</xsl:comment>
+ <xsl:comment>Datatypes </xsl:comment>
+ <xsl:copy-of select="UML:DataType"/>
+ <xsl:comment>Datatypes</xsl:comment>
+ <xsl:comment>Tag definitions </xsl:comment>
+ <xsl:copy-of select="UML:TagDefinition"/>
+ <xsl:comment>Tag definitions </xsl:comment>
+ <xsl:comment>Classes without stereotype</xsl:comment>
+ <xsl:apply-templates select="UML:Class[count(./UML:ModelElement.stereotype) = 0]"/>
+ <xsl:comment>Classes without stereotype</xsl:comment>
+ <xsl:comment>Resources</xsl:comment>
+ <xsl:copy-of select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='resource']"/>
+ <xsl:comment>Resources</xsl:comment>
+ <xsl:comment>WW8 resources</xsl:comment>
+ <xsl:apply-templates select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8resource' and count(UML:ModelElement.stereotype/UML:Stereotype[@xmi.idref='ww8sprm']) = 0]"/>
+ <xsl:comment>WW8 resources</xsl:comment>
+ <xsl:comment>SPRMS</xsl:comment>
+ <xsl:apply-templates select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8sprm']"/>
+ <xsl:comment>SPRMS</xsl:comment>
+ <xsl:comment>DFFS</xsl:comment>
+ <xsl:apply-templates select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='dffrecord']"/>
+ <xsl:comment>DFFS</xsl:comment>
+ <xsl:comment>DFFOPT</xsl:comment>
+ <xsl:apply-templates select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='dffopt']"/>
+ <xsl:comment>DFFOPT</xsl:comment>
+</xsl:template>
+
+<xsl:template match="UML:Class[count(UML:ModelElement.stereotype) = 0]">
+ <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable>
+ <xsl:comment>Class <xsl:value-of select="@xmi.id"/></xsl:comment>
+ <xsl:copy-of select="."/>
+ <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/>
+ <xsl:comment>Class <xsl:value-of select="@xmi.id"/></xsl:comment>
+</xsl:template>
+
+<xsl:template match="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8resource' and count(UML:ModelElement.stereotype/UML:Stereotype[@xmi.idref='ww8sprm']) = 0]">
+ <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable>
+ <xsl:comment>Class <xsl:value-of select="@xmi.id"/></xsl:comment>
+ <xsl:copy-of select="."/>
+ <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/>
+ <xsl:comment>Class <xsl:value-of select="@xmi.id"/></xsl:comment>
+</xsl:template>
+
+<xsl:template match="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8sprm']">
+ <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable>
+ <xsl:comment>SPRM <xsl:value-of select="@xmi.id"/></xsl:comment>
+ <xsl:copy-of select="."/>
+ <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/>
+ <xsl:comment>SPRM <xsl:value-of select="@xmi.id"/></xsl:comment>
+</xsl:template>
+
+<xsl:template match="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='dffrecord']">
+ <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable>
+ <xsl:comment>DFF <xsl:value-of select="@xmi.id"/></xsl:comment>
+ <xsl:copy-of select="."/>
+ <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/>
+ <xsl:comment>DFF <xsl:value-of select="@xmi.id"/></xsl:comment>
+</xsl:template>
+
+<xsl:template match="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='dffopt']">
+ <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable>
+ <xsl:comment>DFFOPT <xsl:value-of select="@xmi.id"/></xsl:comment>
+ <xsl:copy-of select="."/>
+ <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/>
+ <xsl:comment>DFFOPT <xsl:value-of select="@xmi.id"/></xsl:comment>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/doctok/util.hxx b/writerfilter/source/doctok/util.hxx
new file mode 100644
index 000000000000..efa06a81cbda
--- /dev/null
+++ b/writerfilter/source/doctok/util.hxx
@@ -0,0 +1,29 @@
+#ifndef INCLUDED_UTIL_HXX
+#define INCLUDED_UTIL_HXX
+
+#include <string>
+#include <iostream>
+
+namespace doctok {
+using namespace ::std;
+
+/**
+ Assertion
+
+ @bTest if false the assertion is raised
+*/
+void util_assert(bool bTest);
+
+/**
+ Print string to ostream.
+
+ Printable characters are passed without change. Non-printable
+ characters are replaced by '.'.
+
+ @param o ostream for output
+ @param str string to print
+ */
+void printBytes(ostream & o, const string & str);
+}
+
+#endif // INCLUDED_UTIL_HXX
diff --git a/writerfilter/source/doctok/xmigen.el b/writerfilter/source/doctok/xmigen.el
new file mode 100644
index 000000000000..d4afac3d3a76
--- /dev/null
+++ b/writerfilter/source/doctok/xmigen.el
@@ -0,0 +1,119 @@
+(defun insert-uml-class-begin (name)
+ (insert "<UML:Class xmi.id=\"" name "\" name=\"" name "\">\n"))
+
+(defun insert-uml-class-end ()
+ (insert "</UML:Class>\n"))
+
+(defun insert-uml-stereotype (stereotype)
+ (insert "<UML:ModelElement.stereotype>\n")
+ (insert " <UML:Stereotype xmi.idref=\"" stereotype "\"/>\n")
+ (insert "</UML:ModelElement.stereotype>\n"))
+
+
+(defun insert-uml-taggedvalue (value type)
+ (insert " <UML:ModelElement.taggedValue>\n")
+ (insert " <UML:TaggedValue>\n")
+ (insert " <UML:TaggedValue.dataValue>" value "</UML:TaggedValue.dataValue>\n")
+ (insert " <UML:TaggedValue.type>\n")
+ (insert " <UML:TagDefinition xmi.idref=\"" type "\"/>\n")
+ (insert " </UML:TaggedValue.type>\n")
+ (insert " </UML:TaggedValue>\n")
+ (insert " </UML:ModelElement.taggedValue>\n"))
+
+(defun insert-uml-attribute (type name offset bits mask shift comment attrid)
+ (insert "<UML:Classifier.feature>\n")
+ (insert " <UML:Attribute name=\"" name "\">\n")
+ (insert-uml-taggedvalue comment "comment")
+ (insert-uml-taggedvalue offset "offset")
+ (insert-uml-taggedvalue bits "bits")
+ (insert-uml-taggedvalue mask "mask")
+ (insert-uml-taggedvalue shift "shift")
+ (insert-uml-taggedvalue attrid "attrid")
+ (insert " <UML:StructuralFeature.type>\n")
+ (insert " <UML:DataType xmi.idref=\"" type "\"/>\n")
+ (insert " </UML:StructuralFeature.type>\n")
+ (insert " <UML:ModelElement.stereotype>\n")
+ (insert " <UML:Stereotype xmi.idref=\"attribute\"/>\n")
+ (insert " </UML:ModelElement.stereotype>\n")
+ (insert " </UML:Attribute>\n")
+ (insert "</UML:Classifier.feature>\n"))
+
+(defun insert-uml-attribute-array (type arraycount name offset bits mask shift comment attrid)
+ (insert "<UML:Classifier.feature>\n")
+ (insert " <UML:Attribute name=\"" name "\">\n")
+ (insert-uml-taggedvalue comment "comment")
+ (insert-uml-taggedvalue offset "offset")
+ (insert-uml-taggedvalue bits "bits")
+ (insert-uml-taggedvalue mask "mask")
+ (insert-uml-taggedvalue shift "shift")
+ (insert-uml-taggedvalue attrid "attrid")
+ (insert-uml-taggedvalue arraycount "arraycount")
+ (insert " <UML:StructuralFeature.type>\n")
+ (insert " <UML:DataType xmi.idref=\"" type "\"/>\n")
+ (insert " </UML:StructuralFeature.type>\n")
+ (insert " <UML:ModelElement.stereotype>\n")
+ (insert " <UML:Stereotype xmi.idref=\"array\"/>\n")
+ (insert " </UML:ModelElement.stereotype>\n")
+ (insert " </UML:Attribute>\n")
+ (insert "</UML:Classifier.feature>\n"))
+
+(defun insert-uml-operation (type name comment opid)
+ (insert "<UML:Classifier.feature>\n")
+ (insert " <UML:Operation name=\"" name "\" >\n")
+ (insert-uml-taggedvalue opid "opid")
+ (insert " <UML:BehavioralFeature.parameter>\n")
+ (insert " <UML:Parameter kind=\"return\" name=\"return\">\n")
+ (insert " <UML:Parameter.type>\n")
+ (insert " <UML:Class xmi.idref=\"" type "\" />\n")
+ (insert " </UML:Parameter.type>\n")
+ (insert " </UML:Parameter>\n")
+ (insert " </UML:BehavioralFeature.parameter>\n")
+ (insert " <UML:ModelElement.stereotype>\n")
+ (insert " <UML:Stereotype xmi.idref=\"attribute\" />\n")
+ (insert " </UML:ModelElement.stereotype>\n")
+ (insert " </UML:Operation>\n")
+ (insert "</UML:Classifier.feature>\n"))
+
+(defun insert-uml-binary (name comment opid)
+ (insert "<UML:Classifier.feature>\n")
+ (insert " <UML:Operation name=\"" name "\" >\n")
+ (insert-uml-taggedvalue opid "opid")
+ (insert " <UML:BehavioralFeature.parameter>\n")
+ (insert " <UML:Parameter kind=\"return\" name=\"return\">\n")
+ (insert " <UML:Parameter.type>\n")
+ (insert " <UML:Class xmi.idref=\"Binary\" />\n")
+ (insert " </UML:Parameter.type>\n")
+ (insert " </UML:Parameter>\n")
+ (insert " </UML:BehavioralFeature.parameter>\n")
+ (insert " <UML:ModelElement.stereotype>\n")
+ (insert " <UML:Stereotype xmi.idref=\"binary\" />\n")
+ (insert " </UML:ModelElement.stereotype>\n")
+ (insert " </UML:Operation>\n")
+ (insert "</UML:Classifier.feature>\n"))
+
+(defun insert-uml-operation-array (type name comment opid)
+ (insert "<UML:Classifier.feature>\n")
+ (insert " <UML:Operation name=\"" name "\" >\n")
+ (insert-uml-taggedvalue opid "opid")
+ (insert " <UML:BehavioralFeature.parameter>\n")
+ (insert " <UML:Parameter kind=\"return\" name=\"return\">\n")
+ (insert " <UML:Parameter.type>\n")
+ (insert " <UML:Class xmi.idref=\"" type "\" />\n")
+ (insert " </UML:Parameter.type>\n")
+ (insert " </UML:Parameter>\n")
+ (insert " </UML:BehavioralFeature.parameter>\n")
+ (insert " <UML:ModelElement.stereotype>\n")
+ (insert " <UML:Stereotype xmi.idref=\"array\" />\n")
+ (insert " </UML:ModelElement.stereotype>\n")
+ (insert " </UML:Operation>\n")
+ (insert "</UML:Classifier.feature>\n"))
+
+(defun insert-uml-generalization (parent child)
+ (insert "<UML:Generalization isSpecification=\"false\" xmi.id=\"" child "-" parent "\" >\n")
+ (insert " <UML:Generalization.child>\n")
+ (insert " <UML:Class xmi.idref=\"" child "\" />\n")
+ (insert " </UML:Generalization.child>\n")
+ (insert " <UML:Generalization.parent>\n")
+ (insert " <UML:Class xmi.idref=\"" parent "\" />\n")
+ (insert " </UML:Generalization.parent>\n")
+ (insert "</UML:Generalization>\n"))
diff --git a/writerfilter/source/doctok/xmistat.xsl b/writerfilter/source/doctok/xmistat.xsl
new file mode 100644
index 000000000000..e8f76a8004a3
--- /dev/null
+++ b/writerfilter/source/doctok/xmistat.xsl
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+<xsl:output indent="yes"/>
+<xsl:template match="/">
+ <xsl:for-each select="//UML:Class[@xmi.id]">
+ <xsl:value-of select="@xmi.id"/>
+ <xsl:text>&#xa;</xsl:text>
+ </xsl:for-each>
+ <xsl:value-of select="count(//UML:Class)"/>
+</xsl:template>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/doctok/xmitocpp b/writerfilter/source/doctok/xmitocpp
new file mode 100755
index 000000000000..a8aa08f7c002
--- /dev/null
+++ b/writerfilter/source/doctok/xmitocpp
@@ -0,0 +1,7 @@
+#!/bin/tcsh
+
+xalan -xsl resources.xsl -in resources.xmi | indent > resources.hxx &
+xalan -xsl resourcesimpl.xsl -in resources.xmi | indent > resources.cxx &
+xalan -xsl resourceids.xsl -in resources.xmi | indent > ../../inc/doctok/resourceids.hxx &
+
+wait
diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx
new file mode 100644
index 000000000000..9a1b2eb621f8
--- /dev/null
+++ b/writerfilter/source/filter/ImportFilter.cxx
@@ -0,0 +1,160 @@
+#ifndef _OSL_DIAGNOSE_H_
+#include <osl/diagnose.h>
+#endif
+#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_
+#include <com/sun/star/uno/XComponentContext.hpp>
+#endif
+#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_
+#include <com/sun/star/io/XInputStream.hpp>
+#endif
+#ifndef INCLUDED_DOMAINMAPPER_HXX
+#include <dmapper/DomainMapper.hxx>
+#endif
+#ifndef _WRITERFILTER_HXX
+#include <WriterFilter.hxx>
+#endif
+#ifndef INCLUDED_WW8_DOCUMENT_HXX
+#include <doctok/WW8Document.hxx>
+#endif
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescriptor )
+ throw (uno::RuntimeException)
+{
+ sal_Int32 nLength = aDescriptor.getLength();
+ const beans::PropertyValue * pValue = aDescriptor.getConstArray();
+ uno::Reference < io::XInputStream > xInputStream;
+ for ( sal_Int32 i = 0 ; i < nLength; i++)
+ {
+ if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
+ pValue[i].Value >>= xInputStream;
+ }
+ if ( !xInputStream.is() )
+ {
+ return sal_False;
+ }
+ //create the tokenizer and domain mapper
+ doctok::WW8Stream::Pointer_t pDocStream = doctok::WW8DocumentFactory::createStream(m_xContext, xInputStream);
+ doctok::WW8Document::Pointer_t pDocument = doctok::WW8DocumentFactory::createDocument(pDocStream);
+ doctok::Stream::Pointer_t pStream(new dmapper::DomainMapper(m_xDoc));
+ pDocument->resolve(*pStream);
+
+ return sal_True;
+}
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void WriterFilter::cancel( ) throw (uno::RuntimeException)
+{
+}
+
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void WriterFilter::setTargetDocument( const uno::Reference< lang::XComponent >& xDoc )
+ throw (lang::IllegalArgumentException, uno::RuntimeException)
+{
+ m_xDoc = xDoc;
+}
+
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+OUString WriterFilter::detect( uno::Sequence< beans::PropertyValue >& /*Descriptor*/ )
+ throw( uno::RuntimeException )
+{
+ OUString sTypeName;
+ // TODO: place the detection here
+ return sTypeName;
+}
+
+
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void WriterFilter::initialize( const uno::Sequence< uno::Any >& aArguments ) throw (uno::Exception, uno::RuntimeException)
+{
+ uno::Sequence < beans::PropertyValue > aAnySeq;
+ sal_Int32 nLength = aArguments.getLength();
+ if ( nLength && ( aArguments[0] >>= aAnySeq ) )
+ {
+ const beans::PropertyValue * pValue = aAnySeq.getConstArray();
+ nLength = aAnySeq.getLength();
+ for ( sal_Int32 i = 0 ; i < nLength; i++)
+ {
+ if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "Type" ) ) )
+ {
+ pValue[i].Value >>= m_sFilterName;
+ break;
+ }
+ }
+ }
+}
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+OUString WriterFilter_getImplementationName () throw (uno::RuntimeException)
+{
+ return OUString ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.WriterFilter" ) );
+}
+
+#define SERVICE_NAME1 "com.sun.star.document.ImportFilter"
+#define SERVICE_NAME2 "com.sun.star.document.ExtendedTypeDetection"
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Bool WriterFilter_supportsService( const OUString& ServiceName ) throw (uno::RuntimeException)
+{
+ return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ) ||
+ ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME2 ) ) );
+}
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Sequence< OUString > WriterFilter_getSupportedServiceNames( ) throw (uno::RuntimeException)
+{
+ uno::Sequence < OUString > aRet(2);
+ OUString* pArray = aRet.getArray();
+ pArray[0] = OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) );
+ pArray[1] = OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME2 ) );
+ return aRet;
+}
+#undef SERVICE_NAME2
+#undef SERVICE_NAME1
+
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Reference< uno::XInterface > WriterFilter_createInstance( const uno::Reference< uno::XComponentContext >& xContext)
+ throw( uno::Exception )
+{
+ return (cppu::OWeakObject*) new WriterFilter( xContext );
+}
+
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+OUString WriterFilter::getImplementationName( ) throw (uno::RuntimeException)
+{
+ return WriterFilter_getImplementationName();
+}
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Bool WriterFilter::supportsService( const OUString& rServiceName ) throw (uno::RuntimeException)
+{
+ return WriterFilter_supportsService( rServiceName );
+}
+/*-- 09.06.2006 10:15:20---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Sequence< OUString > WriterFilter::getSupportedServiceNames( ) throw (uno::RuntimeException)
+{
+ return WriterFilter_getSupportedServiceNames();
+}
+
diff --git a/writerfilter/source/filter/WriterFilter.cxx b/writerfilter/source/filter/WriterFilter.cxx
new file mode 100644
index 000000000000..12d9838c03f7
--- /dev/null
+++ b/writerfilter/source/filter/WriterFilter.cxx
@@ -0,0 +1,39 @@
+#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_
+#include <cppuhelper/implementationentry.hxx>
+#endif
+
+#ifndef _WRITERFILTER_HXX
+#include <WriterFilter.hxx>
+#endif
+
+using namespace ::rtl;
+using namespace ::cppu;
+using namespace ::com::sun::star;
+
+extern "C"
+{
+/* shared lib exports implemented with helpers */
+static struct ::cppu::ImplementationEntry s_component_entries [] =
+{
+ WriterFilter_createInstance, WriterFilter_getImplementationName, WriterFilter_getSupportedServiceNames, ::cppu::createSingleComponentFactory, 0, 0,
+ { 0, 0, 0, 0, 0, 0 } // terminate with NULL
+};
+
+void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
+{
+ return ::cppu::component_writeInfoHelper( xMgr, xRegistry, s_component_entries );
+}
+
+void * SAL_CALL component_getFactory(sal_Char const * implName, ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
+{
+ return ::cppu::component_getFactoryHelper(implName, xMgr, xRegistry, s_component_entries );
+}
+
+} //extern "C"
+
+
diff --git a/writerfilter/source/filter/WriterFilter.hxx b/writerfilter/source/filter/WriterFilter.hxx
new file mode 100644
index 000000000000..4c4961f6376d
--- /dev/null
+++ b/writerfilter/source/filter/WriterFilter.hxx
@@ -0,0 +1,94 @@
+#ifndef _WRITERFILTER_HXX
+#define _WRITERFILTER_HXX
+
+#ifndef _COM_SUN_STAR_DOCUMENT_XFILTER_HPP_
+#include <com/sun/star/document/XFilter.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DOCUMENT_XIMPORTER_HPP_
+#include <com/sun/star/document/XImporter.hpp>
+#endif
+#ifndef _COM_SUN_STAR_DOCUMENT_XEXTENDEDFILTERDETECTION_HPP_
+#include <com/sun/star/document/XExtendedFilterDetection.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
+#include <com/sun/star/lang/XInitialization.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_
+#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
+#endif
+#ifndef _CPPUHELPER_IMPLBASE5_HXX_
+#include <cppuhelper/implbase5.hxx>
+#endif
+#ifndef INCLUDED_WRITERFILTERDLLAPI_H
+#include <WriterFilterDllApi.hxx>
+#endif
+
+class WRITERFILTER_DLLPUBLIC WriterFilter : public cppu::WeakImplHelper5
+<
+ com::sun::star::document::XFilter,
+ com::sun::star::document::XImporter,
+ com::sun::star::document::XExtendedFilterDetection,
+ com::sun::star::lang::XInitialization,
+ com::sun::star::lang::XServiceInfo
+>
+{
+
+protected:
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext;
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > m_xDoc;
+ ::rtl::OUString m_sFilterName;
+ ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xHandler;
+
+
+public:
+ WriterFilter( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext)
+ : m_xContext( rxContext ) {}
+ virtual ~WriterFilter() {}
+
+ // XFilter
+ virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor )
+ throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL cancel( )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XImporter
+ virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc )
+ throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+
+ //XExtendedFilterDetection
+ virtual ::rtl::OUString SAL_CALL detect( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& Descriptor )
+ throw( com::sun::star::uno::RuntimeException );
+
+ // XInitialization
+ virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
+ throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName( )
+ throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
+ throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
+ throw (::com::sun::star::uno::RuntimeException);
+
+};
+
+::rtl::OUString WriterFilter_getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+sal_Bool SAL_CALL WriterFilter_supportsService( const ::rtl::OUString& ServiceName )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL WriterFilter_getSupportedServiceNames( )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL WriterFilter_createInstance(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::uno::XComponentContext > &xContext)
+ throw( ::com::sun::star::uno::Exception );
+
+#endif
+
diff --git a/writerfilter/source/filter/makefile.mk b/writerfilter/source/filter/makefile.mk
new file mode 100644
index 000000000000..84557bac6cd8
--- /dev/null
+++ b/writerfilter/source/filter/makefile.mk
@@ -0,0 +1,24 @@
+PRJ=..$/..
+PRJNAME=writerfilter
+TARGET=filter
+GEN_HID=TRUE
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION
+
+# --- Files -------------------------------------
+
+SLOFILES= $(SLO)$/WriterFilter.obj \
+ $(SLO)$/ImportFilter.obj
+
+
+# --- Targets ----------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/wordnetaux.xsd b/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/wordnetaux.xsd
new file mode 100644
index 000000000000..41ccbcd1e9b0
--- /dev/null
+++ b/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/wordnetaux.xsd
Binary files differ
diff --git a/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/xsdlib.xsd b/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/xsdlib.xsd
new file mode 100644
index 000000000000..ce1a03386cf9
--- /dev/null
+++ b/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/xsdlib.xsd
Binary files differ
diff --git a/writerfilter/source/odiapi/qname/resource/rdfxml.rng b/writerfilter/source/odiapi/qname/resource/rdfxml.rng
new file mode 100644
index 000000000000..65ea16ebfa22
--- /dev/null
+++ b/writerfilter/source/odiapi/qname/resource/rdfxml.rng
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ RELAX NG Compact Schema for RDF/XML Syntax
+
+ This schema is for information only and NON-NORMATIVE
+
+ It is based on one originally written by James Clark in
+ http://lists.w3.org/Archives/Public/www-rdf-comments/2001JulSep/0248.html
+ and updated with later changes.
+
+-->
+<grammar xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" ns="http://www.w3.org/XML/1998/namespace" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns:xml="http://www.w3.org/XML/1998/namespace">
+ <start>
+ <ref name="doc"/>
+ </start>
+ <!-- I cannot seem to do this in RNGC so they are expanded in-line -->
+ <!--
+ coreSyntaxTerms = rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | rdf:datatype
+ syntaxTerms = coreSyntaxTerms | rdf:Description | rdf:li
+ oldTerms = rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID
+ nodeElementURIs = * - ( coreSyntaxTerms | rdf:li | oldTerms )
+ propertyElementURIs = * - ( coreSyntaxTerms | rdf:Description | oldTerms )
+ propertyAttributeURIs = * - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms )
+ -->
+ <!--
+ Also needed to allow rdf:li on all property element productions
+ since we can't capture the rdf:li rewriting to rdf_<n> in relaxng
+ -->
+ <!-- Need to add these explicitly -->
+ <define name="xmllang">
+ <attribute name="xml:lang"/>
+ </define>
+ <define name="xmlbase">
+ <attribute name="xml:base"/>
+ </define>
+ <!-- and to forbid every other xml:* attribute, element -->
+ <define name="doc">
+ <ref name="RDF"/>
+ </define>
+ <define name="RDF">
+ <element name="rdf:RDF">
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <ref name="nodeElementList"/>
+ </element>
+ </define>
+ <define name="nodeElementList">
+ <zeroOrMore>
+ <ref name="nodeElement"/>
+ </zeroOrMore>
+ </define>
+ <!--
+ Should be something like:
+ ws* , ( nodeElement , ws* )*
+ but RELAXNG does this by default, ignoring whitespace separating tags.
+ -->
+ <define name="nodeElement">
+ <element>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:li</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ </except>
+ </anyName>
+ <optional>
+ <choice>
+ <ref name="idAttr"/>
+ <ref name="nodeIdAttr"/>
+ <ref name="aboutAttr"/>
+ </choice>
+ </optional>
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="propertyAttr"/>
+ </zeroOrMore>
+ <ref name="propertyEltList"/>
+ </element>
+ </define>
+ <!--
+ It is not possible to say "and not things
+ beginning with _ in the rdf: namespace" in RELAX NG.
+ -->
+ <define name="ws">
+ <value> </value>
+ </define>
+ <!--
+ Not used in this RELAX NG schema; but should be any legal XML
+ whitespace defined by http://www.w3.org/TR/2000/REC-xml-20001006#NT-S
+ -->
+ <define name="propertyEltList">
+ <zeroOrMore>
+ <ref name="propertyElt"/>
+ </zeroOrMore>
+ </define>
+ <!--
+ Should be something like:
+ ws* , ( propertyElt , ws* )*
+ but RELAXNG does this by default, ignoring whitespace separating tags.
+ -->
+ <define name="propertyElt">
+ <choice>
+ <ref name="resourcePropertyElt"/>
+ <ref name="literalPropertyElt"/>
+ <ref name="parseTypeLiteralPropertyElt"/>
+ <ref name="parseTypeResourcePropertyElt"/>
+ <ref name="parseTypeCollectionPropertyElt"/>
+ <ref name="parseTypeOtherPropertyElt"/>
+ <ref name="emptyPropertyElt"/>
+ </choice>
+ </define>
+ <define name="resourcePropertyElt">
+ <element>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:Description</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ <nsName/>
+ </except>
+ </anyName>
+ <optional>
+ <ref name="idAttr"/>
+ </optional>
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <ref name="nodeElement"/>
+ </element>
+ </define>
+ <define name="literalPropertyElt">
+ <element>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:Description</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ <nsName/>
+ </except>
+ </anyName>
+ <optional>
+ <choice>
+ <ref name="idAttr"/>
+ <ref name="datatypeAttr"/>
+ </choice>
+ </optional>
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <text/>
+ </element>
+ </define>
+ <define name="parseTypeLiteralPropertyElt">
+ <element>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:Description</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ <nsName/>
+ </except>
+ </anyName>
+ <optional>
+ <ref name="idAttr"/>
+ </optional>
+ <ref name="parseLiteral"/>
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <ref name="literal"/>
+ </element>
+ </define>
+ <define name="parseTypeResourcePropertyElt">
+ <element>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:Description</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ <nsName/>
+ </except>
+ </anyName>
+ <optional>
+ <ref name="idAttr"/>
+ </optional>
+ <ref name="parseResource"/>
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <ref name="propertyEltList"/>
+ </element>
+ </define>
+ <define name="parseTypeCollectionPropertyElt">
+ <element>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:Description</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ <nsName/>
+ </except>
+ </anyName>
+ <optional>
+ <ref name="idAttr"/>
+ </optional>
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <ref name="parseCollection"/>
+ <ref name="nodeElementList"/>
+ </element>
+ </define>
+ <define name="parseTypeOtherPropertyElt">
+ <element>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:Description</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ <nsName/>
+ </except>
+ </anyName>
+ <optional>
+ <ref name="idAttr"/>
+ </optional>
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <ref name="parseOther"/>
+ <ref name="any"/>
+ </element>
+ </define>
+ <define name="emptyPropertyElt">
+ <element>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:Description</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ <nsName/>
+ </except>
+ </anyName>
+ <optional>
+ <ref name="idAttr"/>
+ </optional>
+ <optional>
+ <choice>
+ <ref name="resourceAttr"/>
+ <ref name="nodeIdAttr"/>
+ </choice>
+ </optional>
+ <optional>
+ <ref name="xmllang"/>
+ </optional>
+ <optional>
+ <ref name="xmlbase"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="propertyAttr"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="idAttr">
+ <attribute name="rdf:ID">
+ <ref name="IDsymbol"/>
+ </attribute>
+ </define>
+ <define name="nodeIdAttr">
+ <attribute name="rdf:nodeID">
+ <ref name="IDsymbol"/>
+ </attribute>
+ </define>
+ <define name="aboutAttr">
+ <attribute name="rdf:about">
+ <ref name="URI-reference"/>
+ </attribute>
+ </define>
+ <define name="propertyAttr">
+ <attribute>
+ <anyName>
+ <except>
+ <nsName ns=""/>
+ <name>rdf:RDF</name>
+ <name>rdf:ID</name>
+ <name>rdf:about</name>
+ <name>rdf:parseType</name>
+ <name>rdf:resource</name>
+ <name>rdf:nodeID</name>
+ <name>rdf:datatype</name>
+ <name>rdf:li</name>
+ <name>rdf:Description</name>
+ <name>rdf:aboutEach</name>
+ <name>rdf:aboutEachPrefix</name>
+ <name>rdf:bagID</name>
+ <nsName/>
+ </except>
+ </anyName>
+ <data type="string" datatypeLibrary=""/>
+ </attribute>
+ </define>
+ <define name="resourceAttr">
+ <attribute name="rdf:resource">
+ <ref name="URI-reference"/>
+ </attribute>
+ </define>
+ <define name="datatypeAttr">
+ <attribute name="rdf:datatype">
+ <ref name="URI-reference"/>
+ </attribute>
+ </define>
+ <define name="parseLiteral">
+ <attribute name="rdf:parseType">
+ <value>Literal</value>
+ </attribute>
+ </define>
+ <define name="parseResource">
+ <attribute name="rdf:parseType">
+ <value>Resource</value>
+ </attribute>
+ </define>
+ <define name="parseCollection">
+ <attribute name="rdf:parseType">
+ <value>Collection</value>
+ </attribute>
+ </define>
+ <define name="parseOther">
+ <attribute name="rdf:parseType"/>
+ </define>
+ <define name="URI-reference">
+ <data type="string" datatypeLibrary=""/>
+ </define>
+ <define name="literal">
+ <ref name="any"/>
+ </define>
+ <define name="IDsymbol">
+ <data type="NMTOKEN"/>
+ </define>
+ <define name="any">
+ <mixed>
+ <zeroOrMore>
+ <element>
+ <anyName/>
+ <zeroOrMore>
+ <attribute>
+ <anyName/>
+ </attribute>
+ </zeroOrMore>
+ <ref name="any"/>
+ </element>
+ </zeroOrMore>
+ </mixed>
+ </define>
+</grammar>
diff --git a/writerfilter/source/odiapi/qname/resource/rng.rng b/writerfilter/source/odiapi/qname/resource/rng.rng
new file mode 100644
index 000000000000..a2fb8787571e
--- /dev/null
+++ b/writerfilter/source/odiapi/qname/resource/rng.rng
@@ -0,0 +1,331 @@
+<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
+ ns="http://relaxng.org/ns/structure/1.0"
+ xmlns:rng="http://relaxng.org/ns/structure/1.0"
+ xmlns="http://relaxng.org/ns/structure/1.0">
+
+ <start>
+ <ref name="pattern"/>
+ </start>
+
+ <define name="pattern">
+ <choice>
+ <element name="element">
+ <choice>
+ <attribute name="name">
+ <data type="QName"/>
+ </attribute>
+ <ref name="open-name-class"/>
+ </choice>
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="attribute">
+ <ref name="common-atts"/>
+ <choice>
+ <attribute name="name">
+ <data type="QName"/>
+ </attribute>
+ <ref name="open-name-class"/>
+ </choice>
+ <interleave>
+ <ref name="other"/>
+ <optional>
+ <ref name="pattern"/>
+ </optional>
+ </interleave>
+ </element>
+ <element name="group">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="interleave">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="choice">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="optional">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="zeroOrMore">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="oneOrMore">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="list">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="mixed">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ <element name="ref">
+ <attribute name="name">
+ <data type="NCName"/>
+ </attribute>
+ <ref name="common-atts"/>
+ </element>
+ <element name="parentRef">
+ <attribute name="name">
+ <data type="NCName"/>
+ </attribute>
+ <ref name="common-atts"/>
+ </element>
+ <element name="empty">
+ <ref name="common-atts"/>
+ <ref name="other"/>
+ </element>
+ <element name="text">
+ <ref name="common-atts"/>
+ <ref name="other"/>
+ </element>
+ <element name="value">
+ <optional>
+ <attribute name="type">
+ <data type="NCName"/>
+ </attribute>
+ </optional>
+ <ref name="common-atts"/>
+ <text/>
+ </element>
+ <element name="data">
+ <attribute name="type">
+ <data type="NCName"/>
+ </attribute>
+ <ref name="common-atts"/>
+ <interleave>
+ <ref name="other"/>
+ <group>
+ <zeroOrMore>
+ <element name="param">
+ <attribute name="name">
+ <data type="NCName"/>
+ </attribute>
+ <text/>
+ </element>
+ </zeroOrMore>
+ <optional>
+ <element name="except">
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ </optional>
+ </group>
+ </interleave>
+ </element>
+ <element name="notAllowed">
+ <ref name="common-atts"/>
+ <ref name="other"/>
+ </element>
+ <element name="externalRef">
+ <attribute name="href">
+ <data type="anyURI"/>
+ </attribute>
+ <ref name="common-atts"/>
+ <ref name="other"/>
+ </element>
+ <element name="grammar">
+ <ref name="common-atts"/>
+ <ref name="grammar-content"/>
+ </element>
+ </choice>
+ </define>
+
+ <define name="grammar-content">
+ <interleave>
+ <ref name="other"/>
+ <zeroOrMore>
+ <choice>
+ <ref name="start-element"/>
+ <ref name="define-element"/>
+ <element name="div">
+ <ref name="common-atts"/>
+ <ref name="grammar-content"/>
+ </element>
+ <element name="include">
+ <attribute name="href">
+ <data type="anyURI"/>
+ </attribute>
+ <ref name="common-atts"/>
+ <ref name="include-content"/>
+ </element>
+ </choice>
+ </zeroOrMore>
+ </interleave>
+ </define>
+
+ <define name="include-content">
+ <interleave>
+ <ref name="other"/>
+ <zeroOrMore>
+ <choice>
+ <ref name="start-element"/>
+ <ref name="define-element"/>
+ <element name="div">
+ <ref name="common-atts"/>
+ <ref name="include-content"/>
+ </element>
+ </choice>
+ </zeroOrMore>
+ </interleave>
+ </define>
+
+ <define name="start-element">
+ <element name="start">
+ <ref name="combine-att"/>
+ <ref name="common-atts"/>
+ <ref name="open-pattern"/>
+ </element>
+ </define>
+
+ <define name="define-element">
+ <element name="define">
+ <attribute name="name">
+ <data type="NCName"/>
+ </attribute>
+ <ref name="combine-att"/>
+ <ref name="common-atts"/>
+ <ref name="open-patterns"/>
+ </element>
+ </define>
+
+ <define name="combine-att">
+ <optional>
+ <attribute name="combine">
+ <choice>
+ <value>choice</value>
+ <value>interleave</value>
+ </choice>
+ </attribute>
+ </optional>
+ </define>
+
+ <define name="open-patterns">
+ <interleave>
+ <ref name="other"/>
+ <oneOrMore>
+ <ref name="pattern"/>
+ </oneOrMore>
+ </interleave>
+ </define>
+
+ <define name="open-pattern">
+ <interleave>
+ <ref name="other"/>
+ <ref name="pattern"/>
+ </interleave>
+ </define>
+
+ <define name="name-class">
+ <choice>
+ <element name="name">
+ <ref name="common-atts"/>
+ <data type="QName"/>
+ </element>
+ <element name="anyName">
+ <ref name="common-atts"/>
+ <ref name="except-name-class"/>
+ </element>
+ <element name="nsName">
+ <ref name="common-atts"/>
+ <ref name="except-name-class"/>
+ </element>
+ <element name="choice">
+ <ref name="common-atts"/>
+ <ref name="open-name-classes"/>
+ </element>
+ </choice>
+ </define>
+
+ <define name="except-name-class">
+ <interleave>
+ <ref name="other"/>
+ <optional>
+ <element name="except">
+ <ref name="open-name-classes"/>
+ </element>
+ </optional>
+ </interleave>
+ </define>
+
+ <define name="open-name-classes">
+ <interleave>
+ <ref name="other"/>
+ <oneOrMore>
+ <ref name="name-class"/>
+ </oneOrMore>
+ </interleave>
+ </define>
+
+ <define name="open-name-class">
+ <interleave>
+ <ref name="other"/>
+ <ref name="name-class"/>
+ </interleave>
+ </define>
+
+ <define name="common-atts">
+ <optional>
+ <attribute name="ns"/>
+ </optional>
+ <optional>
+ <attribute name="datatypeLibrary">
+ <data type="anyURI"/>
+ </attribute>
+ </optional>
+ <zeroOrMore>
+ <attribute>
+ <anyName>
+ <except>
+ <nsName/>
+ <nsName ns=""/>
+ </except>
+ </anyName>
+ </attribute>
+ </zeroOrMore>
+ </define>
+
+ <define name="other">
+ <zeroOrMore>
+ <element>
+ <anyName>
+ <except>
+ <nsName/>
+ </except>
+ </anyName>
+ <zeroOrMore>
+ <choice>
+ <attribute>
+ <anyName/>
+ </attribute>
+ <text/>
+ <ref name="any"/>
+ </choice>
+ </zeroOrMore>
+ </element>
+ </zeroOrMore>
+ </define>
+
+ <define name="any">
+ <element>
+ <anyName/>
+ <zeroOrMore>
+ <choice>
+ <attribute>
+ <anyName/>
+ </attribute>
+ <text/>
+ <ref name="any"/>
+ </choice>
+ </zeroOrMore>
+ </element>
+ </define>
+
+</grammar>
diff --git a/writerfilter/source/odiapi/qname/resource/rtf.rtfs b/writerfilter/source/odiapi/qname/resource/rtf.rtfs
new file mode 100644
index 000000000000..45469a32ea83
--- /dev/null
+++ b/writerfilter/source/odiapi/qname/resource/rtf.rtfs
@@ -0,0 +1,1385 @@
+<?xml version="1.0" ?>
+<rtfs:definition xmlns:rtfs="urn:rtf:schema" xmlns:rtf="urn:rtf:1.7">
+ <rtfs:token name="rtf:ab" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:absh" type="rtfs:Value" />
+ <rtfs:token name="rtf:abslock" type="rtfs:Flag" />
+ <rtfs:token name="rtf:absnoovrlp" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:absw" type="rtfs:Value" />
+ <rtfs:token name="rtf:acaps" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:acccomma" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:accdot" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:accnone" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:acf" type="rtfs:Value" />
+ <rtfs:token name="rtf:additive" type="rtfs:Flag" />
+ <rtfs:token name="rtf:adjustright" type="rtfs:Flag" />
+ <rtfs:token name="rtf:adn" type="rtfs:Value" />
+ <rtfs:token name="rtf:aenddoc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aendnotes" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aexpnd" type="rtfs:Value" />
+ <rtfs:token name="rtf:af" type="rtfs:Value" />
+ <rtfs:token name="rtf:affixed" type="rtfs:Flag" />
+ <rtfs:token name="rtf:afs" type="rtfs:Value" />
+ <rtfs:token name="rtf:aftnbj" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftncn" type="rtfs:Destination" />
+ <rtfs:token name="rtf:aftnnalc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnauc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnchi" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnchosung" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnncnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnndbar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnndbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnndbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnndbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnndbnumt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnganada" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnngbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnngbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnngbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnngbnuml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnrlc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnruc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnzodiac" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnzodiacd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnnzodiacl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnrestart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnrstcont" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aftnsep" type="rtfs:Destination" />
+ <rtfs:token name="rtf:aftnsepc" type="rtfs:Destination" />
+ <rtfs:token name="rtf:aftnstart" type="rtfs:Value" />
+ <rtfs:token name="rtf:aftntj" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ai" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:alang" type="rtfs:Value" />
+ <rtfs:token name="rtf:allowfieldendsel" type="rtfs:Flag" />
+ <rtfs:token name="rtf:allprot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:alntblind" type="rtfs:Flag" />
+ <rtfs:token name="rtf:alt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:animtext" type="rtfs:Value" />
+ <rtfs:token name="rtf:annotation" type="rtfs:Destination" />
+ <rtfs:token name="rtf:annotprot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ansi" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ansicpg" type="rtfs:Value" />
+ <rtfs:token name="rtf:aoutl" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ApplyBrkRules" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ascaps" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ashad" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:asianbrkrule" type="rtfs:Flag" />
+ <rtfs:token name="rtf:aspalpha" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:aspnum" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:astrike" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:atnauthor" type="rtfs:Destination" />
+ <rtfs:token name="rtf:atndate" type="rtfs:Destination" />
+ <rtfs:token name="rtf:atnicn" type="rtfs:Destination" />
+ <rtfs:token name="rtf:atnid" type="rtfs:Destination" />
+ <rtfs:token name="rtf:atnparent" type="rtfs:Destination" />
+ <rtfs:token name="rtf:atnref" type="rtfs:Destination" />
+ <rtfs:token name="rtf:atntime" type="rtfs:Destination" />
+ <rtfs:token name="rtf:atrfend" type="rtfs:Destination" />
+ <rtfs:token name="rtf:atrfstart" type="rtfs:Destination" />
+ <rtfs:token name="rtf:aul" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:auld" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:auldb" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:aulnone" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:aulw" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:aup" type="rtfs:Value" />
+ <rtfs:token name="rtf:author" type="rtfs:Destination" />
+ <rtfs:token name="rtf:b" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:background" type="rtfs:Destination" />
+ <rtfs:token name="rtf:bdbfhdr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bdrrlswsix" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgdkbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgdkcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgdkdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgdkfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgdkhoriz" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgdkvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bghoriz" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bgvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bin" type="rtfs:Value" />
+ <rtfs:token name="rtf:binfsxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:binsxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:bkmkcolf" type="rtfs:Value" />
+ <rtfs:token name="rtf:bkmkcoll" type="rtfs:Value" />
+ <rtfs:token name="rtf:bkmkend" type="rtfs:Destination" />
+ <rtfs:token name="rtf:bkmkpub" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bkmkstart" type="rtfs:Destination" />
+ <rtfs:token name="rtf:bliptag" type="rtfs:Value" />
+ <rtfs:token name="rtf:blipuid" type="rtfs:Value" />
+ <rtfs:token name="rtf:blipupi" type="rtfs:Value" />
+ <rtfs:token name="rtf:blue" type="rtfs:Value" />
+ <rtfs:token name="rtf:bookfold" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bookfoldrev" type="rtfs:Flag" />
+ <rtfs:token name="rtf:bookfoldsheets" type="rtfs:Value" />
+ <rtfs:token name="rtf:box" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrart" type="rtfs:Value" />
+ <rtfs:token name="rtf:brdrb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrbar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrbtw" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrcf" type="rtfs:Value" />
+ <rtfs:token name="rtf:brdrdash" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrdashd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrdashdd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrdashdotstr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrdashsm" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrdb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrdot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdremboss" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrengrave" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrframe" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrhair" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrinset" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrnil" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdroutset" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrs" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrsh" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrtbl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrth" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrthtnlg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrthtnmg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrthtnsg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrtnthlg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrtnthmg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrtnthsg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrtnthtnlg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrtnthtnmg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrtnthtnsg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrtriple" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrw" type="rtfs:Value" />
+ <rtfs:token name="rtf:brdrwavy" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brdrwavydb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brkfrm" type="rtfs:Flag" />
+ <rtfs:token name="rtf:brsp" type="rtfs:Value" />
+ <rtfs:token name="rtf:bullet" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:buptim" type="rtfs:Destination" />
+ <rtfs:token name="rtf:bxe" type="rtfs:Flag" />
+ <rtfs:token name="rtf:caps" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:category" type="rtfs:Destination" />
+ <rtfs:token name="rtf:cb" type="rtfs:Value" />
+ <rtfs:token name="rtf:cbpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:cchs" type="rtfs:Value" />
+ <rtfs:token name="rtf:cell" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:cellx" type="rtfs:Value" />
+ <rtfs:token name="rtf:cf" type="rtfs:Value" />
+ <rtfs:token name="rtf:cfpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:cgrid" type="rtfs:Value" />
+ <rtfs:token name="rtf:charrsid" type="rtfs:Value" />
+ <rtfs:token name="rtf:charscalex" type="rtfs:Value" />
+ <rtfs:token name="rtf:charscalex" type="rtfs:Value" />
+ <rtfs:token name="rtf:chatn" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:chbgbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgdkbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgdkcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgdkdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgdkfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgdkhoriz" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgdkvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbghoriz" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbgvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chbrdr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:chcbpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:chcfpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:chdate" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:chdpa" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:chdpl" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:chftn" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:chftnsep" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:chftnsepc" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:chpgn" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:chshdng" type="rtfs:Value" />
+ <rtfs:token name="rtf:chtime" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:clbgbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgdkbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgdkcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgdkdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgdkfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgdkhor" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgdkvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbghoriz" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbgvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbrdrb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbrdrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbrdrr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clbrdrt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clcbpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:clcbpatraw" type="rtfs:Value" />
+ <rtfs:token name="rtf:clcfpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:clcfpatraw" type="rtfs:Value" />
+ <rtfs:token name="rtf:cldgll" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cldglu" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clFitText" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clftsWidth" type="rtfs:Value" />
+ <rtfs:token name="rtf:clmgf" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clmrg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cloWrap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clpadb" type="rtfs:Value" />
+ <rtfs:token name="rtf:clpadfb" type="rtfs:Value" />
+ <rtfs:token name="rtf:clpadfl" type="rtfs:Value" />
+ <rtfs:token name="rtf:clpadfr" type="rtfs:Value" />
+ <rtfs:token name="rtf:clpadft" type="rtfs:Value" />
+ <rtfs:token name="rtf:clpadl" type="rtfs:Value" />
+ <rtfs:token name="rtf:clpadr" type="rtfs:Value" />
+ <rtfs:token name="rtf:clpadt" type="rtfs:Value" />
+ <rtfs:token name="rtf:clshdng" type="rtfs:Value" />
+ <rtfs:token name="rtf:clshdngraw" type="rtfs:Value" />
+ <rtfs:token name="rtf:clshdrawnil" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cltxbtlr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cltxlrtb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cltxlrtb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cltxlrtbv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cltxtbrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cltxtbrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cltxtbrlv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clvertalb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clvertalc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clvertalt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clvmgf" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clvmrg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:clwWidth" type="rtfs:Value" />
+ <rtfs:token name="rtf:collapsed" type="rtfs:Flag" />
+ <rtfs:token name="rtf:colno" type="rtfs:Value" />
+ <rtfs:token name="rtf:colortbl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:cols" type="rtfs:Value" />
+ <rtfs:token name="rtf:colsr" type="rtfs:Value" />
+ <rtfs:token name="rtf:colsx" type="rtfs:Value" />
+ <rtfs:token name="rtf:column" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:colw" type="rtfs:Value" />
+ <rtfs:token name="rtf:comment" type="rtfs:Destination" />
+ <rtfs:token name="rtf:company" type="rtfs:Destination" />
+ <rtfs:token name="rtf:cpg" type="rtfs:Value" />
+ <rtfs:token name="rtf:crauth" type="rtfs:Value" />
+ <rtfs:token name="rtf:crdate" type="rtfs:Value" />
+ <rtfs:token name="rtf:creatim" type="rtfs:Destination" />
+ <rtfs:token name="rtf:cs" type="rtfs:Value" />
+ <rtfs:token name="rtf:ctrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:cts" type="rtfs:Value" />
+ <rtfs:token name="rtf:cufi" type="rtfs:Value" />
+ <rtfs:token name="rtf:culi" type="rtfs:Value" />
+ <rtfs:token name="rtf:curi" type="rtfs:Value" />
+ <rtfs:token name="rtf:cvmme" type="rtfs:Flag" />
+ <rtfs:token name="rtf:datafield" type="rtfs:Destination" />
+ <rtfs:token name="rtf:date" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dbch" type="rtfs:Flag" />
+ <rtfs:token name="rtf:deff" type="rtfs:Value" />
+ <rtfs:token name="rtf:defformat" type="rtfs:Flag" />
+ <rtfs:token name="rtf:deflang" type="rtfs:Value" />
+ <rtfs:token name="rtf:deflangfe" type="rtfs:Value" />
+ <rtfs:token name="rtf:defshp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:deftab" type="rtfs:Value" />
+ <rtfs:token name="rtf:deleted" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:delrsid" type="rtfs:Value" />
+ <rtfs:token name="rtf:dfrauth" type="rtfs:Value" />
+ <rtfs:token name="rtf:dfrdate" type="rtfs:Value" />
+ <rtfs:token name="rtf:dfrmtxtx" type="rtfs:Value" />
+ <rtfs:token name="rtf:dfrmtxty" type="rtfs:Value" />
+ <rtfs:token name="rtf:dfrstart" type="rtfs:Value" />
+ <rtfs:token name="rtf:dfrstop" type="rtfs:Value" />
+ <rtfs:token name="rtf:dfrxst" type="rtfs:Value" />
+ <rtfs:token name="rtf:dghorigin" type="rtfs:Value" />
+ <rtfs:token name="rtf:dghshow" type="rtfs:Value" />
+ <rtfs:token name="rtf:dghspace" type="rtfs:Value" />
+ <rtfs:token name="rtf:dgmargin" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dgsnap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dgvorigin" type="rtfs:Value" />
+ <rtfs:token name="rtf:dgvshow" type="rtfs:Value" />
+ <rtfs:token name="rtf:dgvspace" type="rtfs:Value" />
+ <rtfs:token name="rtf:dibitmap" type="rtfs:Value" />
+ <rtfs:token name="rtf:dn" type="rtfs:Value" />
+ <rtfs:token name="rtf:dntblnsbdb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:do" type="rtfs:Destination" />
+ <rtfs:token name="rtf:dobxcolumn" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dobxmargin" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dobxpage" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dobymargin" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dobypage" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dobypara" type="rtfs:Flag" />
+ <rtfs:token name="rtf:doccomm" type="rtfs:Destination" />
+ <rtfs:token name="rtf:doctemp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:doctype" type="rtfs:Value" />
+ <rtfs:token name="rtf:docvar" type="rtfs:Destination" />
+ <rtfs:token name="rtf:dodhgt" type="rtfs:Value" />
+ <rtfs:token name="rtf:dolock" type="rtfs:Flag" />
+ <rtfs:token name="rtf:donotshowcomments" type="rtfs:Flag" />
+ <rtfs:token name="rtf:donotshowinsdel" type="rtfs:Flag" />
+ <rtfs:token name="rtf:donotshowmarkup" type="rtfs:Flag" />
+ <rtfs:token name="rtf:donotshowprops" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpaendhol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpaendl" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpaendsol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpaendw" type="rtfs:Value" />
+ <rtfs:token name="rtf:dparc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dparcflipx" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dparcflipy" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpastarthol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpastartl" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpastartsol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpastartw" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpcallout" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcoa" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpcoaccent" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcobestfit" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcoborder" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcodabs" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpcodbottom" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcodcenter" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcodescent" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpcodtop" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcolength" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpcominusx" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcominusy" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcooffset" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpcosmarta" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcotdouble" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcotright" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcotsingle" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcottriple" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpcount" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpellipse" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpendgroup" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpfillbgcb" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpfillbgcg" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpfillbgcr" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpfillbggray" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpfillbgpal" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpfillfgcb" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpfillfgcg" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpfillfgcr" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpfillfggray" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpfillfgpal" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpfillpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpgroup" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpline" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dplinecob" type="rtfs:Value" />
+ <rtfs:token name="rtf:dplinecog" type="rtfs:Value" />
+ <rtfs:token name="rtf:dplinecor" type="rtfs:Value" />
+ <rtfs:token name="rtf:dplinedado" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dplinedadodo" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dplinedash" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dplinedot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dplinegray" type="rtfs:Value" />
+ <rtfs:token name="rtf:dplinehollow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dplinepal" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dplinesolid" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dplinew" type="rtfs:Value" />
+ <rtfs:token name="rtf:dppolycount" type="rtfs:Value" />
+ <rtfs:token name="rtf:dppolygon" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dppolyline" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpptx" type="rtfs:Value" />
+ <rtfs:token name="rtf:dppty" type="rtfs:Value" />
+ <rtfs:token name="rtf:dprect" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dproundr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpshadow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpshadx" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpshady" type="rtfs:Value" />
+ <rtfs:token name="rtf:dptxbtlr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dptxbx" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dptxbxmar" type="rtfs:Value" />
+ <rtfs:token name="rtf:dptxbxtext" type="rtfs:Destination" />
+ <rtfs:token name="rtf:dptxlrtb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dptxlrtbv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dptxtbrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dptxtbrlv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:dpx" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpxsize" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpy" type="rtfs:Value" />
+ <rtfs:token name="rtf:dpysize" type="rtfs:Value" />
+ <rtfs:token name="rtf:dropcapli" type="rtfs:Value" />
+ <rtfs:token name="rtf:dropcapt" type="rtfs:Value" />
+ <rtfs:token name="rtf:ds" type="rtfs:Value" />
+ <rtfs:token name="rtf:dxfrtext" type="rtfs:Value" />
+ <rtfs:token name="rtf:dy" type="rtfs:Value" />
+ <rtfs:token name="rtf:edmins" type="rtfs:Value" />
+ <rtfs:token name="rtf:embo" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:emdash" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:emfblip" type="rtfs:Flag" />
+ <rtfs:token name="rtf:emspace" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:endash" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:enddoc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:endnhere" type="rtfs:Flag" />
+ <rtfs:token name="rtf:endnotes" type="rtfs:Flag" />
+ <rtfs:token name="rtf:enspace" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:expnd" type="rtfs:Value" />
+ <rtfs:token name="rtf:expndtw" type="rtfs:Value" />
+ <rtfs:token name="rtf:expshrtn" type="rtfs:Flag" />
+ <rtfs:token name="rtf:f" type="rtfs:Value" />
+ <rtfs:token name="rtf:faauto" type="rtfs:Value" />
+ <rtfs:token name="rtf:facenter7.0" type="rtfs:Flag" />
+ <rtfs:token name="rtf:facingp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fahang" type="rtfs:Flag" />
+ <rtfs:token name="rtf:falt" type="rtfs:Destination" />
+ <rtfs:token name="rtf:faroman" type="rtfs:Flag" />
+ <rtfs:token name="rtf:favar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fbias" type="rtfs:Value" />
+ <rtfs:token name="rtf:fbidi" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fchars" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fcharset" type="rtfs:Value" />
+ <rtfs:token name="rtf:fdecor" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fet" type="rtfs:Value" />
+ <rtfs:token name="rtf:fetch" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ffdefres" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffdeftext" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ffentrymcr" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ffexitmcr" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ffformat" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ffhaslistbox" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffhelptext" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ffhps" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ffmaxlen" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffname" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ffownhelp" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffownstat" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffprot" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffrecalc" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffres" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffsize" type="rtfs:Value" />
+ <rtfs:token name="rtf:ffstattext" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fftype" type="rtfs:Value" />
+ <rtfs:token name="rtf:fftypetxt" type="rtfs:Value" />
+ <rtfs:token name="rtf:fi" type="rtfs:Value" />
+ <rtfs:token name="rtf:fid" type="rtfs:Value" />
+ <rtfs:token name="rtf:field" type="rtfs:Destination" />
+ <rtfs:token name="rtf:file" type="rtfs:Destination" />
+ <rtfs:token name="rtf:filetbl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fittext" type="rtfs:Value" />
+ <rtfs:token name="rtf:fldalt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:flddirty" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fldedit" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fldinst" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fldlock" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fldpriv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fldrslt" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fldtype" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fmodern" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fn" type="rtfs:Value" />
+ <rtfs:token name="rtf:fname" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fnetwork" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fnil" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fnonfilesys" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fontemb" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fontfile" type="rtfs:Destination" />
+ <rtfs:token name="rtf:fonttbl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:footer" type="rtfs:Destination" />
+ <rtfs:token name="rtf:footer" type="rtfs:Destination" />
+ <rtfs:token name="rtf:footerf" type="rtfs:Destination" />
+ <rtfs:token name="rtf:footerl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:footery" type="rtfs:Value" />
+ <rtfs:token name="rtf:footnote" type="rtfs:Destination" />
+ <rtfs:token name="rtf:formdisp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:formfield" type="rtfs:Destination" />
+ <rtfs:token name="rtf:formprot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:formshade" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fosnum" type="rtfs:Value" />
+ <rtfs:token name="rtf:fprq" type="rtfs:Value" />
+ <rtfs:token name="rtf:fracwidth" type="rtfs:Flag" />
+ <rtfs:token name="rtf:frelative" type="rtfs:Value" />
+ <rtfs:token name="rtf:frmtxbtlr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:frmtxlrtb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:frmtxlrtbv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:frmtxtbrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:frmtxtbrlv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:froman" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fromhtml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fromtext" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fs" type="rtfs:Value" />
+ <rtfs:token name="rtf:fscript" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fswiss" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnalt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnbj" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftncn" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ftnil" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnlytwnine" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnalc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnauc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnchi" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnchosung" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnncnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnndbar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnndbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnndbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnndbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnndbnumt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnganada" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnngbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnngbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnngbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnngbnuml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnrlc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnruc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnzodiac" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnzodiacd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnnzodiacl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnrestart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnrstcont" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnrstpg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ftnsep" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ftnsepc" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ftnstart" type="rtfs:Value" />
+ <rtfs:token name="rtf:ftntj" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fttruetype" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fvaliddos" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fvalidhpfs" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fvalidmac" type="rtfs:Flag" />
+ <rtfs:token name="rtf:fvalidntfs" type="rtfs:Flag" />
+ <rtfs:token name="rtf:g" type="rtfs:Destination" />
+ <rtfs:token name="rtf:gcw" type="rtfs:Value" />
+ <rtfs:token name="rtf:generator" type="rtfs:Destination" />
+ <rtfs:token name="rtf:green" type="rtfs:Value" />
+ <rtfs:token name="rtf:gridtbl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:gutter" type="rtfs:Value" />
+ <rtfs:token name="rtf:gutterprl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:guttersxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:header" type="rtfs:Destination" />
+ <rtfs:token name="rtf:header" type="rtfs:Destination" />
+ <rtfs:token name="rtf:headerf" type="rtfs:Destination" />
+ <rtfs:token name="rtf:headerl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:headery" type="rtfs:Value" />
+ <rtfs:token name="rtf:hich" type="rtfs:Flag" />
+ <rtfs:token name="rtf:highlight" type="rtfs:Value" />
+ <rtfs:token name="rtf:hlfr" type="rtfs:Value" />
+ <rtfs:token name="rtf:hlinkbase" type="rtfs:Value" />
+ <rtfs:token name="rtf:hlloc" type="rtfs:Value" />
+ <rtfs:token name="rtf:hlsrc" type="rtfs:Value" />
+ <rtfs:token name="rtf:horzdoc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:horzsect" type="rtfs:Flag" />
+ <rtfs:token name="rtf:hr" type="rtfs:Value" />
+ <rtfs:token name="rtf:htmautsp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:htmlbase" type="rtfs:Flag" />
+ <rtfs:token name="rtf:htmlrtf" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:htmltag" type="rtfs:Destination" />
+ <rtfs:token name="rtf:hyphauto" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:hyphcaps" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:hyphconsec" type="rtfs:Value" />
+ <rtfs:token name="rtf:hyphhotz" type="rtfs:Value" />
+ <rtfs:token name="rtf:hyphpar" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:i" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:id" type="rtfs:Value" />
+ <rtfs:token name="rtf:ilvl" type="rtfs:Value" />
+ <rtfs:token name="rtf:impr" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:info" type="rtfs:Destination" />
+ <rtfs:token name="rtf:insrsid" type="rtfs:Value" />
+ <rtfs:token name="rtf:intbl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ipgp" type="rtfs:Value" />
+ <rtfs:token name="rtf:irow" type="rtfs:Value" />
+ <rtfs:token name="rtf:irowband" type="rtfs:Value" />
+ <rtfs:token name="rtf:itap" type="rtfs:Value" />
+ <rtfs:token name="rtf:ixe" type="rtfs:Flag" />
+ <rtfs:token name="rtf:jcompress" type="rtfs:Flag" />
+ <rtfs:token name="rtf:jexpand" type="rtfs:Flag" />
+ <rtfs:token name="rtf:jpegblip" type="rtfs:Flag" />
+ <rtfs:token name="rtf:jsksu" type="rtfs:Flag" />
+ <rtfs:token name="rtf:keep" type="rtfs:Flag" />
+ <rtfs:token name="rtf:keepn" type="rtfs:Flag" />
+ <rtfs:token name="rtf:kerning" type="rtfs:Value" />
+ <rtfs:token name="rtf:keycode" type="rtfs:Destination" />
+ <rtfs:token name="rtf:keywords" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ksulang" type="rtfs:Value" />
+ <rtfs:token name="rtf:landscape" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lang" type="rtfs:Value" />
+ <rtfs:token name="rtf:langfe" type="rtfs:Value" />
+ <rtfs:token name="rtf:langfenp" type="rtfs:Value" />
+ <rtfs:token name="rtf:langnp" type="rtfs:Value" />
+ <rtfs:token name="rtf:lastrow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lbr" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:lchars" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ldblquote" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:level" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelfollow" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelindent" type="rtfs:Value" />
+ <rtfs:token name="rtf:leveljc" type="rtfs:Value" />
+ <rtfs:token name="rtf:leveljcn" type="rtfs:Value" />
+ <rtfs:token name="rtf:levellegal" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelnfc" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelnfcn" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelnorestart" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelnumbers" type="rtfs:Destination" />
+ <rtfs:token name="rtf:levelold" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelpicture" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelprev" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelprevspace" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelspace" type="rtfs:Value" />
+ <rtfs:token name="rtf:levelstartat" type="rtfs:Value" />
+ <rtfs:token name="rtf:leveltemplateid" type="rtfs:Value" />
+ <rtfs:token name="rtf:leveltext" type="rtfs:Value" />
+ <rtfs:token name="rtf:li" type="rtfs:Value" />
+ <rtfs:token name="rtf:line" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:linebetcol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:linecont" type="rtfs:Flag" />
+ <rtfs:token name="rtf:linemod" type="rtfs:Value" />
+ <rtfs:token name="rtf:lineppage" type="rtfs:Flag" />
+ <rtfs:token name="rtf:linerestart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:linestart" type="rtfs:Value" />
+ <rtfs:token name="rtf:linestarts" type="rtfs:Value" />
+ <rtfs:token name="rtf:linex" type="rtfs:Value" />
+ <rtfs:token name="rtf:linkself" type="rtfs:Flag" />
+ <rtfs:token name="rtf:linkstyles" type="rtfs:Flag" />
+ <rtfs:token name="rtf:linkval" type="rtfs:Value" />
+ <rtfs:token name="rtf:lin" type="rtfs:Value" />
+ <rtfs:token name="rtf:lisa" type="rtfs:Value" />
+ <rtfs:token name="rtf:lisb" type="rtfs:Value" />
+ <rtfs:token name="rtf:listhybrid" type="rtfs:Flag" />
+ <rtfs:token name="rtf:listid" type="rtfs:Value" />
+ <rtfs:token name="rtf:listname" type="rtfs:Destination" />
+ <rtfs:token name="rtf:listoverridecount" type="rtfs:Value" />
+ <rtfs:token name="rtf:listoverrideformat" type="rtfs:Value" />
+ <rtfs:token name="rtf:listoverridestart" type="rtfs:Value" />
+ <rtfs:token name="rtf:listpicture" type="rtfs:Value" />
+ <rtfs:token name="rtf:listrestarthdn" type="rtfs:Value" />
+ <rtfs:token name="rtf:listsimple" type="rtfs:Value" />
+ <rtfs:token name="rtf:liststyleid" type="rtfs:Value" />
+ <rtfs:token name="rtf:liststylename" type="rtfs:Value" />
+ <rtfs:token name="rtf:listtemplateid" type="rtfs:Value" />
+ <rtfs:token name="rtf:listtext" type="rtfs:Destination" />
+ <rtfs:token name="rtf:lnbrkrule" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lndscpsxn" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lnongrid" type="rtfs:Flag" />
+ <rtfs:token name="rtf:loch" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lquote" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:ls" type="rtfs:Value" />
+ <rtfs:token name="rtf:ltrch" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ltrdoc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ltrmark" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:ltrpar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ltrrow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ltrsect" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lytcalctblwd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lytexcttp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lytprtmet" type="rtfs:Flag" />
+ <rtfs:token name="rtf:lyttblrtgr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:mac" type="rtfs:Flag" />
+ <rtfs:token name="rtf:macpict" type="rtfs:Flag" />
+ <rtfs:token name="rtf:makebackup" type="rtfs:Flag" />
+ <rtfs:token name="rtf:manager" type="rtfs:Destination" />
+ <rtfs:token name="rtf:margb" type="rtfs:Value" />
+ <rtfs:token name="rtf:margbsxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:margl" type="rtfs:Value" />
+ <rtfs:token name="rtf:marglsxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:margmirror" type="rtfs:Flag" />
+ <rtfs:token name="rtf:margr" type="rtfs:Value" />
+ <rtfs:token name="rtf:margrsxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:margt" type="rtfs:Value" />
+ <rtfs:token name="rtf:margtsxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:mhtmltag" type="rtfs:Destination" />
+ <rtfs:token name="rtf:min" type="rtfs:Value" />
+ <rtfs:token name="rtf:mo" type="rtfs:Value" />
+ <rtfs:token name="rtf:msmcap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nestcell" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:nestrow" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:nesttableprops" type="rtfs:Destination" />
+ <rtfs:token name="rtf:nextfile" type="rtfs:Destination" />
+ <rtfs:token name="rtf:nobrkwrptbl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nocolbal" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nocompatoptions" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nocwrap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:noextrasprl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nofchars" type="rtfs:Value" />
+ <rtfs:token name="rtf:nofcharsws" type="rtfs:Value" />
+ <rtfs:token name="rtf:nofpages" type="rtfs:Value" />
+ <rtfs:token name="rtf:nofwords" type="rtfs:Value" />
+ <rtfs:token name="rtf:nolead" type="rtfs:Flag" />
+ <rtfs:token name="rtf:noline" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nolnhtadjtbl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nonesttables" type="rtfs:Destination" />
+ <rtfs:token name="rtf:nonshppict" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nooverflow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:noproof" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nosectexpand" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nosnaplinegrid" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nospaceforul" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nosupersub" type="rtfs:Flag" />
+ <rtfs:token name="rtf:notabind" type="rtfs:Flag" />
+ <rtfs:token name="rtf:noultrlspc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nowidctlpar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nowrap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:nowwrap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:noxlattoyen" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objalias" type="rtfs:Destination" />
+ <rtfs:token name="rtf:objalign" type="rtfs:Value" />
+ <rtfs:token name="rtf:objattph" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objautlink" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objclass" type="rtfs:Destination" />
+ <rtfs:token name="rtf:objcropb" type="rtfs:Value" />
+ <rtfs:token name="rtf:objcropl" type="rtfs:Value" />
+ <rtfs:token name="rtf:objcropr" type="rtfs:Value" />
+ <rtfs:token name="rtf:objcropt" type="rtfs:Value" />
+ <rtfs:token name="rtf:objdata" type="rtfs:Destination" />
+ <rtfs:token name="rtf:object" type="rtfs:Destination" />
+ <rtfs:token name="rtf:objemb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objh" type="rtfs:Value" />
+ <rtfs:token name="rtf:objhtml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objicemb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objlink" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objlock" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objname" type="rtfs:Destination" />
+ <rtfs:token name="rtf:objocx" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objpub" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objscalex" type="rtfs:Value" />
+ <rtfs:token name="rtf:objscaley" type="rtfs:Value" />
+ <rtfs:token name="rtf:objsect" type="rtfs:Destination" />
+ <rtfs:token name="rtf:objsetsize" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objsub" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objtime" type="rtfs:Destination" />
+ <rtfs:token name="rtf:objtransy" type="rtfs:Value" />
+ <rtfs:token name="rtf:objupdate" type="rtfs:Flag" />
+ <rtfs:token name="rtf:objw" type="rtfs:Value" />
+ <rtfs:token name="rtf:oldas" type="rtfs:Flag" />
+ <rtfs:token name="rtf:oldcprops" type="rtfs:Destination" />
+ <rtfs:token name="rtf:oldpprops" type="rtfs:Destination" />
+ <rtfs:token name="rtf:oldsprops" type="rtfs:Destination" />
+ <rtfs:token name="rtf:oldtprops" type="rtfs:Destination" />
+ <rtfs:token name="rtf:oldlinewrap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:operator" type="rtfs:Destination" />
+ <rtfs:token name="rtf:otblrul" type="rtfs:Flag" />
+ <rtfs:token name="rtf:outl" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:outlinelevel" type="rtfs:Value" />
+ <rtfs:token name="rtf:overlay" type="rtfs:Flag" />
+ <rtfs:token name="rtf:page" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:pagebb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:panose" type="rtfs:Destination" />
+ <rtfs:token name="rtf:paperh" type="rtfs:Value" />
+ <rtfs:token name="rtf:paperw" type="rtfs:Value" />
+ <rtfs:token name="rtf:par" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:pararsid" type="rtfs:Value" />
+ <rtfs:token name="rtf:pard" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pca" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgbrdrb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgbrdrfoot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgbrdrhead" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgbrdrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgbrdropt" type="rtfs:Value" />
+ <rtfs:token name="rtf:pgbrdrr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgbrdrsnap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgbrdrt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pghsxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:pgnbidia" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnbidib" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnchosung" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgncnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgncont" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgndbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgndbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgndbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgndbnumt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgndec" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgndecd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnganada" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgngbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgngbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgngbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgngbnuml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhindia" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhindib" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhindic" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhindid" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhn" type="rtfs:Value" />
+ <rtfs:token name="rtf:pgnhnsc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhnsh" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhnsm" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhnsn" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnhnsp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnid" type="rtfs:Value" />
+ <rtfs:token name="rtf:pgnlcltr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnlcrm" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnrestart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnstart" type="rtfs:Value" />
+ <rtfs:token name="rtf:pgnstarts" type="rtfs:Value" />
+ <rtfs:token name="rtf:pgnthaia" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnthaib" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnthaic" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnucltr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnucrm" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnvieta" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnx" type="rtfs:Value" />
+ <rtfs:token name="rtf:pgny" type="rtfs:Value" />
+ <rtfs:token name="rtf:pgnzodiac" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnzodiacd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgnzodiacl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pgp" type="rtfs:Destination" />
+ <rtfs:token name="rtf:pgptbl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:pgwsxn" type="rtfs:Value" />
+ <rtfs:token name="rtf:phcol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:phmrg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:phpg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:picbmp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:picbpp" type="rtfs:Value" />
+ <rtfs:token name="rtf:piccropb" type="rtfs:Value" />
+ <rtfs:token name="rtf:piccropl" type="rtfs:Value" />
+ <rtfs:token name="rtf:piccropr" type="rtfs:Value" />
+ <rtfs:token name="rtf:piccropt" type="rtfs:Value" />
+ <rtfs:token name="rtf:pich" type="rtfs:Value" />
+ <rtfs:token name="rtf:pichgoal" type="rtfs:Value" />
+ <rtfs:token name="rtf:picprop" type="rtfs:Destination" />
+ <rtfs:token name="rtf:picscaled" type="rtfs:Flag" />
+ <rtfs:token name="rtf:picscalex" type="rtfs:Value" />
+ <rtfs:token name="rtf:picscaley" type="rtfs:Value" />
+ <rtfs:token name="rtf:pict" type="rtfs:Destination" />
+ <rtfs:token name="rtf:picw" type="rtfs:Value" />
+ <rtfs:token name="rtf:picwgoal" type="rtfs:Value" />
+ <rtfs:token name="rtf:plain" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pmmetafile" type="rtfs:Value" />
+ <rtfs:token name="rtf:pn" type="rtfs:Destination" />
+ <rtfs:token name="rtf:pnacross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnaiu" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnaiud" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnaiueo" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnaiueod" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnb" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:pnbidia" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnbidib" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pncaps" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:pncard" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pncf" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnchosung" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pncnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pndbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pndbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pndbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pndbnuml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pndbnumt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pndec" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pndecd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnf" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnfs" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnganada" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnganada" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pngblip" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pngbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pngbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pngbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pngbnuml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnhang" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pni" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:pnindent" type="rtfs:Value" />
+ <rtfs:token name="rtf:pniroha" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnirohad" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnlcltr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnlcrm" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnlvl" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnlvlblt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnlvlbody" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnlvlcont" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnnumonce" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnord" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnordt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnprev" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnqc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnql" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnqr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnrauth" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnrdate" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnrestart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnrnfc" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnrnot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnrpnbr" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnrrgb" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnrstart" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnrstop" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnrxst" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnscaps" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:pnseclvl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:pnsp" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnstart" type="rtfs:Value" />
+ <rtfs:token name="rtf:pnstrike" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:pntext" type="rtfs:Destination" />
+ <rtfs:token name="rtf:pntxta" type="rtfs:Destination" />
+ <rtfs:token name="rtf:pntxtb" type="rtfs:Destination" />
+ <rtfs:token name="rtf:pnucltr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnucrm" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnul" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:pnuld" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnuldash" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnuldashd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnuldashdd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnuldb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnulhair" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnulnone" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnulth" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnulw" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnulwave" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnzodiac" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnzodiacd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pnzodiacl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posnegx" type="rtfs:Value" />
+ <rtfs:token name="rtf:posnegy" type="rtfs:Value" />
+ <rtfs:token name="rtf:posx" type="rtfs:Value" />
+ <rtfs:token name="rtf:posxc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posxi" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posxl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posxo" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posxr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posy" type="rtfs:Value" />
+ <rtfs:token name="rtf:posyb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posyc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posyil" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posyin" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posyout" type="rtfs:Flag" />
+ <rtfs:token name="rtf:posyt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:prcolbl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:printdata" type="rtfs:Flag" />
+ <rtfs:token name="rtf:printim" type="rtfs:Destination" />
+ <rtfs:token name="rtf:private" type="rtfs:Destination" />
+ <rtfs:token name="rtf:propname" type="rtfs:Value" />
+ <rtfs:token name="rtf:proptype" type="rtfs:Value" />
+ <rtfs:token name="rtf:psover" type="rtfs:Flag" />
+ <rtfs:token name="rtf:psz" type="rtfs:Value" />
+ <rtfs:token name="rtf:pubauto" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pvmrg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pvpara" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pvpg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:pwd" type="rtfs:Destination" />
+ <rtfs:token name="rtf:pxe" type="rtfs:Destination" />
+ <rtfs:token name="rtf:qc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:qd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:qj" type="rtfs:Flag" />
+ <rtfs:token name="rtf:qk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ql" type="rtfs:Flag" />
+ <rtfs:token name="rtf:qmspace" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:qr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:qt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawbgdkbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgdkcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgdkdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgdkfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgdkhor" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgdkvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbghoriz" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rawclbgvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rdblquote" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:red" type="rtfs:Value" />
+ <rtfs:token name="rtf:rempersonalinfo" type="rtfs:Flag" />
+ <rtfs:token name="rtf:result" type="rtfs:Destination" />
+ <rtfs:token name="rtf:revauth" type="rtfs:Value" />
+ <rtfs:token name="rtf:revauthdel" type="rtfs:Value" />
+ <rtfs:token name="rtf:revbar" type="rtfs:Value" />
+ <rtfs:token name="rtf:revdttm" type="rtfs:Value" />
+ <rtfs:token name="rtf:revdttmdel" type="rtfs:Value" />
+ <rtfs:token name="rtf:revised" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:revisions" type="rtfs:Flag" />
+ <rtfs:token name="rtf:revprop" type="rtfs:Value" />
+ <rtfs:token name="rtf:revprot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:revtbl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:revtim" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ri" type="rtfs:Value" />
+ <rtfs:token name="rtf:rin" type="rtfs:Value" />
+ <rtfs:token name="rtf:row" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:rquote" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:rsid" type="rtfs:Value" />
+ <rtfs:token name="rtf:rsidroot" type="rtfs:Value" />
+ <rtfs:token name="rtf:rsidtbl" type="rtfs:Destination" />
+ <rtfs:token name="rtf:rsltbmp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rslthtml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rsltmerge" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rsltpict" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rsltrtf" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rslttxt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rtf" type="rtfs:Destination" />
+ <rtfs:token name="rtf:rtlch" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rtldoc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rtlgutter" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rtlmark" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:rtlpar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rtlrow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rtlsect" type="rtfs:Flag" />
+ <rtfs:token name="rtf:rxe" type="rtfs:Destination" />
+ <rtfs:token name="rtf:s" type="rtfs:Value" />
+ <rtfs:token name="rtf:sa" type="rtfs:Value" />
+ <rtfs:token name="rtf:saauto" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:saftnnalc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnauc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnchi" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnchosung" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnncnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnndbar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnndbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnndbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnndbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnndbnumt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnganada" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnngbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnngbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnngbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnngbnuml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnrlc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnruc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnzodiac" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnzodiacd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnnzodiacl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnrestart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnrstcont" type="rtfs:Flag" />
+ <rtfs:token name="rtf:saftnstart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sautoupd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sb" type="rtfs:Value" />
+ <rtfs:token name="rtf:sbasedon" type="rtfs:Value" />
+ <rtfs:token name="rtf:sbauto" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:sbkcol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sbkeven" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sbknone" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sbkodd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sbkpage" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sbys" type="rtfs:Flag" />
+ <rtfs:token name="rtf:scaps" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:scompose" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sec" type="rtfs:Value" />
+ <rtfs:token name="rtf:sect" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:sectd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sectdefaultcl" type="rtfs:Value" />
+ <rtfs:token name="rtf:sectexpand" type="rtfs:Value" />
+ <rtfs:token name="rtf:sectlinegrid" type="rtfs:Value" />
+ <rtfs:token name="rtf:sectnum" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:sectrsid" type="rtfs:Value" />
+ <rtfs:token name="rtf:sectspecifycl" type="rtfs:Value" />
+ <rtfs:token name="rtf:sectspecifygen" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sectspecifyl" type="rtfs:Value" />
+ <rtfs:token name="rtf:sectunlocked" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnbj" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnalc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnauc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnchi" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnchosung" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnncnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnndbar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnndbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnndbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnndbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnndbnumt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnganada" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnngbnum" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnngbnumd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnngbnumk" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnngbnuml" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnrlc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnruc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnzodiac" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnzodiacd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnnzodiacl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnrestart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnrstcont" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnrstpg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftnstart" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sftntj" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shad" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:shading" type="rtfs:Value" />
+ <rtfs:token name="rtf:shidden" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shift" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpbottom" type="rtfs:Value" />
+ <rtfs:token name="rtf:shpbxcolumn" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpbxignore" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpbxmargin" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpbxpage" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpbyignore" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpbymargin" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpbypage" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpbypara" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shpfblwtxt" type="rtfs:Value" />
+ <rtfs:token name="rtf:shpfhdr" type="rtfs:Value" />
+ <rtfs:token name="rtf:shpgrp" type="rtfs:Value" />
+ <rtfs:token name="rtf:shpleft" type="rtfs:Value" />
+ <rtfs:token name="rtf:shplid" type="rtfs:Value" />
+ <rtfs:token name="rtf:shplockanchor" type="rtfs:Flag" />
+ <rtfs:token name="rtf:shppict" type="rtfs:Destination" />
+ <rtfs:token name="rtf:shpright" type="rtfs:Value" />
+ <rtfs:token name="rtf:shprslt" type="rtfs:Value" />
+ <rtfs:token name="rtf:shptop" type="rtfs:Value" />
+ <rtfs:token name="rtf:shptxt" type="rtfs:Value" />
+ <rtfs:token name="rtf:shpwrk" type="rtfs:Value" />
+ <rtfs:token name="rtf:shpwr" type="rtfs:Value" />
+ <rtfs:token name="rtf:shpz" type="rtfs:Value" />
+ <rtfs:token name="rtf:sl" type="rtfs:Value" />
+ <rtfs:token name="rtf:slmult" type="rtfs:Value" />
+ <rtfs:token name="rtf:snaptogridincell" type="rtfs:Flag" />
+ <rtfs:token name="rtf:snext" type="rtfs:Value" />
+ <rtfs:token name="rtf:softcol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:softlheight" type="rtfs:Value" />
+ <rtfs:token name="rtf:softline" type="rtfs:Flag" />
+ <rtfs:token name="rtf:softpage" type="rtfs:Flag" />
+ <rtfs:token name="rtf:spersonal" type="rtfs:Flag" />
+ <rtfs:token name="rtf:splytwnine" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sprsbsp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sprslnsp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sprsspbf" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sprstsm" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sprstsp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:spv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:sreply" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ssemihidden" type="rtfs:Flag" />
+ <rtfs:token name="rtf:staticval" type="rtfs:Value" />
+ <rtfs:token name="rtf:stextflow" type="rtfs:Value" />
+ <rtfs:token name="rtf:strike" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:striked1" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:stshfbi" type="rtfs:Value" />
+ <rtfs:token name="rtf:stshfdbch" type="rtfs:Value" />
+ <rtfs:token name="rtf:stshfhich" type="rtfs:Value" />
+ <rtfs:token name="rtf:stshfloch" type="rtfs:Value" />
+ <rtfs:token name="rtf:stylesheet" type="rtfs:Destination" />
+ <rtfs:token name="rtf:styrsid" type="rtfs:Value" />
+ <rtfs:token name="rtf:sub" type="rtfs:Flag" />
+ <rtfs:token name="rtf:subdocument" type="rtfs:Value" />
+ <rtfs:token name="rtf:subfontbysize" type="rtfs:Flag" />
+ <rtfs:token name="rtf:subject" type="rtfs:Destination" />
+ <rtfs:token name="rtf:super" type="rtfs:Flag" />
+ <rtfs:token name="rtf:swpbdr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tab" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:tabsnoovrlp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:taprtl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tb" type="rtfs:Value" />
+ <rtfs:token name="rtf:tbllkbestfit" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tbllkborder" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tbllkcolor" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tbllkfont" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tbllkhdrcols" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tbllkhdrrows" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tbllklastcol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tbllklastrow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tbllkshading" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tblrsid" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tc" type="rtfs:Destination" />
+ <rtfs:token name="rtf:tcelld" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tcf" type="rtfs:Value" />
+ <rtfs:token name="rtf:tcl" type="rtfs:Value" />
+ <rtfs:token name="rtf:tcn" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tdfrmtxtBottom" type="rtfs:Value" />
+ <rtfs:token name="rtf:tdfrmtxtLeft" type="rtfs:Value" />
+ <rtfs:token name="rtf:tdfrmtxtRight" type="rtfs:Value" />
+ <rtfs:token name="rtf:tdfrmtxtTop" type="rtfs:Value" />
+ <rtfs:token name="rtf:template" type="rtfs:Destination" />
+ <rtfs:token name="rtf:time" type="rtfs:Flag" />
+ <rtfs:token name="rtf:title" type="rtfs:Destination" />
+ <rtfs:token name="rtf:titlepg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tldot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tleq" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tlhyph" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tlmdot" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tlth" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tlul" type="rtfs:Flag" />
+ <rtfs:token name="rtf:toplinepunct" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tphcol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tphmrg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tphpg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposnegx" type="rtfs:Value" />
+ <rtfs:token name="rtf:tposnegy" type="rtfs:Value" />
+ <rtfs:token name="rtf:tposxc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposxi" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposxl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposx" type="rtfs:Value" />
+ <rtfs:token name="rtf:tposxo" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposxr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposy" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposyb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposyc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposyil" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposyin" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposyoutv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tposyt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tpvmrg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tpvpara" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tpvpg" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tqc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tqdec" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tqr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:transmf" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trauth" type="rtfs:Value" />
+ <rtfs:token name="rtf:trautofit" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:trbgbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgdkbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgdkcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgdkdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgdkfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgdkhor" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgdkvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbghoriz" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbgvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbrdrb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbrdrh" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbrdrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbrdrr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbrdrt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trbrdrv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trcbpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:trcfpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:trdate" type="rtfs:Value" />
+ <rtfs:token name="rtf:trftsWidthA" type="rtfs:Value" />
+ <rtfs:token name="rtf:trftsWidthB" type="rtfs:Value" />
+ <rtfs:token name="rtf:trftsWidth" type="rtfs:Value" />
+ <rtfs:token name="rtf:trgaph" type="rtfs:Value" />
+ <rtfs:token name="rtf:trhdr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trkeep" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trleft" type="rtfs:Value" />
+ <rtfs:token name="rtf:trowd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trpaddb" type="rtfs:Value" />
+ <rtfs:token name="rtf:trpaddfb" type="rtfs:Value" />
+ <rtfs:token name="rtf:trpaddfl" type="rtfs:Value" />
+ <rtfs:token name="rtf:trpaddfr" type="rtfs:Value" />
+ <rtfs:token name="rtf:trpaddft" type="rtfs:Value" />
+ <rtfs:token name="rtf:trpaddl" type="rtfs:Value" />
+ <rtfs:token name="rtf:trpaddr" type="rtfs:Value" />
+ <rtfs:token name="rtf:trpaddt" type="rtfs:Value" />
+ <rtfs:token name="rtf:trpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:trqc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trql" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trqr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trrh" type="rtfs:Value" />
+ <rtfs:token name="rtf:trshdng" type="rtfs:Value" />
+ <rtfs:token name="rtf:trspdb" type="rtfs:Value" />
+ <rtfs:token name="rtf:trspdfb" type="rtfs:Value" />
+ <rtfs:token name="rtf:trspdfl" type="rtfs:Value" />
+ <rtfs:token name="rtf:trspdfr" type="rtfs:Value" />
+ <rtfs:token name="rtf:trspdft" type="rtfs:Value" />
+ <rtfs:token name="rtf:trspdl" type="rtfs:Value" />
+ <rtfs:token name="rtf:trspdr" type="rtfs:Value" />
+ <rtfs:token name="rtf:trspdt" type="rtfs:Value" />
+ <rtfs:token name="rtf:truncatefontheight" type="rtfs:Flag" />
+ <rtfs:token name="rtf:trwWidthA" type="rtfs:Value" />
+ <rtfs:token name="rtf:trwWidthB" type="rtfs:Value" />
+ <rtfs:token name="rtf:trwWidth" type="rtfs:Value" />
+ <rtfs:token name="rtf:ts" type="rtfs:Value" />
+ <rtfs:token name="rtf:tsbgbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgdkbdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgdkcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgdkdcross" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgdkfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgdkhor" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgdkvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgfdiag" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbghoriz" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbgvert" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrdgl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrdgr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrh" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrr" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsbrdrv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscbandhorzeven" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscbandhorzodd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscbandsh" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscbandsv" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscbandverteven" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscbandvertodd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscellcbpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellcfpat" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpaddb" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpaddfb" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpaddfl" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpaddfr" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpaddft" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpaddl" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpaddr" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpaddt" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellpct" type="rtfs:Value" />
+ <rtfs:token name="rtf:tscellwidth" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscellwidthfts" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscfirstcol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscfirstrow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsclastcol" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsclastrow" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscnecell" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscnwcell" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscsecell" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tscswcell" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsnowrap" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsrowd" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsvertalb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsvertalc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tsvertalt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:twoonone" type="rtfs:Flag" />
+ <rtfs:token name="rtf:tx" type="rtfs:Value" />
+ <rtfs:token name="rtf:txe" type="rtfs:Destination" />
+ <rtfs:token name="rtf:uc" type="rtfs:Value" />
+ <rtfs:token name="rtf:ud" type="rtfs:Destination" />
+ <rtfs:token name="rtf:ul" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulc" type="rtfs:Value" />
+ <rtfs:token name="rtf:uld" type="rtfs:Flag" />
+ <rtfs:token name="rtf:uldash" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:uldashd" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:uldashdd" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:uldb" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulhair" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulhwave" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulldash" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulnone" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ulth" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulth" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulthd" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulthdash" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulthdashd" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulthdashdd" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulthldash" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ululdbwave" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:ulw" type="rtfs:Flag" />
+ <rtfs:token name="rtf:ulwave" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:u" type="rtfs:Value" />
+ <rtfs:token name="rtf:up" type="rtfs:Value" />
+ <rtfs:token name="rtf:upr" type="rtfs:Destination" />
+ <rtfs:token name="rtf:urtf" type="rtfs:Destination" />
+ <rtfs:token name="rtf:useltbaln" type="rtfs:Flag" />
+ <rtfs:token name="rtf:userprops" type="rtfs:Destination" />
+ <rtfs:token name="rtf:v" type="rtfs:Toggle" />
+ <rtfs:token name="rtf:vern" type="rtfs:Value" />
+ <rtfs:token name="rtf:version" type="rtfs:Value" />
+ <rtfs:token name="rtf:vertalb" type="rtfs:Flag" />
+ <rtfs:token name="rtf:vertalc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:vertalj" type="rtfs:Flag" />
+ <rtfs:token name="rtf:vertalt" type="rtfs:Flag" />
+ <rtfs:token name="rtf:vertdoc" type="rtfs:Flag" />
+ <rtfs:token name="rtf:vertsect" type="rtfs:Flag" />
+ <rtfs:token name="rtf:viewkind" type="rtfs:Value" />
+ <rtfs:token name="rtf:viewnobound" type="rtfs:Flag" />
+ <rtfs:token name="rtf:viewscale" type="rtfs:Value" />
+ <rtfs:token name="rtf:viewzk" type="rtfs:Value" />
+ <rtfs:token name="rtf:wbitmap" type="rtfs:Value" />
+ <rtfs:token name="rtf:wbmbitspixel" type="rtfs:Value" />
+ <rtfs:token name="rtf:wbmplanes" type="rtfs:Value" />
+ <rtfs:token name="rtf:wbmwidthbytes" type="rtfs:Value" />
+ <rtfs:token name="rtf:webhidden" type="rtfs:Flag" />
+ <rtfs:token name="rtf:widctlpar" type="rtfs:Flag" />
+ <rtfs:token name="rtf:widowctrl" type="rtfs:Flag" />
+ <rtfs:token name="rtf:windowcaption" type="rtfs:Value" />
+ <rtfs:token name="rtf:wmetafile" type="rtfs:Value" />
+ <rtfs:token name="rtf:wpeqn" type="rtfs:Flag" />
+ <rtfs:token name="rtf:wpjst" type="rtfs:Flag" />
+ <rtfs:token name="rtf:wpsp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:wraptrsp" type="rtfs:Flag" />
+ <rtfs:token name="rtf:wrppunct" type="rtfs:Flag" />
+ <rtfs:token name="rtf:xe" type="rtfs:Destination" />
+ <rtfs:token name="rtf:xef" type="rtfs:Value" />
+ <rtfs:token name="rtf:yr" type="rtfs:Value" />
+ <rtfs:token name="rtf:yts" type="rtfs:Value" />
+ <rtfs:token name="rtf:yxe" type="rtfs:Flag" />
+ <rtfs:token name="rtf:zwbo" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:zwj" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:zwnbo" type="rtfs:Symbol" />
+ <rtfs:token name="rtf:zwnj" type="rtfs:Symbol" />
+
+
+
+ <rtfs:token name="rtf:listlevel" type="rtfs:Attribute" />
+
+</rtfs:definition> \ No newline at end of file
diff --git a/writerfilter/source/rtftok/FlexLexer.h b/writerfilter/source/rtftok/FlexLexer.h
new file mode 100644
index 000000000000..52cc3f2162af
--- /dev/null
+++ b/writerfilter/source/rtftok/FlexLexer.h
@@ -0,0 +1,128 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+
+#ifndef __FLEX_LEXER_H
+// Never included before - need to define base class.
+#define __FLEX_LEXER_H
+//#include <iostream.h>
+typedef void ostream;
+#include <vector>
+#include <rtftok/RTFInputSource.hxx>
+
+extern "C++" {
+
+struct yy_buffer_state;
+typedef int yy_state_type;
+
+}
+#include <rtftok/RTFScanner.hxx>
+#endif
+
+#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
+// Either this is the first time through (yyFlexLexerOnce not defined),
+// or this is a repeated include to define a different flavor of
+// yyFlexLexer, as discussed in the flex man page.
+#define yyFlexLexerOnce
+
+class yyFlexLexer : public writerfilter::rtftok::RTFScanner {
+private:
+ class RtfTokenizer* tokenizerInstance;
+
+ void split_ctrl(char *yytext, char* token, char *value);
+ void raise_ctrl(char* yytext);
+ void raise_dest(char* yytext);
+ void raise_destOrCtrl(char* yytext);
+protected:
+ int num_lines;
+ sal_uInt64 num_chars;
+ int star_flag;
+
+public:
+ // arg_yyin and arg_yyout default to the cin and cout, but we
+ // only make that assignment when initializing in yylex().
+ yyFlexLexer( class writerfilter::rtftok::RTFInputSource* arg_yyin, class writerfilter::rtftok::RTFScannerHandler &eventHandler );
+
+ virtual ~yyFlexLexer();
+
+ void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
+ struct yy_buffer_state* yy_create_buffer( class writerfilter::rtftok::RTFInputSource* s, int size );
+ void yy_delete_buffer( struct yy_buffer_state* b );
+ void yyrestart( class writerfilter::rtftok::RTFInputSource* s );
+
+ virtual int yylex();
+ virtual void switch_streams( class writerfilter::rtftok::RTFInputSource* new_in, ostream* new_out );
+
+protected:
+
+// int LexerInput( char* buf, int max_size );
+ virtual void LexerOutput( const char* buf, int size );
+ virtual void LexerError( const char* msg );
+
+ void yyunput( int c, char* buf_ptr );
+ int yyinput();
+
+ void yy_load_buffer_state();
+ void yy_init_buffer( struct yy_buffer_state* b, class writerfilter::rtftok::RTFInputSource* s );
+ void yy_flush_buffer( struct yy_buffer_state* b );
+
+ int yy_start_stack_ptr;
+ int yy_start_stack_depth;
+ int* yy_start_stack;
+
+ void yy_push_state( int new_state );
+ void yy_pop_state();
+ int yy_top_state();
+
+ yy_state_type yy_get_previous_state();
+ yy_state_type yy_try_NUL_trans( yy_state_type current_state );
+ int yy_get_next_buffer();
+
+ class writerfilter::rtftok::RTFInputSource* yyin; // input source for default LexerInput
+ ostream* yyout; // output sink for default LexerOutput
+
+ struct yy_buffer_state* yy_current_buffer;
+
+ // yy_hold_char holds the character lost when yytext is formed.
+ char yy_hold_char;
+
+ // Number of characters read into yy_ch_buf.
+ int yy_n_chars;
+
+ // Points to current character in buffer.
+ char* yy_c_buf_p;
+
+ int yy_init; // whether we need to initialize
+ int yy_start; // start state number
+
+ // Flag which is used to allow yywrap()'s to do buffer switches
+ // instead of setting up a fresh yyin. A bit of a hack ...
+ int yy_did_buffer_switch_on_eof;
+
+ // The following are not always needed, but may be depending
+ // on use of certain flex features (like REJECT or yymore()).
+
+ yy_state_type yy_last_accepting_state;
+ char* yy_last_accepting_cpos;
+
+ yy_state_type* yy_state_buf;
+ yy_state_type* yy_state_ptr;
+
+ char* yy_full_match;
+ int* yy_full_state;
+ int yy_full_lp;
+
+ int yy_lp;
+ int yy_looking_for_trail_begin;
+
+ int yy_more_flag;
+ int yy_more_len;
+ int yy_more_offset;
+ int yy_prev_more_offset;
+
+ private:
+
+};
+
+#endif
diff --git a/writerfilter/source/rtftok/RTFParseException.cxx b/writerfilter/source/rtftok/RTFParseException.cxx
new file mode 100644
index 000000000000..6f49e5d6a853
--- /dev/null
+++ b/writerfilter/source/rtftok/RTFParseException.cxx
@@ -0,0 +1,10 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#include <rtftok/RTFParseException.hxx>
+
+writerfilter::rtftok::RTFParseException::RTFParseException(char * /*message*/)
+{
+}
+
diff --git a/writerfilter/source/rtftok/RTFScanner.lex b/writerfilter/source/rtftok/RTFScanner.lex
new file mode 100644
index 000000000000..53d2d06b9ae9
--- /dev/null
+++ b/writerfilter/source/rtftok/RTFScanner.lex
@@ -0,0 +1,311 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+*/
+
+/* compile with flex++ -8 -f -+ -Sflex.skl -ortfparser.cxx rtfparser.lex */
+%option yylineno
+%{
+ //#include <io.h>
+#include <math.h>
+#include <string.h>
+#include <osl/file.h>
+#include <assert.h>
+#include <vector>
+
+#if defined (UNX)
+ #define stricmp strcasecmp
+#endif
+
+writerfilter::rtftok::RTFScanner* writerfilter::rtftok::RTFScanner::createRTFScanner(class writerfilter::rtftok::RTFInputSource& inputSource, writerfilter::rtftok::RTFScannerHandler &eventHandler)
+{
+ return new yyFlexLexer(&inputSource, eventHandler);
+}
+
+
+
+extern "C" {
+//int isatty(int fd) { return 0; }
+int yywrap(void) { return 1; }
+}
+
+/*
+oslFileHandle yy_osl_in=NULL;
+#define YY_INPUT(buf,result,max_size) \
+{\
+{\
+ assert(yy_osl_in!=NULL);\
+ sal_Bool isEOF;\
+ oslFileError ret=osl_isEndOfFile( yy_osl_in, &isEOF );\
+ assert(ret==osl_File_E_None);\
+ if (isEOF)\
+ {\
+ result=YY_NULL;\
+ }\
+ else\
+ {\
+ sal_uInt64 bytesRead;\
+ ret=osl_readFile( yy_osl_in, buf, max_size, &bytesRead);\
+ assert(ret==osl_File_E_None);\
+ result = bytesRead; \
+ }\
+}\
+}
+*/
+
+//extern RtfTokenizer* this;
+void yyFlexLexer::split_ctrl(char *yytext, char* token, char *value)
+ {
+ int i=0; // skip first '\'
+ while(yytext[i]!=0 && (yytext[i]=='\r' || yytext[i]=='\n')) i++;
+ while(yytext[i]!=0 && (yytext[i]<'A' || (yytext[i]>'Z' && yytext[i]<'a') || yytext[i]>'z')) i++;
+ while(yytext[i]!=0 && yytext[i]>='A') *(token++)=yytext[i++];
+ *token=0;
+ while(yytext[i]!=0 && yytext[i]>' ') *(value++)=yytext[i++];
+ *value=0;
+ }
+
+ void yyFlexLexer::raise_ctrl(char* yytext)
+ {
+ char token[50];
+ char value[50];
+ split_ctrl(yytext, token, value);
+ eventHandler.ctrl(token, value);
+ }
+
+ void yyFlexLexer::raise_dest(char* yytext)
+ {
+ char token[50];
+ char value[50];
+ split_ctrl(yytext, token, value);
+ eventHandler.dest(token, value);
+ }
+
+ #define _num_of_destctrls 137
+char _destctrls[_num_of_destctrls][20] = {
+"aftncn",
+"aftnsep",
+"aftnsepc",
+"annotation",
+"atnauthor",
+"atndate",
+"atnicn",
+"atnid",
+"atnparent",
+"atnref",
+"atntime",
+"atrfend",
+"atrfstart",
+"author",
+"background",
+"bkmkend",
+"bkmkstart",
+"buptim",
+"category",
+"colortbl",
+"comment",
+"company",
+"creatim",
+"datafield",
+"do",
+"doccomm",
+"docvar",
+"dptxbxtext",
+"falt",
+"fchars",
+"ffdeftext",
+"ffentrymcr",
+"ffexitmcr",
+"ffformat",
+"ffhelptext",
+"ffl",
+"ffname",
+"ffstattext",
+"field",
+"file",
+"filetbl",
+"fldinst",
+"fldrslt",
+"fldtype",
+"fname",
+"fontemb",
+"fontfile",
+"fonttbl",
+"footer",
+"footer",
+"footerf",
+"footerl",
+"footnote",
+"formfield",
+"ftncn",
+"ftnsep",
+"ftnsepc",
+"g",
+"generator",
+"gridtbl",
+"header",
+"header",
+"headerf",
+"headerl",
+"htmltag",
+"info",
+"keycode",
+"keywords",
+"lchars",
+"levelnumbers",
+"leveltext",
+"lfolevel",
+"list",
+"listlevel",
+"listname",
+"listoverride",
+"listoverridetable",
+"listtable",
+"listtext",
+"manager",
+"mhtmltag",
+"nesttableprops",
+"nextfile",
+"nonesttables",
+"nonshppict",
+"objalias",
+"objclass",
+"objdata",
+"object",
+"objname",
+"objsect",
+"objtime",
+"oldcprops",
+"oldpprops",
+"oldsprops",
+"oldtprops",
+"operator",
+"panose",
+"pgp",
+"pgptbl",
+"picprop",
+"pict",
+"pn",
+"pnseclvl",
+"pntext",
+"pntxta",
+"pntxtb",
+"printim",
+"private",
+"pwd",
+"pxe",
+"result",
+"revtbl",
+"revtim",
+"rsidtbl",
+"rtf",
+"rxe",
+"shp",
+"shpgrp",
+"shpinst",
+"shppict",
+"shprslt",
+"shptxt",
+"sn",
+"sp",
+"stylesheet",
+"subject",
+"sv",
+"tc",
+"template",
+"title",
+"txe",
+"ud",
+"upr",
+"urtf",
+"userprops",
+"xe"
+};
+
+
+ void yyFlexLexer::raise_destOrCtrl(char* yytext)
+ {
+ char token[50];
+ char value[50];
+ split_ctrl(yytext, token, value);
+ char* result=(char*)bsearch(token, _destctrls, _num_of_destctrls, 20, (int (*)(const void*, const void*))stricmp);
+ if (result)
+ {
+ eventHandler.dest(token, value);
+ }
+ else
+ {
+ eventHandler.lbrace();
+ eventHandler.ctrl(token, value);
+ }
+ }
+
+%}
+
+%%
+\{\\upr\{" "? { /* skip upr destination */
+ int c;
+ int br=1;
+ while (br>0 && (c = yyinput()) != EOF)
+ {
+ if (c=='}') br--;
+ if (c=='{') br++;
+ }
+ eventHandler.lbrace();
+ num_chars+=yyleng;
+}
+
+
+\\bin(("+"|"-")?[0-9]*)?" "? {
+ raise_dest(yytext);
+ num_chars+=yyleng;
+ int len=atoi(yytext+4);
+ num_chars+=len;
+ // pictureBytes=2*len;
+ while ( len )
+ {
+ int c = yyinput();
+ eventHandler.addBinData((unsigned char)c);
+ len--;
+ }
+ eventHandler.rbrace();
+}
+
+\{[\r\n]*\\\*\\[A-Za-z]+(("+"|"-")?[0-9]*)?" "? { /* stared dest word */
+ raise_dest(yytext);
+ num_chars+=yyleng;
+}
+\{[\r\n]*\\[A-Za-z]+(("+"|"-")?[0-9]*)?" "? { /* dest word */
+ raise_destOrCtrl(yytext);
+}
+\\[A-Za-z]+(("+"|"-")?[0-9]*)?" "? { /* ctrl word */
+ raise_ctrl(yytext);
+ star_flag=0;
+ num_chars+=yyleng;
+}
+\\\'[A-Fa-f0-9][A-Fa-f0-9] { /* hex char */
+ eventHandler.addHexChar(yytext);
+ num_chars+=yyleng;
+}
+\\* { /* star */
+ star_flag=1;
+ num_chars+=yyleng;
+}
+\{ { /* lbrace */
+ eventHandler.lbrace();
+ num_chars+=yyleng;
+}
+\} { /* rbrace */
+ eventHandler.rbrace();
+ num_chars+=yyleng;
+}
+\\\| { num_chars+=yyleng;}
+\\~ {num_chars+=yyleng; eventHandler.addCharU(0xa0);}
+\\- {num_chars+=yyleng;}
+\\_ {num_chars+=yyleng;}
+\\\: {num_chars+=yyleng;}
+\n { ++num_lines;num_chars+=yyleng;}
+\r {num_chars+=yyleng;}
+\t {num_chars+=yyleng;}
+" "(" "+) { eventHandler.addSpaces(yyleng); num_chars+=yyleng;}
+. { eventHandler.addChar(yytext[0]); num_chars+=yyleng;}
+%%
diff --git a/writerfilter/source/rtftok/RTFScanner.skl b/writerfilter/source/rtftok/RTFScanner.skl
new file mode 100644
index 000000000000..e1a3e300f9ef
--- /dev/null
+++ b/writerfilter/source/rtftok/RTFScanner.skl
@@ -0,0 +1,1542 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+
+%-
+#include <stdio.h>
+%*
+
+
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
+#endif
+#endif
+
+
+#ifdef __cplusplus
+
+#include <math.h>
+#include <osl/file.h>
+#include <rtl/alloc.h>
+#include <rtftok/RTFInputSource.hxx>
+#include <rtftok/RTFParseException.hxx>
+
+static const int EOF=0;
+
+%+
+//class istream;
+%*
+//#include <unistd.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else /* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_PROTOS
+#define YY_USE_CONST
+
+#endif /* __STDC__ */
+#endif /* ! __cplusplus */
+
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index. If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN yy_start = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((yy_start - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart( yyin )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#define YY_BUF_SIZE 16384
+
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+extern int yyleng;
+%-
+extern FILE *yyin, *yyout;
+%*
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator). This
+ * avoids problems with code like:
+ *
+ * if ( condition_holds )
+ * yyless( 5 );
+ * else
+ * do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ *yy_cp = yy_hold_char; \
+ YY_RESTORE_YY_MORE_OFFSET \
+ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+
+#define unput(c) yyunput( c, yytext_ptr )
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+typedef unsigned int yy_size_t;
+
+
+struct yy_buffer_state
+ {
+%-
+ FILE *yy_input_file;
+%+
+// istream* yy_input_file;
+ writerfilter::rtftok::RTFInputSource *yy_input_file;
+%*
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ yy_size_t yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int yy_is_our_buffer;
+
+ /* Whether this is an "interactive" input source; if so, and
+ * if we're using stdio for input, then we want to use getc()
+ * instead of fread(), to make sure we stop fetching input after
+ * each newline.
+ */
+ int yy_is_interactive;
+
+ /* Whether we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int yy_at_bol;
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+ * shouldn't try reading from the input source any more. We might
+ * still have a bunch of tokens to match, though, because of
+ * possible backing-up.
+ *
+ * When we actually see the EOF, we change the status to "new"
+ * (via yyrestart()), so that the user can continue scanning by
+ * just pointing yyin at a new input file.
+ */
+#define YY_BUFFER_EOF_PENDING 2
+ };
+
+%- Standard (non-C++) definition
+static YY_BUFFER_STATE yy_current_buffer = 0;
+%*
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ */
+#define YY_CURRENT_BUFFER yy_current_buffer
+
+
+%- Standard (non-C++) definition
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
+
+
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 1; /* whether we need to initialize */
+static int yy_start = 0; /* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin. A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+%*
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_is_interactive = is_interactive; \
+ }
+
+#define yy_set_bol(at_bol) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_at_bol = at_bol; \
+ }
+
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
+
+%% yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here
+
+%- Standard (non-C++) definition
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+%*
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+ yytext_ptr = yy_bp; \
+%% code to fiddle yytext and yyleng for yymore() goes here
+ yy_hold_char = *yy_cp; \
+ *yy_cp = '\0'; \
+%% code to copy yytext_ptr to yytext[] goes here, if %array
+ yy_c_buf_p = yy_cp;
+
+%% data tables for the DFA and the user's section 1 definitions go here
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap YY_PROTO(( void ));
+#else
+extern int yywrap YY_PROTO(( void ));
+#endif
+#endif
+
+%-
+#ifndef YY_NO_UNPUT
+static void yyunput YY_PROTO(( int c, char *buf_ptr ));
+#endif
+%*
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+#endif
+
+#ifndef YY_NO_INPUT
+%- Standard (non-C++) definition
+#ifdef __cplusplus
+static int yyinput YY_PROTO(( void ));
+#else
+static int input YY_PROTO(( void ));
+#endif
+%*
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
+#endif
+
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines. This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+
+#ifndef ECHO
+%- Standard (non-C++) definition
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+%+ C++ definition
+#define ECHO LexerOutput( yytext, yyleng )
+%*
+#endif
+
+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+%% fread()/read() definition of YY_INPUT goes here unless we're doing C++
+%+ C++ definition
+{result=yyin->read(buf, max_size);}
+%*
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+%-
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+%+
+#define YY_FATAL_ERROR(msg) LexerError( msg )
+%*
+#endif
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+%- Standard (non-C++) definition
+#define YY_DECL int yylex YY_PROTO(( void ))
+%+ C++ definition
+#define YY_DECL int yyFlexLexer::yylex()
+%*
+#endif
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+%% YY_RULE_SETUP definition goes here
+
+YY_DECL
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+%% user's declarations go here
+
+ if ( yy_init )
+ {
+ yy_init = 0;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+ if ( ! yy_start )
+ yy_start = 1; /* first start state */
+
+ if ( ! yyin )
+%-
+ yyin = stdin;
+%+
+// yyin = &cin;
+ yyin = NULL;
+%*
+
+ if ( ! yyout )
+%-
+ yyout = stdout;
+%+
+// yyout = &cout;
+ yyout = NULL;
+%*
+
+ if ( ! yy_current_buffer )
+ yy_current_buffer =
+ yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_load_buffer_state();
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+%% yymore()-related code goes here
+ yy_cp = yy_c_buf_p;
+
+ /* Support of yytext. */
+ *yy_cp = yy_hold_char;
+
+ /* yy_bp points to the position in yy_ch_buf of the start of
+ * the current run.
+ */
+ yy_bp = yy_cp;
+
+%% code to set up and find next match goes here
+
+yy_find_action:
+%% code to find the action number goes here
+
+ YY_DO_BEFORE_ACTION;
+
+%% code for yylineno update goes here
+
+do_action: /* This label is used only to access EOF actions. */
+
+%% debug code goes here
+
+ switch ( yy_act )
+ { /* beginning of action switch */
+%% actions go here
+
+ case YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
+ *yy_cp = yy_hold_char;
+ YY_RESTORE_YY_MORE_OFFSET
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed yyin at a new source and called
+ * yylex(). If so, then we have to assure
+ * consistency between yy_current_buffer and our
+ * globals. Here is the right place to do so, because
+ * this is the first action (other than possibly a
+ * back-up) that will match for the new input source.
+ */
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yy_current_buffer->yy_input_file = yyin;
+ yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since yy_c_buf_p will
+ * already have been incremented past the NUL character
+ * (since all states make transitions on EOB to the
+ * end-of-buffer state). Contrast this with the test
+ * in input().
+ */
+ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ { /* This was really a NUL. */
+ yy_state_type yy_next_state;
+
+ yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * yy_get_previous_state() go ahead and do it
+ * for us because it doesn't know how to deal
+ * with the possibility of jamming (and we don't
+ * want to build jamming into it because then it
+ * will run more slowly).
+ */
+
+ yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+
+ if ( yy_next_state )
+ {
+ /* Consume the NUL. */
+ yy_cp = ++yy_c_buf_p;
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+%% code to do back-up for compressed tables and set up yy_cp goes here
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ yy_did_buffer_switch_on_eof = 0;
+
+ if ( yywrap() )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+ * yytext, we can now set up
+ * yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * YY_NULL, it'll still work - another
+ * YY_NULL will get returned.
+ */
+ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+
+ yy_act = YY_STATE_EOF(YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p =
+ yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ yy_c_buf_p =
+ &yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
+ } /* end of yylex */
+
+%+
+yyFlexLexer::yyFlexLexer( writerfilter::rtftok::RTFInputSource* arg_yyin, class writerfilter::rtftok::RTFScannerHandler &eventHandler )
+: writerfilter::rtftok::RTFScanner(eventHandler)
+ {
+ yyin = arg_yyin;
+ yyout = 0;
+ yy_c_buf_p = 0;
+ yy_init = 1;
+ yy_start = 0;
+ yy_flex_debug = 0;
+ yylineno = 1; // this will only get updated if %option yylineno
+
+ yy_did_buffer_switch_on_eof = 0;
+
+ yy_looking_for_trail_begin = 0;
+ yy_more_flag = 0;
+ yy_more_len = 0;
+ yy_more_offset = yy_prev_more_offset = 0;
+
+ yy_start_stack_ptr = yy_start_stack_depth = 0;
+ yy_start_stack = 0;
+
+ yy_current_buffer = 0;
+
+#ifdef YY_USES_REJECT
+ yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2];
+#else
+ yy_state_buf = 0;
+#endif
+
+ num_lines=0;
+ num_chars=0;
+ star_flag=false;
+ }
+
+yyFlexLexer::~yyFlexLexer()
+ {
+ delete yy_state_buf;
+ yy_delete_buffer( yy_current_buffer );
+ }
+
+void yyFlexLexer::switch_streams( writerfilter::rtftok::RTFInputSource* new_in, ostream* new_out )
+ {
+ if ( new_in )
+ {
+ yy_delete_buffer( yy_current_buffer );
+ yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );
+ }
+
+ if ( new_out )
+ yyout = new_out;
+ }
+
+#if 0
+#ifdef YY_INTERACTIVE
+int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
+#else
+int yyFlexLexer::LexerInput( char* buf, int max_size )
+#endif
+{
+ OSL_ASSERT(yyin!=NULL);
+ ::com::sun::star::uno::Sequence< ::sal_Int8 > buffer;
+ int len=yyin->readSomeBytes(buffer,max_size);
+ if (len>0)
+ {
+ sal_Int8 *_buffer=buffer.getArray();
+ memcpy(buf, _buffer, len);
+ return len;
+ }
+ else
+ {
+ return YY_NULL;
+ }
+}
+#endif
+
+void yyFlexLexer::LexerOutput( const char* buf, int size )
+ {
+// (void) yyout->write( buf, size );
+ }
+%*
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ * EOB_ACT_LAST_MATCH -
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ * EOB_ACT_END_OF_FILE - end of file
+ */
+
+%-
+static int yy_get_next_buffer()
+%+
+int yyFlexLexer::yy_get_next_buffer()
+%*
+ {
+ register char *dest = yy_current_buffer->yy_ch_buf;
+ register char *source = yytext_ptr;
+ register int number_to_move, i;
+ int ret_val;
+
+ if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--end of buffer missed" );
+
+ if ( yy_current_buffer->yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+ {
+ /* We matched a single character, the EOB, so
+ * treat this as a final EOF.
+ */
+ return EOB_ACT_END_OF_FILE;
+ }
+
+ else
+ {
+ /* We matched some text prior to the EOB, first
+ * process it.
+ */
+ return EOB_ACT_LAST_MATCH;
+ }
+ }
+
+ /* Try to read more data. */
+
+ /* First move last chars to start of buffer. */
+ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+
+ else
+ {
+ int num_to_read =
+ yy_current_buffer->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+ YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
+
+ /* just a shorter name for the current buffer */
+ YY_BUFFER_STATE b = yy_current_buffer;
+
+ int yy_c_buf_p_offset =
+ (int) (yy_c_buf_p - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ yy_flex_realloc( (void *) b->yy_ch_buf,
+ b->yy_buf_size + 2 );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->yy_ch_buf = 0;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+ "fatal error - scanner input buffer overflow" );
+
+ yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = yy_current_buffer->yy_buf_size -
+ number_to_move - 1;
+#endif
+ }
+
+ if ( num_to_read > YY_READ_BUF_SIZE )
+ num_to_read = YY_READ_BUF_SIZE;
+
+ /* Read in more data. */
+ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+ yy_n_chars, num_to_read );
+
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ if ( yy_n_chars == 0 )
+ {
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ yyrestart( yyin );
+ }
+
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ yy_current_buffer->yy_buffer_status =
+ YY_BUFFER_EOF_PENDING;
+ }
+ }
+
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+ yy_n_chars += number_to_move;
+ yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+ yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+ yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+
+ return ret_val;
+ }
+
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+%-
+static yy_state_type yy_get_previous_state()
+%+
+yy_state_type yyFlexLexer::yy_get_previous_state()
+%*
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp;
+
+%% code to get the start state into yy_current_state goes here
+
+ for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+ {
+%% code to find the next state goes here
+ }
+
+ return yy_current_state;
+ }
+
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ * next_state = yy_try_NUL_trans( current_state );
+ */
+
+%-
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+%+
+yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
+%*
+ {
+ register int yy_is_jam;
+%% code to find the next state, and perhaps do backing up, goes here
+
+ return yy_is_jam ? 0 : yy_current_state;
+ }
+
+
+%-
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static void yyunput( int c, register char *yy_bp )
+#else
+static void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+%+
+void yyFlexLexer::yyunput( int c, register char* yy_bp )
+%*
+ {
+ register char *yy_cp = yy_c_buf_p;
+
+ /* undo effects of setting up yytext */
+ *yy_cp = yy_hold_char;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = yy_n_chars + 2;
+ register char *dest = &yy_current_buffer->yy_ch_buf[
+ yy_current_buffer->yy_buf_size + 2];
+ register char *source =
+ &yy_current_buffer->yy_ch_buf[number_to_move];
+
+ while ( source > yy_current_buffer->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ yy_current_buffer->yy_n_chars =
+ yy_n_chars = yy_current_buffer->yy_buf_size;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+%% update yylineno here
+
+ yytext_ptr = yy_bp;
+ yy_hold_char = *yy_cp;
+ yy_c_buf_p = yy_cp;
+ }
+%-
+#endif /* ifndef YY_NO_UNPUT */
+%*
+
+
+%-
+#ifdef __cplusplus
+static int yyinput()
+#else
+static int input()
+#endif
+%+
+int yyFlexLexer::yyinput()
+%*
+ {
+ int c;
+
+ *yy_c_buf_p = yy_hold_char;
+
+ if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+ {
+ /* yy_c_buf_p now points to the character we want to return.
+ * If this occurs *before* the EOB characters, then it's a
+ * valid NUL; if not, then we've hit the end of the buffer.
+ */
+ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ /* This was really a NUL. */
+ *yy_c_buf_p = '\0';
+
+ else
+ { /* need more input */
+ int offset = yy_c_buf_p - yytext_ptr;
+ ++yy_c_buf_p;
+
+ switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because yy_g_n_b()
+ * sees that we've accumulated a
+ * token and flags that we need to
+ * try matching the token before
+ * proceeding. But for input(),
+ * there's no matching to consider.
+ * So convert the EOB_ACT_LAST_MATCH
+ * to EOB_ACT_END_OF_FILE.
+ */
+
+ /* Reset buffer status. */
+ yyrestart( yyin );
+
+ /* fall through */
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( yywrap() )
+ return EOF;
+
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+#ifdef __cplusplus
+ return yyinput();
+#else
+ return input();
+#endif
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p = yytext_ptr + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
+ *yy_c_buf_p = '\0'; /* preserve yytext */
+ yy_hold_char = *++yy_c_buf_p;
+
+%% update BOL and yylineno
+
+ return c;
+ }
+
+
+%-
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+%+
+void yyFlexLexer::yyrestart( writerfilter::rtftok::RTFInputSource* input_file )
+%*
+ {
+ if ( ! yy_current_buffer )
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_init_buffer( yy_current_buffer, input_file );
+ yy_load_buffer_state();
+ }
+
+
+%-
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+%+
+void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+%*
+ {
+ if ( yy_current_buffer == new_buffer )
+ return;
+
+ if ( yy_current_buffer )
+ {
+ /* Flush out information for old buffer. */
+ *yy_c_buf_p = yy_hold_char;
+ yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ yy_current_buffer = new_buffer;
+ yy_load_buffer_state();
+
+ /* We don't actually know whether we did this switch during
+ * EOF (yywrap()) processing, but the only time this flag
+ * is looked at is after yywrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ yy_did_buffer_switch_on_eof = 1;
+ }
+
+
+%-
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+%+
+void yyFlexLexer::yy_load_buffer_state()
+%*
+ {
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+ yyin = yy_current_buffer->yy_input_file;
+ yy_hold_char = *yy_c_buf_p;
+ }
+
+
+%-
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+%+
+YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( writerfilter::rtftok::RTFInputSource* file, int size )
+%*
+ {
+ YY_BUFFER_STATE b;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_buf_size = size;
+
+ /* yy_ch_buf has to be 2 characters longer than the size given because
+ * we need to put in 2 end-of-buffer characters.
+ */
+ b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+ yy_init_buffer( b, file );
+
+ return b;
+ }
+
+
+%-
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+%+
+void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
+%*
+ {
+ if ( ! b )
+ return;
+
+ if ( b == yy_current_buffer )
+ yy_current_buffer = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ yy_flex_free( (void *) b->yy_ch_buf );
+
+ yy_flex_free( (void *) b );
+ }
+
+
+%-
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+%+
+//extern "C" int isatty YY_PROTO(( int ));
+void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, writerfilter::rtftok::RTFInputSource* file )
+%*
+
+ {
+ yy_flush_buffer( b );
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+%-
+#if YY_ALWAYS_INTERACTIVE
+ b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+ b->yy_is_interactive = 0;
+#else
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+%+
+ b->yy_is_interactive = 0;
+%*
+ }
+
+
+%-
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+%+
+void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
+%*
+ {
+ if ( ! b )
+ return;
+
+ b->yy_n_chars = 0;
+
+ /* We always need two end-of-buffer characters. The first causes
+ * a transition to the end-of-buffer state. The second causes
+ * a jam in that state.
+ */
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == yy_current_buffer )
+ yy_load_buffer_state();
+ }
+%*
+
+
+#ifndef YY_NO_SCAN_BUFFER
+%-
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file = 0;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ yy_switch_to_buffer( b );
+
+ return b;
+ }
+%*
+#endif
+
+
+#ifndef YY_NO_SCAN_STRING
+%-
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+ {
+ int len;
+ for ( len = 0; yy_str[len]; ++len )
+ ;
+
+ return yy_scan_bytes( yy_str, len );
+ }
+%*
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+%-
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+ {
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = len + 2;
+ buf = (char *) yy_flex_alloc( n );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+ for ( i = 0; i < len; ++i )
+ buf[i] = bytes[i];
+
+ buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+
+ b = yy_scan_buffer( buf, n );
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->yy_is_our_buffer = 1;
+
+ return b;
+ }
+%*
+#endif
+
+
+#ifndef YY_NO_PUSH_STATE
+%-
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
+#endif
+%+
+void yyFlexLexer::yy_push_state( int new_state )
+%*
+ {
+ if ( yy_start_stack_ptr >= yy_start_stack_depth )
+ {
+ yy_size_t new_size;
+
+ yy_start_stack_depth += YY_START_STACK_INCR;
+ new_size = yy_start_stack_depth * sizeof( int );
+
+ if ( ! yy_start_stack )
+ yy_start_stack = (int *) yy_flex_alloc( new_size );
+
+ else
+ yy_start_stack = (int *) yy_flex_realloc(
+ (void *) yy_start_stack, new_size );
+
+ if ( ! yy_start_stack )
+ YY_FATAL_ERROR(
+ "out of memory expanding start-condition stack" );
+ }
+
+ yy_start_stack[yy_start_stack_ptr++] = YY_START;
+
+ BEGIN(new_state);
+ }
+#endif
+
+
+#ifndef YY_NO_POP_STATE
+%-
+static void yy_pop_state()
+%+
+void yyFlexLexer::yy_pop_state()
+%*
+ {
+ if ( --yy_start_stack_ptr < 0 )
+ YY_FATAL_ERROR( "start-condition stack underflow" );
+
+ BEGIN(yy_start_stack[yy_start_stack_ptr]);
+ }
+#endif
+
+
+#ifndef YY_NO_TOP_STATE
+%-
+static int yy_top_state()
+%+
+int yyFlexLexer::yy_top_state()
+%*
+ {
+ return yy_start_stack[yy_start_stack_ptr - 1];
+ }
+#endif
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+%-
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+ {
+ (void) fprintf( stderr, "%s\n", msg );
+ exit( YY_EXIT_FAILURE );
+ }
+
+%+
+
+void yyFlexLexer::LexerError( yyconst char msg[] )
+ {
+// cerr << msg << '\n';
+// exit( YY_EXIT_FAILURE );
+ throw writerfilter::rtftok::RTFParseException("fatal error: %s"/*, msg*/);
+ }
+%*
+
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ yytext[yyleng] = yy_hold_char; \
+ yy_c_buf_p = yytext + n; \
+ yy_hold_char = *yy_c_buf_p; \
+ *yy_c_buf_p = '\0'; \
+ yyleng = n; \
+ } \
+ while ( 0 )
+
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+ {
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
+#endif
+
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+ {
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+ }
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+ {
+ return (void *) rtl_allocateMemory( size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+ {
+ return (void *) rtl_reallocateMemory( (char *) ptr, size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+ {
+ rtl_freeMemory( ptr );
+ }
+
+#if YY_MAIN
+int main()
+ {
+ yylex();
+ return 0;
+ }
+#endif
+
diff --git a/writerfilter/source/rtftok/makefile.mk b/writerfilter/source/rtftok/makefile.mk
new file mode 100644
index 000000000000..f53d02186001
--- /dev/null
+++ b/writerfilter/source/rtftok/makefile.mk
@@ -0,0 +1,48 @@
+#
+# Copyright 2005 Sun Microsystems, Inc.
+#
+
+PRJ=..$/..
+PRJNAME=writerfilter
+TARGET=rtftok
+#LIBTARGET=NO
+ENABLE_EXCEPTIONS=TRUE
+#USE_DEFFILE=TRUE
+EXTERNAL_WARNINGS_NOT_ERRORS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+#CFLAGS+=-DISOLATION_AWARE_ENABLED -DWIN32_LEAN_AND_MEAN -DXML_UNICODE -D_NTSDK -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0501
+#CFLAGS+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820
+CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION
+
+
+# --- Files --------------------------------------------------------
+
+SLOFILES=$(SLO)$/RTFScanner.obj $(SLO)$/RTFParseException.obj
+
+
+SHL1TARGET=$(TARGET)
+
+SHL1STDLIBS=$(SALLIB)\
+ $(CPPULIB)\
+ $(CPPUHELPERLIB)
+SHL1IMPLIB=i$(SHL1TARGET)
+#SHL1USE_EXPORTS=name
+SHL1USE_EXPORTS=ordinal
+
+SHL1OBJS=$(SLOFILES)
+
+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+DEF1NAME=$(SHL1TARGET)
+DEFLIB1NAME=$(TARGET)
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+RTFScanner.cxx: RTFScanner.lex RTFScanner.skl FlexLexer.h
+ flex -+ -SRTFScanner.skl -oRTFScanner.cxx RTFScanner.lex
+
diff --git a/writerfilter/unocomponent/component.cxx b/writerfilter/unocomponent/component.cxx
new file mode 100644
index 000000000000..df6829803010
--- /dev/null
+++ b/writerfilter/unocomponent/component.cxx
@@ -0,0 +1,85 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#ifndef _CPPUHELPTER_FACTORY_
+#include <cppuhelper/factory.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#endif
+
+#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_
+#include <cppuhelper/implementationentry.hxx>
+#endif
+
+#ifndef INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX
+#include <debugservices/rtftok/ScannerTestService.hxx>
+#endif
+
+#ifndef INCLUDED_RTFTOK_XMLSCANNER_HXX
+#include <debugservices/rtftok/XMLScanner.hxx>
+#endif
+
+#ifndef INCLUDED_XXML_FILEXXMLREADER_HXX
+#include <debugservices/xxml/FileXXmlReader.hxx>
+#endif
+
+#ifndef INCLUDED_XXML_STORAGEXXMLREADER_HXX
+#include <debugservices/xxml/StorageXXmlReader.hxx>
+#endif
+
+#ifndef INCLUDED_ODSL_ODSLREADER_HXX
+#include <debugservices/odsl/ODSLParser.hxx>
+#endif
+
+#ifndef INCLUDED_RTFSL_PARSER_HXX
+#include <debugservices/rtfsl/RTFSLParser.hxx>
+#endif
+
+#ifndef INCLUDED_DOCTOK_SCANNERTESTSERVICE_HXX
+#include <debugservices/doctok/DocTokTestService.hxx>
+#endif
+
+#ifndef INCLUDED_DOCTOK_ANALYZESERVICE_HXX
+#include <debugservices/doctok/DocTokAnalyzeService.hxx>
+#endif
+
+using namespace com::sun::star;
+
+
+extern "C"
+{
+/* shared lib exports implemented with helpers */
+static struct ::cppu::ImplementationEntry s_component_entries [] =
+{//uno -l writerfilter.uno.dll -c debugservices.rtftok.ScannerTestService -- a b c
+ RTFTOK_SCANNERTESTSERVICE_COMPONENT_ENTRY, /* debugservices.rtftok.ScannerTestService */
+ RTFTOK_XMLSCANNER_COMPONENT_ENTRY, /* debugservices.rtftok.XMLScanner */
+ XXML_FILEXXMLREADER_COMPONENT_ENTRY, /* debugservices.xxml.FileXXmlReader */
+ XXML_STORAGEXXMLREADER_COMPONENT_ENTRY, /* debugservices.xxml.StorageXXmlReader */
+ ODSL_ODSLREADER_COMPONENT_ENTRY, /* debugservices.odsl.ODSLReader */
+ RTFSL_PARSER_COMPONENT_ENTRY, /* debugservices.rtfsl.RTFSLParser */
+ DOCTOK_SCANNERTESTSERVICE_COMPONENT_ENTRY, /* debugservices.doctok.ScannerTestService */
+ DOCTOK_ANALYZESERVICE_COMPONENT_ENTRY, /* debugservices.doctok.AnalyzeService */
+ { 0, 0, 0, 0, 0, 0 } // terminate with NULL
+};
+
+
+ void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
+{
+ return ::cppu::component_writeInfoHelper( xMgr, xRegistry, s_component_entries );
+}
+
+
+void * SAL_CALL component_getFactory(sal_Char const * implName, ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
+{
+ return ::cppu::component_getFactoryHelper(implName, xMgr, xRegistry, s_component_entries );
+}
+
+}
diff --git a/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx b/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx
new file mode 100644
index 000000000000..d40f8e292169
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx
@@ -0,0 +1,245 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#include "DocTokAnalyzeService.hxx"
+#include <stdio.h>
+#include <wchar.h>
+#include <com/sun/star/io/XStream.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/io/XTruncate.hpp>
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <ucbhelper/contentbroker.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <osl/process.h>
+#include <rtl/string.hxx>
+#include <hash_set>
+#include <assert.h>
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/embed/XStorage.hpp>
+#include <com/sun/star/util/XCloseable.hpp>
+#include <comphelper/storagehelper.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <comphelper/seqstream.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <doctok/WW8ResourceModel.hxx>
+#include <doctok/exceptions.hxx>
+#include <doctok/WW8Document.hxx>
+
+#include <ctype.h>
+
+using namespace ::com::sun::star;
+
+namespace writerfilter { namespace doctoktest {
+
+const sal_Char AnalyzeService::SERVICE_NAME[40] = "debugservices.doctok.AnalyzeService";
+const sal_Char AnalyzeService::IMPLEMENTATION_NAME[40] = "debugservices.doctok.AnalyzeService";
+
+class URLLister
+{
+ uno::Reference<io::XInputStream> xInputStream;
+ rtl::OUString mString;
+ rtl::OUString mCRLF;
+ rtl::OUString mLF;
+
+ sal_uInt32 getEOLIndex()
+ {
+ sal_Int32 nIndex = mString.indexOf(mCRLF);
+
+ if (nIndex == -1)
+ {
+ nIndex = mString.indexOf(mLF);
+ }
+
+ return nIndex;
+ }
+
+public:
+ URLLister(uno::Reference<com::sun::star::uno::XComponentContext> xContext,
+ uno::Reference<lang::XMultiComponentFactory> xFactory,
+ rtl::OUString absFileUrl)
+ {
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess
+ (xFactory->createInstanceWithContext
+ (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM
+ ("com.sun.star.ucb.SimpleFileAccess")),
+ xContext), uno::UNO_QUERY_THROW);
+ xInputStream = xFileAccess->openFileRead(absFileUrl) ;
+
+ mLF = rtl::OUString::createFromAscii("\n");
+ mCRLF = rtl::OUString::createFromAscii("\r\n");
+ }
+
+ rtl::OUString getURL()
+ {
+ rtl::OUString aResult;
+
+ sal_Int32 nIndex = getEOLIndex();
+
+ while (nIndex == -1)
+ {
+ uno::Sequence<sal_Int8> aSeq;
+ sal_uInt32 nCount = xInputStream->readBytes(aSeq, 1024);
+
+ if (nCount > 0)
+ {
+ rtl_String * pNew = 0;
+ rtl_string_newFromStr_WithLength
+ (&pNew, reinterpret_cast<const sal_Char *>(&aSeq[0]),
+ nCount);
+
+ rtl::OString aTmp(pNew);
+ rtl::OUString aTail(rtl::OStringToOUString
+ (aTmp, RTL_TEXTENCODING_ASCII_US));
+ mString = mString.concat(aTail);
+ }
+
+ nIndex = getEOLIndex();
+
+ if (nCount != 1024)
+ break;
+ }
+
+ if (nIndex > 0)
+ {
+ aResult = mString.copy(0, nIndex);
+
+ if (mString.match(mCRLF, nIndex))
+ mString = mString.copy(nIndex + 2);
+ else
+ mString = mString.copy(nIndex + 1);
+ }
+
+ return aResult;
+ }
+};
+
+AnalyzeService::AnalyzeService(const uno::Reference< uno::XComponentContext > &xContext_) :
+xContext( xContext_ )
+{
+}
+
+sal_Int32 SAL_CALL AnalyzeService::run
+( const uno::Sequence< rtl::OUString >& aArguments )
+ throw (uno::RuntimeException)
+{
+ uno::Sequence<uno::Any> aUcbInitSequence(2);
+ aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+ aUcbInitSequence[1] <<=
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+ uno::Reference<lang::XMultiServiceFactory>
+ xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+ uno::Reference<lang::XMultiComponentFactory>
+ xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+
+ if (::ucb::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+ {
+ rtl::OUString arg=aArguments[0];
+
+ rtl_uString *dir=NULL;
+ osl_getProcessWorkingDir(&dir);
+
+ rtl::OUString absFileUrlUrls;
+ osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrlUrls.pData);
+
+ URLLister aLister(xContext, xFactory, absFileUrlUrls);
+
+ fprintf(stdout, "<analyze>\n");
+
+ rtl::OUString aURL = aLister.getURL();
+
+ while (aURL.getLength() > 0)
+ {
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess
+ (xFactory->createInstanceWithContext
+ (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM
+ ("com.sun.star.ucb.SimpleFileAccess")),
+ xContext), uno::UNO_QUERY_THROW );
+
+ rtl::OString aStr;
+ aURL.convertToString(&aStr, RTL_TEXTENCODING_ASCII_US,
+ OUSTRING_TO_OSTRING_CVTFLAGS);
+
+ fprintf(stdout, "<file><name>%s</name>\n", aStr.getStr());
+
+ try
+ {
+ try
+ {
+ uno::Reference<io::XInputStream> xInputStream =
+ xFileAccess->openFileRead(aURL);
+ doctok::WW8Stream::Pointer_t pDocStream =
+ doctok::WW8DocumentFactory::createStream
+ (xContext, xInputStream);
+
+ doctok::WW8Document::Pointer_t pDocument =
+ doctok::WW8DocumentFactory::createDocument(pDocStream);
+
+ doctok::Stream::Pointer_t pAnalyzer =
+ doctok::createAnalyzer();
+ pDocument->resolve(*pAnalyzer);
+
+ fprintf(stdout, "<status>ok</status>\n");
+ }
+ catch (doctok::Exception e)
+ {
+ fprintf(stdout, "<exception>%s</exception>\n",
+ e.getText().c_str());
+ fprintf(stdout, "<status>failed</status>\n");
+ }
+ }
+ catch (...)
+ {
+ fprintf(stdout, "<exception>unknown</exception>\n");
+ fprintf(stdout, "<status>failed</status>\n");
+ }
+ aURL = aLister.getURL();
+
+ fprintf(stdout, "</file>\n");
+ }
+
+ fprintf(stdout, "</analyze>\n");
+
+ rtl_uString_release(dir);
+ ::ucb::ContentBroker::deinitialize();
+ }
+ else
+ {
+ fprintf(stdout, "can't initialize UCB");
+ }
+ return 0;
+}
+
+::rtl::OUString AnalyzeService_getImplementationName ()
+{
+ return rtl::OUString::createFromAscii ( AnalyzeService::IMPLEMENTATION_NAME );
+}
+
+sal_Bool SAL_CALL AnalyzeService_supportsService( const ::rtl::OUString& ServiceName )
+{
+ return ServiceName.equals( rtl::OUString::createFromAscii( AnalyzeService::SERVICE_NAME ) );
+}
+uno::Sequence< rtl::OUString > SAL_CALL AnalyzeService_getSupportedServiceNames( ) throw (uno::RuntimeException)
+{
+ uno::Sequence < rtl::OUString > aRet(1);
+ rtl::OUString* pArray = aRet.getArray();
+ pArray[0] = rtl::OUString::createFromAscii ( AnalyzeService::SERVICE_NAME );
+ return aRet;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL AnalyzeService_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception )
+{
+ return (cppu::OWeakObject*) new AnalyzeService( xContext );
+}
+
+} } /* end namespace writerfilter::doctok */
diff --git a/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.hxx b/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.hxx
new file mode 100644
index 000000000000..19319bb37915
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.hxx
@@ -0,0 +1,55 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+*/
+
+#ifndef INCLUDED_DOCTOK_ANALYZESERVICE_HXX
+#define INCLUDED_DOCTOK_ANALYZESERVICE_HXX
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_LANG_XMAIN_HPP_
+#include <com/sun/star/lang/XMain.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_
+#include <com/sun/star/uno/XComponentContext.hpp>
+#endif
+
+namespace writerfilter { namespace doctoktest {
+
+class AnalyzeService : public cppu::WeakImplHelper1 < ::com::sun::star::lang::XMain >
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xContext;
+
+public:
+ AnalyzeService(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext);
+
+ virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (::com::sun::star::uno::RuntimeException);
+
+public:
+ const static sal_Char SERVICE_NAME[40];
+ const static sal_Char IMPLEMENTATION_NAME[40];
+
+};
+
+::rtl::OUString AnalyzeService_getImplementationName ();
+sal_Bool SAL_CALL AnalyzeService_supportsService( const ::rtl::OUString& ServiceName );
+::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL AnalyzeService_getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL AnalyzeService_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext) throw( ::com::sun::star::uno::Exception );
+
+} } /* end namespace writerfilter::rtftok */
+
+#define DOCTOK_ANALYZESERVICE_COMPONENT_ENTRY \
+{\
+ writerfilter::doctoktest::AnalyzeService_createInstance,\
+ writerfilter::doctoktest::AnalyzeService_getImplementationName,\
+ writerfilter::doctoktest::AnalyzeService_getSupportedServiceNames,\
+ ::cppu::createSingleComponentFactory,\
+ 0, 0\
+}
+
+
+#endif /* INCLUDED_RTFTOK_ANALYZESERVICE_HXX */
diff --git a/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx b/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
new file mode 100644
index 000000000000..71534a5455e1
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx
@@ -0,0 +1,126 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#include "DocTokTestService.hxx"
+#include <stdio.h>
+#include <wchar.h>
+#include <com/sun/star/io/XStream.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/io/XTruncate.hpp>
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <ucbhelper/contentbroker.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <osl/process.h>
+#include <rtl/string.hxx>
+#include <hash_set>
+#include <assert.h>
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/embed/XStorage.hpp>
+#include <com/sun/star/util/XCloseable.hpp>
+#include <comphelper/storagehelper.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <comphelper/seqstream.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <doctok/WW8ResourceModel.hxx>
+#include <doctok/exceptions.hxx>
+#include <doctok/WW8Document.hxx>
+
+#include <ctype.h>
+
+using namespace ::com::sun::star;
+
+namespace writerfilter { namespace doctoktest {
+
+const sal_Char ScannerTestService::SERVICE_NAME[40] = "debugservices.doctok.ScannerTestService";
+const sal_Char ScannerTestService::IMPLEMENTATION_NAME[40] = "debugservices.doctok.ScannerTestService";
+
+
+
+
+ScannerTestService::ScannerTestService(const uno::Reference< uno::XComponentContext > &xContext_) :
+xContext( xContext_ )
+{
+}
+
+sal_Int32 SAL_CALL ScannerTestService::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+ uno::Sequence<uno::Any> aUcbInitSequence(2);
+ aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+ aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+ uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+ if (::ucb::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+ {
+ rtl::OUString arg=aArguments[0];
+
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+ xFactory->createInstanceWithContext(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")),
+ xContext), uno::UNO_QUERY_THROW );
+
+ rtl_uString *dir=NULL;
+ osl_getProcessWorkingDir(&dir);
+ rtl::OUString absFileUrl;
+ osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+ rtl_uString_release(dir);
+
+ uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl);
+ doctok::WW8Stream::Pointer_t pDocStream = doctok::WW8DocumentFactory::createStream(xContext, xInputStream);
+
+ doctok::WW8Document::Pointer_t pDocument = doctok::WW8DocumentFactory::createDocument(pDocStream);
+
+#if 0
+ TimeValue t1; osl_getSystemTime(&t1);
+#endif
+
+ doctok::Stream::Pointer_t pStream = doctok::createStreamHandler();
+ pDocument->resolve(*pStream);
+
+#if 0
+ TimeValue t2; osl_getSystemTime(&t2);
+ printf("time=%is\n", t2.Seconds-t1.Seconds);
+#endif
+
+ ::ucb::ContentBroker::deinitialize();
+ }
+ else
+ {
+ fprintf(stderr, "can't initialize UCB");
+ }
+ return 0;
+}
+
+::rtl::OUString ScannerTestService_getImplementationName ()
+{
+ return rtl::OUString::createFromAscii ( ScannerTestService::IMPLEMENTATION_NAME );
+}
+
+sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName )
+{
+ return ServiceName.equals( rtl::OUString::createFromAscii( ScannerTestService::SERVICE_NAME ) );
+}
+uno::Sequence< rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames( ) throw (uno::RuntimeException)
+{
+ uno::Sequence < rtl::OUString > aRet(1);
+ rtl::OUString* pArray = aRet.getArray();
+ pArray[0] = rtl::OUString::createFromAscii ( ScannerTestService::SERVICE_NAME );
+ return aRet;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL ScannerTestService_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception )
+{
+ return (cppu::OWeakObject*) new ScannerTestService( xContext );
+}
+
+} } /* end namespace writerfilter::doctok */
diff --git a/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.hxx b/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.hxx
new file mode 100644
index 000000000000..a1bd559cb842
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.hxx
@@ -0,0 +1,55 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+*/
+
+#ifndef INCLUDED_DOCTOK_SCANNERTESTSERVICE_HXX
+#define INCLUDED_DOCTOK_SCANNERTESTSERVICE_HXX
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_LANG_XMAIN_HPP_
+#include <com/sun/star/lang/XMain.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_
+#include <com/sun/star/uno/XComponentContext.hpp>
+#endif
+
+namespace writerfilter { namespace doctoktest {
+
+class ScannerTestService : public cppu::WeakImplHelper1 < ::com::sun::star::lang::XMain >
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xContext;
+
+public:
+ ScannerTestService(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext);
+
+ virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (::com::sun::star::uno::RuntimeException);
+
+public:
+ const static sal_Char SERVICE_NAME[40];
+ const static sal_Char IMPLEMENTATION_NAME[40];
+
+};
+
+::rtl::OUString ScannerTestService_getImplementationName ();
+sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName );
+::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ScannerTestService_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext) throw( ::com::sun::star::uno::Exception );
+
+} } /* end namespace writerfilter::rtftok */
+
+#define DOCTOK_SCANNERTESTSERVICE_COMPONENT_ENTRY \
+{\
+ writerfilter::doctoktest::ScannerTestService_createInstance,\
+ writerfilter::doctoktest::ScannerTestService_getImplementationName,\
+ writerfilter::doctoktest::ScannerTestService_getSupportedServiceNames,\
+ ::cppu::createSingleComponentFactory,\
+ 0, 0\
+}
+
+
+#endif /* INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX */
diff --git a/writerfilter/unocomponent/debugservices/doctok/makefile.mk b/writerfilter/unocomponent/debugservices/doctok/makefile.mk
new file mode 100644
index 000000000000..e71ee42cf9ad
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/doctok/makefile.mk
@@ -0,0 +1,21 @@
+#
+# Copyright 2005 Sun Microsystems, Inc.
+#
+PRJ=..$/..$/..
+PRJNAME=writerfilter
+TARGET=debugservices_doctok
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES= \
+ $(SLO)$/DocTokTestService.obj \
+ $(SLO)$/DocTokAnalyzeService.obj
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx b/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx
new file mode 100644
index 000000000000..64b0f7ace981
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx
@@ -0,0 +1,431 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#include "ScannerTestService.hxx"
+#include <stdio.h>
+#include <wchar.h>
+#include <rtftok/RTFScanner.hxx>
+#include <rtftok/RTFScannerHandler.hxx>
+#include <com/sun/star/io/XStream.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/io/XTruncate.hpp>
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <ucbhelper/contentbroker.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <osl/process.h>
+#include <rtl/string.hxx>
+#include <hash_set>
+#include <assert.h>
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/embed/XStorage.hpp>
+#include <com/sun/star/util/XCloseable.hpp>
+#include <comphelper/storagehelper.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <comphelper/seqstream.hxx>
+
+#include <ctype.h>
+
+using namespace ::com::sun::star;
+
+namespace writerfilter { namespace rtftok {
+
+const sal_Char ScannerTestService::SERVICE_NAME[40] = "debugservices.rtftok.ScannerTestService";
+const sal_Char ScannerTestService::IMPLEMENTATION_NAME[40] = "debugservices.rtftok.ScannerTestService";
+
+struct ScannerTestServiceHelper
+{
+ size_t operator()(const rtl::OString &str) const
+ {
+ return str.hashCode();
+ }
+ bool operator()(const rtl::OString &str1, const rtl::OString &str2) const
+ {
+ return str1.compareTo(str2)==0;
+ }
+};
+
+typedef ::std::hash_set< ::rtl::OString, ScannerTestServiceHelper, ScannerTestServiceHelper > ScannerTestServiceTokenMap;
+
+class MyRtfScannerHandler : public writerfilter::rtftok::RTFScannerHandler
+{
+ ScannerTestServiceTokenMap destMap;
+ ScannerTestServiceTokenMap ctrlMap;
+ std::vector<unsigned char> binBuffer;
+ int objDataLevel;
+ int numOfOLEs;
+ unsigned char hb;
+ int numOfOLEChars;
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory;
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess;
+ uno::Reference<embed::XStorage> xStorage;
+
+ void dest(char* token, char* /*value*/)
+ {
+ destMap.insert(rtl::OString(token));
+// printf("{\\*\\%s%s ", token, value);
+ if (strcmp(token, "objdata")==0)
+ {
+ binBuffer.clear();
+ objDataLevel=1;
+ numOfOLEChars=0;
+ }
+ }
+ void ctrl(char*token, char* /*value*/)
+ {
+ ctrlMap.insert(rtl::OString(token));
+// printf("\\%s%s ", token, value);
+ }
+ void lbrace(void)
+ {
+// printf("{");
+ }
+ void rbrace(void)
+ {
+#ifndef LINUX
+ unsigned char * binBufferStr = ((unsigned char*)&(*binBuffer.begin()));
+
+ if (objDataLevel)
+ {
+ int o=0;
+ unsigned int type=((unsigned int)binBuffer[o]) | ((unsigned int)binBuffer[o+1])<<8 | ((unsigned int)binBuffer[o+2])<<16 | ((unsigned int)binBuffer[o+3]<<24); o+=4;
+ unsigned int recType=((unsigned int)binBuffer[o]) | ((unsigned int)binBuffer[o+1])<<8 | ((unsigned int)binBuffer[o+2])<<16 | ((unsigned int)binBuffer[o+3]<<24); o+=4;
+ unsigned int strLen=((unsigned int)binBuffer[o]) | ((unsigned int)binBuffer[o+1])<<8 | ((unsigned int)binBuffer[o+2])<<16 | ((unsigned int)binBuffer[o+3]<<24); o+=4;
+ unsigned char *str=binBufferStr+o;
+ o+=strLen;
+ o+=4; // dummy1
+ o+=4; // dummy2
+ unsigned int binLen=((unsigned int)binBuffer[o]) | ((unsigned int)binBuffer[o+1])<<8 | ((unsigned int)binBuffer[o+2])<<16 | ((unsigned int)binBuffer[o+3]<<24); o+=4;
+ printf("OLE%i \"%s\" type=%i recType=%i binBuffer.size()=%u len=%u\n", numOfOLEs, str, type, recType, binBuffer.size(), o+binLen);
+ //assert(binBuffer.size()==o+binLen);
+ char buf[100];
+ sprintf(buf, "ole%02i.ole", numOfOLEs);
+/* if 0{
+ FILE *f=fopen(buf, "w+b");
+ unsigned char *data=binBuffer.begin();
+ fwrite(data+o, 1, binLen, f);
+ fclose(f);
+ }*/
+/*
+ rtl_uString *dir=NULL;
+ osl_getProcessWorkingDir(&dir);
+ rtl::OUString absFileUrl;
+ rtl::OUString fileUrl=rtl::OUString::createFromAscii(buf);
+ osl_getAbsoluteFileURL(dir, fileUrl.pData, &absFileUrl.pData);
+ rtl_uString_release(dir);
+*/
+ comphelper::ByteSequence seq(binLen);
+ unsigned char *data=binBufferStr;
+ memcpy(seq.getArray(), data+o, binLen);
+ uno::Reference<io::XInputStream> myStream=new comphelper::SequenceInputStream(seq);
+// uno::Reference<io::XStream> myStream=xFileAccess->openFileReadWrite(absFileUrl);
+// uno::Reference<io::XStream> myStream(new MyStreamImpl(binBuffer, o));
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[0] <<= myStream;
+ uno::Reference< container::XNameContainer > xNameContainer(
+ xServiceFactory->createInstanceWithArguments(
+ ::rtl::OUString::createFromAscii("com.sun.star.embed.OLESimpleStorage" ),
+ aArgs ),
+ uno::UNO_QUERY_THROW );
+ try {
+ printf("TRY\n");
+ ::com::sun::star::uno::Sequence< ::rtl::OUString > names=xNameContainer->getElementNames();
+ printf("OK\n");
+
+ for(int i=0;i<names.getLength();i++)
+ {
+ rtl::OUString &name=names[i];
+ wprintf(L"name=%s\n", name.getStr());
+ }
+ {
+ uno::Reference< io::XStream > xContentStream = xStorage->openStreamElement(
+ rtl::OUString::createFromAscii(buf), embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE );
+ uno::Reference<beans::XPropertySet> xContentStreamPropSet(xContentStream, uno::UNO_QUERY_THROW);
+ xContentStreamPropSet->setPropertyValue(rtl::OUString::createFromAscii("MediaType"), uno::makeAny(rtl::OUString::createFromAscii("application/vnd.sun.star.oleobject")));
+ uno::Reference<io::XOutputStream> myOutStream=xContentStream->getOutputStream();
+ uno::Sequence< ::sal_Int8 > seq(binLen);
+ unsigned char *data=binBufferStr;
+ memcpy(seq.getArray(), data+o, binLen);
+ myOutStream->writeBytes(seq);
+ myOutStream->closeOutput();
+ }
+
+ } catch(com::sun::star::uno::RuntimeException &)
+ {
+ printf("NOT OK\n");
+ comphelper::ByteSequence seq(4+binLen);
+ // memcpy(seq.getArray(), &binLen, 4); assert(0); //TODO linux
+ seq[0]= sal::static_int_cast<sal_Int8>(binLen&0xFF);
+ seq[1]= sal::static_int_cast<sal_Int8>((binLen>>8)&0xFF);
+ seq[2]= sal::static_int_cast<sal_Int8>((binLen>>16)&0xFF);
+ seq[3]= sal::static_int_cast<sal_Int8>((binLen>>24)&0xFF);
+ unsigned char *data=binBufferStr;
+ memcpy(seq.getArray()+4, data+o, binLen);
+ uno::Reference<io::XInputStream> myInStream=new comphelper::SequenceInputStream(seq);
+ printf("SEQ OK\n");
+
+ uno::Reference< io::XStream > xContentStream = xStorage->openStreamElement(
+ rtl::OUString::createFromAscii(buf), embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE );
+ uno::Reference<beans::XPropertySet> xContentStreamPropSet(xContentStream, uno::UNO_QUERY_THROW);
+ xContentStreamPropSet->setPropertyValue(rtl::OUString::createFromAscii("MediaType"), uno::makeAny(rtl::OUString::createFromAscii("application/vnd.sun.star.oleobject")));
+ printf("CONTENT STREAM OK\n");
+
+ uno::Sequence< uno::Any > aArgs( 1 );
+ aArgs[0] <<= xContentStream;
+ uno::Reference< container::XNameContainer > xNameContainer2(
+ xServiceFactory->createInstanceWithArguments(
+ ::rtl::OUString::createFromAscii("com.sun.star.embed.OLESimpleStorage" ),
+ aArgs ),
+ uno::UNO_QUERY_THROW );
+ printf("OLE STORAGE OK\n");
+
+ uno::Any anyStream;
+ anyStream <<= myInStream;
+ xNameContainer2->insertByName(rtl::OUString::createFromAscii("\1Ole10Native"), anyStream);
+ printf("INSERT OK\n");
+
+ uno::Reference<embed::XTransactedObject> xTransact(xNameContainer2, uno::UNO_QUERY);
+ xTransact->commit();
+ }
+ objDataLevel--;
+ numOfOLEs++;
+ }
+#endif
+// printf("}");
+ }
+ void addSpaces(int /*count*/)
+ {
+// for(int i=0;i<count;i++)
+// printf(" ");
+
+ }
+ void addBinData(unsigned char /*data*/)
+ {
+// printf("%02Xh", data);
+ }
+ void addChar(char ch)
+ {
+// printf("%c", ch);
+ if (objDataLevel)
+ {
+ if (numOfOLEChars%2==0)
+ {
+ char c=sal::static_int_cast<char>(toupper(ch));
+ assert((c<='F' && c>='A') || (c<='9' && c>='0'));
+ if(c>='A') hb=(unsigned char)(c-'A'+10); else hb=(unsigned char)(c-'0');
+ }
+ else
+ {
+ unsigned char lb;
+ char c=sal::static_int_cast<char>(toupper(ch));
+ assert((c<='F' && c>='A') || (c<='9' && c>='0'));
+ if(c>='A') lb=(unsigned char)(c-'A'+10); else lb=(unsigned char)(c-'0');
+ unsigned char r=(hb<<4)|lb;
+ binBuffer.push_back(r);
+ }
+ numOfOLEChars++;
+ }
+ }
+ void addCharU(sal_Unicode /*ch*/)
+ {
+// printf("\\u%i ", ch);
+ }
+ void addHexChar(char* /*hexch*/)
+ {
+// printf("\'%s ", hexch);
+ }
+
+
+public:
+ MyRtfScannerHandler(uno::Reference<lang::XMultiServiceFactory> &xServiceFactory_, uno::Reference<com::sun::star::ucb::XSimpleFileAccess> &xFileAccess_, uno::Reference<embed::XStorage> &xStorage_) :
+ objDataLevel(0), numOfOLEs(0),
+ xServiceFactory(xServiceFactory_),
+ xFileAccess(xFileAccess_),
+ xStorage(xStorage_)
+ {
+ }
+
+ virtual ~MyRtfScannerHandler() {}
+
+ void dump()
+ {
+ printf("Destinations:\n");
+ for(ScannerTestServiceTokenMap::iterator i=destMap.begin();i!=destMap.end();i++)
+ {
+ printf(" %s\n", i->getStr());
+ }
+ printf("Ctrls:\n");
+ for(ScannerTestServiceTokenMap::iterator i=ctrlMap.begin();i!=ctrlMap.end();i++)
+ {
+ printf(" %s\n", i->getStr());
+ }
+ }
+};
+
+class RtfInputSourceImpl : public rtftok::RTFInputSource
+{
+private:
+ uno::Reference< io::XInputStream > xInputStream;
+ uno::Reference< io::XSeekable > xSeekable;
+ uno::Reference< task::XStatusIndicator > xStatusIndicator;
+ sal_Int64 bytesTotal;
+ sal_Int64 bytesRead;
+public:
+ RtfInputSourceImpl(uno::Reference< io::XInputStream > &xInputStream_, uno::Reference< task::XStatusIndicator > &xStatusIndicator_) :
+ xInputStream(xInputStream_),
+ xStatusIndicator(xStatusIndicator_),
+ bytesRead(0)
+ {
+ xSeekable=uno::Reference< io::XSeekable >(xInputStream, uno::UNO_QUERY);
+ if (xSeekable.is())
+ bytesTotal=xSeekable->getLength();
+ if (xStatusIndicator.is() && xSeekable.is())
+ {
+ xStatusIndicator->start(::rtl::OUString::createFromAscii("Converting"), 100);
+ }
+ }
+
+ virtual ~RtfInputSourceImpl() {}
+
+ int read(void *buf, int maxlen)
+ {
+ uno::Sequence< sal_Int8 > buffer;
+ int len=xInputStream->readSomeBytes(buffer,maxlen);
+ if (len>0)
+ {
+ sal_Int8 *_buffer=buffer.getArray();
+ memcpy(buf, _buffer, len);
+ bytesRead+=len;
+ if (xStatusIndicator.is())
+ {
+ if (xSeekable.is())
+ {
+ xStatusIndicator->setValue((int)(bytesRead*100/bytesTotal));
+ }
+ else
+ {
+ char buf1[100];
+ sprintf(buf1, "Converted %Li KB", bytesRead/1024);
+ xStatusIndicator->start(::rtl::OUString::createFromAscii(buf1), 0);
+ }
+ }
+ return len;
+ }
+ else
+ {
+ if (xStatusIndicator.is())
+ {
+ xStatusIndicator->end();
+ }
+ return 0;
+ }
+ }
+};
+
+ScannerTestService::ScannerTestService(const uno::Reference< uno::XComponentContext > &xContext_) :
+xContext( xContext_ )
+{
+}
+
+sal_Int32 SAL_CALL ScannerTestService::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+
+ printf("TEST\n");
+
+ uno::Sequence<uno::Any> aUcbInitSequence(2);
+ aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+ aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+ printf("A\n");
+ uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+ printf("B\n");
+ if (::ucb::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+ {
+ printf("C\n");
+ rtl::OUString arg=aArguments[0];
+
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+ xFactory->createInstanceWithContext(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")),
+ xContext), uno::UNO_QUERY_THROW );
+
+ rtl_uString *dir=NULL;
+ osl_getProcessWorkingDir(&dir);
+ rtl::OUString absFileUrl;
+ osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+ rtl_uString_release(dir);
+
+ uno::Reference <lang::XSingleServiceFactory> xStorageFactory(
+ xServiceFactory->createInstance (rtl::OUString::createFromAscii("com.sun.star.embed.StorageFactory")), uno::UNO_QUERY_THROW);
+
+ rtl::OUString outFileUrl;
+ {
+ rtl_uString *dir1=NULL;
+ osl_getProcessWorkingDir(&dir1);
+ osl_getAbsoluteFileURL(dir1, aArguments[1].pData, &outFileUrl.pData);
+ rtl_uString_release(dir1);
+ }
+
+ uno::Sequence< uno::Any > aArgs( 2 );
+ aArgs[0] <<= outFileUrl;
+ aArgs[1] <<= embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE;
+ uno::Reference<embed::XStorage> xStorage(xStorageFactory->createInstanceWithArguments(aArgs), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropSet(xStorage, uno::UNO_QUERY_THROW);
+ xPropSet->setPropertyValue(rtl::OUString::createFromAscii("MediaType"), uno::makeAny(rtl::OUString::createFromAscii("application/vnd.oasis.opendocument.text")));
+ uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl);
+ uno::Reference< task::XStatusIndicator > xStatusIndicator;
+
+ TimeValue t1; osl_getSystemTime(&t1);
+
+ RtfInputSourceImpl rtfInputSource(xInputStream, xStatusIndicator);
+ MyRtfScannerHandler eventHandler(xServiceFactory, xFileAccess, xStorage);
+ writerfilter::rtftok::RTFScanner *rtfScanner=writerfilter::rtftok::RTFScanner::createRTFScanner(rtfInputSource, eventHandler);
+
+ rtfScanner->yylex();
+ delete rtfScanner;
+
+ TimeValue t2; osl_getSystemTime(&t2);
+ printf("time=%lis\n", t2.Seconds-t1.Seconds);
+
+// eventHandler.dump();
+ uno::Reference<embed::XTransactedObject> xTransact(xStorage, uno::UNO_QUERY);
+ xTransact->commit();
+
+
+ ::ucb::ContentBroker::deinitialize();
+ }
+ else
+ {
+ fprintf(stderr, "can't initialize UCB");
+ }
+ return 0;
+}
+
+::rtl::OUString ScannerTestService_getImplementationName ()
+{
+ return rtl::OUString::createFromAscii ( ScannerTestService::IMPLEMENTATION_NAME );
+}
+
+sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName )
+{
+ return ServiceName.equals( rtl::OUString::createFromAscii( ScannerTestService::SERVICE_NAME ) );
+}
+uno::Sequence< rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames( ) throw (uno::RuntimeException)
+{
+ uno::Sequence < rtl::OUString > aRet(1);
+ rtl::OUString* pArray = aRet.getArray();
+ pArray[0] = rtl::OUString::createFromAscii ( ScannerTestService::SERVICE_NAME );
+ return aRet;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL ScannerTestService_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception )
+{
+ return (cppu::OWeakObject*) new ScannerTestService( xContext );
+}
+
+} } /* end namespace writerfilter::rtftok */
diff --git a/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.hxx b/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.hxx
new file mode 100644
index 000000000000..72cba94f443b
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.hxx
@@ -0,0 +1,55 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+*/
+
+#ifndef INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX
+#define INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_LANG_XMAIN_HPP_
+#include <com/sun/star/lang/XMain.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_
+#include <com/sun/star/uno/XComponentContext.hpp>
+#endif
+
+namespace writerfilter { namespace rtftok {
+
+class ScannerTestService : public cppu::WeakImplHelper1 < ::com::sun::star::lang::XMain >
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xContext;
+
+public:
+ ScannerTestService(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext);
+
+ virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (::com::sun::star::uno::RuntimeException);
+
+public:
+ const static sal_Char SERVICE_NAME[40];
+ const static sal_Char IMPLEMENTATION_NAME[40];
+
+};
+
+::rtl::OUString ScannerTestService_getImplementationName ();
+sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName );
+::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ScannerTestService_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext) throw( ::com::sun::star::uno::Exception );
+
+} } /* end namespace writerfilter::rtftok */
+
+#define RTFTOK_SCANNERTESTSERVICE_COMPONENT_ENTRY \
+{\
+ writerfilter::rtftok::ScannerTestService_createInstance,\
+ writerfilter::rtftok::ScannerTestService_getImplementationName,\
+ writerfilter::rtftok::ScannerTestService_getSupportedServiceNames,\
+ ::cppu::createSingleComponentFactory,\
+ 0, 0\
+}
+
+
+#endif /* INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX */
diff --git a/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx b/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx
new file mode 100644
index 000000000000..4d5bc8dd6da0
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx
@@ -0,0 +1,308 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#include "XMLScanner.hxx"
+#include <stdio.h>
+#include <wchar.h>
+#include <rtftok/RTFScanner.hxx>
+#include <rtftok/RTFScannerHandler.hxx>
+#include <com/sun/star/io/XStream.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/io/XTruncate.hpp>
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <ucbhelper/contentbroker.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <osl/process.h>
+#include <rtl/string.hxx>
+#include <hash_set>
+#include <assert.h>
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/embed/XStorage.hpp>
+#include <com/sun/star/util/XCloseable.hpp>
+#include <comphelper/storagehelper.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <comphelper/seqstream.hxx>
+
+#include <ctype.h>
+#include <iostream>
+
+using namespace ::com::sun::star;
+using namespace ::std;
+
+namespace writerfilter { namespace rtftok {
+
+const sal_Char XMLScanner::SERVICE_NAME[40] = "debugservices.rtftok.XMLScanner";
+const sal_Char XMLScanner::IMPLEMENTATION_NAME[40] = "debugservices.rtftok.XMLScanner";
+
+class XmlRtfScannerHandler : public writerfilter::rtftok::RTFScannerHandler
+{
+ std::vector<unsigned char> binBuffer;
+ int objDataLevel;
+ int numOfOLEs;
+ unsigned char hb;
+ int numOfOLEChars;
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory;
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess;
+ string charBuffer;
+ string ucharBuffer;
+ vector<string> vCloseTags;
+
+ void xmlout(const string & str)
+ {
+ for (size_t n = 0; n < str.length(); ++n)
+ {
+ char c = str[n];
+
+ switch (c)
+ {
+ case '<': cout << "&lt;"; break;
+ case '>': cout << "&gt;"; break;
+ case '&': cout << "&amp;"; break;
+ default:
+ cout << c;
+
+ break;
+ }
+ }
+ }
+
+ void clearBuffers()
+ {
+ if (charBuffer.length() > 0)
+ {
+ cout << "<text>";
+ xmlout(charBuffer);
+ cout << "</text>" << endl;
+ }
+
+ charBuffer = "";
+
+ if (ucharBuffer.length() > 0)
+ {
+ cout << "<utext>";
+ xmlout(ucharBuffer);
+ cout << ucharBuffer << "</utext>" << endl;
+ }
+
+ ucharBuffer = "";
+ }
+
+ void dest(char* token, char* value)
+ {
+ clearBuffers();
+ cout << "<dest name=\"" << token << "\" value=\""<< value << "\">" << endl;
+ vCloseTags.push_back("</dest>");
+ }
+ void ctrl(char*token, char* value)
+ {
+ clearBuffers();
+ cout << "<" << token << ">" << value << "</" << token << ">"
+ << endl;
+ }
+ void lbrace(void)
+ {
+ clearBuffers();
+ cout << "<brace>" << endl;
+ vCloseTags.push_back("</brace>");
+ }
+ void rbrace(void)
+ {
+ clearBuffers();
+ cout << vCloseTags.back() << endl;
+ vCloseTags.pop_back();
+ }
+ void addSpaces(int count)
+ {
+ clearBuffers();
+ cout << "<spaces count=\"" << count << "\"/>" << endl;
+ }
+ void addBinData(unsigned char /*data*/)
+ {
+ clearBuffers();
+ cout << "<bindata/>" << endl;
+ }
+ void addChar(char ch)
+ {
+ charBuffer += ch;
+ }
+ void addCharU(sal_Unicode ch)
+ {
+ ucharBuffer += sal_Char(ch < 128 ? ch : '.');
+ }
+ void addHexChar(char* hexch)
+ {
+ clearBuffers();
+ cout << "<hexchar value=\"" << hexch << "\"/>" << endl;
+ }
+
+public:
+ XmlRtfScannerHandler(uno::Reference<lang::XMultiServiceFactory> &xServiceFactory_, uno::Reference<com::sun::star::ucb::XSimpleFileAccess> &xFileAccess_) :
+ objDataLevel(0), numOfOLEs(0),
+ xServiceFactory(xServiceFactory_),
+ xFileAccess(xFileAccess_)
+ {
+ }
+
+ virtual ~XmlRtfScannerHandler() {}
+
+ void dump()
+ {
+ }
+};
+
+class RtfInputSourceImpl : public rtftok::RTFInputSource
+{
+private:
+ uno::Reference< io::XInputStream > xInputStream;
+ uno::Reference< io::XSeekable > xSeekable;
+ uno::Reference< task::XStatusIndicator > xStatusIndicator;
+ sal_Int64 bytesTotal;
+ sal_Int64 bytesRead;
+public:
+ RtfInputSourceImpl(uno::Reference< io::XInputStream > &xInputStream_, uno::Reference< task::XStatusIndicator > &xStatusIndicator_) :
+ xInputStream(xInputStream_),
+ xStatusIndicator(xStatusIndicator_),
+ bytesRead(0)
+ {
+ xSeekable=uno::Reference< io::XSeekable >(xInputStream, uno::UNO_QUERY);
+ if (xSeekable.is())
+ bytesTotal=xSeekable->getLength();
+ if (xStatusIndicator.is() && xSeekable.is())
+ {
+ xStatusIndicator->start(::rtl::OUString::createFromAscii("Converting"), 100);
+ }
+ }
+
+ virtual ~RtfInputSourceImpl() {}
+
+ int read(void *buf, int maxlen)
+ {
+ uno::Sequence< sal_Int8 > buffer;
+ int len=xInputStream->readSomeBytes(buffer,maxlen);
+ if (len>0)
+ {
+ sal_Int8 *_buffer=buffer.getArray();
+ memcpy(buf, _buffer, len);
+ bytesRead+=len;
+ if (xStatusIndicator.is())
+ {
+ if (xSeekable.is())
+ {
+ xStatusIndicator->setValue((int)(bytesRead*100/bytesTotal));
+ }
+ else
+ {
+ char buf1[100];
+ sprintf(buf1, "Converted %Li KB", bytesRead/1024);
+ xStatusIndicator->start(::rtl::OUString::createFromAscii(buf1), 0);
+ }
+ }
+ return len;
+ }
+ else
+ {
+ if (xStatusIndicator.is())
+ {
+ xStatusIndicator->end();
+ }
+ return 0;
+ }
+ }
+};
+
+XMLScanner::XMLScanner(const uno::Reference< uno::XComponentContext > &xContext_) :
+xContext( xContext_ )
+{
+}
+
+sal_Int32 SAL_CALL XMLScanner::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+ uno::Sequence<uno::Any> aUcbInitSequence(2);
+ aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+ aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+ uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+ if (::ucb::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+ {
+ rtl::OUString arg=aArguments[0];
+
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+ xFactory->createInstanceWithContext(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")),
+ xContext), uno::UNO_QUERY_THROW );
+
+ rtl_uString *dir=NULL;
+ osl_getProcessWorkingDir(&dir);
+ rtl::OUString absFileUrl;
+ osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+ rtl_uString_release(dir);
+
+ uno::Reference <lang::XSingleServiceFactory> xStorageFactory(
+ xServiceFactory->createInstance (rtl::OUString::createFromAscii("com.sun.star.embed.StorageFactory")), uno::UNO_QUERY_THROW);
+
+#if 0
+ rtl::OUString outFileUrl;
+ {
+ rtl_uString *dir1=NULL;
+ osl_getProcessWorkingDir(&dir1);
+ osl_getAbsoluteFileURL(dir1, aArguments[1].pData, &outFileUrl.pData);
+ rtl_uString_release(dir1);
+ }
+
+ uno::Sequence< uno::Any > aArgs( 2 );
+ aArgs[0] <<= outFileUrl;
+ aArgs[1] <<= embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE;
+ uno::Reference<embed::XStorage> xStorage(xStorageFactory->createInstanceWithArguments(aArgs), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xPropSet(xStorage, uno::UNO_QUERY_THROW);
+ xPropSet->setPropertyValue(rtl::OUString::createFromAscii("MediaType"), uno::makeAny(rtl::OUString::createFromAscii("application/vnd.oasis.opendocument.text")));
+#endif
+ uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl);
+ uno::Reference< task::XStatusIndicator > xStatusIndicator;
+
+ RtfInputSourceImpl rtfInputSource(xInputStream, xStatusIndicator);
+ XmlRtfScannerHandler eventHandler(xServiceFactory, xFileAccess);
+ writerfilter::rtftok::RTFScanner *rtfScanner=writerfilter::rtftok::RTFScanner::createRTFScanner(rtfInputSource, eventHandler);
+
+ cout << "<out>" << endl;
+ rtfScanner->yylex();
+ cout << "</out>" << endl;
+ delete rtfScanner;
+
+ ::ucb::ContentBroker::deinitialize();
+ }
+ else
+ {
+ fprintf(stderr, "can't initialize UCB");
+ }
+ return 0;
+}
+
+::rtl::OUString XMLScanner_getImplementationName ()
+{
+ return rtl::OUString::createFromAscii ( XMLScanner::IMPLEMENTATION_NAME );
+}
+
+sal_Bool SAL_CALL XMLScanner_supportsService( const ::rtl::OUString& ServiceName )
+{
+ return ServiceName.equals( rtl::OUString::createFromAscii( XMLScanner::SERVICE_NAME ) );
+}
+uno::Sequence< rtl::OUString > SAL_CALL XMLScanner_getSupportedServiceNames( ) throw (uno::RuntimeException)
+{
+ uno::Sequence < rtl::OUString > aRet(1);
+ rtl::OUString* pArray = aRet.getArray();
+ pArray[0] = rtl::OUString::createFromAscii ( XMLScanner::SERVICE_NAME );
+ return aRet;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL XMLScanner_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception )
+{
+ return (cppu::OWeakObject*) new XMLScanner( xContext );
+}
+
+} } /* end namespace writerfilter::rtftok */
diff --git a/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.hxx b/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.hxx
new file mode 100644
index 000000000000..0eea5c8ebc55
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.hxx
@@ -0,0 +1,55 @@
+/**
+ Copyright 2005 Sun Microsystems, Inc.
+*/
+
+#ifndef INCLUDED_RTFTOK_XMLSCANNER_HXX
+#define INCLUDED_RTFTOK_XMLSCANNER_HXX
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_LANG_XMAIN_HPP_
+#include <com/sun/star/lang/XMain.hpp>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_
+#include <com/sun/star/uno/XComponentContext.hpp>
+#endif
+
+namespace writerfilter { namespace rtftok {
+
+class XMLScanner : public cppu::WeakImplHelper1 < ::com::sun::star::lang::XMain >
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xContext;
+
+public:
+ XMLScanner(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext);
+
+ virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (::com::sun::star::uno::RuntimeException);
+
+public:
+ const static sal_Char SERVICE_NAME[40];
+ const static sal_Char IMPLEMENTATION_NAME[40];
+
+};
+
+::rtl::OUString XMLScanner_getImplementationName ();
+sal_Bool SAL_CALL XMLScanner_supportsService( const ::rtl::OUString& ServiceName );
+::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL XMLScanner_getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL XMLScanner_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext) throw( ::com::sun::star::uno::Exception );
+
+} } /* end namespace writerfilter::rtftok */
+
+#define RTFTOK_XMLSCANNER_COMPONENT_ENTRY \
+{\
+ writerfilter::rtftok::XMLScanner_createInstance,\
+ writerfilter::rtftok::XMLScanner_getImplementationName,\
+ writerfilter::rtftok::XMLScanner_getSupportedServiceNames,\
+ ::cppu::createSingleComponentFactory,\
+ 0, 0\
+}
+
+
+#endif /* INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX */
diff --git a/writerfilter/unocomponent/debugservices/rtftok/makefile.mk b/writerfilter/unocomponent/debugservices/rtftok/makefile.mk
new file mode 100644
index 000000000000..a1e3637bbd56
--- /dev/null
+++ b/writerfilter/unocomponent/debugservices/rtftok/makefile.mk
@@ -0,0 +1,22 @@
+#
+# Copyright 2005 Sun Microsystems, Inc.
+#
+PRJ=..$/..$/..
+PRJNAME=writerfilter
+TARGET=debugservices_rtftok
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES=\
+ $(SLO)$/ScannerTestService.obj \
+ $(SLO)$/XMLScanner.obj
+#$(SLO)$/TestService.obj $(SLO)$/ResolverTestService.obj $(SLO)$/XmlParserTestService.obj $(SLO)$/RngService.obj
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/writerfilter/unocomponent/exports.dxp b/writerfilter/unocomponent/exports.dxp
new file mode 100644
index 000000000000..028ac4175990
--- /dev/null
+++ b/writerfilter/unocomponent/exports.dxp
@@ -0,0 +1,3 @@
+component_getImplementationEnvironment
+component_writeInfo
+component_getFactory
diff --git a/writerfilter/unocomponent/makefile.mk b/writerfilter/unocomponent/makefile.mk
new file mode 100644
index 000000000000..0999d514b87a
--- /dev/null
+++ b/writerfilter/unocomponent/makefile.mk
@@ -0,0 +1,60 @@
+#
+# Copyright 2005 Sun Microsystems, Inc.
+#
+PRJ=..
+PRJNAME=writerfilter
+TARGET=writerfilter.uno
+LIBTARGET=NO
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION
+
+# --- Files --------------------------------------------------------
+
+SLOFILES=$(SLO)$/component.obj
+
+SHL1TARGET=$(TARGET)
+
+.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
+ODIAPILIB=-lodiapi
+RTFTOKLIB=-lrtftok
+DOCTOKLIB=-ldoctok
+.ELIF "$(GUI)"=="WNT"
+ODIAPILIB=$(LB)$/iodiapi.lib
+RTFTOKLIB=$(LB)$/irtftok.lib
+DOCTOKLIB=$(LB)$/idoctok.lib
+.ENDIF
+
+SHL1STDLIBS=$(SALLIB)\
+ $(CPPULIB)\
+ $(COMPHELPERLIB)\
+ $(CPPUHELPERLIB)\
+ $(UCBHELPERLIB)\
+ $(ODIAPILIB) \
+ $(RTFTOKLIB) \
+ $(DOCTOKLIB)
+
+SHL1LIBS=\
+ $(SLB)$/debugservices_xxml.lib \
+ $(SLB)$/debugservices_rtftok.lib \
+ $(SLB)$/debugservices_odsl.lib \
+ $(SLB)$/debugservices_rtfsl.lib \
+ $(SLB)$/debugservices_doctok.lib
+
+SHL1IMPLIB=i$(SHL1TARGET)
+
+SHL1OBJS = $(SLO)$/component.obj
+
+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+
+DEF1NAME=$(SHL1TARGET)
+DEF1EXPORTFILE=exports.dxp
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/writerfilter/util/exports.map b/writerfilter/util/exports.map
new file mode 100644
index 000000000000..be4802aef7ab
--- /dev/null
+++ b/writerfilter/util/exports.map
@@ -0,0 +1,9 @@
+WFT_1_0 {
+ global:
+ component_getImplementationEnvironment;
+ component_writeInfo;
+ component_getFactory;
+ local:
+ *;
+};
+
diff --git a/writerfilter/util/makefile.mk b/writerfilter/util/makefile.mk
new file mode 100644
index 000000000000..839375f6b779
--- /dev/null
+++ b/writerfilter/util/makefile.mk
@@ -0,0 +1,72 @@
+#
+# Copyright 2005 Sun Microsystems, Inc.
+#
+
+PRJ=..
+PRJNAME=writerfilter
+TARGET=odiapi
+TARGET2=writerfilter
+#LIBTARGET=NO
+ENABLE_EXCEPTIONS=TRUE
+#USE_DEFFILE=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION
+
+# --- Files --------------------------------------------------------
+
+#SLOFILES=$(SLO)$/PropertiesImpl.obj
+
+LIB1TARGET=$(SLB)$/godiapi.lib
+LIB1FILES= \
+ $(SLB)$/xxml.lib \
+ $(SLB)$/sl.lib \
+ $(SLB)$/props.lib \
+ $(SLB)$/qname.lib#\
+# $(SLB)$/core.lib
+
+
+SHL1TARGET=$(TARGET)
+SHL1LIBS=$(SLB)$/godiapi.lib
+SHL1STDLIBS=$(SALLIB) ${LIBXML2LIB} $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(UCBHELPERLIB)
+SHL1IMPLIB=i$(SHL1TARGET)
+SHL1USE_EXPORTS=ordinal
+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+DEF1NAME=$(SHL1TARGET)
+DEFLIB1NAME=godiapi
+
+LIB2TARGET=$(SLB)$/$(TARGET2).lib
+LIB2FILES= \
+ $(SLB)$/doctok.lib \
+ $(SLB)$/dmapper.lib \
+ $(SLB)$/filter.lib
+
+SHL2LIBS=$(SLB)$/$(TARGET2).lib
+
+
+SHL2TARGET=$(TARGET2)$(UPD)$(DLLPOSTFIX)
+SHL2STDLIBS=\
+ $(I18NISOLANGLIB) \
+ $(CPPUHELPERLIB) \
+ $(COMPHELPERLIB) \
+ $(CPPULIB) \
+ $(SALLIB)
+
+
+SHL2DEPN=
+SHL2IMPLIB= i$(SHL2TARGET)
+#SHL2LIBS= $(SLB)$/$(TARGET2).lib
+SHL2DEF= $(MISC)$/$(SHL2TARGET).def
+SHL2VERSIONMAP=exports.map
+
+DEF2NAME=$(SHL2TARGET)
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+