<?xml version="1.0"?>
<!--
    ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements. See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    ====================================================================
-->
<record fromfile="true" name="FibRgW97" package="org.apache.poi.hwpf.model.types">
    <suffix>AbstractType</suffix>
    <description>The FibRgW97 structure is a variable-length portion of the Fib. &lt;p&gt;Class and
        fields descriptions are quoted from Microsoft Office Word 97-2007 Binary File Format and
        [MS-DOC] - v20110608 Word (.doc) Binary File Format
    </description>
    <author>Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary File Format
        Specification [*.doc] and [MS-DOC] - v20110608 Word (.doc) Binary File Format
    </author>
    <fields>
        <field type="short" size="2" name="wMagicCreated" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="wMagicRevised" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="wMagicCreatedPrivate" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="wMagicRevisedPrivate" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="pnFbpChpFirst_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="pnChpFirst_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="cpnBteChp_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="pnFbpPapFirst_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="pnPapFirst_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="cpnBtePap_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="pnFbpLvcFirst_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="pnLvcFirst_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="cpnBteLvc_W6" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="short" size="2" name="lidFE" description="A LID whose meaning depends on the nFib value"/>
    </fields>
</record>
