/* This code was generated by msoscheme (https://invent.kde.org/libraries/binschema/) */
/* version 238de9c7d8d4d94a0769b032115cd1bd164442f4 */
#include "simpleParser.h"
using namespace MSO;
#include "leinputstream.h"
void MSO::parseRecordHeader(LEInputStream &in, RecordHeader &_s)
{
    _s.streamOffset = in.getPosition();
    _s.recVer = in.readuint4();
    _s.recInstance = in.readuint12();
    _s.recType = in.readuint16();
    _s.recLen = in.readuint32();
}
void MSO::parseCurrentUserAtom(LEInputStream &in, CurrentUserAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FF6)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FF6");
    }
    _s.size = in.readuint32();
    if (!(((quint32)_s.size) == 0x14)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.size) == 0x14");
    }
    _s.headerToken = in.readuint32();
    if (!(((quint32)_s.headerToken) == 0xE391C05F || ((quint32)_s.headerToken) == 0xF3D1C4DF)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.headerToken) == 0xE391C05F || ((quint32)_s.headerToken) == 0xF3D1C4DF");
    }
    _s.offsetToCurrentEdit = in.readuint32();
    _s.lenUserName = in.readuint16();
    if (!(((quint16)_s.lenUserName) <= 255)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.lenUserName)<=255");
    }
    _s.docFileVersion = in.readuint16();
    if (!(((quint16)_s.docFileVersion) == 0x03F4)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.docFileVersion) == 0x03F4");
    }
    _s.majorVersion = in.readuint8();
    if (!(((quint8)_s.majorVersion) == 0x03)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.majorVersion) == 0x03");
    }
    _s.minorVersion = in.readuint8();
    if (!(((quint8)_s.minorVersion) == 0x00)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.minorVersion) == 0x00");
    }
    _s.unused = in.readuint16();
    _c = _s.lenUserName;
    _s.ansiUserName.resize(_c);
    in.readBytes(_s.ansiUserName);
    _s.relVersion = in.readuint32();
    if (!(((quint32)_s.relVersion) == 0x8 || ((quint32)_s.relVersion) == 0x9)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.relVersion) == 0x8 || ((quint32)_s.relVersion) == 0x9");
    }
    _s._has_unicodeUserName = _s.rh.recLen > 3 * _s.lenUserName + 0x18;
    if (_s._has_unicodeUserName) {
        _c = _s.lenUserName;
        _s.unicodeUserName.resize(_c);
        for (int _i = 0; _i < _c; ++_i) {
            _s.unicodeUserName[_i] = in.readuint16();
        }
    }
    _s._has_unknown = _s.rh.recLen - 0x18 - 3 * _s.lenUserName > 0;
    if (_s._has_unknown) {
        _c = _s.rh.recLen - 0x18 - 3 * _s.lenUserName;
        _s.unknown.resize(_c);
        in.readBytes(_s.unknown);
    }
}
void MSO::parseTODOS(LEInputStream &in, TODOS &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.anon.append(Byte(&_s));
            parseByte(in, _s.anon.last());
        } catch (IncorrectValueException &_e) {
            _s.anon.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.anon.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseByte(LEInputStream &in, Byte &_s)
{
    _s.streamOffset = in.getPosition();
    _s.b = in.readuint8();
}
void MSO::parseZeroByte(LEInputStream &in, ZeroByte &_s)
{
    _s.streamOffset = in.getPosition();
    _s.b = in.readuint8();
    if (!(((quint8)_s.b) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.b) == 0");
    }
}
void MSO::parseCurrentUserStream(LEInputStream &in, CurrentUserStream &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseCurrentUserAtom(in, _s.anon1);
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.trailing.append(Byte(&_s));
            parseByte(in, _s.trailing.last());
        } catch (IncorrectValueException &_e) {
            _s.trailing.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.trailing.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseOfficeArtBStoreDelay(LEInputStream &in, OfficeArtBStoreDelay &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgfb.append(OfficeArtBStoreContainerFileBlock(&_s));
            parseOfficeArtBStoreContainerFileBlock(in, _s.rgfb.last());
        } catch (IncorrectValueException &_e) {
            _s.rgfb.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgfb.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseOfficeArtRecordHeader(LEInputStream &in, OfficeArtRecordHeader &_s)
{
    _s.streamOffset = in.getPosition();
    _s.recVer = in.readuint4();
    _s.recInstance = in.readuint12();
    _s.recType = in.readuint16();
    _s.recLen = in.readuint32();
}
void MSO::parseOfficeArtBlipJPEG(LEInputStream &in, OfficeArtBlipJPEG &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0x46A || _s.rh.recInstance == 0x46B || _s.rh.recInstance == 0x6E2 || _s.rh.recInstance == 0x6E3)) {
        throw IncorrectValueException(in.getPosition(),
                                      "_s.rh.recInstance == 0x46A || _s.rh.recInstance == 0x46B || _s.rh.recInstance == 0x6E2 || _s.rh.recInstance == 0x6E3");
    }
    if (!(_s.rh.recType == 0xF01D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF01D");
    }
    _c = 16;
    _s.rgbUid1.resize(_c);
    in.readBytes(_s.rgbUid1);
    _s._has_rgbUid2 = _s.rh.recInstance == 0x46B || _s.rh.recInstance == 0x6E3;
    if (_s._has_rgbUid2) {
        _c = 16;
        _s.rgbUid2.resize(_c);
        in.readBytes(_s.rgbUid2);
    }
    _s.tag = in.readuint8();
    _c = _s.rh.recLen - ((_s.rh.recInstance == 0x46A || _s.rh.recInstance == 0x6E2) ? 17 : 33);
    _s.BLIPFileData.resize(_c);
    in.readBytes(_s.BLIPFileData);
}
void MSO::parseOfficeArtBlipPNG(LEInputStream &in, OfficeArtBlipPNG &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0x6E0 || _s.rh.recInstance == 0x6E1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x6E0 || _s.rh.recInstance == 0x6E1");
    }
    if (!(_s.rh.recType == 0xF01E)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF01E");
    }
    _c = 16;
    _s.rgbUid1.resize(_c);
    in.readBytes(_s.rgbUid1);
    _s._has_rgbUid2 = _s.rh.recInstance == 0x6E1;
    if (_s._has_rgbUid2) {
        _c = 16;
        _s.rgbUid2.resize(_c);
        in.readBytes(_s.rgbUid2);
    }
    _s.tag = in.readuint8();
    _c = _s.rh.recLen - ((_s.rh.recInstance == 0x6E0) ? 17 : 33);
    _s.BLIPFileData.resize(_c);
    in.readBytes(_s.BLIPFileData);
}
void MSO::parseOfficeArtBlipDIB(LEInputStream &in, OfficeArtBlipDIB &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0x7A8 || _s.rh.recInstance == 0x7A9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x7A8 || _s.rh.recInstance == 0x7A9");
    }
    if (!(_s.rh.recType == 0xF01F)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF01F");
    }
    _c = 16;
    _s.rgbUid1.resize(_c);
    in.readBytes(_s.rgbUid1);
    _s._has_rgbUid2 = _s.rh.recInstance == 0x7A9;
    if (_s._has_rgbUid2) {
        _c = 16;
        _s.rgbUid2.resize(_c);
        in.readBytes(_s.rgbUid2);
    }
    _s.tag = in.readuint8();
    _c = _s.rh.recLen - ((_s.rh.recInstance == 0x7A8) ? 17 : 33);
    _s.BLIPFileData.resize(_c);
    in.readBytes(_s.BLIPFileData);
}
void MSO::parseOfficeArtBlipTIFF(LEInputStream &in, OfficeArtBlipTIFF &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0x6E4 || _s.rh.recInstance == 0x6E5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x6E4 || _s.rh.recInstance == 0x6E5");
    }
    if (!(_s.rh.recType == 0xF020)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF020");
    }
    _c = 16;
    _s.rgbUid1.resize(_c);
    in.readBytes(_s.rgbUid1);
    _s._has_rgbUid2 = _s.rh.recInstance == 0x6E5;
    if (_s._has_rgbUid2) {
        _c = 16;
        _s.rgbUid2.resize(_c);
        in.readBytes(_s.rgbUid2);
    }
    _s.tag = in.readuint8();
    _c = _s.rh.recLen - ((_s.rh.recInstance == 0x6E4) ? 17 : 33);
    _s.BLIPFileData.resize(_c);
    in.readBytes(_s.BLIPFileData);
}
void MSO::parseRECT(LEInputStream &in, RECT &_s)
{
    _s.streamOffset = in.getPosition();
    _s.left = in.readint32();
    _s.top = in.readint32();
    _s.right = in.readint32();
    _s.bottom = in.readint32();
}
void MSO::parsePOINT(LEInputStream &in, POINT &_s)
{
    _s.streamOffset = in.getPosition();
    _s.x = in.readint32();
    _s.y = in.readint32();
}
void MSO::parsePowerPointStructs(LEInputStream &in, PowerPointStructs &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.anon.append(PowerPointStruct(&_s));
            parsePowerPointStruct(in, _s.anon.last());
        } catch (IncorrectValueException &_e) {
            _s.anon.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.anon.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseSoundCollectionAtom(LEInputStream &in, SoundCollectionAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x7e5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x7e5");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.soundIdSeed = in.readuint32();
}
void MSO::parseHeadersFootersAtom(LEInputStream &in, HeadersFootersAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFDA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFDA");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.formatId = in.readint16();
    if (!(((qint16)_s.formatId) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint16)_s.formatId)>=0");
    }
    if (!(((qint16)_s.formatId) <= 13)) {
        throw IncorrectValueException(in.getPosition(), "((qint16)_s.formatId)<=13");
    }
    _s.fHasDate = in.readbit();
    _s.fHasTodayDate = in.readbit();
    _s.fHasUserDate = in.readbit();
    _s.fHasSlideNumber = in.readbit();
    _s.fHasHeader = in.readbit();
    _s.fHasFooter = in.readbit();
    _s.reserved1 = in.readuint2();
    _s.reserved2 = in.readuint8();
}
void MSO::parseUserDateAtom(LEInputStream &in, UserDateAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    if (!(_s.rh.recLen <= 510)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen<=510");
    }
    _c = _s.rh.recLen / 2;
    _s.userDate.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.userDate[_i] = in.readuint16();
    }
}
void MSO::parseHeaderAtom(LEInputStream &in, HeaderAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.header.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.header[_i] = in.readuint16();
    }
}
void MSO::parseFooterAtom(LEInputStream &in, FooterAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 2");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.footer.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.footer[_i] = in.readuint16();
    }
}
void MSO::parsePerSlideHeadersFootersContainer(LEInputStream &in, PerSlideHeadersFootersContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFD9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFD9");
    }
    parseHeadersFootersAtom(in, _s.hfAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0)
            && (_optionCheck.recLen <= 510);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.userDateAtom = QSharedPointer<UserDateAtom>(new UserDateAtom(&_s));
            parseUserDateAtom(in, *_s.userDateAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.userDateAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.userDateAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 1) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.headerAtom = QSharedPointer<HeaderAtom>(new HeaderAtom(&_s));
            parseHeaderAtom(in, *_s.headerAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.headerAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.headerAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 2) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.footerAtom = QSharedPointer<FooterAtom>(new FooterAtom(&_s));
            parseFooterAtom(in, *_s.footerAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.footerAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.footerAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0)
            && (_optionCheck.recLen <= 510);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.userDateAtom2 = QSharedPointer<UserDateAtom>(new UserDateAtom(&_s));
            parseUserDateAtom(in, *_s.userDateAtom2.data());
        } catch (IncorrectValueException &_e) {
            _s.userDateAtom2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.userDateAtom2.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseEndDocumentAtom(LEInputStream &in, EndDocumentAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x3EA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3EA");
    }
    if (!(_s.rh.recLen == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0");
    }
}
void MSO::parseDocInfoListContainer(LEInputStream &in, DocInfoListContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x7D0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x7D0");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgChildRec.append(DocInfoListSubContainerOrAtom(&_s));
            parseDocInfoListSubContainerOrAtom(in, _s.rgChildRec.last());
        } catch (IncorrectValueException &_e) {
            _s.rgChildRec.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgChildRec.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseSlideViewInfoAtom(LEInputStream &in, SlideViewInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x3FE)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3FE");
    }
    if (!(_s.rh.recLen == 3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 3");
    }
    _s.unused1 = in.readuint8();
    _s.fSnapToGrid = in.readuint8();
    _s.fSnapToShape = in.readuint8();
}
void MSO::parseGuideAtom(LEInputStream &in, GuideAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 7)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 7");
    }
    if (!(_s.rh.recType == 0x3FB)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3FB");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.type = in.readuint32();
    if (!(((quint32)_s.type) == 0 || ((quint32)_s.type) == 1)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.type) == 0 || ((quint32)_s.type) == 1");
    }
    _s.pos = in.readint32();
    if (!(((qint32)_s.pos) >= -15840)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.pos)>=-15840");
    }
    if (!(((qint32)_s.pos) <= 32255)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.pos)<=32255");
    }
}
void MSO::parseDocProgTagsContainer(LEInputStream &in, DocProgTagsContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0 || _s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x1388)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1388");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgChildRec.append(DocProgTagsSubContainerOrAtom(&_s));
        parseDocProgTagsSubContainerOrAtom(in, _s.rgChildRec.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseTextAutoNumberScheme(LEInputStream &in, TextAutoNumberScheme &_s)
{
    _s.streamOffset = in.getPosition();
    _s.scheme = in.readuint16();
    if (!(((quint16)_s.scheme) <= 40)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.scheme)<=40");
    }
    _s.startNum = in.readuint16();
    if (!(((quint16)_s.startNum) >= 1)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.startNum)>=1");
    }
}
void MSO::parseBlipCollection9Container(LEInputStream &in, BlipCollection9Container &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x07F8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x07F8");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgBlipEntityAtom.append(BlipEntityAtom(&_s));
        parseBlipEntityAtom(in, _s.rgBlipEntityAtom.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseKinsoku9Atom(LEInputStream &in, Kinsoku9Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x3");
    }
    if (!(_s.rh.recType == 0x0FD2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FD2");
    }
    if (!(_s.rh.recLen == 0x0004)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x0004");
    }
    _s.korLevel = in.readuint2();
    if (!(((quint8)_s.korLevel) == 0x0 || ((quint8)_s.korLevel) == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.korLevel) == 0x0 || ((quint8)_s.korLevel) == 0x2");
    }
    _s.scLevel = in.readuint2();
    if (!(((quint8)_s.scLevel) == 0x0 || ((quint8)_s.scLevel) == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.scLevel) == 0x0 || ((quint8)_s.scLevel) == 0x2");
    }
    _s.tcLevel = in.readuint2();
    if (!(((quint8)_s.tcLevel) == 0x0 || ((quint8)_s.tcLevel) == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.tcLevel) == 0x0 || ((quint8)_s.tcLevel) == 0x2");
    }
    _s.jpnLevel = in.readuint2();
    if (!(((quint8)_s.jpnLevel) == 0x0 || ((quint8)_s.jpnLevel) == 0x1 || ((quint8)_s.jpnLevel) == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.jpnLevel) == 0x0 || ((quint8)_s.jpnLevel) == 0x1 || ((quint8)_s.jpnLevel) == 0x2");
    }
    _s.reserveda = in.readuint4();
    if (!(((quint8)_s.reserveda) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserveda) == 0");
    }
    _s.reservedb = in.readuint20();
    if (!(((quint32)_s.reservedb) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reservedb) == 0");
    }
}
void MSO::parseExHyperlink9Container(LEInputStream &in, ExHyperlink9Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFE4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFE4");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parsePresAdvisorFlags9Atom(LEInputStream &in, PresAdvisorFlags9Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x177A)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x177A");
    }
    if (!(_s.rh.recLen == 0x4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x4");
    }
    _s.fDisableCaseStyleTitleRule = in.readbit();
    _s.fDisableCaseStyleBodyRule = in.readbit();
    _s.fDisableEndPunctuationTitleRule = in.readbit();
    _s.fDisableEndPunctuationBodyRule = in.readbit();
    _s.fDisableTooManyBulletsRule = in.readbit();
    _s.fDisableFontSizeTitleRule = in.readbit();
    _s.fDisableFontSizeBodyRule = in.readbit();
    _s.fDisableNumberOfLinesTitleRule = in.readbit();
    _s.fDisableNumberOfLinesBodyRule = in.readbit();
    _s.fDisableTooManyFontsRule = in.readbit();
    _s.fDisablePrintTip = in.readbit();
    _s.reserveda = in.readuint5();
    if (!(((quint8)_s.reserveda) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserveda) == 0");
    }
    _s.reservedb = in.readuint16();
    if (!(((quint16)_s.reservedb) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.reservedb) == 0");
    }
}
void MSO::parseEnvelopeData9Atom(LEInputStream &in, EnvelopeData9Atom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1785)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1785");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseEnvelopeFlags9Atom(LEInputStream &in, EnvelopeFlags9Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1784)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1784");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.fHasEnvelope = in.readbit();
    _s.fEnvelopeVisible = in.readbit();
    _s.reserved1 = in.readuint2();
    if (!(((quint8)_s.reserved1) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved1) == 0");
    }
    _s.fEnvelopeDirty = in.readbit();
    _s.reserved2a = in.readuint3();
    if (!(((quint8)_s.reserved2a) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved2a) == 0");
    }
    _s.reserved2b = in.readuint8();
    if (!(((quint8)_s.reserved2b) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved2b) == 0");
    }
    _s.reserved2c = in.readuint16();
    if (!(((quint16)_s.reserved2c) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.reserved2c) == 0");
    }
}
void MSO::parseHTMLDocInfo9Atom(LEInputStream &in, HTMLDocInfo9Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x177B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x177B");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _s.unused1 = in.readuint32();
    _s.encoding = in.readuint32();
    _s.frameColorType = in.readuint16();
    if (!(((quint16)_s.frameColorType) == 0 || ((quint16)_s.frameColorType) == 1 || ((quint16)_s.frameColorType) == 2 || ((quint16)_s.frameColorType) == 3
          || ((quint16)_s.frameColorType) == 4 || ((quint16)_s.frameColorType) == 5)) {
        throw IncorrectValueException(in.getPosition(),
                                      "((quint16)_s.frameColorType) == 0 || ((quint16)_s.frameColorType) == 1 || ((quint16)_s.frameColorType) == 2 || "
                                      "((quint16)_s.frameColorType) == 3 || ((quint16)_s.frameColorType) == 4 || ((quint16)_s.frameColorType) == 5");
    }
    _s.screenSize = in.readuint8();
    _s.unused2 = in.readuint8();
    _s.outputType = in.readuint8();
    _s.fShowFrame = in.readbit();
    _s.fResizeGraphics = in.readbit();
    _s.fOrganizeInFolder = in.readbit();
    _s.fUseLongFileNames = in.readbit();
    _s.fRelyOnVML = in.readbit();
    _s.fAllowPNG = in.readbit();
    _s.fShowSlideAnimation = in.readbit();
    _s.reserved1 = in.readbit();
    if (!(((bool)_s.reserved1) == false)) {
        throw IncorrectValueException(in.getPosition(), "((bool)_s.reserved1) == false");
    }
    _s.unused3 = in.readuint16();
}
void MSO::parseHTMLPublishInfo9Container(LEInputStream &in, HTMLPublishInfo9Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x177D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x177D");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseBroadcastDocInfo9Container(LEInputStream &in, BroadcastDocInfo9Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x177E)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x177E");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseOutlineTextProps9Container(LEInputStream &in, OutlineTextProps9Container &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FAE)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FAE");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgOutlineTextProps9Entry.append(OutlineTextProps9Entry(&_s));
            parseOutlineTextProps9Entry(in, _s.rgOutlineTextProps9Entry.last());
        } catch (IncorrectValueException &_e) {
            _s.rgOutlineTextProps9Entry.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgOutlineTextProps9Entry.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseOutlineTextPropsHeaderExAtom(LEInputStream &in, OutlineTextPropsHeaderExAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance <= 5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance<=5");
    }
    if (!(_s.rh.recType == 0xFAF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFAF");
    }
    _s.slideIdRef = in.readuint32();
    _s.txType = in.readuint32();
}
void MSO::parseStyleTextProp9Atom(LEInputStream &in, StyleTextProp9Atom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFAC)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFAC");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgStyleTextProp9.append(StyleTextProp9(&_s));
        parseStyleTextProp9(in, _s.rgStyleTextProp9.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseFontCollection10Container(LEInputStream &in, FontCollection10Container &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x07D6)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x07D6");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgFontCollectionEntry.append(FontCollectionEntry(&_s));
        parseFontCollectionEntry(in, _s.rgFontCollectionEntry.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseGridSpacing10Atom(LEInputStream &in, GridSpacing10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x040D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x040D");
    }
    if (!(_s.rh.recLen == 0x08)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x08");
    }
    _s.x = in.readuint32();
    if (!(((quint32)_s.x) >= 23224)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.x)>=23224");
    }
    if (!(((quint32)_s.x) <= 1179648)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.x)<=1179648");
    }
    _s.y = in.readuint32();
    if (!(((quint32)_s.y) >= 23224)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.y)>=23224");
    }
    if (!(((quint32)_s.y) <= 1179648)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.y)<=1179648");
    }
}
void MSO::parseAuthorNameAtom(LEInputStream &in, AuthorNameAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen <= 104)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen<=104");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen;
    _s.authorName.resize(_c);
    in.readBytes(_s.authorName);
}
void MSO::parseCommentIndex10Atom(LEInputStream &in, CommentIndex10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x2EE5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EE5");
    }
    if (!(_s.rh.recLen == 0x08)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x08");
    }
    _s.colorIndex = in.readint32();
    if (!(((qint32)_s.colorIndex) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.colorIndex)>=0");
    }
    _s.commentIndexSeed = in.readint32();
    if (!(((qint32)_s.commentIndexSeed) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.commentIndexSeed)>=0");
    }
}
void MSO::parseFontEmbedFlags10Atom(LEInputStream &in, FontEmbedFlags10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x32C8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x32C8");
    }
    if (!(_s.rh.recLen == 0x04)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x04");
    }
    _s.fSubset = in.readbit();
    _s.fSubsetOptionConfirmed = in.readbit();
    _s.unuseda = in.readuint14();
    _s.unusedb = in.readuint16();
}
void MSO::parseCopyrightAtom(LEInputStream &in, CopyrightAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x1");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen <= 510)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen<=510");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen;
    _s.copyright.resize(_c);
    in.readBytes(_s.copyright);
}
void MSO::parseKeywordsAtom(LEInputStream &in, KeywordsAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x2");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen <= 510)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen<=510");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen;
    _s.keywords.resize(_c);
    in.readBytes(_s.keywords);
}
void MSO::parseFilterPrivacyFlags10Atom(LEInputStream &in, FilterPrivacyFlags10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x36B0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x36B0");
    }
    if (!(_s.rh.recLen == 0x04)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x04");
    }
    _s.fRemovePII = in.readbit();
    _s.reserved2a = in.readuint7();
    if (!(((quint8)_s.reserved2a) == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved2a) == 0x0");
    }
    _s.reserved2b = in.readuint8();
    if (!(((quint8)_s.reserved2b) == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved2b) == 0x0");
    }
    _s.reserved2c = in.readuint16();
    if (!(((quint16)_s.reserved2c) == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.reserved2c) == 0x0");
    }
}
void MSO::parseOutlineTextProps10Container(LEInputStream &in, OutlineTextProps10Container &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FB3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FB3");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgOutlineTextProps10Entry.append(OutlineTextProps10Entry(&_s));
            parseOutlineTextProps10Entry(in, _s.rgOutlineTextProps10Entry.last());
        } catch (IncorrectValueException &_e) {
            _s.rgOutlineTextProps10Entry.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgOutlineTextProps10Entry.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseStyleTextProp10Atom(LEInputStream &in, StyleTextProp10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0xFB1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFB1");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgStyleTextProp10.append(TextCFException10(&_s));
            parseTextCFException10(in, _s.rgStyleTextProp10.last());
        } catch (IncorrectValueException &_e) {
            _s.rgStyleTextProp10.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgStyleTextProp10.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseDocToolbarStates10Atom(LEInputStream &in, DocToolbarStates10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x36B1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x36B1");
    }
    if (!(_s.rh.recLen == 0x01)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x01");
    }
    _s.fShowReviewingToolbar = in.readbit();
    _s.fShowReviewingGallery = in.readbit();
    _s.reserved = in.readuint6();
    if (!(((quint8)_s.reserved) == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved) == 0x0");
    }
}
void MSO::parseSlideListTable10Container(LEInputStream &in, SlideListTable10Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2EF1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EF1");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseDiffTree10Container(LEInputStream &in, DiffTree10Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2EEC)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EEC");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseModifyPasswordAtom(LEInputStream &in, ModifyPasswordAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x03)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x03");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen <= 510)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen<=510");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen;
    _s.modifyPassword.resize(_c);
    in.readBytes(_s.modifyPassword);
}
void MSO::parsePhotoAlbumInfo10Atom(LEInputStream &in, PhotoAlbumInfo10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x036B2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x036B2");
    }
    if (!(_s.rh.recLen == 0x06)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x06");
    }
    _s.fUseBlackWhite = in.readuint8();
    _s.fHasCaption = in.readuint8();
    _s.layout = in.readuint8();
    if (!(((quint8)_s.layout) == 0 || ((quint8)_s.layout) == 1 || ((quint8)_s.layout) == 2 || ((quint8)_s.layout) == 3 || ((quint8)_s.layout) == 4
          || ((quint8)_s.layout) == 5 || ((quint8)_s.layout) == 6)) {
        throw IncorrectValueException(in.getPosition(),
                                      "((quint8)_s.layout) == 0 || ((quint8)_s.layout) == 1 || ((quint8)_s.layout) == 2 || ((quint8)_s.layout) == 3 || "
                                      "((quint8)_s.layout) == 4 || ((quint8)_s.layout) == 5 || ((quint8)_s.layout) == 6");
    }
    _s.unused = in.readuint8();
    _s.frameShape = in.readuint16();
    if (!(((quint16)_s.frameShape) == 0x0000 || ((quint16)_s.frameShape) == 0x0001 || ((quint16)_s.frameShape) == 0x0002 || ((quint16)_s.frameShape) == 0x0003
          || ((quint16)_s.frameShape) == 0x0004 || ((quint16)_s.frameShape) == 0x0005 || ((quint16)_s.frameShape) == 0x0006)) {
        throw IncorrectValueException(
            in.getPosition(),
            "((quint16)_s.frameShape) == 0x0000 || ((quint16)_s.frameShape) == 0x0001 || ((quint16)_s.frameShape) == 0x0002 || ((quint16)_s.frameShape) == "
            "0x0003 || ((quint16)_s.frameShape) == 0x0004 || ((quint16)_s.frameShape) == 0x0005 || ((quint16)_s.frameShape) == 0x0006");
    }
}
void MSO::parseSmartTagStore11Container(LEInputStream &in, SmartTagStore11Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x36B3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x36B3");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseOutlineTextProps11Container(LEInputStream &in, OutlineTextProps11Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FB5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FB5");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseBinaryTagDataBlob(LEInputStream &in, BinaryTagDataBlob &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x138B");
    }
    _c = _s.rh.recLen;
    _s.data.resize(_c);
    in.readBytes(_s.data);
}
void MSO::parsePP12DocBinaryTagExtension(LEInputStream &in, PP12DocBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _c = 16;
    _s.tagName.resize(_c);
    in.readBytes(_s.tagName);
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0x0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    _c = _s.rhData.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseSorterViewInfoContainer(LEInputStream &in, SorterViewInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x408)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x408");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseVBAInfoAtom(LEInputStream &in, VBAInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 2");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x400)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x400");
    }
    if (!(_s.rh.recLen == 0xC)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0xC");
    }
    _s.persistIdRef = in.readuint32();
    _s.fHasMacros = in.readuint32();
    if (!(((quint32)_s.fHasMacros) == 0 || ((quint32)_s.fHasMacros) == 1)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.fHasMacros) == 0 || ((quint32)_s.fHasMacros) == 1");
    }
    _s.version = in.readuint32();
    if (!(((quint32)_s.version) == 0 || ((quint32)_s.version) == 1 || ((quint32)_s.version) == 2)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.version) == 0 || ((quint32)_s.version) == 1 || ((quint32)_s.version) == 2");
    }
}
void MSO::parseMasterListWithTextContainer(LEInputStream &in, MasterListWithTextContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x1");
    }
    if (!(_s.rh.recType == 0x0FF0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FF0");
    }
    if (!(_s.rh.recLen % 28 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%28==0");
    }
    _c = _s.rh.recLen / 28;
    for (int _i = 0; _i < _c; ++_i) {
        _s.rgMasterPersistAtom.append(MasterPersistAtom(&_s));
        parseMasterPersistAtom(in, _s.rgMasterPersistAtom[_i]);
    }
}
void MSO::parseMasterPersistAtom(LEInputStream &in, MasterPersistAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x3F3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3F3");
    }
    if (!(_s.rh.recLen == 0x14)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x14");
    }
    _s.persistIdRef = in.readuint32();
    _s.reserved1 = in.readuint2();
    if (!(((quint8)_s.reserved1) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved1) == 0");
    }
    _s.fNonOutLineData = in.readbit();
    _s.reserved2 = in.readuint5();
    if (!(((quint8)_s.reserved2) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved2) == 0");
    }
    _s.reserved3 = in.readuint8();
    if (!(((quint8)_s.reserved3) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved3) == 0");
    }
    _s.reserved4 = in.readuint16();
    if (!(((quint16)_s.reserved4) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.reserved4) == 0");
    }
    _s.reserved5 = in.readuint32();
    if (!(((quint32)_s.reserved5) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reserved5) == 0");
    }
    _s.masterId = in.readuint32();
    _s.reserved6 = in.readuint32();
    if (!(((quint32)_s.reserved6) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reserved6) == 0");
    }
}
void MSO::parseSlideListWithTextContainer(LEInputStream &in, SlideListWithTextContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FF0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FF0");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgChildRec.append(SlideListWithTextSubContainerOrAtom(&_s));
            parseSlideListWithTextSubContainerOrAtom(in, _s.rgChildRec.last());
        } catch (IncorrectValueException &_e) {
            _s.rgChildRec.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgChildRec.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseNotesListWithTextContainer(LEInputStream &in, NotesListWithTextContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 2");
    }
    if (!(_s.rh.recType == 0x0FF0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FF0");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgNotesPersistAtom.append(NotesPersistAtom(&_s));
            parseNotesPersistAtom(in, _s.rgNotesPersistAtom.last());
        } catch (IncorrectValueException &_e) {
            _s.rgNotesPersistAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgNotesPersistAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseNotesPersistAtom(LEInputStream &in, NotesPersistAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x03F3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03F3");
    }
    if (!(_s.rh.recLen == 0x14)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x14");
    }
    _s.persistIdRef = in.readuint32();
    _s.reserved1 = in.readuint2();
    if (!(((quint8)_s.reserved1) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved1) == 0");
    }
    _s.fNonOutlineData = in.readbit();
    _s.reserved2a = in.readuint5();
    if (!(((quint8)_s.reserved2a) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved2a) == 0");
    }
    _s.reserved2b = in.readuint8();
    if (!(((quint8)_s.reserved2b) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved2b) == 0");
    }
    _s.reserved2c = in.readuint16();
    if (!(((quint16)_s.reserved2c) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.reserved2c) == 0");
    }
    _s.reserved3 = in.readuint32();
    if (!(((quint32)_s.reserved3) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reserved3) == 0");
    }
    _s.notesId = in.readuint32();
    _s.reserved4 = in.readuint32();
    if (!(((quint32)_s.reserved4) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reserved4) == 0");
    }
}
void MSO::parseTextHeaderAtom(LEInputStream &in, TextHeaderAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4
          || _s.rh.recInstance == 5)) {
        throw IncorrectValueException(in.getPosition(),
                                      "_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || "
                                      "_s.rh.recInstance == 4 || _s.rh.recInstance == 5");
    }
    if (!(_s.rh.recType == 0xF9F)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF9F");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.textType = in.readuint32();
}
void MSO::parseTextCharsAtom(LEInputStream &in, TextCharsAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFA0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFA0");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.textChars.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.textChars[_i] = in.readuint16();
    }
}
void MSO::parseTextBytesAtom(LEInputStream &in, TextBytesAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFA8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFA8");
    }
    _c = _s.rh.recLen;
    _s.textChars.resize(_c);
    in.readBytes(_s.textChars);
}
void MSO::parseMasterTextPropAtom(LEInputStream &in, MasterTextPropAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFA2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFA2");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgMasterTextPropRun.append(MasterTextPropRun(&_s));
        parseMasterTextPropRun(in, _s.rgMasterTextPropRun.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseMasterTextPropRun(LEInputStream &in, MasterTextPropRun &_s)
{
    _s.streamOffset = in.getPosition();
    _s.count = in.readuint32();
    _s.indentLevel = in.readuint16();
    if (!(((quint16)_s.indentLevel) <= 4)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.indentLevel)<=4");
    }
}
void MSO::parseStyleTextPropAtom(LEInputStream &in, StyleTextPropAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFA1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFA1");
    }
}
void MSO::parseSlideNumberMCAtom(LEInputStream &in, SlideNumberMCAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFD8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFD8");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.position = in.readint32();
}
void MSO::parseDateTimeMCAtom(LEInputStream &in, DateTimeMCAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFF7)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFF7");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.position = in.readint32();
    _s.index = in.readuint8();
    _c = 3;
    _s.unused.resize(_c);
    in.readBytes(_s.unused);
}
void MSO::parseGenericDateMCAtom(LEInputStream &in, GenericDateMCAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFF8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFF8");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.position = in.readint32();
}
void MSO::parseHeaderMCAtom(LEInputStream &in, HeaderMCAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFF9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFF9");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.position = in.readint32();
}
void MSO::parseFooterMCAtom(LEInputStream &in, FooterMCAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFFA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFFA");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.position = in.readint32();
}
void MSO::parseRTFDateTimeMCAtom(LEInputStream &in, RTFDateTimeMCAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1015)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1015");
    }
    if (!(_s.rh.recLen == 0x84)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x84");
    }
    _s.position = in.readint32();
    _c = 128;
    _s.format.resize(_c);
    in.readBytes(_s.format);
}
void MSO::parseTextBookmarkAtom(LEInputStream &in, TextBookmarkAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFA7)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFA7");
    }
    if (!(_s.rh.recLen == 0xC)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0xC");
    }
    _s.begin = in.readint32();
    _s.end = in.readint32();
    _s.bookmarkID = in.readint32();
}
void MSO::parseTextRange(LEInputStream &in, TextRange &_s)
{
    _s.streamOffset = in.getPosition();
    _s.begin = in.readint32();
    _s.end = in.readint32();
}
void MSO::parseMouseClickTextInteractiveInfoAtom(LEInputStream &in, MouseClickTextInteractiveInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFDF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFDF");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    parseTextRange(in, _s.range);
}
void MSO::parseMouseOverTextInteractiveInfoAtom(LEInputStream &in, MouseOverTextInteractiveInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0xFDF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFDF");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    parseTextRange(in, _s.range);
}
void MSO::parseSlideId(LEInputStream &in, SlideId &_s)
{
    _s.streamOffset = in.getPosition();
    _s.slideId = in.readuint32();
    if (!(((quint32)_s.slideId) >= 100)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.slideId)>=100");
    }
    if (!(((quint32)_s.slideId) < 2147483647)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.slideId)<2147483647");
    }
}
void MSO::parseTabStops(LEInputStream &in, TabStops &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.count = in.readuint16();
    _c = _s.count;
    for (int _i = 0; _i < _c; ++_i) {
        _s.rgTabStop.append(TabStop(&_s));
        parseTabStop(in, _s.rgTabStop[_i]);
    }
}
void MSO::parseTabStop(LEInputStream &in, TabStop &_s)
{
    _s.streamOffset = in.getPosition();
    _s.position = in.readint16();
    _s.type = in.readuint16();
}
void MSO::parsePFWrapFlags(LEInputStream &in, PFWrapFlags &_s)
{
    _s.streamOffset = in.getPosition();
    _s.charWrap = in.readbit();
    _s.wordWrap = in.readbit();
    _s.overflow = in.readbit();
    _s.reserved1 = in.readuint5();
    _s.reserved2 = in.readuint8();
}
void MSO::parseColorIndexStruct(LEInputStream &in, ColorIndexStruct &_s)
{
    _s.streamOffset = in.getPosition();
    _s.red = in.readuint8();
    _s.green = in.readuint8();
    _s.blue = in.readuint8();
    _s.index = in.readuint8();
}
void MSO::parseBulletFlags(LEInputStream &in, BulletFlags &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fHasBullet = in.readbit();
    _s.fBulletHasFont = in.readbit();
    _s.fBulletHasColor = in.readbit();
    _s.fBulletHasSize = in.readbit();
    _s.reserved = in.readuint12();
}
void MSO::parsePFMasks(LEInputStream &in, PFMasks &_s)
{
    _s.streamOffset = in.getPosition();
    _s.hasBullet = in.readbit();
    _s.bulletHasFont = in.readbit();
    _s.bulletHasColor = in.readbit();
    _s.bulletHasSize = in.readbit();
    _s.bulletFont = in.readbit();
    _s.bulletColor = in.readbit();
    _s.bulletSize = in.readbit();
    _s.bulletChar = in.readbit();
    _s.leftMargin = in.readbit();
    _s.unused = in.readbit();
    _s.indent = in.readbit();
    _s.align = in.readbit();
    _s.lineSpacing = in.readbit();
    _s.spaceBefore = in.readbit();
    _s.spaceAfter = in.readbit();
    _s.defaultTabSize = in.readbit();
    _s.fontAlign = in.readbit();
    _s.charWrap = in.readbit();
    _s.wordWrap = in.readbit();
    _s.overflow = in.readbit();
    _s.tabStops = in.readbit();
    _s.textDirection = in.readbit();
    _s.reserved = in.readbit();
    _s.bulletBlip = in.readbit();
    _s.bulletScheme = in.readbit();
    _s.bulletHasScheme = in.readbit();
    _s.reserved2 = in.readuint6();
}
void MSO::parseCFMasks(LEInputStream &in, CFMasks &_s)
{
    _s.streamOffset = in.getPosition();
    _s.bold = in.readbit();
    _s.italic = in.readbit();
    _s.underline = in.readbit();
    _s.unused1 = in.readbit();
    _s.shadow = in.readbit();
    _s.fehint = in.readbit();
    _s.unused2 = in.readbit();
    _s.kumi = in.readbit();
    _s.unused3 = in.readbit();
    _s.emboss = in.readbit();
    _s.fHasStyle = in.readuint4();
    _s.unused4 = in.readuint2();
    _s.typeface = in.readbit();
    _s.size = in.readbit();
    _s.color = in.readbit();
    _s.position = in.readbit();
    _s.pp10ext = in.readbit();
    _s.oldEATypeface = in.readbit();
    _s.ansiTypeface = in.readbit();
    _s.symbolTypeface = in.readbit();
    _s.newEATypeface = in.readbit();
    _s.csTypeface = in.readbit();
    _s.pp11ext = in.readbit();
    _s.reserved = in.readuint5();
}
void MSO::parseCFStyle(LEInputStream &in, CFStyle &_s)
{
    _s.streamOffset = in.getPosition();
    _s.bold = in.readbit();
    _s.italic = in.readbit();
    _s.underline = in.readbit();
    _s.unused1 = in.readbit();
    _s.shadow = in.readbit();
    _s.fehint = in.readbit();
    _s.unused2 = in.readbit();
    _s.kumi = in.readbit();
    _s.unused3 = in.readbit();
    _s.emboss = in.readbit();
    _s.pp9rt = in.readuint4();
    _s.unused4 = in.readuint2();
}
void MSO::parseFontCollectionContainer(LEInputStream &in, FontCollectionContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x07D5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x07D5");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgFontCollectionEntry.append(FontCollectionEntry(&_s));
        parseFontCollectionEntry(in, _s.rgFontCollectionEntry.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseFontEntityAtom(LEInputStream &in, FontEntityAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance <= 128)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance<=128");
    }
    if (!(_s.rh.recType == 0xFB7)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFB7");
    }
    if (!(_s.rh.recLen == 0x44)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x44");
    }
    _c = 32;
    _s.lfFaceName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.lfFaceName[_i] = in.readuint16();
    }
    _s.lfCharSet = in.readuint8();
    _s.fEmbedSubsetted = in.readbit();
    _s.unused = in.readuint7();
    _s.rasterFontType = in.readbit();
    _s.deviceFontType = in.readbit();
    _s.truetypeFontType = in.readbit();
    _s.fNoFontSubstitution = in.readbit();
    _s.reserved = in.readuint4();
    if (!(((quint8)_s.reserved) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved) == 0");
    }
    _s.lfPitchAndFamily = in.readuint8();
}
void MSO::parseFontEmbedDataBlob(LEInputStream &in, FontEmbedDataBlob &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance <= 3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance<=3");
    }
    if (!(_s.rh.recType == 0xFB8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFB8");
    }
    _c = _s.rh.recLen;
    _s.data.resize(_c);
    in.readBytes(_s.data);
}
void MSO::parseKinsokuAtom(LEInputStream &in, KinsokuAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x3");
    }
    if (!(_s.rh.recType == 0x0FD2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FD2");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.level = in.readuint32();
    if (!(((quint32)_s.level) == 0 || ((quint32)_s.level) == 1 || ((quint32)_s.level) == 2 || ((quint32)_s.level) == 128)) {
        throw IncorrectValueException(in.getPosition(),
                                      "((quint32)_s.level) == 0 || ((quint32)_s.level) == 1 || ((quint32)_s.level) == 2 || ((quint32)_s.level) == 128");
    }
}
void MSO::parseKinsokuLeadingAtom(LEInputStream &in, KinsokuLeadingAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.kinsokuLeading.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.kinsokuLeading[_i] = in.readuint16();
    }
}
void MSO::parseKinsokuFollowingAtom(LEInputStream &in, KinsokuFollowingAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1 ");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.kinsokuFollowing.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.kinsokuFollowing[_i] = in.readuint16();
    }
}
void MSO::parseTextSpecialInfoAtom(LEInputStream &in, TextSpecialInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0xFAA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFAA");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgSIRun.append(TextSIRun(&_s));
        parseTextSIRun(in, _s.rgSIRun.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseSmartTags(LEInputStream &in, SmartTags &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.count = in.readuint32();
    _c = _s.count;
    _s.rgSmartTagIndex.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.rgSmartTagIndex[_i] = in.readuint32();
    }
}
void MSO::parseExOleEmbedAtom(LEInputStream &in, ExOleEmbedAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FCD)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FCD");
    }
    if (!(_s.rh.recLen == 0x8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x8");
    }
    _s.exColorFollow = in.readuint32();
    if (!(((quint32)_s.exColorFollow) == 0 || ((quint32)_s.exColorFollow) == 1 || ((quint32)_s.exColorFollow) == 2)) {
        throw IncorrectValueException(in.getPosition(),
                                      "((quint32)_s.exColorFollow) == 0 || ((quint32)_s.exColorFollow) == 1 || ((quint32)_s.exColorFollow) == 2");
    }
    _s.fCantLockServer = in.readuint8();
    _s.fNoSizeToServer = in.readuint8();
    _s.fIsTable = in.readuint8();
    _s.unused = in.readuint8();
}
void MSO::parsePointStruct(LEInputStream &in, PointStruct &_s)
{
    _s.streamOffset = in.getPosition();
    _s.x = in.readint32();
    _s.y = in.readint32();
}
void MSO::parseRatioStruct(LEInputStream &in, RatioStruct &_s)
{
    _s.streamOffset = in.getPosition();
    _s.numer = in.readint32();
    _s.denom = in.readint32();
    if (!(((qint32)_s.denom) != 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.denom)!= 0");
    }
}
void MSO::parsePersistDirectoryAtom(LEInputStream &in, PersistDirectoryAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1772)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1772");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgPersistDirEntry.append(PersistDirectoryEntry(&_s));
        parsePersistDirectoryEntry(in, _s.rgPersistDirEntry.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseUnknownDocumentContainerChild(LEInputStream &in, UnknownDocumentContainerChild &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recType == 0x416 || _s.rh.recType == 0x41A || _s.rh.recType == 0x101A || _s.rh.recType == 0x1773 || _s.rh.recType == 0x1788
          || _s.rh.recType == 0x178c || _s.rh.recType == 0x178d)) {
        throw IncorrectValueException(in.getPosition(),
                                      "_s.rh.recType == 0x416 || _s.rh.recType == 0x41A || _s.rh.recType == 0x101A || _s.rh.recType == 0x1773 || _s.rh.recType "
                                      "== 0x1788 || _s.rh.recType == 0x178c || _s.rh.recType == 0x178d");
    }
    _c = _s.rh.recLen;
    _s.unknown.resize(_c);
    in.readBytes(_s.unknown);
}
void MSO::parseUnknownOfficeArtClientDataChild(LEInputStream &in, UnknownOfficeArtClientDataChild &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFE8 || _s.rh.recType == 0x1019)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFE8 || _s.rh.recType == 0x1019");
    }
    _c = _s.rh.recLen;
    _s.unknown.resize(_c);
    in.readBytes(_s.unknown);
}
void MSO::parseUnknownSlideContainerChild(LEInputStream &in, UnknownSlideContainerChild &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x101D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x101D");
    }
    _c = _s.rh.recLen;
    _s.unknown.resize(_c);
    in.readBytes(_s.unknown);
}
void MSO::parseUnknownTextContainerChild(LEInputStream &in, UnknownTextContainerChild &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 3");
    }
    if (!(_s.rh.recInstance == 9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 9");
    }
    if (!(_s.rh.recType == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0");
    }
    _c = _s.rh.recLen;
    _s.unknown.resize(_c);
    in.readBytes(_s.unknown);
}
void MSO::parsePersistDirectoryEntry(LEInputStream &in, PersistDirectoryEntry &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.persistId = in.readuint20();
    _s.cPersist = in.readuint12();
    _c = _s.cPersist;
    _s.rgPersistOffset.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.rgPersistOffset[_i] = in.readuint32();
    }
}
void MSO::parsePersistIdRef(LEInputStream &in, PersistIdRef &_s)
{
    _s.streamOffset = in.getPosition();
    _s.anon = in.readuint32();
}
void MSO::parseSchemeListElementColorSchemeAtom(LEInputStream &in, SchemeListElementColorSchemeAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 6)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 6");
    }
    if (!(_s.rh.recType == 0x7F0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x7F0");
    }
    if (!(_s.rh.recLen == 0x20)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x20");
    }
    _c = 8;
    for (int _i = 0; _i < _c; ++_i) {
        _s.rgSchemeColor.append(ColorStruct(&_s));
        parseColorStruct(in, _s.rgSchemeColor[_i]);
    }
}
void MSO::parseRoundTripOArtTextStyles12Atom(LEInputStream &in, RoundTripOArtTextStyles12Atom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x423)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x423");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseSlideNameAtom(LEInputStream &in, SlideNameAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 3");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.slideName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.slideName[_i] = in.readuint16();
    }
}
void MSO::parseSlideProgTagsContainer(LEInputStream &in, SlideProgTagsContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1388)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1388");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgTypeRec.append(SlideProgTagsSubContainerOrAtom(&_s));
        parseSlideProgTagsSubContainerOrAtom(in, _s.rgTypeRec.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parsePP9SlideBinaryTagExtension(LEInputStream &in, PP9SlideBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen == 0xE)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0xE");
    }
    _c = 7;
    _s.tagName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.tagName[_i] = in.readuint16();
    }
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgTextMasterStyleAtom.append(TextMasterStyle9Atom(&_s));
            parseTextMasterStyle9Atom(in, _s.rgTextMasterStyleAtom.last());
        } catch (IncorrectValueException &_e) {
            _s.rgTextMasterStyleAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgTextMasterStyleAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseComment10Container(LEInputStream &in, Comment10Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2EE0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EE0");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseComment10Atom(LEInputStream &in, Comment10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2EE1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EE1");
    }
    if (!(_s.rh.recLen == 0x1C)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x1C");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseLinkedSlide10Atom(LEInputStream &in, LinkedSlide10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2EE7)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EE7");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.linkedSlideIdRef = in.readuint32();
    _s.clinkedShapes = in.readint32();
}
void MSO::parseLinkedShape10Atom(LEInputStream &in, LinkedShape10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2EE6)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EE6");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.shapeIdRef = in.readuint32();
    _s.linkedShapeIdRef = in.readuint32();
}
void MSO::parseSlideFlags10Atom(LEInputStream &in, SlideFlags10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2EEA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EEA");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.fPreserveMaster = in.readbit();
    _s.fOverrideMasterAnimatino = in.readbit();
    _s.unuseda = in.readuint14();
    _s.unusedb = in.readuint16();
}
void MSO::parseHashCode10Atom(LEInputStream &in, HashCode10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2B00)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2B00");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.hash = in.readuint32();
}
void MSO::parseExtTimeNodeContainer(LEInputStream &in, ExtTimeNodeContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0xF144)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF144");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseBuildListContainer(LEInputStream &in, BuildListContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2B02)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2B02");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseRoundTripHeaderFooterDefaults12Atom(LEInputStream &in, RoundTripHeaderFooterDefaults12Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0424)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0424");
    }
    if (!(_s.rh.recLen == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 1");
    }
    _s.fIncludeDate = in.readbit();
    _s.fIncludeFooter = in.readbit();
    _s.fIncludeHeader = in.readbit();
    _s.fIncludeSlideNumber = in.readbit();
    _s.reserved = in.readuint4();
}
void MSO::parseTagNameAtom(LEInputStream &in, TagNameAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2 == 0 ");
    }
    _c = _s.rh.recLen / 2;
    _s.tagName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.tagName[_i] = in.readuint16();
    }
}
void MSO::parseTagValueAtom(LEInputStream &in, TagValueAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    _c = _s.rh.recLen / 2;
    _s.tagValue.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.tagValue[_i] = in.readuint16();
    }
}
void MSO::parseRoundTripMainMasterRecord(LEInputStream &in, RoundTripMainMasterRecord &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recType == 0x41C || _s.rh.recType == 0x40E || _s.rh.recType == 0x040F || _s.rh.recType == 0x41E || _s.rh.recType == 0x0423
          || _s.rh.recType == 0x2B0D || _s.rh.recType == 0x2B0B || _s.rh.recType == 0x041D || _s.rh.recType == 0x2B0C || _s.rh.recType == 0x101D)) {
        throw IncorrectValueException(
            in.getPosition(),
            "_s.rh.recType == 0x41C || _s.rh.recType == 0x40E || _s.rh.recType == 0x040F || _s.rh.recType == 0x41E || _s.rh.recType == 0x0423 || _s.rh.recType "
            "== 0x2B0D || _s.rh.recType == 0x2B0B || _s.rh.recType == 0x041D || _s.rh.recType == 0x2B0C || _s.rh.recType == 0x101D");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseTemplateNameAtom(LEInputStream &in, TemplateNameAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 2");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.templateName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.templateName[_i] = in.readuint16();
    }
}
void MSO::parseRoundTripSlideSyncInfo12Container(LEInputStream &in, RoundTripSlideSyncInfo12Container &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x3714)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3714");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseSlideFlags(LEInputStream &in, SlideFlags &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fMasterObjects = in.readbit();
    _s.fMasterScheme = in.readbit();
    _s.fMasterBackground = in.readbit();
    _s.unused1 = in.readuint5();
    _s.unused2 = in.readuint8();
}
void MSO::parseNotesRoundTripAtom(LEInputStream &in, NotesRoundTripAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x40E || _s.rh.recType == 0x40F || _s.rh.recType == 0x427)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x40E || _s.rh.recType == 0x40F || _s.rh.recType == 0x427");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseHandoutContainer(LEInputStream &in, HandoutContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FC9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FC9");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExControlStg(LEInputStream &in, ExControlStg &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0 || _s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x1011)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1011");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExOleObjStg(LEInputStream &in, ExOleObjStg &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1011)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1011");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseUserEditAtom(LEInputStream &in, UserEditAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FF5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FF5");
    }
    if (!(_s.rh.recLen == 0x1C || _s.rh.recLen == 0x20)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x1C || _s.rh.recLen == 0x20");
    }
    _s.lastSlideIdRef = in.readuint32();
    _s.version = in.readuint16();
    _s.minorVersion = in.readuint8();
    if (!(((quint8)_s.minorVersion) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.minorVersion) == 0");
    }
    _s.majorVersion = in.readuint8();
    if (!(((quint8)_s.majorVersion) == 3)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.majorVersion) == 3");
    }
    _s.offsetLastEdit = in.readuint32();
    _s.offsetPersistDirectory = in.readuint32();
    _s.docPersistIdRef = in.readuint32();
    if (!(((quint32)_s.docPersistIdRef) == 1)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.docPersistIdRef) == 1");
    }
    _s.persistIdSeed = in.readuint32();
    _s.lastView = in.readuint16();
    if (!(((quint16)_s.lastView) <= 18)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.lastView)<=18");
    }
    _s.unused = in.readuint16();
    _s._has_encryptSessionPersistIdRef = _s.rh.recLen == 32;
    if (_s._has_encryptSessionPersistIdRef) {
        _s.encryptSessionPersistIdRef = in.readuint32();
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.zeroPadding.append(ZeroByte(&_s));
            parseZeroByte(in, _s.zeroPadding.last());
        } catch (IncorrectValueException &_e) {
            _s.zeroPadding.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.zeroPadding.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseVbaProjectStg(LEInputStream &in, VbaProjectStg &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0 || _s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x1011)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1011");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseSlideAtom(LEInputStream &in, SlideAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x2");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x03EF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03EF");
    }
    if (!(_s.rh.recLen == 0x18)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x18");
    }
    _s.geom = in.readuint32();
    _c = 8;
    _s.rgPlaceholderTypes.resize(_c);
    in.readBytes(_s.rgPlaceholderTypes);
    _s.masterIdRef = in.readuint32();
    _s.notesIdRef = in.readuint32();
    parseSlideFlags(in, _s.slideFlags);
    _s.unused = in.readuint16();
}
void MSO::parseSlideShowSlideInfoAtom(LEInputStream &in, SlideShowSlideInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x03F9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03F9");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _s.slidetime = in.readuint32();
    _s.slideIdRef = in.readuint32();
    _s.effectDirection = in.readuint8();
    _s.effectType = in.readuint8();
    _s.fManualAdvance = in.readbit();
    _s.reserved = in.readbit();
    _s.fHidden = in.readbit();
    _s.reserved2 = in.readbit();
    _s.fSound = in.readbit();
    _s.reserved3 = in.readbit();
    _s.fLoopSound = in.readbit();
    _s.reserved4 = in.readbit();
    _s.fStopSound = in.readbit();
    _s.freserved5 = in.readbit();
    _s.fAutoAdvance = in.readbit();
    _s.reserved6 = in.readbit();
    _s.fCursorVisible = in.readbit();
    _s.reserved7 = in.readuint3();
    _s.speed = in.readuint8();
    _c = 3;
    _s.unused.resize(_c);
    in.readBytes(_s.unused);
}
void MSO::parseSlideShowDocInfoAtom(LEInputStream &in, SlideShowDocInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 1");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0401)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0401");
    }
    if (!(_s.rh.recLen == 0x50)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x50");
    }
    parseColorIndexStruct(in, _s.penColor);
    _s.restartTime = in.readint32();
    _s.startSlide = in.readint16();
    if (!(((qint16)_s.startSlide) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint16)_s.startSlide)>=0");
    }
    _s.endSlide = in.readint16();
    if (!(((qint16)_s.endSlide) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint16)_s.endSlide)>=0");
    }
    _c = 64;
    _s.namedShow.resize(_c);
    in.readBytes(_s.namedShow);
    _s.fAutoAdvance = in.readbit();
    _s.fWillSkipBuilds = in.readbit();
    _s.fUseSlideRange = in.readbit();
    _s.fDocUseNamedShow = in.readbit();
    _s.fShowBrowseMode = in.readbit();
    _s.fKioskMode = in.readbit();
    _s.fWillSkipNarration = in.readbit();
    _s.fLoopContinuously = in.readbit();
    _s.fHideScrollBar = in.readbit();
    _s.reserved = in.readuint7();
    _s.unused = in.readuint16();
}
void MSO::parseSlideSchemeColorSchemeAtom(LEInputStream &in, SlideSchemeColorSchemeAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x07F0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x07F0");
    }
    if (!(_s.rh.recLen == 0x20)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x20");
    }
    _c = 8;
    for (int _i = 0; _i < _c; ++_i) {
        _s.rgSchemeColor.append(ColorStruct(&_s));
        parseColorStruct(in, _s.rgSchemeColor[_i]);
    }
}
void MSO::parseRoundTripSlideRecord(LEInputStream &in, RoundTripSlideRecord &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recType == 0x40E || _s.rh.recType == 0x40F || _s.rh.recType == 0x41D || _s.rh.recType == 0x3714 || _s.rh.recType == 0x2B0D
          || _s.rh.recType == 0x2B0B || _s.rh.recType == 0x2B0C || _s.rh.recType == 0x422)) {
        throw IncorrectValueException(in.getPosition(),
                                      "_s.rh.recType == 0x40E || _s.rh.recType == 0x40F || _s.rh.recType == 0x41D || _s.rh.recType == 0x3714 || _s.rh.recType "
                                      "== 0x2B0D || _s.rh.recType == 0x2B0B || _s.rh.recType == 0x2B0C || _s.rh.recType == 0x422");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseNamedShowsContainer(LEInputStream &in, NamedShowsContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x410)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x410");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseSummaryContainer(LEInputStream &in, SummaryContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x402)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x402");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseDocRoutingSlipAtom(LEInputStream &in, DocRoutingSlipAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x406)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x406");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parsePrintOptionsAtom(LEInputStream &in, PrintOptionsAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1770)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1770");
    }
    if (!(_s.rh.recLen == 5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 5");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseRoundTripCustomTableStyles12Atom(LEInputStream &in, RoundTripCustomTableStyles12Atom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0 || _s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0 || _s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x428)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x428");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseRoundTripCompositeMasterId12Atom(LEInputStream &in, RoundTripCompositeMasterId12Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x41D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x41D");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.compositeMasterId = in.readuint32();
}
void MSO::parseColorStruct(LEInputStream &in, ColorStruct &_s)
{
    _s.streamOffset = in.getPosition();
    _s.red = in.readuint8();
    _s.green = in.readuint8();
    _s.blue = in.readuint8();
    _s.unused = in.readuint8();
}
void MSO::parseExObjListAtom(LEInputStream &in, ExObjListAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x040A)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x040A");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.exObjIdSeed = in.readint32();
    if (!(((qint32)_s.exObjIdSeed) >= 1)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.exObjIdSeed)>=1");
    }
}
void MSO::parseExAviMovieContainer(LEInputStream &in, ExAviMovieContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1006)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1006");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExCDAudioContainer(LEInputStream &in, ExCDAudioContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x100E)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x100E");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExControlAtom(LEInputStream &in, ExControlAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFFB)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFFB");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.slideIdRef = in.readuint32();
}
void MSO::parseExHyperlinkAtom(LEInputStream &in, ExHyperlinkAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFD3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFD3");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.exHyperLinkId = in.readuint32();
}
void MSO::parseFriendlyNameAtom(LEInputStream &in, FriendlyNameAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.friendlyName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.friendlyName[_i] = in.readuint16();
    }
}
void MSO::parseTargetAtom(LEInputStream &in, TargetAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.target.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.target[_i] = in.readuint16();
    }
}
void MSO::parseLocationAtom(LEInputStream &in, LocationAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 3");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen / 2;
    _s.location.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.location[_i] = in.readuint16();
    }
}
void MSO::parseExMCIMovieContainer(LEInputStream &in, ExMCIMovieContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1007)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1007");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExMIDIAudioContainer(LEInputStream &in, ExMIDIAudioContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x100D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x100D");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExWAVAudioEmbeddedContainer(LEInputStream &in, ExWAVAudioEmbeddedContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x100F)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x100F");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExWAVAudioLinkContainer(LEInputStream &in, ExWAVAudioLinkContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1010)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1010");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseUnknownExObjListSubContainerChild(LEInputStream &in, UnknownExObjListSubContainerChild &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFEA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFEA");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExOleLinkAtom(LEInputStream &in, ExOleLinkAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FD1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FD1");
    }
    if (!(_s.rh.recLen == 0xC)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0xC");
    }
    _s.slideIdRef = in.readuint32();
    _s.oleUpdateMode = in.readuint32();
    _s.unused = in.readuint32();
}
void MSO::parseExOleObjAtom(LEInputStream &in, ExOleObjAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x1");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FC3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FC3");
    }
    if (!(_s.rh.recLen == 0x18)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x18");
    }
    _s.drawAspect = in.readuint32();
    _s.type = in.readuint32();
    _s.exObjId = in.readuint32();
    _s.subType = in.readuint32();
    _s.persistIdRef = in.readuint32();
    _s.unused = in.readuint32();
}
void MSO::parseMenuNameAtom(LEInputStream &in, MenuNameAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x1");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2 == 0 ");
    }
    _c = _s.rh.recLen;
    _s.menuName.resize(_c);
    in.readBytes(_s.menuName);
}
void MSO::parseProgIDAtom(LEInputStream &in, ProgIDAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x2");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2 == 0 ");
    }
    _c = _s.rh.recLen;
    _s.progId.resize(_c);
    in.readBytes(_s.progId);
}
void MSO::parseClipboardNameAtom(LEInputStream &in, ClipboardNameAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x3");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2 == 0 ");
    }
    _c = _s.rh.recLen;
    _s.clipboardName.resize(_c);
    in.readBytes(_s.clipboardName);
}
void MSO::parseMetafileBlob(LEInputStream &in, MetafileBlob &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FC1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FC1");
    }
    if (!(_s.rh.recLen > 16)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen>16");
    }
    _s.mm = in.readint16();
    _s.xExt = in.readint16();
    _s.yExt = in.readint16();
    _c = _s.rh.recLen - 6;
    _s.data.resize(_c);
    in.readBytes(_s.data);
}
void MSO::parseOfficeArtFDGG(LEInputStream &in, OfficeArtFDGG &_s)
{
    _s.streamOffset = in.getPosition();
    _s.spidMax = in.readuint32();
    if (!(((quint32)_s.spidMax) < 67098623)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.spidMax)<67098623");
    }
    _s.cidcl = in.readuint32();
    if (!(((quint32)_s.cidcl) < 268435455)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.cidcl)<268435455");
    }
    _s.cspSaved = in.readuint32();
    _s.cdgSaved = in.readuint32();
}
void MSO::parseOfficeArtFDG(LEInputStream &in, OfficeArtFDG &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance <= 4094)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance<=4094");
    }
    if (!(_s.rh.recType == 0x0F008)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F008");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.csp = in.readuint32();
    _s.spidCur = in.readuint32();
}
void MSO::parseOfficeArtFRITContainer(LEInputStream &in, OfficeArtFRITContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recType == 0xF118)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF118");
    }
    if (!(_s.rh.recLen == 4 * _s.rh.recInstance)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen==4*_s.rh.recInstance");
    }
    _c = _s.rh.recInstance;
    for (int _i = 0; _i < _c; ++_i) {
        _s.rgfrit.append(OfficeArtFRIT(&_s));
        parseOfficeArtFRIT(in, _s.rgfrit[_i]);
    }
}
void MSO::parseOfficeArtFRIT(LEInputStream &in, OfficeArtFRIT &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fridNew = in.readuint16();
    _s.fridOld = in.readuint16();
}
void MSO::parseOfficeArtBStoreContainer(LEInputStream &in, OfficeArtBStoreContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recType == 0x0F001)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F001");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgfb.append(OfficeArtBStoreContainerFileBlock(&_s));
        parseOfficeArtBStoreContainerFileBlock(in, _s.rgfb.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseOfficeArtSpgrContainer(LEInputStream &in, OfficeArtSpgrContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0F003)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F003");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgfb.append(OfficeArtSpgrContainerFileBlock(&_s));
        parseOfficeArtSpgrContainerFileBlock(in, _s.rgfb.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseOfficeArtSolverContainer(LEInputStream &in, OfficeArtSolverContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recType == 0xF005)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF005");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgfb.append(OfficeArtSolverContainerFileBlock(&_s));
            parseOfficeArtSolverContainerFileBlock(in, _s.rgfb.last());
        } catch (IncorrectValueException &_e) {
            _s.rgfb.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgfb.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseOfficeArtFConnectorRule(LEInputStream &in, OfficeArtFConnectorRule &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 1");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF012)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF012");
    }
    if (!(_s.rh.recLen == 0x18)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x18");
    }
    _s.ruid = in.readuint32();
    _s.spidA = in.readuint32();
    _s.spidB = in.readuint32();
    _s.spidC = in.readuint32();
    _s.cptiA = in.readuint32();
    _s.cptiB = in.readuint32();
}
void MSO::parseOfficeArtFArcRule(LEInputStream &in, OfficeArtFArcRule &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF014)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF014");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.ruid = in.readuint32();
    _s.spid = in.readuint32();
}
void MSO::parseOfficeArtFCalloutRule(LEInputStream &in, OfficeArtFCalloutRule &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF017)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF017");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.ruid = in.readuint32();
    _s.spid = in.readuint32();
}
void MSO::parseOfficeArtFSPGR(LEInputStream &in, OfficeArtFSPGR &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x1");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0F009)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F009");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _s.xLeft = in.readint32();
    _s.yTop = in.readint32();
    _s.xRight = in.readint32();
    _s.yBottom = in.readint32();
}
void MSO::parseOfficeArtFSP(LEInputStream &in, OfficeArtFSP &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x2");
    }
    if (!(_s.rh.recInstance <= 202)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance<= 202");
    }
    if (!(_s.rh.recType == 0x0F00A)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F00A");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.spid = in.readuint32();
    _s.fGroup = in.readbit();
    _s.fChild = in.readbit();
    _s.fPatriarch = in.readbit();
    _s.fDeleted = in.readbit();
    _s.fOleShape = in.readbit();
    _s.fHaveMaster = in.readbit();
    _s.fFlipH = in.readbit();
    _s.fFlipV = in.readbit();
    _s.fConnector = in.readbit();
    _s.fHaveAnchor = in.readbit();
    _s.fBackground = in.readbit();
    _s.fHaveSpt = in.readbit();
    _s.unused1 = in.readuint20();
}
void MSO::parseOfficeArtFOPT(LEInputStream &in, OfficeArtFOPT &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x3");
    }
    if (!(_s.rh.recType == 0x0F00B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F00B");
    }
    _c = _s.rh.recInstance;
    for (int _i = 0; _i < _c; ++_i) {
        _s.fopt.append(OfficeArtFOPTEChoice(&_s));
        parseOfficeArtFOPTEChoice(in, _s.fopt[_i]);
    }
    _c = _s.rh.recLen - 6 * _s.rh.recInstance;
    _s.complexData.resize(_c);
    in.readBytes(_s.complexData);
}
void MSO::parseOfficeArtSecondaryFOPT(LEInputStream &in, OfficeArtSecondaryFOPT &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 3");
    }
    if (!(_s.rh.recType == 0xF121)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF121");
    }
    _c = _s.rh.recInstance;
    for (int _i = 0; _i < _c; ++_i) {
        _s.fopt.append(OfficeArtFOPTEChoice(&_s));
        parseOfficeArtFOPTEChoice(in, _s.fopt[_i]);
    }
    _c = _s.rh.recLen - 6 * _s.rh.recInstance;
    _s.complexData.resize(_c);
    in.readBytes(_s.complexData);
}
void MSO::parseOfficeArtTertiaryFOPT(LEInputStream &in, OfficeArtTertiaryFOPT &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 3");
    }
    if (!(_s.rh.recType == 0xF122)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF122");
    }
    _c = _s.rh.recInstance;
    for (int _i = 0; _i < _c; ++_i) {
        _s.fopt.append(OfficeArtFOPTEChoice(&_s));
        parseOfficeArtFOPTEChoice(in, _s.fopt[_i]);
    }
    _c = _s.rh.recLen - 6 * _s.rh.recInstance;
    _s.complexData.resize(_c);
    in.readBytes(_s.complexData);
}
void MSO::parseMSOPATHINFO(LEInputStream &in, MSOPATHINFO &_s)
{
    _s.streamOffset = in.getPosition();
    _s.type = in.readuint3();
    _s.segments = in.readuint13();
}
void MSO::parseFixedPoint(LEInputStream &in, FixedPoint &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fractional = in.readuint16();
    _s.integral = in.readint16();
}
void MSO::parsePVertices_complex(LEInputStream &in, PVertices_complex &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.nElems = in.readuint16();
    _s.nElemsAlloc = in.readuint16();
    _s.cbElem = in.readuint16();
    _c = (_s.cbElem == 0xFFF0) ? (4 * _s.nElems) : (_s.cbElem * _s.nElems);
    _s.data.resize(_c);
    in.readBytes(_s.data);
}
void MSO::parsePSegmentInfo_complex(LEInputStream &in, PSegmentInfo_complex &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.nElems = in.readuint16();
    _s.nElemsAlloc = in.readuint16();
    _s.cbElem = in.readuint16();
    _c = (_s.cbElem == 0xFFF0) ? (4 * _s.nElems) : (_s.cbElem * _s.nElems);
    _s.data.resize(_c);
    in.readBytes(_s.data);
}
void MSO::parseFillShadeColors_complex(LEInputStream &in, FillShadeColors_complex &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.nElems = in.readuint16();
    _s.nElemsAlloc = in.readuint16();
    _s.cbElem = in.readuint16();
    _c = (_s.cbElem == 0xFFF0) ? (4 * _s.nElems) : (_s.cbElem * _s.nElems);
    _s.data.resize(_c);
    in.readBytes(_s.data);
}
void MSO::parsePWrapPolygonVertices_complex(LEInputStream &in, PWrapPolygonVertices_complex &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.nElems = in.readuint16();
    _s.nElemsAlloc = in.readuint16();
    _s.cbElem = in.readuint16();
    _c = (_s.cbElem == 0xFFF0) ? (4 * _s.nElems) : (_s.cbElem * _s.nElems);
    _s.data.resize(_c);
    in.readBytes(_s.data);
}
void MSO::parseOfficeArtCOLORREF(LEInputStream &in, OfficeArtCOLORREF &_s)
{
    _s.streamOffset = in.getPosition();
    _s.red = in.readuint8();
    _s.green = in.readuint8();
    _s.blue = in.readuint8();
    _s.fPaletteIndex = in.readbit();
    _s.fPaletteRGB = in.readbit();
    _s.fSystemRGB = in.readbit();
    _s.fSchemeIndex = in.readbit();
    _s.fSysIndex = in.readbit();
    _s.unused1 = in.readbit();
    _s.unused2 = in.readbit();
    _s.unused3 = in.readbit();
}
void MSO::parseOfficeArtChildAnchor(LEInputStream &in, OfficeArtChildAnchor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF00F)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF00F");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _s.xLeft = in.readint32();
    _s.yTop = in.readint32();
    _s.xRight = in.readint32();
    _s.yBottom = in.readint32();
}
void MSO::parseDocOfficeArtClientAnchor(LEInputStream &in, DocOfficeArtClientAnchor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF010)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF010");
    }
    if (!(_s.rh.recLen == 0x4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x4");
    }
    _s.clientAnchor = in.readint32();
}
void MSO::parseXlsOfficeArtClientAnchor(LEInputStream &in, XlsOfficeArtClientAnchor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF010)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF010");
    }
    if (!(_s.rh.recLen == 0x8 || _s.rh.recLen == 0x12)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x8 || _s.rh.recLen == 0x12");
    }
    _s.fMove = in.readbit();
    _s.fSize = in.readbit();
    _s.unused = in.readuint14();
    _s._has_width = _s.rh.recLen == 0x8;
    if (_s._has_width) {
        _s.width = in.readint32();
    }
    _s._has_height = _s.rh.recLen == 0x8;
    if (_s._has_height) {
        _s.height = in.readint32();
    }
    _s._has_colL = _s.rh.recLen == 0x12;
    if (_s._has_colL) {
        _s.colL = in.readuint16();
    }
    _s._has_dxL = _s.rh.recLen == 0x12;
    if (_s._has_dxL) {
        _s.dxL = in.readint16();
    }
    _s._has_rwT = _s.rh.recLen == 0x12;
    if (_s._has_rwT) {
        _s.rwT = in.readuint16();
    }
    _s._has_dyT = _s.rh.recLen == 0x12;
    if (_s._has_dyT) {
        _s.dyT = in.readint16();
    }
    _s._has_colR = _s.rh.recLen == 0x12;
    if (_s._has_colR) {
        _s.colR = in.readuint16();
    }
    _s._has_dxR = _s.rh.recLen == 0x12;
    if (_s._has_dxR) {
        _s.dxR = in.readint16();
    }
    _s._has_rwB = _s.rh.recLen == 0x12;
    if (_s._has_rwB) {
        _s.rwB = in.readuint16();
    }
    _s._has_dyB = _s.rh.recLen == 0x12;
    if (_s._has_dyB) {
        _s.dyB = in.readint16();
    }
}
void MSO::parseOfficeArtFPSPL(LEInputStream &in, OfficeArtFPSPL &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF11D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF11D");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.spid = in.readuint30();
    _s.reserved1 = in.readbit();
    _s.fLast = in.readbit();
}
void MSO::parseRectStruct(LEInputStream &in, RectStruct &_s)
{
    _s.streamOffset = in.getPosition();
    _s.top = in.readint32();
    _s.left = in.readint32();
    _s.right = in.readint32();
    _s.bottom = in.readint32();
}
void MSO::parseSmallRectStruct(LEInputStream &in, SmallRectStruct &_s)
{
    _s.streamOffset = in.getPosition();
    _s.top = in.readint16();
    _s.left = in.readint16();
    _s.right = in.readint16();
    _s.bottom = in.readint16();
}
void MSO::parseDocOfficeArtClientData(LEInputStream &in, DocOfficeArtClientData &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF011)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF011");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.clientData = in.readuint32();
}
void MSO::parseXlsOfficeArtClientData(LEInputStream &in, XlsOfficeArtClientData &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF011)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF011");
    }
    if (!(_s.rh.recLen == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0");
    }
}
void MSO::parseShapeFlagsAtom(LEInputStream &in, ShapeFlagsAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xBDB)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xBDB");
    }
    if (!(_s.rh.recLen == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 1");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseShapeFlags10Atom(LEInputStream &in, ShapeFlags10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xBDC)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xBDC");
    }
    if (!(_s.rh.recLen == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 1");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseExObjRefAtom(LEInputStream &in, ExObjRefAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xBC1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xBC1");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.exObjIdRef = in.readuint32();
}
void MSO::parseAnimationInfoAtom(LEInputStream &in, AnimationInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x1");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFF1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFF1");
    }
    if (!(_s.rh.recLen == 0x1C)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x1C");
    }
    _c = 0x1C;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseSoundContainer(LEInputStream &in, SoundContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x7E6)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x7E6");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseInteractiveInfoAtom(LEInputStream &in, InteractiveInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFF2 || _s.rh.recType == 0xFF3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFF2 || _s.rh.recType == 0xFF3");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _s.soundIdRef = in.readuint32();
    _s.exHyperlinkIdRef = in.readuint32();
    _s.action = in.readuint8();
    if (!(((quint8)_s.action) < 8)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.action)<8");
    }
    _s.oleVerb = in.readuint8();
    if (!(((quint8)_s.oleVerb) < 3)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.oleVerb)<3");
    }
    _s.jump = in.readuint8();
    if (!(((quint8)_s.jump) < 7)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.jump)<7");
    }
    _s.fAnimated = in.readbit();
    _s.fStopSound = in.readbit();
    _s.fCustomSoundReturn = in.readbit();
    _s.fVisited = in.readbit();
    _s.reserved = in.readuint4();
    _s.hyperlinkType = in.readuint8();
    _c = 3;
    _s.unused.resize(_c);
    in.readBytes(_s.unused);
}
void MSO::parseMacroNameAtom(LEInputStream &in, MacroNameAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 2");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen%2==0");
    }
    _c = _s.rh.recLen;
    _s.macroName.resize(_c);
    in.readBytes(_s.macroName);
}
void MSO::parsePlaceholderAtom(LEInputStream &in, PlaceholderAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xBC3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xBC3");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    _s.position = in.readint32();
    _s.placementId = in.readuint8();
    _s.size = in.readuint8();
    _s.unused = in.readuint16();
}
void MSO::parseRecolorInfoAtom(LEInputStream &in, RecolorInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFE7)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFE7");
    }
    _c = _s.rh.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseOutlineTextRefAtom(LEInputStream &in, OutlineTextRefAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF9E)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF9E");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.index = in.readint32();
    if (!(((qint32)_s.index) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.index)>=0");
    }
}
void MSO::parseShapeProgsTagContainer(LEInputStream &in, ShapeProgsTagContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2");
    }
    if (!(_s.rh.recType == 0x1388)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1388");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgChildRec.append(ShapeProgTagsSubContainerOrAtom(&_s));
            parseShapeProgTagsSubContainerOrAtom(in, _s.rgChildRec.last());
        } catch (IncorrectValueException &_e) {
            _s.rgChildRec.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgChildRec.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parsePP9ShapeBinaryTagExtension(LEInputStream &in, PP9ShapeBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen == 0xE)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0xE");
    }
    _c = 7;
    _s.tagName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.tagName[_i] = in.readuint16();
    }
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    parseStyleTextProp9Atom(in, _s.styleTextProp9Atom);
}
void MSO::parsePP10ShapeBinaryTagExtension(LEInputStream &in, PP10ShapeBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _c = 8;
    _s.tagName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.tagName[_i] = in.readuint16();
    }
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    _c = _s.rhData.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parsePP11ShapeBinaryTagExtension(LEInputStream &in, PP11ShapeBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _c = 8;
    _s.tagName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.tagName[_i] = in.readuint16();
    }
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    _c = _s.rhData.recLen;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parseRoundTripNewPlaceHolderId12Atom(LEInputStream &in, RoundTripNewPlaceHolderId12Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xBDD)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xBDD");
    }
    if (!(_s.rh.recLen == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 1");
    }
    _s.newPlaceHolderId = in.readuint8();
}
void MSO::parseRoundTripShapeId12Atom(LEInputStream &in, RoundTripShapeId12Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x41F)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x41F");
    }
    if (!(_s.rh.recLen == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 4");
    }
    _s.shapeId = in.readuint32();
}
void MSO::parseRoundTripHFPlaceholder12Atom(LEInputStream &in, RoundTripHFPlaceholder12Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x420)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x420");
    }
    if (!(_s.rh.recLen == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 1");
    }
    _s.placeHolderId = in.readuint8();
}
void MSO::parseRoundTripShapeCheckSumForCustomLayouts12Atom(LEInputStream &in, RoundTripShapeCheckSumForCustomLayouts12Atom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x426)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x426");
    }
    if (!(_s.rh.recLen == 8 || _s.rh.recLen == 40)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8 || _s.rh.recLen == 40");
    }
    _s.shapeCheckSum = in.readuint32();
    _s.textCheckSum = in.readuint32();
    _c = _s.rh.recLen - 8;
    _s.unknown.resize(_c);
    in.readBytes(_s.unknown);
}
void MSO::parseXlsOfficeArtClientTextBox(LEInputStream &in, XlsOfficeArtClientTextBox &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF00D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF00D");
    }
    if (!(_s.rh.recLen == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0");
    }
}
void MSO::parseDocOfficeArtClientTextBox(LEInputStream &in, DocOfficeArtClientTextBox &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0 || _s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0 || _s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF00D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF00D");
    }
    if (!(_s.rh.recLen == 0x4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x4");
    }
    _s.clientTextBox = in.readuint32();
}
void MSO::parsePptOfficeArtClientTextBox(LEInputStream &in, PptOfficeArtClientTextBox &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0 || _s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0 || _s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF00D)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF00D");
    }
    if (!(_s.rh.recLen != 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen!=4");
    }
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgChildRec.append(TextClientDataSubContainerOrAtom(&_s));
        parseTextClientDataSubContainerOrAtom(in, _s.rgChildRec.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseOfficeArtIDCL(LEInputStream &in, OfficeArtIDCL &_s)
{
    _s.streamOffset = in.getPosition();
    _s.dgid = in.readuint32();
    _s.cspidCur = in.readuint32();
}
void MSO::parseOfficeArtFOPTEOPID(LEInputStream &in, OfficeArtFOPTEOPID &_s)
{
    _s.streamOffset = in.getPosition();
    _s.opid = in.readuint14();
    _s.fBid = in.readbit();
    _s.fComplex = in.readbit();
}
void MSO::parseOfficeArtColorMRUContainer(LEInputStream &in, OfficeArtColorMRUContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recType == 0xF11A)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF11A");
    }
    if (!(_s.rh.recLen == 4 * _s.rh.recInstance)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen==4*_s.rh.recInstance");
    }
    _c = _s.rh.recInstance;
    for (int _i = 0; _i < _c; ++_i) {
        _s.rgmsocr.append(MSOCR(&_s));
        parseMSOCR(in, _s.rgmsocr[_i]);
    }
}
void MSO::parseMSOCR(LEInputStream &in, MSOCR &_s)
{
    _s.streamOffset = in.getPosition();
    _s.red = in.readuint8();
    _s.green = in.readuint8();
    _s.blue = in.readuint8();
    _s.unused1 = in.readuint3();
    _s.fSchemeIndex = in.readbit();
    _s.unused2 = in.readuint4();
}
void MSO::parseOfficeArtSplitMenuColorContainer(LEInputStream &in, OfficeArtSplitMenuColorContainer &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x4");
    }
    if (!(_s.rh.recType == 0xF11E)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF11E");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _c = 4;
    for (int _i = 0; _i < _c; ++_i) {
        _s.smca.append(MSOCR(&_s));
        parseMSOCR(in, _s.smca[_i]);
    }
}
void MSO::parsetodo(LEInputStream &in, todo &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    _c = _s.rh.recLen;
    _s.anon.resize(_c);
    in.readBytes(_s.anon);
}
void MSO::parseFibBase(LEInputStream &in, FibBase &_s)
{
    _s.streamOffset = in.getPosition();
    _s.wIdent = in.readuint16();
    _s.nFib = in.readuint16();
    if (!(((quint16)_s.nFib) == 0x65 || ((quint16)_s.nFib) == 0x67 || ((quint16)_s.nFib) == 0x68 || ((quint16)_s.nFib) == 0xC0 || ((quint16)_s.nFib) == 0xC1
          || ((quint16)_s.nFib) == 0xC2 || ((quint16)_s.nFib) == 0x101 || ((quint16)_s.nFib) == 0x10B || ((quint16)_s.nFib) == 0x10C
          || ((quint16)_s.nFib) == 0x112)) {
        throw IncorrectValueException(in.getPosition(),
                                      "((quint16)_s.nFib) == 0x65 || ((quint16)_s.nFib) == 0x67 || ((quint16)_s.nFib) == 0x68 || ((quint16)_s.nFib) == 0xC0 || "
                                      "((quint16)_s.nFib) == 0xC1 || ((quint16)_s.nFib) == 0xC2 || ((quint16)_s.nFib) == 0x101 || ((quint16)_s.nFib) == 0x10B "
                                      "|| ((quint16)_s.nFib) == 0x10C || ((quint16)_s.nFib) == 0x112");
    }
    _s.unused = in.readuint16();
    _s.lid = in.readuint16();
    _s.pnNext = in.readuint16();
    _s.fDot = in.readbit();
    _s.fGlsy = in.readbit();
    _s.fComplex = in.readbit();
    _s.fHasPic = in.readbit();
    _s.cQuickSaves = in.readuint4();
    _s.fEncrypted = in.readbit();
    _s.fWhichTblStm = in.readbit();
    _s.fReadOnlyRecommended = in.readbit();
    _s.fWriteReservation = in.readbit();
    _s.fExtChar = in.readbit();
    _s.fLoadOverride = in.readbit();
    _s.fFarEast = in.readbit();
    _s.fObfuscated = in.readbit();
    _s.nFibBack = in.readuint16();
    _s.IKey = in.readuint32();
    _s.envr = in.readuint8();
    _s.fMac = in.readbit();
    _s.fEmptySpecial = in.readbit();
    _s.fLoadOverridePage = in.readbit();
    _s.reserved1 = in.readbit();
    _s.reserved2 = in.readbit();
    _s.fSpare0 = in.readuint3();
    _s.reserved3 = in.readuint16();
    _s.reserved4 = in.readuint16();
    _s.reserved5 = in.readuint32();
    _s.reserved6 = in.readuint32();
}
void MSO::parseFibRgW97(LEInputStream &in, FibRgW97 &_s)
{
    _s.streamOffset = in.getPosition();
    _s.reserved1 = in.readuint16();
    _s.reserved2 = in.readuint16();
    _s.reserved3 = in.readuint16();
    _s.reserved4 = in.readuint16();
    _s.reserved5 = in.readuint16();
    _s.reserved6 = in.readuint16();
    _s.reserved7 = in.readuint16();
    _s.reserved8 = in.readuint16();
    _s.reserved9 = in.readuint16();
    _s.reserved10 = in.readuint16();
    _s.reserved11 = in.readuint16();
    _s.reserved12 = in.readuint16();
    _s.reserved13 = in.readuint16();
    _s.lidFE = in.readuint16();
}
void MSO::parseFibRgLw97(LEInputStream &in, FibRgLw97 &_s)
{
    _s.streamOffset = in.getPosition();
    _s.cbMac = in.readuint32();
    _s.reserved1 = in.readuint32();
    _s.reserved2 = in.readuint32();
    _s.ccpText = in.readint32();
    if (!(((qint32)_s.ccpText) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.ccpText)>=0");
    }
    _s.ccpFtn = in.readint32();
    if (!(((qint32)_s.ccpFtn) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.ccpFtn)>=0");
    }
    _s.ccpHdd = in.readint32();
    if (!(((qint32)_s.ccpHdd) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.ccpHdd)>=0");
    }
    _s.reserved3 = in.readuint32();
    if (!(((quint32)_s.reserved3) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reserved3) == 0");
    }
    _s.ccpAtn = in.readint32();
    if (!(((qint32)_s.ccpAtn) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.ccpAtn)>=0");
    }
    _s.ccpEdn = in.readint32();
    if (!(((qint32)_s.ccpEdn) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.ccpEdn)>=0");
    }
    _s.ccpTxbx = in.readint32();
    if (!(((qint32)_s.ccpTxbx) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.ccpTxbx)>=0");
    }
    _s.ccpHdrTxbx = in.readint32();
    if (!(((qint32)_s.ccpHdrTxbx) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.ccpHdrTxbx)>=0");
    }
    _s.reserved4 = in.readuint32();
    _s.reserved5 = in.readuint32();
    _s.reserved6 = in.readuint32();
    _s.reserved7 = in.readuint32();
    _s.reserved8 = in.readuint32();
    _s.reserved9 = in.readuint32();
    _s.reserved10 = in.readuint32();
    _s.reserved11 = in.readuint32();
    _s.reserved12 = in.readuint32();
    _s.reserved13 = in.readuint32();
    if (!(((quint32)_s.reserved13) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reserved13) == 0");
    }
    _s.reserved14 = in.readuint32();
    if (!(((quint32)_s.reserved14) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reserved14) == 0");
    }
}
void MSO::parseFibRgFcLcb97(LEInputStream &in, FibRgFcLcb97 &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fcStshfOrig = in.readuint32();
    _s.lcbStshfOrig = in.readuint32();
    _s.fcStshf = in.readuint32();
    _s.lcbStshf = in.readuint32();
    _s.fcPlcffndRef = in.readuint32();
    _s.lcbPlcffndRef = in.readuint32();
    _s.fcPlcffndTxt = in.readuint32();
    _s.lcbPlcffndTxt = in.readuint32();
    _s.fcPlcfandRef = in.readuint32();
    _s.lcbPlcfandRef = in.readuint32();
    _s.fcPlcfandTxt = in.readuint32();
    _s.lcbPlcfandTxt = in.readuint32();
    _s.fcPlcfSed = in.readuint32();
    _s.lcbPlcfSed = in.readuint32();
    _s.fcPlcPad = in.readuint32();
    _s.lcbPlcPad = in.readuint32();
    _s.fcPlcfPhe = in.readuint32();
    _s.lcbPlcfPhe = in.readuint32();
    _s.fcSttbfGlsy = in.readuint32();
    _s.lcbSttbfGlsy = in.readuint32();
    _s.fcPlcfGlsy = in.readuint32();
    _s.lcbPlcfGlsy = in.readuint32();
    _s.fcPlcfHdd = in.readuint32();
    _s.lcbPlcfHdd = in.readuint32();
    _s.fcPlcfBteChpx = in.readuint32();
    _s.lcbPlcfBteChpx = in.readuint32();
    _s.fcPlcfBtePapx = in.readuint32();
    _s.lcbPlcfBtePapx = in.readuint32();
    _s.fcPlcfSea = in.readuint32();
    _s.lcbPlcfSea = in.readuint32();
    _s.fcSttbfFfn = in.readuint32();
    _s.lcbSttbfFfn = in.readuint32();
    _s.fcPlcfFldMom = in.readuint32();
    _s.lcbPlcfFldMom = in.readuint32();
    _s.fcPlcfFldHdr = in.readuint32();
    _s.lcbPlcfFldHdr = in.readuint32();
    _s.fcPlcfFldFtn = in.readuint32();
    _s.lcbPlcfFldFtn = in.readuint32();
    _s.fcPlcfFldAtn = in.readuint32();
    _s.lcbPlcfFldAtn = in.readuint32();
    _s.fcPlcfFldMcr = in.readuint32();
    _s.lcbPlcfFldMcr = in.readuint32();
    _s.fcSttbfBkmk = in.readuint32();
    _s.lcbSttbfBkmk = in.readuint32();
    _s.fcPlcfBkf = in.readuint32();
    _s.lcbPlcfBkf = in.readuint32();
    _s.fcPlcfBkl = in.readuint32();
    _s.lcbPlcfBkl = in.readuint32();
    _s.fcCmds = in.readuint32();
    _s.lcbCmds = in.readuint32();
    _s.fcUnused1 = in.readuint32();
    _s.lcbUnused1 = in.readuint32();
    _s.fcSttbfMcr = in.readuint32();
    _s.lcbSttbfMcr = in.readuint32();
    _s.fcPrDrvr = in.readuint32();
    _s.lcbPrDrvr = in.readuint32();
    _s.fcPrEnvPort = in.readuint32();
    _s.lcbPrEnvPort = in.readuint32();
    _s.fcPrEnvLand = in.readuint32();
    _s.lcbPrEnvLand = in.readuint32();
    _s.fcWss = in.readuint32();
    _s.lcbWss = in.readuint32();
    _s.fcDop = in.readuint32();
    _s.lcbDop = in.readuint32();
    _s.fcSttbfAssoc = in.readuint32();
    _s.lcbSttbfAssoc = in.readuint32();
    _s.fcClx = in.readuint32();
    _s.lcbClx = in.readuint32();
    _s.fcPlcfPgdFtn = in.readuint32();
    _s.lcbPlcfPgdFtn = in.readuint32();
    _s.fcAutosaveSource = in.readuint32();
    _s.lcbAutosaveSource = in.readuint32();
    _s.fcGrpXstAtnOwners = in.readuint32();
    _s.lcbGrpXstAtnOwners = in.readuint32();
    _s.fcSttbfAtnBkmk = in.readuint32();
    _s.lcbSttbfAtnBkmk = in.readuint32();
    _s.fcUnused2 = in.readuint32();
    _s.lcbUnused2 = in.readuint32();
    _s.fcUnused3 = in.readuint32();
    _s.lcbUnused3 = in.readuint32();
    _s.fcPlcSpaMom = in.readuint32();
    _s.lcbPlcSpaMom = in.readuint32();
    _s.fcPlcSpaHdr = in.readuint32();
    _s.lcbPlcSpaHdr = in.readuint32();
    _s.fcPlcfAtnBkf = in.readuint32();
    _s.lcbPlcfAtnBkf = in.readuint32();
    _s.fcPlcfAtnBkl = in.readuint32();
    _s.lcbPlcfAtnBkl = in.readuint32();
    _s.fcPms = in.readuint32();
    _s.lcbPms = in.readuint32();
    _s.fcFormFldSttbs = in.readuint32();
    _s.lcbFormFldSttbs = in.readuint32();
    _s.fcPlcfendRef = in.readuint32();
    _s.lcbPlcfendRef = in.readuint32();
    _s.fcPlcfendTxt = in.readuint32();
    _s.lcbPlcfendTxt = in.readuint32();
    _s.fcPlcfFldEdn = in.readuint32();
    _s.lcbPlcfFldEdn = in.readuint32();
    _s.fcUnused4 = in.readuint32();
    _s.lcbUnused4 = in.readuint32();
    _s.fcDggInfo = in.readuint32();
    _s.lcbDggInfo = in.readuint32();
    _s.fcSttbfRMark = in.readuint32();
    _s.lcbSttbfRMark = in.readuint32();
    _s.fcSttbfCaption = in.readuint32();
    _s.lcbSttbfCaption = in.readuint32();
    _s.fcSttbfAutoCaption = in.readuint32();
    _s.lcbSttbfAutoCaption = in.readuint32();
    _s.fcPlcfWkb = in.readuint32();
    _s.lcbPlcfWkb = in.readuint32();
    _s.fcPlcfSpl = in.readuint32();
    _s.lcbPlcfSpl = in.readuint32();
    _s.fcPlcftxbxTxt = in.readuint32();
    _s.lcbPlcftxbxTxt = in.readuint32();
    _s.fcPlcfFldTxbx = in.readuint32();
    _s.lcbPlcfFldTxbx = in.readuint32();
    _s.fcPlcfHdrtxbxTxt = in.readuint32();
    _s.lcbPlcfHdrtxbxTxt = in.readuint32();
    _s.fcPlcffldHdrTxbx = in.readuint32();
    _s.lcbPlcffldHdrTxbx = in.readuint32();
    _s.fcStwUser = in.readuint32();
    _s.lcbStwUser = in.readuint32();
    _s.fcSttbTtmbd = in.readuint32();
    _s.lcbSttbTtmbd = in.readuint32();
    _s.fcCookieData = in.readuint32();
    _s.lcbCookieData = in.readuint32();
    _s.fcPgdMotherOldOld = in.readuint32();
    _s.lcbPgdMotherOldOld = in.readuint32();
    _s.fcBkdMotherOldOld = in.readuint32();
    _s.lcbBkdMotherOldOld = in.readuint32();
    _s.fcPgdFtnOldOld = in.readuint32();
    _s.lcbPgdFtnOldOld = in.readuint32();
    _s.fcBkdFtnOldOld = in.readuint32();
    _s.lcbBkdFtnOldOld = in.readuint32();
    _s.fcPgdEdnOldOld = in.readuint32();
    _s.lcbPgdEdnOldOld = in.readuint32();
    _s.fcBkdEdnOldOld = in.readuint32();
    _s.lcbBkdEdnOldOld = in.readuint32();
    _s.fcSttbfIntlFld = in.readuint32();
    _s.lcbSttbfIntlFld = in.readuint32();
    _s.fcRouteSlip = in.readuint32();
    _s.lcbRouteSlip = in.readuint32();
    _s.fcSttbSavedBy = in.readuint32();
    _s.lcbSttbSavedBy = in.readuint32();
    _s.fcSttbFnm = in.readuint32();
    _s.lcbSttbFnm = in.readuint32();
    _s.fcPlfLst = in.readuint32();
    _s.lcbPlfLst = in.readuint32();
    _s.fcPlfLfo = in.readuint32();
    _s.lcbPlfLfo = in.readuint32();
    _s.fcPlcfTxbxBkd = in.readuint32();
    _s.lcbPlcfTxbxBkd = in.readuint32();
    _s.fcPlcfTxbxHdrBkd = in.readuint32();
    _s.lcbPlcfTxbxHdrBkd = in.readuint32();
    _s.fcDocUndoWord9 = in.readuint32();
    _s.lcbDocUndoWord9 = in.readuint32();
    _s.fcRgbUse = in.readuint32();
    _s.lcbRgbUse = in.readuint32();
    _s.fcUsp = in.readuint32();
    _s.lcbUsp = in.readuint32();
    _s.fcUskf = in.readuint32();
    _s.lcbUskf = in.readuint32();
    _s.fcPlcupcRgbUse = in.readuint32();
    _s.lcbPlcupcRgbUse = in.readuint32();
    _s.fcPlcupcUsp = in.readuint32();
    _s.lcbPlcupcUsp = in.readuint32();
    _s.fcSttbGlsyStyle = in.readuint32();
    _s.lcbSttbGlsyStyle = in.readuint32();
    _s.fcPlgosl = in.readuint32();
    _s.lcbPlgosl = in.readuint32();
    _s.fcPlcocx = in.readuint32();
    _s.lcbPlcocx = in.readuint32();
    _s.fcPlcfBteLvc = in.readuint32();
    _s.lcbPlcfBteLvc = in.readuint32();
    _s.dwLowDateTime = in.readuint32();
    _s.dwHighDateTime = in.readuint32();
    _s.fcPlcfLvcPre10 = in.readuint32();
    _s.lcbPlcfLvcPre10 = in.readuint32();
    _s.fcPlcfAsumy = in.readuint32();
    _s.lcbPlcfAsumy = in.readuint32();
    _s.fcPlcfGram = in.readuint32();
    _s.lcbPlcfGram = in.readuint32();
    _s.fcSttbListNames = in.readuint32();
    _s.lcbSttbListNames = in.readuint32();
    _s.fcSttbfUssr = in.readuint32();
    _s.lcbSttbfUssr = in.readuint32();
}
void MSO::parseFibRgFcLcb2000(LEInputStream &in, FibRgFcLcb2000 &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fcPlcfTch = in.readuint32();
    _s.lcbPlcfTch = in.readuint32();
    _s.fcRmdThreading = in.readuint32();
    _s.lcbRmdThreading = in.readuint32();
    _s.fcMid = in.readuint32();
    _s.lcbMid = in.readuint32();
    _s.fcSttbRgtplc = in.readuint32();
    _s.lcbSttbRgtplc = in.readuint32();
    _s.fcMsoEnvelope = in.readuint32();
    _s.lcbMsoEnvelope = in.readuint32();
    _s.fcPlcfLad = in.readuint32();
    _s.lcbPlcfLad = in.readuint32();
    _s.fcRgDofr = in.readuint32();
    _s.lcbRgDofr = in.readuint32();
    _s.fcPlcosl = in.readuint32();
    _s.lcbPlcosl = in.readuint32();
    _s.fcPlcfCookieOld = in.readuint32();
    _s.lcbPlcfCookieOld = in.readuint32();
    _s.fcPgdMotherOld = in.readuint32();
    _s.lcbPgdMotherOld = in.readuint32();
    _s.fcBkdMotherOld = in.readuint32();
    _s.lcbBkdMotherOld = in.readuint32();
    _s.fcPgdFtnOld = in.readuint32();
    _s.lcbPgdFtnOld = in.readuint32();
    _s.fcBkdFtnOld = in.readuint32();
    _s.lcbBkdFtnOld = in.readuint32();
    _s.fcPgdEdnOld = in.readuint32();
    _s.lcbPgdEdnOld = in.readuint32();
    _s.fcBkdEdnOld = in.readuint32();
    _s.lcbBkdEdnOld = in.readuint32();
}
void MSO::parseFibRgFcLcb2002(LEInputStream &in, FibRgFcLcb2002 &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fcUnused1 = in.readuint32();
    _s.lcbUnused1 = in.readuint32();
    _s.fcPlcfPgp = in.readuint32();
    _s.lcbPlcfPgp = in.readuint32();
    _s.fcPlcfuim = in.readuint32();
    _s.lcbPlcfuim = in.readuint32();
    _s.fcPlfguidUim = in.readuint32();
    _s.lcbPlfguidUim = in.readuint32();
    _s.fcAtrdExtra = in.readuint32();
    _s.lcbAtrdExtra = in.readuint32();
    _s.fcPlrsid = in.readuint32();
    _s.lcbPlrsid = in.readuint32();
    _s.fcSttbfBkmkFactoid = in.readuint32();
    _s.lcbSttbfBkmkFactoid = in.readuint32();
    _s.fcPlcfBkfFactoid = in.readuint32();
    _s.lcbPlcfBkfFactoid = in.readuint32();
    _s.fcPlcfcookie = in.readuint32();
    _s.lcbPlcfcookie = in.readuint32();
    _s.fcPlcfBklFactoid = in.readuint32();
    _s.lcbPlcfBklFactoid = in.readuint32();
    _s.fcFactoidData = in.readuint32();
    _s.lcbFactoidData = in.readuint32();
    _s.fcDocUndo = in.readuint32();
    _s.lcbDocUndo = in.readuint32();
    _s.fcSttbfBkmkFcc = in.readuint32();
    _s.lcbSttbfBkmkFcc = in.readuint32();
    _s.fcPlcfBkfFcc = in.readuint32();
    _s.lcbPlcfBkfFcc = in.readuint32();
    _s.fcPlcfBklFcc = in.readuint32();
    _s.lcbPlcfBklFcc = in.readuint32();
    _s.fcSttbfbkmkBPRepairs = in.readuint32();
    _s.lcbSttbfbkmkBPRepairs = in.readuint32();
    _s.fcPlcfbkfBPRepairs = in.readuint32();
    _s.lcbPlcfbkfBPRepairs = in.readuint32();
    _s.fcPlcfbklBPRepairs = in.readuint32();
    _s.lcbPlcfbklBPRepairs = in.readuint32();
    _s.fcPmsNew = in.readuint32();
    _s.lcbPmsNew = in.readuint32();
    _s.fcODSO = in.readuint32();
    _s.lcbODSO = in.readuint32();
    _s.fcPlcfpmiOldXP = in.readuint32();
    _s.lcbPlcfpmiOldXP = in.readuint32();
    _s.fcPlcfpmiNewXP = in.readuint32();
    _s.lcbPlcfpmiNewXP = in.readuint32();
    _s.fcPlcfpmiMixedXP = in.readuint32();
    _s.lcbPlcfpmiMixedXP = in.readuint32();
    _s.fcUnused2 = in.readuint32();
    _s.lcbUnused2 = in.readuint32();
    _s.fcPlcffactoid = in.readuint32();
    _s.lcbPlcffactoid = in.readuint32();
}
void MSO::parseLPStshi(LEInputStream &in, LPStshi &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.cbSthi = in.readuint16();
    _c = _s.cbSthi;
    _s.stshi.resize(_c);
    in.readBytes(_s.stshi);
}
void MSO::parseLPStd(LEInputStream &in, LPStd &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.cbStd = in.readuint16();
    _c = _s.cbStd;
    _s.std.resize(_c);
    in.readBytes(_s.std);
    _s._has_padding = _s.cbStd % 2 == 1;
    if (_s._has_padding) {
        _s.padding = in.readuint8();
    }
}
void MSO::parsePlcfSed(LEInputStream &in, PlcfSed &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _c = 2;
    _s.aCP.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.aCP[_i] = in.readuint32();
    }
    _c = 1;
    for (int _i = 0; _i < _c; ++_i) {
        _s.aSed.append(Sed(&_s));
        parseSed(in, _s.aSed[_i]);
    }
}
void MSO::parseSed(LEInputStream &in, Sed &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fn = in.readuint16();
    _s.fcSepx = in.readint32();
    _s.fnMpr = in.readuint16();
    _s.fcMpr = in.readuint32();
}
void MSO::parsePlcfhdd(LEInputStream &in, Plcfhdd &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _c = 13;
    _s.aCP.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.aCP[_i] = in.readuint32();
    }
}
void MSO::parsePlcBteChpx(LEInputStream &in, PlcBteChpx &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _c = 2;
    _s.aCP.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.aCP[_i] = in.readuint32();
    }
    _c = 1;
    _s.aPnBteChpx.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.aPnBteChpx[_i] = in.readuint32();
    }
}
void MSO::parsePlcfBtePapx(LEInputStream &in, PlcfBtePapx &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _c = 2;
    _s.aCP.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.aCP[_i] = in.readuint32();
    }
    _c = 1;
    _s.aPnBteChpx.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.aPnBteChpx[_i] = in.readuint32();
    }
}
void MSO::parseTcg(LEInputStream &in, Tcg &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.nTcgVer = in.readuint8();
    if (!(((quint8)_s.nTcgVer) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.nTcgVer) == 0");
    }
    _c = 11;
    _s.todo.resize(_c);
    in.readBytes(_s.todo);
}
void MSO::parsePrcData(LEInputStream &in, PrcData &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.cbGrpprl = in.readint16();
    if (!(((qint16)_s.cbGrpprl) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint16)_s.cbGrpprl)>=0");
    }
    if (!(((qint16)_s.cbGrpprl) <= 16290)) {
        throw IncorrectValueException(in.getPosition(), "((qint16)_s.cbGrpprl)<=16290");
    }
    if (!(((qint16)_s.cbGrpprl) % 2 == 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint16)_s.cbGrpprl)%2==0");
    }
    _c = _s.cbGrpprl / 2;
    for (int _i = 0; _i < _c; ++_i) {
        _s.GrpPrl.append(Sprm(&_s));
        parseSprm(in, _s.GrpPrl[_i]);
    }
}
void MSO::parseSprm(LEInputStream &in, Sprm &_s)
{
    _s.streamOffset = in.getPosition();
    _s.ispmd = in.readuint9();
    _s.fSpec = in.readbit();
    _s.sgc = in.readuint3();
    _s.spra = in.readuint3();
}
void MSO::parsePcdt(LEInputStream &in, Pcdt &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.clxt = in.readuint8();
    if (!(((quint8)_s.clxt) == 2)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.clxt) == 2");
    }
    _s.lcb = in.readuint32();
    _c = _s.lcb / 8;
    for (int _i = 0; _i < _c; ++_i) {
        _s.PlcPcd.append(Pcd(&_s));
        parsePcd(in, _s.PlcPcd[_i]);
    }
}
void MSO::parseFCompressed(LEInputStream &in, FCompressed &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fc = in.readuint30();
    _s.fCompressed = in.readbit();
    _s.r1 = in.readbit();
}
void MSO::parsePrm0(LEInputStream &in, Prm0 &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fComplex = in.readbit();
    if (!(((bool)_s.fComplex) == false)) {
        throw IncorrectValueException(in.getPosition(), "((bool)_s.fComplex) == false");
    }
    _s.isprm = in.readuint7();
    _s.val = in.readuint8();
}
void MSO::parsePrm1(LEInputStream &in, Prm1 &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fComplex = in.readbit();
    if (!(((bool)_s.fComplex) == true)) {
        throw IncorrectValueException(in.getPosition(), "((bool)_s.fComplex) == true");
    }
    _s.igrpprl = in.readuint15();
}
void MSO::parseSttbfFfn(LEInputStream &in, SttbfFfn &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.cData = in.readuint16();
    _s.cbExtra = in.readuint16();
    if (!(((quint16)_s.cbExtra) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.cbExtra) == 0");
    }
    _c = _s.cData;
    for (int _i = 0; _i < _c; ++_i) {
        _s.data.append(SttbfFfnEntry(&_s));
        parseSttbfFfnEntry(in, _s.data[_i]);
    }
}
void MSO::parseSttbfFfnEntry(LEInputStream &in, SttbfFfnEntry &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.cchData = in.readuint8();
    _c = _s.cchData;
    _s.Data.resize(_c);
    in.readBytes(_s.Data);
}
void MSO::parseCodePageString(LEInputStream &in, CodePageString &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.size = in.readuint32();
    _c = 4 * (_s.size / 4) + ((_s.size % 4 != 0) ? 4 : 0);
    _s.characters.resize(_c);
    in.readBytes(_s.characters);
}
void MSO::parseFILETIME(LEInputStream &in, FILETIME &_s)
{
    _s.streamOffset = in.getPosition();
    _s.dwLowDateTime = in.readuint32();
    _s.dwHighDateTime = in.readuint32();
}
void MSO::parseClipboardData(LEInputStream &in, ClipboardData &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.size = in.readuint32();
    _s.format = in.readuint32();
    _c = 4 * (_s.size / 4) + ((_s.size % 4 != 0) ? 4 : 0) - 4;
    _s.data.resize(_c);
    in.readBytes(_s.data);
}
void MSO::parsePropertyIdentifierAndOffset(LEInputStream &in, PropertyIdentifierAndOffset &_s)
{
    _s.streamOffset = in.getPosition();
    _s.propertyIdentifier = in.readuint32();
    _s.offset = in.readuint32();
}
void MSO::parseTypedPropertyValue(LEInputStream &in, TypedPropertyValue &_s)
{
    _s.streamOffset = in.getPosition();
    _s.type = in.readuint16();
    _s.padding = in.readuint16();
    _s._has_vt_I2 = _s.type == 2;
    if (_s._has_vt_I2) {
        _s.vt_I2 = in.readuint16();
    }
    _s._has_paddingI2 = _s.type == 2;
    if (_s._has_paddingI2) {
        _s.paddingI2 = in.readuint16();
    }
    _s._has_vg_ERROR = _s.type == 10;
    if (_s._has_vg_ERROR) {
        _s.vg_ERROR = in.readuint32();
    }
    if (_s.type == 30) {
        _s.vt_lpstr = QSharedPointer<CodePageString>(new CodePageString(&_s));
        parseCodePageString(in, *_s.vt_lpstr.data());
    }
    if (_s.type == 64) {
        _s.vg_FILETIME = QSharedPointer<FILETIME>(new FILETIME(&_s));
        parseFILETIME(in, *_s.vg_FILETIME.data());
    }
    if (_s.type == 71) {
        _s.vg_CF = QSharedPointer<ClipboardData>(new ClipboardData(&_s));
        parseClipboardData(in, *_s.vg_CF.data());
    }
}
void MSO::parsePropertySet(LEInputStream &in, PropertySet &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    _s.size = in.readuint32();
    _s.numProperties = in.readuint32();
    _c = _s.numProperties;
    for (int _i = 0; _i < _c; ++_i) {
        _s.propertyIdentifierAndOffset.append(PropertyIdentifierAndOffset(&_s));
        parsePropertyIdentifierAndOffset(in, _s.propertyIdentifierAndOffset[_i]);
    }
    _c = _s.numProperties;
    for (int _i = 0; _i < _c; ++_i) {
        _s.property.append(TypedPropertyValue(&_s));
        parseTypedPropertyValue(in, _s.property[_i]);
    }
}
void MSO::parsePropertySetStream(LEInputStream &in, PropertySetStream &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    bool _atend;
    _s.byteOrder = in.readuint16();
    if (!(((quint16)_s.byteOrder) == 0xFFFE)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.byteOrder) == 0xFFFE");
    }
    _s.version = in.readuint16();
    _s.systemIdentifier = in.readuint32();
    _c = 16;
    _s.clsID.resize(_c);
    in.readBytes(_s.clsID);
    _s.numPropertySets = in.readuint32();
    if (!(((quint32)_s.numPropertySets) == 1 || ((quint32)_s.numPropertySets) == 2)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.numPropertySets) == 1 || ((quint32)_s.numPropertySets) == 2");
    }
    _c = 16;
    _s.fmtID0.resize(_c);
    in.readBytes(_s.fmtID0);
    _s.offset0 = in.readuint32();
    _s._has_fmtID1 = _s.numPropertySets == 2;
    if (_s._has_fmtID1) {
        _c = 16;
        _s.fmtID1.resize(_c);
        in.readBytes(_s.fmtID1);
    }
    _s._has_offset1 = _s.numPropertySets == 2;
    if (_s._has_offset1) {
        _s.offset1 = in.readuint32();
    }
    parsePropertySet(in, _s.propertySet1);
    if (_s.numPropertySets == 2) {
        _s.propertySet2 = QSharedPointer<PropertySet>(new PropertySet(&_s));
        parsePropertySet(in, *_s.propertySet2.data());
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.padding.append(Byte(&_s));
            parseByte(in, _s.padding.last());
        } catch (IncorrectValueException &_e) {
            _s.padding.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.padding.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseSummaryInformationPropertySetStream(LEInputStream &in, SummaryInformationPropertySetStream &_s)
{
    _s.streamOffset = in.getPosition();
    parsePropertySetStream(in, _s.propertySet);
    if (!(_s.propertySet.version == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.propertySet.version == 0");
    }
}
void MSO::parseDocumentSummaryInformationPropertySetStream(LEInputStream &in, DocumentSummaryInformationPropertySetStream &_s)
{
    _s.streamOffset = in.getPosition();
    parsePropertySetStream(in, _s.propertySet);
    if (!(_s.propertySet.version == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.propertySet.version == 0");
    }
}
void MSO::parsePicturesStream(LEInputStream &in, PicturesStream &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseOfficeArtBStoreDelay(in, _s.anon1);
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.trailing.append(Byte(&_s));
            parseByte(in, _s.trailing.last());
        } catch (IncorrectValueException &_e) {
            _s.trailing.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.trailing.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseOfficeArtMetafileHeader(LEInputStream &in, OfficeArtMetafileHeader &_s)
{
    _s.streamOffset = in.getPosition();
    _s.cbSize = in.readuint32();
    parseRECT(in, _s.rcBounds);
    parsePOINT(in, _s.ptSize);
    _s.cbsave = in.readuint32();
    _s.compression = in.readuint8();
    _s.filter = in.readuint8();
}
void MSO::parseSoundCollectionContainer(LEInputStream &in, SoundCollectionContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0 || _s.rh.recInstance == 5");
    }
    if (!(_s.rh.recType == 0x7E4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x7E4");
    }
    parseSoundCollectionAtom(in, _s.soundCollectionAtom);
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen - 12, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgSoundContainer.append(SoundContainer(&_s));
        parseSoundContainer(in, _s.rgSoundContainer.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseSlideHeadersFootersContainer(LEInputStream &in, SlideHeadersFootersContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 3");
    }
    if (!(_s.rh.recType == 0xFD9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFD9");
    }
    parseHeadersFootersAtom(in, _s.hfAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0)
            && (_optionCheck.recLen <= 510);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.userDateAtom = QSharedPointer<UserDateAtom>(new UserDateAtom(&_s));
            parseUserDateAtom(in, *_s.userDateAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.userDateAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.userDateAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 2) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.footerAtom = QSharedPointer<FooterAtom>(new FooterAtom(&_s));
            parseFooterAtom(in, *_s.footerAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.footerAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.footerAtom.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseNotesHeadersFootersContainer(LEInputStream &in, NotesHeadersFootersContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 4");
    }
    if (!(_s.rh.recType == 0xFD9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFD9");
    }
    parseHeadersFootersAtom(in, _s.hfAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0)
            && (_optionCheck.recLen <= 510);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.userDateAtom = QSharedPointer<UserDateAtom>(new UserDateAtom(&_s));
            parseUserDateAtom(in, *_s.userDateAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.userDateAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.userDateAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 1) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.headerAtom = QSharedPointer<HeaderAtom>(new HeaderAtom(&_s));
            parseHeaderAtom(in, *_s.headerAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.headerAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.headerAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 2) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.footerAtom = QSharedPointer<FooterAtom>(new FooterAtom(&_s));
            parseFooterAtom(in, *_s.footerAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.footerAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.footerAtom.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseScalingStruct(LEInputStream &in, ScalingStruct &_s)
{
    _s.streamOffset = in.getPosition();
    parseRatioStruct(in, _s.x);
    parseRatioStruct(in, _s.y);
}
void MSO::parseTextPFException9(LEInputStream &in, TextPFException9 &_s)
{
    _s.streamOffset = in.getPosition();
    parsePFMasks(in, _s.masks);
    if (!(_s.masks.hasBullet == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.hasBullet == false");
    }
    if (!(_s.masks.bulletHasFont == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletHasFont == false");
    }
    if (!(_s.masks.bulletHasColor == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletHasColor == false");
    }
    if (!(_s.masks.bulletHasSize == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletHasSize == false");
    }
    if (!(_s.masks.bulletFont == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletFont == false");
    }
    if (!(_s.masks.bulletColor == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletColor == false");
    }
    if (!(_s.masks.bulletSize == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletSize == false");
    }
    if (!(_s.masks.bulletChar == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletChar == false");
    }
    if (!(_s.masks.leftMargin == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.leftMargin == false");
    }
    if (!(_s.masks.indent == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.indent == false");
    }
    if (!(_s.masks.align == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.align == false");
    }
    if (!(_s.masks.lineSpacing == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.lineSpacing == false");
    }
    if (!(_s.masks.spaceBefore == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.spaceBefore == false");
    }
    if (!(_s.masks.spaceAfter == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.spaceAfter == false");
    }
    if (!(_s.masks.defaultTabSize == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.defaultTabSize == false");
    }
    if (!(_s.masks.fontAlign == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.fontAlign == false");
    }
    if (!(_s.masks.charWrap == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.charWrap == false");
    }
    if (!(_s.masks.wordWrap == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.wordWrap == false");
    }
    if (!(_s.masks.overflow == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.overflow == false");
    }
    if (!(_s.masks.tabStops == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.tabStops == false");
    }
    if (!(_s.masks.textDirection == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.textDirection == false");
    }
    _s._has_bulletBlipRef = _s.masks.bulletBlip;
    if (_s._has_bulletBlipRef) {
        _s.bulletBlipRef = in.readuint16();
    }
    _s._has_fBulletHasAutoNumber = _s.masks.bulletHasScheme;
    if (_s._has_fBulletHasAutoNumber) {
        _s.fBulletHasAutoNumber = in.readuint16();
        if (!(((quint16)_s.fBulletHasAutoNumber) == 0 || ((quint16)_s.fBulletHasAutoNumber) == 1)) {
            throw IncorrectValueException(in.getPosition(), "((quint16)_s.fBulletHasAutoNumber) == 0 || ((quint16)_s.fBulletHasAutoNumber) == 1");
        }
    }
    if (_s.masks.bulletScheme) {
        _s.bulletAutoNumberScheme = QSharedPointer<TextAutoNumberScheme>(new TextAutoNumberScheme(&_s));
        parseTextAutoNumberScheme(in, *_s.bulletAutoNumberScheme.data());
    }
}
void MSO::parseTextCFException9(LEInputStream &in, TextCFException9 &_s)
{
    _s.streamOffset = in.getPosition();
    parseCFMasks(in, _s.masks);
    if (!(_s.masks.bold == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bold == false");
    }
    if (!(_s.masks.italic == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.italic == false");
    }
    if (!(_s.masks.underline == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.underline == false");
    }
    if (!(_s.masks.shadow == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.shadow == false");
    }
    if (!(_s.masks.fehint == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.fehint == false");
    }
    if (!(_s.masks.kumi == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.kumi == false");
    }
    if (!(_s.masks.emboss == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.emboss == false");
    }
    if (!(_s.masks.reserved == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.reserved == 0");
    }
    if (!(_s.masks.typeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.typeface == false");
    }
    if (!(_s.masks.size == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.size == false");
    }
    if (!(_s.masks.color == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.color == false");
    }
    if (!(_s.masks.position == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.position == false");
    }
    if (!(_s.masks.oldEATypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.oldEATypeface == false");
    }
    if (!(_s.masks.ansiTypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.ansiTypeface == false");
    }
    if (!(_s.masks.symbolTypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.symbolTypeface == false");
    }
    if (!(_s.masks.newEATypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.newEATypeface == false");
    }
    if (!(_s.masks.csTypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.csTypeface == false");
    }
    if (!(_s.masks.pp11ext == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.pp11ext == false");
    }
    _s._has_pp10runid = _s.masks.pp10ext;
    if (_s._has_pp10runid) {
        _s.pp10runid = in.readuint4();
    }
    _s._has_unuseda = _s.masks.pp10ext;
    if (_s._has_unuseda) {
        _s.unuseda = in.readuint20();
    }
    _s._has_unusedb = _s.masks.pp10ext;
    if (_s._has_unusedb) {
        _s.unusedb = in.readuint8();
    }
}
void MSO::parseTextDefaults9Atom(LEInputStream &in, TextDefaults9Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x00)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x00");
    }
    if (!(_s.rh.recType == 0x0FB0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FB0");
    }
    parseTextCFException9(in, _s.cf9);
    parseTextPFException9(in, _s.pf9);
}
void MSO::parseKinsoku9Container(LEInputStream &in, Kinsoku9Container &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x2");
    }
    if (!(_s.rh.recType == 0x0FC8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FC8");
    }
    parseKinsoku9Atom(in, _s.kinsoku9Atom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.kinsokuLeadingAtom = QSharedPointer<KinsokuLeadingAtom>(new KinsokuLeadingAtom(&_s));
            parseKinsokuLeadingAtom(in, *_s.kinsokuLeadingAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.kinsokuLeadingAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.kinsokuLeadingAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 1) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.kinsokuFollowingAtom = QSharedPointer<KinsokuFollowingAtom>(new KinsokuFollowingAtom(&_s));
            parseKinsokuFollowingAtom(in, *_s.kinsokuFollowingAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.kinsokuFollowingAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.kinsokuFollowingAtom.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseOutlineTextProps9Entry(LEInputStream &in, OutlineTextProps9Entry &_s)
{
    _s.streamOffset = in.getPosition();
    parseOutlineTextPropsHeaderExAtom(in, _s.outlineTextHeaderAtom);
    parseStyleTextProp9Atom(in, _s.styleTextProp9Atom);
}
void MSO::parseTextCFException10(LEInputStream &in, TextCFException10 &_s)
{
    _s.streamOffset = in.getPosition();
    parseCFMasks(in, _s.masks);
    if (!(_s.masks.bold == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bold == false");
    }
    if (!(_s.masks.italic == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.italic == false");
    }
    if (!(_s.masks.underline == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.underline == false");
    }
    if (!(_s.masks.shadow == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.shadow == false");
    }
    if (!(_s.masks.fehint == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.fehint == false");
    }
    if (!(_s.masks.kumi == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.kumi == false");
    }
    if (!(_s.masks.emboss == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.emboss == false");
    }
    if (!(_s.masks.reserved == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.reserved == 0");
    }
    if (!(_s.masks.typeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.typeface == false");
    }
    if (!(_s.masks.size == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.size == false");
    }
    if (!(_s.masks.color == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.color == false");
    }
    if (!(_s.masks.position == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.position == false");
    }
    if (!(_s.masks.pp10ext == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.pp10ext == false");
    }
    if (!(_s.masks.oldEATypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.oldEATypeface == false");
    }
    if (!(_s.masks.ansiTypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.ansiTypeface == false");
    }
    if (!(_s.masks.symbolTypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.symbolTypeface == false");
    }
    _s._has_newEAFontRef = _s.masks.newEATypeface;
    if (_s._has_newEAFontRef) {
        _s.newEAFontRef = in.readuint16();
    }
    _s._has_csFontRef = _s.masks.csTypeface;
    if (_s._has_csFontRef) {
        _s.csFontRef = in.readuint16();
    }
    _s._has_pp11ext = _s.masks.pp11ext;
    if (_s._has_pp11ext) {
        _s.pp11ext = in.readuint32();
    }
}
void MSO::parseTextDefaults10Atom(LEInputStream &in, TextDefaults10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FB4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FB4");
    }
    parseTextCFException10(in, _s.cf10);
}
void MSO::parseCommentIndex10Container(LEInputStream &in, CommentIndex10Container &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x2EE4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EE4");
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen <= 104)
            && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.authorNameAtom = QSharedPointer<AuthorNameAtom>(new AuthorNameAtom(&_s));
            parseAuthorNameAtom(in, *_s.authorNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.authorNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.authorNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x2EE5) && (_optionCheck.recLen == 0x08);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.authorIndexAtom = QSharedPointer<CommentIndex10Atom>(new CommentIndex10Atom(&_s));
            parseCommentIndex10Atom(in, *_s.authorIndexAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.authorIndexAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.authorIndexAtom.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseOutlineTextProps10Entry(LEInputStream &in, OutlineTextProps10Entry &_s)
{
    _s.streamOffset = in.getPosition();
    parseOutlineTextPropsHeaderExAtom(in, _s.outlineTextHeaderAtom);
    parseStyleTextProp10Atom(in, _s.styleTextProp10Atom);
}
void MSO::parsePP11DocBinaryTagExtension(LEInputStream &in, PP11DocBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _c = 16;
    _s.tagName.resize(_c);
    in.readBytes(_s.tagName);
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0x0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    parseSmartTagStore11Container(in, _s.smartTagStore11);
    parseOutlineTextProps11Container(in, _s.outlineTextProps);
}
void MSO::parseUnknownBinaryTag(LEInputStream &in, UnknownBinaryTag &_s)
{
    _s.streamOffset = in.getPosition();
    parseTagNameAtom(in, _s.tagNameAtom);
    parseBinaryTagDataBlob(in, _s.tagData);
}
void MSO::parseNoZoomViewInfoAtom(LEInputStream &in, NoZoomViewInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x3FD)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3FD");
    }
    if (!(_s.rh.recLen == 0x34)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x34");
    }
    parseScalingStruct(in, _s.curScale);
    _c = 24;
    _s.unused1.resize(_c);
    in.readBytes(_s.unused1);
    parsePointStruct(in, _s.origin);
    _s.unused2 = in.readuint8();
    _s.fDraftMode = in.readuint8();
    _s.unused3 = in.readuint16();
}
void MSO::parseVBAInfoContainer(LEInputStream &in, VBAInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x3FF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3FF");
    }
    if (!(_s.rh.recLen == 0x14)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x14");
    }
    parseVBAInfoAtom(in, _s.vbaInfoAtom);
}
void MSO::parseNormalViewSetInfoAtom(LEInputStream &in, NormalViewSetInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x415)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x415");
    }
    if (!(_s.rh.recLen == 0x14)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x14");
    }
    parseRatioStruct(in, _s.leftPortion);
    parseRatioStruct(in, _s.topPortion);
    _s.vertBarState = in.readuint8();
    _s.horizBarState = in.readuint8();
    _s.fPreferSingleSet = in.readuint8();
    if (!(((quint8)_s.fPreferSingleSet) == 0 || ((quint8)_s.fPreferSingleSet) == 1)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.fPreferSingleSet) == 0 || ((quint8)_s.fPreferSingleSet) == 1");
    }
    _s.fHideThumbnails = in.readbit();
    _s.fBarSnapped = in.readbit();
    _s.reserved = in.readuint6();
    if (!(((quint8)_s.reserved) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved) == 0");
    }
}
void MSO::parseTextContainerMeta(LEInputStream &in, TextContainerMeta &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    RecordHeader _choice(&_s);
    parseRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recType == 0xFD8) && (_choice.recLen == 4))) {
        _s.meta = TextContainerMeta::choice242357012(new SlideNumberMCAtom(&_s));
        parseSlideNumberMCAtom(in, *(SlideNumberMCAtom *)_s.meta.data());
    }
    if (startPos == in.getPosition() && ((_choice.recType == 0xFF7) && (_choice.recLen == 8))) {
        _s.meta = TextContainerMeta::choice242357012(new DateTimeMCAtom(&_s));
        parseDateTimeMCAtom(in, *(DateTimeMCAtom *)_s.meta.data());
    }
    if (startPos == in.getPosition() && ((_choice.recType == 0xFF8) && (_choice.recLen == 4))) {
        _s.meta = TextContainerMeta::choice242357012(new GenericDateMCAtom(&_s));
        parseGenericDateMCAtom(in, *(GenericDateMCAtom *)_s.meta.data());
    }
    if (startPos == in.getPosition() && ((_choice.recType == 0xFF9) && (_choice.recLen == 4))) {
        _s.meta = TextContainerMeta::choice242357012(new HeaderMCAtom(&_s));
        parseHeaderMCAtom(in, *(HeaderMCAtom *)_s.meta.data());
    }
    if (startPos == in.getPosition() && ((_choice.recType == 0xFFA) && (_choice.recLen == 4))) {
        _s.meta = TextContainerMeta::choice242357012(new FooterMCAtom(&_s));
        parseFooterMCAtom(in, *(FooterMCAtom *)_s.meta.data());
    }
    if (startPos == in.getPosition()) {
        _s.meta = TextContainerMeta::choice242357012(new RTFDateTimeMCAtom(&_s));
        parseRTFDateTimeMCAtom(in, *(RTFDateTimeMCAtom *)_s.meta.data());
    }
}
void MSO::parseSlidePersistAtom(LEInputStream &in, SlidePersistAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x3F3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3F3");
    }
    if (!(_s.rh.recLen == 0x14)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x14");
    }
    _s.persistIdRef = in.readuint32();
    _s.reserved1 = in.readbit();
    if (!(((bool)_s.reserved1) == false)) {
        throw IncorrectValueException(in.getPosition(), "((bool)_s.reserved1) == false");
    }
    _s.fShouldCollapse = in.readbit();
    _s.fNonOutlineData = in.readbit();
    _s.reserved2 = in.readuint5();
    if (!(((quint8)_s.reserved2) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved2) == 0");
    }
    _s.reserved3 = in.readuint8();
    if (!(((quint8)_s.reserved3) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.reserved3) == 0");
    }
    _s.reserved4 = in.readuint16();
    if (!(((quint16)_s.reserved4) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.reserved4) == 0");
    }
    _s.cTexts = in.readint32();
    if (!(((qint32)_s.cTexts) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.cTexts)>=0");
    }
    if (!(((qint32)_s.cTexts) <= 8)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.cTexts)<=8");
    }
    parseSlideId(in, _s.slideId);
    _s.reserved5 = in.readuint32();
    if (!(((quint32)_s.reserved5) == 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.reserved5) == 0");
    }
}
void MSO::parseTextRuler(LEInputStream &in, TextRuler &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fDefaultTabSize = in.readbit();
    _s.fCLevels = in.readbit();
    _s.fTabStops = in.readbit();
    _s.fLeftMargin1 = in.readbit();
    _s.fLeftMargin2 = in.readbit();
    _s.fLeftMargin3 = in.readbit();
    _s.fLeftMargin4 = in.readbit();
    _s.fLeftMargin5 = in.readbit();
    _s.fIndent1 = in.readbit();
    _s.fIndent2 = in.readbit();
    _s.fIndent3 = in.readbit();
    _s.fIndent4 = in.readbit();
    _s.fIndent5 = in.readbit();
    _s.reserved1 = in.readuint3();
    _s.reserved2 = in.readuint16();
    _s._has_cLevels = _s.fCLevels;
    if (_s._has_cLevels) {
        _s.cLevels = in.readint16();
    }
    _s._has_defaultTabSize = _s.fDefaultTabSize;
    if (_s._has_defaultTabSize) {
        _s.defaultTabSize = in.readuint16();
    }
    if (_s.fTabStops) {
        _s.tabs = QSharedPointer<TabStops>(new TabStops(&_s));
        parseTabStops(in, *_s.tabs.data());
    }
    _s._has_leftMargin1 = _s.fLeftMargin1;
    if (_s._has_leftMargin1) {
        _s.leftMargin1 = in.readuint16();
    }
    _s._has_indent1 = _s.fIndent1;
    if (_s._has_indent1) {
        _s.indent1 = in.readuint16();
    }
    _s._has_leftMargin2 = _s.fLeftMargin2;
    if (_s._has_leftMargin2) {
        _s.leftMargin2 = in.readuint16();
    }
    _s._has_indent2 = _s.fIndent2;
    if (_s._has_indent2) {
        _s.indent2 = in.readuint16();
    }
    _s._has_leftMargin3 = _s.fLeftMargin3;
    if (_s._has_leftMargin3) {
        _s.leftMargin3 = in.readuint16();
    }
    _s._has_indent3 = _s.fIndent3;
    if (_s._has_indent3) {
        _s.indent3 = in.readuint16();
    }
    _s._has_leftMargin4 = _s.fLeftMargin4;
    if (_s._has_leftMargin4) {
        _s.leftMargin4 = in.readuint16();
    }
    _s._has_indent4 = _s.fIndent4;
    if (_s._has_indent4) {
        _s.indent4 = in.readuint16();
    }
    _s._has_leftMargin5 = _s.fLeftMargin5;
    if (_s._has_leftMargin5) {
        _s.leftMargin5 = in.readuint16();
    }
    _s._has_indent5 = _s.fIndent5;
    if (_s._has_indent5) {
        _s.indent5 = in.readuint16();
    }
}
void MSO::parseTextPFException(LEInputStream &in, TextPFException &_s)
{
    _s.streamOffset = in.getPosition();
    parsePFMasks(in, _s.masks);
    if (!(_s.masks.bulletBlip == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletBlip == false");
    }
    if (!(_s.masks.bulletHasScheme == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletHasScheme == false");
    }
    if (!(_s.masks.bulletScheme == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.bulletScheme == false");
    }
    if (_s.masks.hasBullet || _s.masks.bulletHasFont || _s.masks.bulletHasColor || _s.masks.bulletHasSize) {
        _s.bulletFlags = QSharedPointer<BulletFlags>(new BulletFlags(&_s));
        parseBulletFlags(in, *_s.bulletFlags.data());
    }
    _s._has_bulletChar = _s.masks.bulletChar;
    if (_s._has_bulletChar) {
        _s.bulletChar = in.readint16();
    }
    _s._has_bulletFontRef = _s.masks.bulletFont;
    if (_s._has_bulletFontRef) {
        _s.bulletFontRef = in.readuint16();
    }
    _s._has_bulletSize = _s.masks.bulletSize;
    if (_s._has_bulletSize) {
        _s.bulletSize = in.readint16();
    }
    if (_s.masks.bulletColor) {
        _s.bulletColor = QSharedPointer<ColorIndexStruct>(new ColorIndexStruct(&_s));
        parseColorIndexStruct(in, *_s.bulletColor.data());
    }
    _s._has_textAlignment = _s.masks.align;
    if (_s._has_textAlignment) {
        _s.textAlignment = in.readuint16();
    }
    _s._has_lineSpacing = _s.masks.lineSpacing;
    if (_s._has_lineSpacing) {
        _s.lineSpacing = in.readint16();
    }
    _s._has_spaceBefore = _s.masks.spaceBefore;
    if (_s._has_spaceBefore) {
        _s.spaceBefore = in.readint16();
    }
    _s._has_spaceAfter = _s.masks.spaceAfter;
    if (_s._has_spaceAfter) {
        _s.spaceAfter = in.readint16();
    }
    _s._has_leftMargin = _s.masks.leftMargin;
    if (_s._has_leftMargin) {
        _s.leftMargin = in.readuint16();
    }
    _s._has_indent = _s.masks.indent;
    if (_s._has_indent) {
        _s.indent = in.readuint16();
    }
    _s._has_defaultTabSize = _s.masks.defaultTabSize;
    if (_s._has_defaultTabSize) {
        _s.defaultTabSize = in.readuint16();
    }
    if (_s.masks.tabStops) {
        _s.tabStops = QSharedPointer<TabStops>(new TabStops(&_s));
        parseTabStops(in, *_s.tabStops.data());
    }
    _s._has_fontAlign = _s.masks.fontAlign;
    if (_s._has_fontAlign) {
        _s.fontAlign = in.readuint16();
    }
    if (_s.masks.charWrap || _s.masks.wordWrap || _s.masks.overflow) {
        _s.wrapFlags = QSharedPointer<PFWrapFlags>(new PFWrapFlags(&_s));
        parsePFWrapFlags(in, *_s.wrapFlags.data());
    }
    _s._has_textDirection = _s.masks.textDirection;
    if (_s._has_textDirection) {
        _s.textDirection = in.readuint16();
    }
}
void MSO::parseTextCFException(LEInputStream &in, TextCFException &_s)
{
    _s.streamOffset = in.getPosition();
    parseCFMasks(in, _s.masks);
    if (!(_s.masks.pp10ext == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.pp10ext == false");
    }
    if (!(_s.masks.newEATypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.newEATypeface == false");
    }
    if (!(_s.masks.csTypeface == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.csTypeface == false");
    }
    if (!(_s.masks.pp11ext == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.masks.pp11ext == false");
    }
    if (_s.masks.bold || _s.masks.italic || _s.masks.underline || _s.masks.shadow || _s.masks.fehint || _s.masks.kumi || _s.masks.emboss
        || _s.masks.fHasStyle != 0) {
        _s.fontStyle = QSharedPointer<CFStyle>(new CFStyle(&_s));
        parseCFStyle(in, *_s.fontStyle.data());
    }
    _s._has_fontRef = _s.masks.typeface;
    if (_s._has_fontRef) {
        _s.fontRef = in.readuint16();
    }
    _s._has_oldEAFontRef = _s.masks.oldEATypeface;
    if (_s._has_oldEAFontRef) {
        _s.oldEAFontRef = in.readuint16();
    }
    _s._has_ansiFontRef = _s.masks.ansiTypeface;
    if (_s._has_ansiFontRef) {
        _s.ansiFontRef = in.readuint16();
    }
    _s._has_symbolFontRef = _s.masks.symbolTypeface;
    if (_s._has_symbolFontRef) {
        _s.symbolFontRef = in.readuint16();
    }
    _s._has_fontSize = _s.masks.size;
    if (_s._has_fontSize) {
        _s.fontSize = in.readuint16();
        if (!(((quint16)_s.fontSize) >= 1)) {
            throw IncorrectValueException(in.getPosition(), "((quint16)_s.fontSize)>=1");
        }
        if (!(((quint16)_s.fontSize) <= 4000)) {
            throw IncorrectValueException(in.getPosition(), "((quint16)_s.fontSize)<=4000");
        }
    }
    if (_s.masks.color) {
        _s.color = QSharedPointer<ColorIndexStruct>(new ColorIndexStruct(&_s));
        parseColorIndexStruct(in, *_s.color.data());
    }
    _s._has_position = _s.masks.position;
    if (_s._has_position) {
        _s.position = in.readint16();
        if (!(((qint16)_s.position) >= -100)) {
            throw IncorrectValueException(in.getPosition(), "((qint16)_s.position)>=-100");
        }
        if (!(((qint16)_s.position) <= 100)) {
            throw IncorrectValueException(in.getPosition(), "((qint16)_s.position)<=100");
        }
    }
}
void MSO::parseFontCollectionEntry(LEInputStream &in, FontCollectionEntry &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseFontEntityAtom(in, _s.fontEntityAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance <= 3) && (_optionCheck.recType == 0xFB8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.fontEmbedData1 = QSharedPointer<FontEmbedDataBlob>(new FontEmbedDataBlob(&_s));
            parseFontEmbedDataBlob(in, *_s.fontEmbedData1.data());
        } catch (IncorrectValueException &_e) {
            _s.fontEmbedData1.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.fontEmbedData1.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance <= 3) && (_optionCheck.recType == 0xFB8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.fontEmbedData2 = QSharedPointer<FontEmbedDataBlob>(new FontEmbedDataBlob(&_s));
            parseFontEmbedDataBlob(in, *_s.fontEmbedData2.data());
        } catch (IncorrectValueException &_e) {
            _s.fontEmbedData2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.fontEmbedData2.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance <= 3) && (_optionCheck.recType == 0xFB8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.fontEmbedData3 = QSharedPointer<FontEmbedDataBlob>(new FontEmbedDataBlob(&_s));
            parseFontEmbedDataBlob(in, *_s.fontEmbedData3.data());
        } catch (IncorrectValueException &_e) {
            _s.fontEmbedData3.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.fontEmbedData3.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance <= 3) && (_optionCheck.recType == 0xFB8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.fontEmbedData4 = QSharedPointer<FontEmbedDataBlob>(new FontEmbedDataBlob(&_s));
            parseFontEmbedDataBlob(in, *_s.fontEmbedData4.data());
        } catch (IncorrectValueException &_e) {
            _s.fontEmbedData4.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.fontEmbedData4.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseKinsokuContainer(LEInputStream &in, KinsokuContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x2");
    }
    if (!(_s.rh.recType == 0x0FC8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FC8");
    }
    parseKinsokuAtom(in, _s.kinsokuAtom);
    if (_s.kinsokuAtom.level == 2) {
        _s.kinsokuLeadingAtom = QSharedPointer<KinsokuLeadingAtom>(new KinsokuLeadingAtom(&_s));
        parseKinsokuLeadingAtom(in, *_s.kinsokuLeadingAtom.data());
    }
    if (_s.kinsokuAtom.level == 2) {
        _s.kinsokuFollowingAtom = QSharedPointer<KinsokuFollowingAtom>(new KinsokuFollowingAtom(&_s));
        parseKinsokuFollowingAtom(in, *_s.kinsokuFollowingAtom.data());
    }
}
void MSO::parseTextSIException(LEInputStream &in, TextSIException &_s)
{
    _s.streamOffset = in.getPosition();
    _s.spell = in.readbit();
    _s.lang = in.readbit();
    _s.altLang = in.readbit();
    _s.unused1 = in.readbit();
    _s.unused2 = in.readbit();
    _s.fPp10ext = in.readbit();
    _s.fBidi = in.readbit();
    _s.unused3 = in.readbit();
    _s.reserved1 = in.readbit();
    _s.smartTag = in.readbit();
    _s.reserved2a = in.readuint2();
    _s.reserved2b = in.readuint20();
    _s._has_spellInfo = _s.spell;
    if (_s._has_spellInfo) {
        _s.spellInfo = in.readuint16();
    }
    _s._has_lid = _s.lang;
    if (_s._has_lid) {
        _s.lid = in.readuint16();
    }
    _s._has_altLid = _s.altLang;
    if (_s._has_altLid) {
        _s.altLid = in.readuint16();
    }
    _s._has_bidi = _s.fBidi;
    if (_s._has_bidi) {
        _s.bidi = in.readint16();
        if (!(((qint16)_s.bidi) == 0 || ((qint16)_s.bidi) == 1)) {
            throw IncorrectValueException(in.getPosition(), "((qint16)_s.bidi) == 0 || ((qint16)_s.bidi) == 1");
        }
    }
    _s._has_pp10runid = _s.fPp10ext;
    if (_s._has_pp10runid) {
        _s.pp10runid = in.readuint4();
    }
    _s._has_reserved3a = _s.fPp10ext;
    if (_s._has_reserved3a) {
        _s.reserved3a = in.readuint4();
    }
    _s._has_reserved3b = _s.fPp10ext;
    if (_s._has_reserved3b) {
        _s.reserved3b = in.readuint16();
    }
    _s._has_reserved3bc = _s.fPp10ext;
    if (_s._has_reserved3bc) {
        _s.reserved3bc = in.readuint7();
    }
    _s._has_grammarError = _s.fPp10ext;
    if (_s._has_grammarError) {
        _s.grammarError = in.readbit();
    }
    if (_s.smartTag) {
        _s.smartTags = QSharedPointer<SmartTags>(new SmartTags(&_s));
        parseSmartTags(in, *_s.smartTags.data());
    }
}
void MSO::parseTextMasterStyleLevel(LEInputStream &in, TextMasterStyleLevel &_s)
{
    _s.streamOffset = in.getPosition();
    parseTextPFException(in, _s.pf);
    parseTextCFException(in, _s.cf);
}
void MSO::parseDocumentAtom(LEInputStream &in, DocumentAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 1");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x03E9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03E9");
    }
    if (!(_s.rh.recLen == 0x28)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x28");
    }
    parsePointStruct(in, _s.slideSize);
    parsePointStruct(in, _s.notesSize);
    parseRatioStruct(in, _s.serverZoom);
    if (!(_s.serverZoom.numer * _s.serverZoom.denom > 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.serverZoom.numer*_s.serverZoom.denom > 0");
    }
    _s.notesMasterPersistIdRef = in.readuint32();
    _s.handoutMasterPersistIdRef = in.readuint32();
    _s.firstSlideNumber = in.readuint16();
    if (!(((quint16)_s.firstSlideNumber) < 10000)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.firstSlideNumber)<10000");
    }
    _s.slideSizeType = in.readuint16();
    if (!(((quint16)_s.slideSizeType) == 0 || ((quint16)_s.slideSizeType) == 1 || ((quint16)_s.slideSizeType) == 2 || ((quint16)_s.slideSizeType) == 3
          || ((quint16)_s.slideSizeType) == 4 || ((quint16)_s.slideSizeType) == 5 || ((quint16)_s.slideSizeType) == 6)) {
        throw IncorrectValueException(
            in.getPosition(),
            "((quint16)_s.slideSizeType) == 0 || ((quint16)_s.slideSizeType) == 1 || ((quint16)_s.slideSizeType) == 2 || ((quint16)_s.slideSizeType) == 3 || "
            "((quint16)_s.slideSizeType) == 4 || ((quint16)_s.slideSizeType) == 5 || ((quint16)_s.slideSizeType) == 6");
    }
    _s.fSaveWithFonts = in.readuint8();
    _s.fOmitTitlePlace = in.readuint8();
    _s.fRightToLeft = in.readuint8();
    _s.fShowComments = in.readuint8();
}
void MSO::parseSlideTime10Atom(LEInputStream &in, SlideTime10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x2EEB)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x2EEB");
    }
    if (!(_s.rh.recLen == 8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 8");
    }
    parseFILETIME(in, _s.fileTime);
}
void MSO::parsePP12SlideBinaryTagExtension(LEInputStream &in, PP12SlideBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _c = 8;
    _s.tagName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.tagName[_i] = in.readuint16();
    }
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    if (_s.rhData.recLen > 8) {
        _s.roundTripHeaderFooterDefaultsAtom = QSharedPointer<RoundTripHeaderFooterDefaults12Atom>(new RoundTripHeaderFooterDefaults12Atom(&_s));
        parseRoundTripHeaderFooterDefaults12Atom(in, *_s.roundTripHeaderFooterDefaultsAtom.data());
    }
}
void MSO::parseProgStringTagContainer(LEInputStream &in, ProgStringTagContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1389)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1389");
    }
    parseTagNameAtom(in, _s.tagNameAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 1) && (_optionCheck.recType == 0xFBA);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.tagValueAtom = QSharedPointer<TagValueAtom>(new TagValueAtom(&_s));
            parseTagValueAtom(in, *_s.tagValueAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.tagValueAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.tagValueAtom.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseNotesAtom(LEInputStream &in, NotesAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 1");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x3F1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3F1");
    }
    if (!(_s.rh.recLen == 0x8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x8");
    }
    _s.slideIdRef = in.readuint32();
    parseSlideFlags(in, _s.slideFlags);
    _s.unused = in.readuint16();
}
void MSO::parseExObjListContainer(LEInputStream &in, ExObjListContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0409)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0409");
    }
    if (!(_s.rh.recLen >= 12)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen>=12");
    }
    parseExObjListAtom(in, _s.exObjListAtom);
    qint64 _startPos = in.getPosition();
    int _totalSize = qMin(_s.rh.recLen - 12, quint32(in.getSize() - _startPos));
    _atend = in.getPosition() - _startPos >= _totalSize;
    while (!_atend) {
        _s.rgChildRec.append(ExObjListSubContainer(&_s));
        parseExObjListSubContainer(in, _s.rgChildRec.last());
        _atend = in.getPosition() - _startPos >= _totalSize;
    }
}
void MSO::parseExControlContainer(LEInputStream &in, ExControlContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFEE)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFEE");
    }
    parseExControlAtom(in, _s.exControlAtom);
    parseExOleObjAtom(in, _s.exOleObjAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x1) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.menuNameAtom = QSharedPointer<MenuNameAtom>(new MenuNameAtom(&_s));
            parseMenuNameAtom(in, *_s.menuNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.menuNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.menuNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x2) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.progIdAtom = QSharedPointer<ProgIDAtom>(new ProgIDAtom(&_s));
            parseProgIDAtom(in, *_s.progIdAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.progIdAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.progIdAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x3) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.clipboardNameAtom = QSharedPointer<ClipboardNameAtom>(new ClipboardNameAtom(&_s));
            parseClipboardNameAtom(in, *_s.clipboardNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.clipboardNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.clipboardNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FC1) && (_optionCheck.recLen > 16);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.metafile = QSharedPointer<MetafileBlob>(new MetafileBlob(&_s));
            parseMetafileBlob(in, *_s.metafile.data());
        } catch (IncorrectValueException &_e) {
            _s.metafile.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.metafile.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseExHyperlinkContainer(LEInputStream &in, ExHyperlinkContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFD7)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFD7");
    }
    parseExHyperlinkAtom(in, _s.exHyperlinkAtom);
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.friendlyNameAtom = QSharedPointer<FriendlyNameAtom>(new FriendlyNameAtom(&_s));
            parseFriendlyNameAtom(in, *_s.friendlyNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.friendlyNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.friendlyNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 1) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.targetAtom = QSharedPointer<TargetAtom>(new TargetAtom(&_s));
            parseTargetAtom(in, *_s.targetAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.targetAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.targetAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 3) && (_optionCheck.recType == 0xFBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.locationAtom = QSharedPointer<LocationAtom>(new LocationAtom(&_s));
            parseLocationAtom(in, *_s.locationAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.locationAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.locationAtom.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseExOleLinkContainer(LEInputStream &in, ExOleLinkContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FCE)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FCE");
    }
    parseExOleLinkAtom(in, _s.exOleLinkAtom);
    parseExOleObjAtom(in, _s.exOleObjAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x1) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.menuNameAtom = QSharedPointer<MenuNameAtom>(new MenuNameAtom(&_s));
            parseMenuNameAtom(in, *_s.menuNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.menuNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.menuNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x2) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.progIdAtom = QSharedPointer<ProgIDAtom>(new ProgIDAtom(&_s));
            parseProgIDAtom(in, *_s.progIdAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.progIdAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.progIdAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x3) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.clipboardNameAtom = QSharedPointer<ClipboardNameAtom>(new ClipboardNameAtom(&_s));
            parseClipboardNameAtom(in, *_s.clipboardNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.clipboardNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.clipboardNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FC1) && (_optionCheck.recLen > 16);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.metafile = QSharedPointer<MetafileBlob>(new MetafileBlob(&_s));
            parseMetafileBlob(in, *_s.metafile.data());
        } catch (IncorrectValueException &_e) {
            _s.metafile.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.metafile.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseExOleEmbedContainer(LEInputStream &in, ExOleEmbedContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FCC)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FCC");
    }
    parseExOleEmbedAtom(in, _s.exOleEmbedAtom);
    parseExOleObjAtom(in, _s.exOleObjAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x1) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.menuNameAtom = QSharedPointer<MenuNameAtom>(new MenuNameAtom(&_s));
            parseMenuNameAtom(in, *_s.menuNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.menuNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.menuNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x2) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.progIdAtom = QSharedPointer<ProgIDAtom>(new ProgIDAtom(&_s));
            parseProgIDAtom(in, *_s.progIdAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.progIdAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.progIdAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x3) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.clipboardNameAtom = QSharedPointer<ClipboardNameAtom>(new ClipboardNameAtom(&_s));
            parseClipboardNameAtom(in, *_s.clipboardNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.clipboardNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.clipboardNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FC1) && (_optionCheck.recLen > 16);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.metafile = QSharedPointer<MetafileBlob>(new MetafileBlob(&_s));
            parseMetafileBlob(in, *_s.metafile.data());
        } catch (IncorrectValueException &_e) {
            _s.metafile.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.metafile.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseOfficeArtFDGGBlock(LEInputStream &in, OfficeArtFDGGBlock &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0F006)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F006");
    }
    parseOfficeArtFDGG(in, _s.head);
    _c = _s.head.cidcl - 1;
    for (int _i = 0; _i < _c; ++_i) {
        _s.Rgidcl.append(OfficeArtIDCL(&_s));
        parseOfficeArtIDCL(in, _s.Rgidcl[_i]);
    }
}
void MSO::parseOfficeArtSolverContainerFileBlock(LEInputStream &in, OfficeArtSolverContainerFileBlock &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recVer == 1) && (_choice.recType == 0xF012) && (_choice.recLen == 0x18))) {
        _s.anon = OfficeArtSolverContainerFileBlock::choice3062460075(new OfficeArtFConnectorRule(&_s));
        parseOfficeArtFConnectorRule(in, *(OfficeArtFConnectorRule *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recVer == 0) && (_choice.recType == 0xF014) && (_choice.recLen == 8))) {
        _s.anon = OfficeArtSolverContainerFileBlock::choice3062460075(new OfficeArtFArcRule(&_s));
        parseOfficeArtFArcRule(in, *(OfficeArtFArcRule *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = OfficeArtSolverContainerFileBlock::choice3062460075(new OfficeArtFCalloutRule(&_s));
        parseOfficeArtFCalloutRule(in, *(OfficeArtFCalloutRule *)_s.anon.data());
    }
}
void MSO::parseRotation(LEInputStream &in, Rotation &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0004)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0004");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.rotation);
}
void MSO::parseProtectionBooleanProperties(LEInputStream &in, ProtectionBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x007F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x007F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fLockAgainstGrouping = in.readbit();
    _s.fLockAdjustHandles = in.readbit();
    _s.fLockText = in.readbit();
    _s.fLockVertices = in.readbit();
    _s.fLockCropping = in.readbit();
    _s.fLockAgainstSelect = in.readbit();
    _s.fLockPosition = in.readbit();
    _s.fLockAspectRatio = in.readbit();
    _s.fLockRotation = in.readbit();
    _s.fLockAgainstUngrouping = in.readbit();
    _s.unused6 = in.readuint6();
    _s.fUsefLockAgainstGrouping = in.readbit();
    _s.fUseLockAdjustHandles = in.readbit();
    _s.fUseLockText = in.readbit();
    _s.fUsefLockVertices = in.readbit();
    _s.fUsefLockCropping = in.readbit();
    _s.fUsefLockAgainstSelect = in.readbit();
    _s.fUsefLockPosition = in.readbit();
    _s.fUsefLockAspectRatio = in.readbit();
    _s.fUsefLockRotation = in.readbit();
    _s.fUsefLockAgainstUngrouping = in.readbit();
    _s.unused2 = in.readuint6();
}
void MSO::parseITxid(LEInputStream &in, ITxid &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0080)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0080");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.iTxid = in.readint32();
}
void MSO::parseDxTextLeft(LEInputStream &in, DxTextLeft &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0081)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0081");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxTextLeft = in.readint32();
}
void MSO::parseDyTextTop(LEInputStream &in, DyTextTop &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0082)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0082");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dyTextTop = in.readint32();
}
void MSO::parseDxTextRight(LEInputStream &in, DxTextRight &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0083)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0083");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxTextRight = in.readint32();
}
void MSO::parseDyTextBottom(LEInputStream &in, DyTextBottom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0084)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0084");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dyTextBottom = in.readint32();
}
void MSO::parseWrapText(LEInputStream &in, WrapText &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0085)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0085");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.wrapText = in.readuint32();
    if (!(((quint32)_s.wrapText) < 5)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.wrapText)<5");
    }
}
void MSO::parseAnchorText(LEInputStream &in, AnchorText &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0087)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0087");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.anchorText = in.readuint32();
    if (!(((quint32)_s.anchorText) <= 9)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.anchorText)<=9");
    }
}
void MSO::parseTxflTextFlow(LEInputStream &in, TxflTextFlow &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0088)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0088");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.txflTextFlow = in.readuint32();
    if (!(((quint32)_s.txflTextFlow) <= 5)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.txflTextFlow)<=5");
    }
}
void MSO::parseCdirFont(LEInputStream &in, CdirFont &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0089)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0089");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.cdirFont = in.readuint32();
    if (!(((quint32)_s.cdirFont) <= 3)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.cdirFont)<=3");
    }
}
void MSO::parseHspNext(LEInputStream &in, HspNext &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x008A)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x008A");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.hspNext = in.readuint32();
}
void MSO::parseTxdir(LEInputStream &in, Txdir &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x008B)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x008B");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.txdir = in.readuint32();
    if (!(((quint32)_s.txdir) <= 2)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.txdir)<=2");
    }
}
void MSO::parseTextBooleanProperties(LEInputStream &in, TextBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x00BF)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x00BF");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.unused1 = in.readbit();
    _s.fFitShapeToText = in.readbit();
    _s.unused2 = in.readbit();
    _s.fAutoTextMargin = in.readbit();
    _s.fSelectText = in.readbit();
    _s.unused3a = in.readuint3();
    _s.unused3b = in.readuint8();
    _s.unused4 = in.readbit();
    _s.fUsefFitShapeToText = in.readbit();
    _s.unused5 = in.readbit();
    _s.fUsefAutoTextMargin = in.readbit();
    _s.fUsefSelectText = in.readbit();
    _s.unused6a = in.readuint3();
    _s.unused6b = in.readuint8();
}
void MSO::parseCropFromTop(LEInputStream &in, CropFromTop &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0100)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0100");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.cropFromTop);
}
void MSO::parseCropFromBottom(LEInputStream &in, CropFromBottom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0101)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0101");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.cropFromBottom);
}
void MSO::parseCropFromLeft(LEInputStream &in, CropFromLeft &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0102)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0102");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.cropFromLeft);
}
void MSO::parseCropFromRight(LEInputStream &in, CropFromRight &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0103)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0103");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.cropFromRight);
}
void MSO::parsePib(LEInputStream &in, Pib &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0104)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0104");
    }
    _s.pib = in.readuint32();
}
void MSO::parsePibName(LEInputStream &in, PibName &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0105)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0105");
    }
    _s.pibName = in.readuint32();
}
void MSO::parsePibFlags(LEInputStream &in, PibFlags &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0106)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0106");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.pibFlags = in.readuint32();
}
void MSO::parsePictureTransparent(LEInputStream &in, PictureTransparent &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0107)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0107");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.pictureTransparent);
}
void MSO::parsePictureContrast(LEInputStream &in, PictureContrast &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0108)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0108");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.pictureContrast = in.readint32();
}
void MSO::parsePictureBrightness(LEInputStream &in, PictureBrightness &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0109)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0109");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.pictureBrightness = in.readint32();
}
void MSO::parseBlipBooleanProperties(LEInputStream &in, BlipBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x013F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x013F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fPictureActive = in.readbit();
    _s.fPictureBiLevel = in.readbit();
    _s.fPictureGray = in.readbit();
    _s.fNoHitTestPicture = in.readbit();
    _s.fLooping = in.readbit();
    _s.fRewind = in.readbit();
    _s.fPicturePreserveGrays = in.readbit();
    _s.unused1a = in.readbit();
    _s.unused1b = in.readuint8();
    _s.fUsefPictureActive = in.readbit();
    _s.fUsefPictureBiLevel = in.readbit();
    _s.fUsefPictureGray = in.readbit();
    _s.fUsefNoHitTestPicture = in.readbit();
    _s.fUsefLooping = in.readbit();
    _s.fUsefRewind = in.readbit();
    _s.fUsefPicturePreserveGrays = in.readbit();
    _s.unused2a = in.readbit();
    _s.unused2b = in.readuint8();
}
void MSO::parseGeoLeft(LEInputStream &in, GeoLeft &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0140)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0140");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.geoLeft = in.readint32();
}
void MSO::parseGeoTop(LEInputStream &in, GeoTop &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0141)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0141");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.geoTop = in.readint32();
}
void MSO::parseGeoRight(LEInputStream &in, GeoRight &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0142)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0142");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.geoRight = in.readint32();
}
void MSO::parseGeoBottom(LEInputStream &in, GeoBottom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0143)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0143");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.geoBottom = in.readint32();
}
void MSO::parseShapePath(LEInputStream &in, ShapePath &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0144)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0144");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.shapePath = in.readuint32();
    if (!(((quint32)_s.shapePath) <= 4)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.shapePath)<=4");
    }
}
void MSO::parsePVertices(LEInputStream &in, PVertices &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0145)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0145");
    }
    _s.pVertices = in.readuint32();
}
void MSO::parsePSegmentInfo(LEInputStream &in, PSegmentInfo &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0146)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0146");
    }
    _s.pSegmentInfo = in.readuint32();
}
void MSO::parseAdjustValue(LEInputStream &in, AdjustValue &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0147)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0147");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.adjustvalue = in.readint32();
}
void MSO::parseAdjust2Value(LEInputStream &in, Adjust2Value &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0148)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0148");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.adjust2value = in.readint32();
}
void MSO::parseAdjust3Value(LEInputStream &in, Adjust3Value &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0149)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0149");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.adjust3value = in.readint32();
}
void MSO::parseAdjust4Value(LEInputStream &in, Adjust4Value &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x014A)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x014A");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.adjust4value = in.readint32();
}
void MSO::parseAdjust5Value(LEInputStream &in, Adjust5Value &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x014B)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x014B");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.adjust5value = in.readint32();
}
void MSO::parseAdjust6Value(LEInputStream &in, Adjust6Value &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x014C)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x014C");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.adjust6value = in.readint32();
}
void MSO::parseAdjust7Value(LEInputStream &in, Adjust7Value &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x014D)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x014D");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.adjust7value = in.readint32();
}
void MSO::parseAdjust8Value(LEInputStream &in, Adjust8Value &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x014E)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x014E");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.adjust8value = in.readint32();
}
void MSO::parseGeometryBooleanProperties(LEInputStream &in, GeometryBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x017F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x017F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fFillOk = in.readbit();
    _s.fFillShadeShapeOK = in.readbit();
    _s.fGtextOK = in.readbit();
    _s.fLineOK = in.readbit();
    _s.f3DOK = in.readbit();
    _s.fShadowOK = in.readbit();
    _s.unuseda = in.readbit();
    _s.unusedb = in.readbit();
    _s.unused2 = in.readuint8();
    _s.fUsefFillOK = in.readbit();
    _s.fUsefFillShadeShapeOK = in.readbit();
    _s.fUsefGtextOK = in.readbit();
    _s.fUsefLineOK = in.readbit();
    _s.fUsef3DOK = in.readbit();
    _s.fUsefShadowOK = in.readbit();
    _s.unused3a = in.readbit();
    _s.unused3b = in.readbit();
    _s.unused4 = in.readuint8();
}
void MSO::parseFillType(LEInputStream &in, FillType &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0180)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0180");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillType = in.readuint32();
    if (!(((quint32)_s.fillType) <= 9)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.fillType)<=9");
    }
}
void MSO::parseFillColor(LEInputStream &in, FillColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0181)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0181");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.fillColor);
}
void MSO::parseFillOpacity(LEInputStream &in, FillOpacity &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0182)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0182");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillOpacity);
}
void MSO::parseFillBackColor(LEInputStream &in, FillBackColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0183)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0183");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.fillBackColor);
}
void MSO::parseFillBackOpacity(LEInputStream &in, FillBackOpacity &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0184)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0184");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillBackOpacity);
}
void MSO::parseFillCrMod(LEInputStream &in, FillCrMod &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0185)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0185");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.fillCrMod);
}
void MSO::parseFillBlip(LEInputStream &in, FillBlip &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0186)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0186");
    }
    _s.fillBlip = in.readuint32();
}
void MSO::parseFillBlipName(LEInputStream &in, FillBlipName &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0187)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0187");
    }
    _s.fillBlipName = in.readuint32();
}
void MSO::parseFillBlipFlags(LEInputStream &in, FillBlipFlags &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0188)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0188");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillBlipFlags = in.readuint32();
}
void MSO::parseFillWidth(LEInputStream &in, FillWidth &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0189)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0189");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillWidth = in.readint32();
}
void MSO::parseFillHeight(LEInputStream &in, FillHeight &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x018A)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x018A");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillHeight = in.readint32();
}
void MSO::parseFillAngle(LEInputStream &in, FillAngle &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x018B)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x018B");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillAngle);
}
void MSO::parseFillFocus(LEInputStream &in, FillFocus &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x018C)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x018C");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillFocus = in.readint32();
}
void MSO::parseFillToLeft(LEInputStream &in, FillToLeft &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x018D)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x018D");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillToLeft);
}
void MSO::parseFillToTop(LEInputStream &in, FillToTop &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x018E)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x018E");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillToTop);
}
void MSO::parseFillToRight(LEInputStream &in, FillToRight &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x018F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x018F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillToRight);
}
void MSO::parseFillToBottom(LEInputStream &in, FillToBottom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0190)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0190");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillToBottom);
}
void MSO::parseFillRectLeft(LEInputStream &in, FillRectLeft &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0191)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0191");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillRectLeft = in.readint32();
}
void MSO::parseFillRectTop(LEInputStream &in, FillRectTop &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0192)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0192");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillRectTop = in.readint32();
}
void MSO::parseFillRectRight(LEInputStream &in, FillRectRight &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0193)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0193");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillRectRight = in.readint32();
}
void MSO::parseFillRectBottom(LEInputStream &in, FillRectBottom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0194)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0194");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillRectBottom = in.readint32();
}
void MSO::parseFillDztype(LEInputStream &in, FillDztype &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0195)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0195");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillDztype = in.readint32();
}
void MSO::parseFillShadePreset(LEInputStream &in, FillShadePreset &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0196)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0196");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fillShadePreset = in.readint32();
}
void MSO::parseFillShadeColors(LEInputStream &in, FillShadeColors &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0197)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0197");
    }
    _s.fillShadeColors = in.readuint32();
}
void MSO::parseFillOriginX(LEInputStream &in, FillOriginX &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0198)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0198");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillOriginX);
}
void MSO::parseFillOriginY(LEInputStream &in, FillOriginY &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0199)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0199");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillOriginY);
}
void MSO::parseFillShapeOriginX(LEInputStream &in, FillShapeOriginX &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x019A)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x019A");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillShapeOriginX);
}
void MSO::parseFillShapeOriginY(LEInputStream &in, FillShapeOriginY &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x019B)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x019B");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.fillShapeOriginY);
}
void MSO::parseFillColorExt(LEInputStream &in, FillColorExt &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x019E)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x019E");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.fillColorExt);
}
void MSO::parseFillBackColorExt(LEInputStream &in, FillBackColorExt &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01A2)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01A2");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.fillBackColorExt);
}
void MSO::parseFillStyleBooleanProperties(LEInputStream &in, FillStyleBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01BF)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01BF");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fNoFillHitTest = in.readbit();
    _s.fillUseRect = in.readbit();
    _s.fillShape = in.readbit();
    _s.fHitTestFill = in.readbit();
    _s.fFilled = in.readbit();
    _s.fUseShapeAnchor = in.readbit();
    _s.fRecolorFillAsPicture = in.readbit();
    _s.unused1a = in.readbit();
    _s.unused1b = in.readuint8();
    _s.fUseNoFillHitTest = in.readbit();
    _s.fUseFillUseRect = in.readbit();
    _s.fUseFillShape = in.readbit();
    _s.fUseHitTestFill = in.readbit();
    _s.fUseFilled = in.readbit();
    _s.fUseUseShapeAnchor = in.readbit();
    _s.fUsefRecolorFillAsPicture = in.readbit();
    _s.unused2a = in.readbit();
    _s.unused2b = in.readuint8();
}
void MSO::parseLineColor(LEInputStream &in, LineColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01C0)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01C0");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.lineColor);
}
void MSO::parseLineOpacity(LEInputStream &in, LineOpacity &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01C1)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01C1");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineOpacity = in.readint32();
    if (!(((qint32)_s.lineOpacity) >= 0)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.lineOpacity)>=0");
    }
    if (!(((qint32)_s.lineOpacity) <= 65536)) {
        throw IncorrectValueException(in.getPosition(), "((qint32)_s.lineOpacity)<=65536");
    }
}
void MSO::parseLineBackColor(LEInputStream &in, LineBackColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01C2)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01C2");
    }
    parseOfficeArtCOLORREF(in, _s.lineBackColor);
}
void MSO::parseLineFillBlip(LEInputStream &in, LineFillBlip &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01C5)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01C5");
    }
    _s.lineFillBlip = in.readuint32();
}
void MSO::parseLineWidth(LEInputStream &in, LineWidth &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01CB)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01CB");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineWidth = in.readuint32();
}
void MSO::parseLineStyle(LEInputStream &in, LineStyle &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01CD)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01CD");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineStyle = in.readuint32();
}
void MSO::parseLineDashing(LEInputStream &in, LineDashing &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01CE)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01CE");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineDashing = in.readuint32();
}
void MSO::parseLineStartArrowhead(LEInputStream &in, LineStartArrowhead &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01D0)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01D0");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineStartArrowhead = in.readuint32();
    if (!(((quint32)_s.lineStartArrowhead) <= 8)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.lineStartArrowhead)<=8");
    }
}
void MSO::parseLineEndArrowhead(LEInputStream &in, LineEndArrowhead &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01D1)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01D1");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineEndArrowhead = in.readuint32();
    if (!(((quint32)_s.lineEndArrowhead) <= 8)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.lineEndArrowhead)<=8");
    }
}
void MSO::parseLineStartArrowWidth(LEInputStream &in, LineStartArrowWidth &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01D2)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01D2");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineStartArrowWidth = in.readuint32();
}
void MSO::parseLineStartArrowLength(LEInputStream &in, LineStartArrowLength &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01D3)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01D3");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineStartArrowLength = in.readuint32();
}
void MSO::parseLineEndArrowWidth(LEInputStream &in, LineEndArrowWidth &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01D4)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01D4");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineEndArrowWidth = in.readuint32();
}
void MSO::parseLineEndArrowLength(LEInputStream &in, LineEndArrowLength &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01D5)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01D5");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineEndArrowLength = in.readuint32();
}
void MSO::parseLineJoinStyle(LEInputStream &in, LineJoinStyle &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01D6)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01D6");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineJoinStyle = in.readuint32();
    if (!(((quint32)_s.lineJoinStyle) <= 2)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.lineJoinStyle)<=2");
    }
}
void MSO::parseLineEndCapStyle(LEInputStream &in, LineEndCapStyle &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01D7)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01D7");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lineEndCapStyle = in.readuint32();
    if (!(((quint32)_s.lineEndCapStyle) <= 3)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.lineEndCapStyle)<=3");
    }
}
void MSO::parseLineStyleBooleanProperties(LEInputStream &in, LineStyleBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x01FF)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x01FF");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fNoLineDrawDash = in.readbit();
    _s.fLineFillShape = in.readbit();
    _s.fHitTestLine = in.readbit();
    _s.fLine = in.readbit();
    _s.fArrowHeadsOK = in.readbit();
    _s.fInsetPenOK = in.readbit();
    _s.fInsetPen = in.readbit();
    _s.reserved1 = in.readbit();
    _s.reserved2 = in.readbit();
    _s.fLineOpaqueBackColor = in.readbit();
    _s.unused1 = in.readuint6();
    _s.fUseNoLineDrawDash = in.readbit();
    _s.fUseLineFillShape = in.readbit();
    _s.fUseHitTestLine = in.readbit();
    _s.fUsefLine = in.readbit();
    _s.fUsefArrowHeadsOK = in.readbit();
    _s.fUseInsetPenOK = in.readbit();
    _s.fUseInsetPen = in.readbit();
    _s.unused2 = in.readbit();
    _s.unused3 = in.readbit();
    _s.fUsefLineOpaqueBackColor = in.readbit();
    _s.unused4 = in.readuint6();
}
void MSO::parseShadowType(LEInputStream &in, ShadowType &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0200)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0200");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.shadowType = in.readuint32();
}
void MSO::parseShadowColor(LEInputStream &in, ShadowColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0201)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0201");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.shadowColor);
}
void MSO::parseShadowOpacity(LEInputStream &in, ShadowOpacity &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0204)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0204");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseFixedPoint(in, _s.shadowOpacity);
}
void MSO::parseShadowOffsetX(LEInputStream &in, ShadowOffsetX &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0205)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0205");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.shadowOffsetX = in.readint32();
}
void MSO::parseShadowOffsetY(LEInputStream &in, ShadowOffsetY &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0206)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0206");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.shadowOffsetY = in.readint32();
}
void MSO::parseShadowStyleBooleanProperties(LEInputStream &in, ShadowStyleBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x023F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x023F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fShadowObscured = in.readbit();
    _s.fShadow = in.readbit();
    _s.unused1 = in.readuint14();
    _s.fUsefShadowObscured = in.readbit();
    _s.fUsefShadow = in.readbit();
    _s.unused2 = in.readuint14();
}
void MSO::parseHspMaster(LEInputStream &in, HspMaster &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0301)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0301");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.hspMaster = in.readuint32();
}
void MSO::parseCxstyle(LEInputStream &in, Cxstyle &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0303)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0303");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.cxstyle = in.readuint32();
    if (!(((quint32)_s.cxstyle) <= 4)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.cxstyle)<=4");
    }
}
void MSO::parseBWMode(LEInputStream &in, BWMode &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0304)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0304");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.bWMode = in.readuint32();
    if (!(((quint32)_s.bWMode) <= 10)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.bWMode)<=10");
    }
}
void MSO::parseShapeBooleanProperties(LEInputStream &in, ShapeBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x033F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x033F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fBackground = in.readbit();
    _s.reserved1 = in.readbit();
    _s.fInitiator = in.readbit();
    _s.fLockShapeType = in.readbit();
    _s.fPreferRelativeResize = in.readbit();
    _s.fOleIcon = in.readbit();
    _s.fFlipVOverride = in.readbit();
    _s.fFlipHOverride = in.readbit();
    _s.fPolicyBarcode = in.readbit();
    _s.fPolicyLabel = in.readbit();
    _s.unused1 = in.readbit();
    _s.unused2 = in.readbit();
    _s.unused3 = in.readuint4();
    _s.fUsefBackground = in.readbit();
    _s.unused4 = in.readbit();
    _s.fUsefInitiator = in.readbit();
    _s.fUsefLockShapeType = in.readbit();
    _s.fusePreferrelativeResize = in.readbit();
    _s.fUsefOleIcon = in.readbit();
    _s.fUsefFlipVOverride = in.readbit();
    _s.fUsefFlipHOverride = in.readbit();
    _s.fUsefPolicyBarcode = in.readbit();
    _s.fUsefPolicyLabel = in.readbit();
    _s.unused5 = in.readbit();
    _s.unused6 = in.readbit();
    _s.unused7 = in.readuint4();
}
void MSO::parseDxyCalloutGap(LEInputStream &in, DxyCalloutGap &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0341)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0341");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxyCalloutGap = in.readuint32();
}
void MSO::parseSpcoa(LEInputStream &in, Spcoa &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0342)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0342");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.spcoa = in.readuint32();
}
void MSO::parseSpcod(LEInputStream &in, Spcod &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0343)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0343");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.spcod = in.readuint32();
}
void MSO::parseDxyCalloutDropSpecified(LEInputStream &in, DxyCalloutDropSpecified &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0344)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0344");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxyCalloutDropSpecified = in.readuint32();
}
void MSO::parseDxyCalloutLengthSpecified(LEInputStream &in, DxyCalloutLengthSpecified &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0345)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0345");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxyCalloutLengthSpecified = in.readuint32();
}
void MSO::parseCalloutBooleanProperties(LEInputStream &in, CalloutBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x037F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x037F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fCalloutLengthSpecified = in.readbit();
    _s.fCalloutDropAuto = in.readbit();
    _s.fCalloutMinusY = in.readbit();
    _s.fCalloutMinusX = in.readbit();
    _s.fCalloutTextBorder = in.readbit();
    _s.fCalloutAccentBar = in.readbit();
    _s.fCallout = in.readbit();
    _s.unused1a = in.readbit();
    _s.unused1b = in.readuint8();
    _s.fUsefCalloutLengthSpecified = in.readbit();
    _s.fUsefCalloutDropAuto = in.readbit();
    _s.fUsefCalloutMinusY = in.readbit();
    _s.fUsefCalloutMinusX = in.readbit();
    _s.fUsefCalloutTextBorder = in.readbit();
    _s.fUsefCalloutAccentBar = in.readbit();
    _s.fUsefCallout = in.readbit();
    _s.unused2a = in.readbit();
    _s.unused2b = in.readuint8();
}
void MSO::parsePWrapPolygonVertices(LEInputStream &in, PWrapPolygonVertices &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0383)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0383");
    }
    _s.pWrapPolygonVertices = in.readuint32();
}
void MSO::parseDxWrapDistLeft(LEInputStream &in, DxWrapDistLeft &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0384)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0384");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxWrapDistLeft = in.readint32();
}
void MSO::parseDyWrapDistTop(LEInputStream &in, DyWrapDistTop &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0385)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0385");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dyWrapDistTop = in.readint32();
}
void MSO::parseDxWrapDistRight(LEInputStream &in, DxWrapDistRight &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0386)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0386");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxWrapDistRight = in.readint32();
}
void MSO::parseDyWrapDistBottom(LEInputStream &in, DyWrapDistBottom &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0387)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0387");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dyWrapDistBottom = in.readint32();
}
void MSO::parseLidRegroup(LEInputStream &in, LidRegroup &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0388)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0388");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.lidRegroup = in.readuint32();
}
void MSO::parsePosH(LEInputStream &in, PosH &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x038F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x038F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.posH = in.readuint32();
}
void MSO::parsePosRelH(LEInputStream &in, PosRelH &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0390)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0390");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.posRelH = in.readuint32();
}
void MSO::parsePosV(LEInputStream &in, PosV &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0391)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0391");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.posV = in.readuint32();
}
void MSO::parsePosRelV(LEInputStream &in, PosRelV &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0392)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0392");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.posRelV = in.readuint32();
}
void MSO::parsePctHR(LEInputStream &in, PctHR &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0393)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0393");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.pctHR = in.readuint32();
}
void MSO::parseAlignHR(LEInputStream &in, AlignHR &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0394)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0394");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.alignHR = in.readuint32();
}
void MSO::parseDxHeightHR(LEInputStream &in, DxHeightHR &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0395)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0395");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxHeightHR = in.readint32();
}
void MSO::parseDxWidthHR(LEInputStream &in, DxWidthHR &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0396)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0396");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.dxWidthHR = in.readint32();
}
void MSO::parseBorderTopColor(LEInputStream &in, BorderTopColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x039b)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x039b");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.borderTopColor);
}
void MSO::parseBorderLeftColor(LEInputStream &in, BorderLeftColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x039c)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x039c");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.borderLeftColor);
}
void MSO::parseBorderBottomColor(LEInputStream &in, BorderBottomColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x039d)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x039d");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.borderBottomColor);
}
void MSO::parseBorderRightColor(LEInputStream &in, BorderRightColor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x039e)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x039e");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    parseOfficeArtCOLORREF(in, _s.borderRightColor);
}
void MSO::parseGroupShapeBooleanProperties(LEInputStream &in, GroupShapeBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x03bf)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x03bf");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fPrint = in.readbit();
    _s.fHidden = in.readbit();
    _s.fOneD = in.readbit();
    _s.fIsButton = in.readbit();
    _s.fOnDblClickNotify = in.readbit();
    _s.fBehindDocument = in.readbit();
    _s.fEditedWrap = in.readbit();
    _s.fScriptAnchor = in.readbit();
    _s.fReallyHidden = in.readbit();
    _s.fAllowOverlap = in.readbit();
    _s.fUserDrawn = in.readbit();
    _s.fHorizRule = in.readbit();
    _s.fNoshadeHR = in.readbit();
    _s.fStandardHR = in.readbit();
    _s.fIsBullet = in.readbit();
    _s.fLayoutInCell = in.readbit();
    _s.fUsefPrint = in.readbit();
    _s.fUsefHidden = in.readbit();
    _s.fUsefOneD = in.readbit();
    _s.fUsefIsButton = in.readbit();
    _s.fUsefOnDblClickNotify = in.readbit();
    _s.fUsefBehindDocument = in.readbit();
    _s.fUsefEditedWrap = in.readbit();
    _s.fUsefScriptAnchor = in.readbit();
    _s.fUsefReallyHidden = in.readbit();
    _s.fUsefAllowOverlap = in.readbit();
    _s.fUsefUserDrawn = in.readbit();
    _s.fUsefHorizRule = in.readbit();
    _s.fUsefNoshadeHR = in.readbit();
    _s.fUsefStandardHR = in.readbit();
    _s.fUsefIsBullet = in.readbit();
    _s.fUsefLayoutInCell = in.readbit();
}
void MSO::parseWzFillId(LEInputStream &in, WzFillId &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x0403)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x0403");
    }
    _s.wzFillId = in.readint32();
}
void MSO::parseDiagramBooleanProperties(LEInputStream &in, DiagramBooleanProperties &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    if (!(_s.opid.opid == 0x053F)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.opid == 0x053F");
    }
    if (!(_s.opid.fBid == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fBid == false");
    }
    if (!(_s.opid.fComplex == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.opid.fComplex == false");
    }
    _s.fPseudoInline = in.readbit();
    _s.fDoLayout = in.readbit();
    _s.fReverse = in.readbit();
    _s.fDoFormat = in.readbit();
    _s.unused1 = in.readbit();
    _s.unused2 = in.readbit();
    _s.unused3a = in.readuint2();
    _s.unused3b = in.readuint8();
    _s.fUsefPseudoInline = in.readbit();
    _s.fUsefDoLayout = in.readbit();
    _s.fUsefReverse = in.readbit();
    _s.fUsefDoFormat = in.readbit();
    _s.unused4 = in.readbit();
    _s.unused5 = in.readbit();
    _s.unused6a = in.readuint2();
    _s.unused6b = in.readuint8();
}
void MSO::parsePptOfficeArtClientAnchor(LEInputStream &in, PptOfficeArtClientAnchor &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF010)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF010");
    }
    if (!(_s.rh.recLen == 0x8 || _s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x8 || _s.rh.recLen == 0x10");
    }
    if (_s.rh.recLen == 0x8) {
        _s.rect1 = QSharedPointer<SmallRectStruct>(new SmallRectStruct(&_s));
        parseSmallRectStruct(in, *_s.rect1.data());
    }
    if (_s.rh.recLen == 0x10) {
        _s.rect2 = QSharedPointer<RectStruct>(new RectStruct(&_s));
        parseRectStruct(in, *_s.rect2.data());
    }
}
void MSO::parseAnimationInfoContainer(LEInputStream &in, AnimationInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x1014)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x1014");
    }
    parseAnimationInfoAtom(in, _s.animationAtom);
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x7E6);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.animationSound = QSharedPointer<SoundContainer>(new SoundContainer(&_s));
            parseSoundContainer(in, *_s.animationSound.data());
        } catch (IncorrectValueException &_e) {
            _s.animationSound.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.animationSound.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseMouseClickInteractiveInfoContainer(LEInputStream &in, MouseClickInteractiveInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFF2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFF2");
    }
    parseInteractiveInfoAtom(in, _s.interactiveInfoAtom);
    if (_s.rh.recLen > 24) {
        _s.macroNameAtom = QSharedPointer<MacroNameAtom>(new MacroNameAtom(&_s));
        parseMacroNameAtom(in, *_s.macroNameAtom.data());
    }
}
void MSO::parseMouseOverInteractiveInfoContainer(LEInputStream &in, MouseOverInteractiveInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0xFF2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFF2");
    }
    parseInteractiveInfoAtom(in, _s.interactiveInfoAtom);
    if (_s.rh.recLen > 24) {
        _s.macroNameAtom = QSharedPointer<MacroNameAtom>(new MacroNameAtom(&_s));
        parseMacroNameAtom(in, *_s.macroNameAtom.data());
    }
}
void MSO::parseShapeClientRoundtripDataSubcontainerOrAtom(LEInputStream &in, ShapeClientRoundtripDataSubcontainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition()
        && ((_choice.recVer == 0xF) && (_choice.recInstance == 0 || _choice.recInstance == 1 || _choice.recInstance == 2) && (_choice.recType == 0x1388))) {
        _s.anon = ShapeClientRoundtripDataSubcontainerOrAtom::choice3146562028(new ShapeProgsTagContainer(&_s));
        parseShapeProgsTagContainer(in, *(ShapeProgsTagContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recVer == 0) && (_choice.recInstance == 0) && (_choice.recType == 0xBDD) && (_choice.recLen == 1))) {
        _s.anon = ShapeClientRoundtripDataSubcontainerOrAtom::choice3146562028(new RoundTripNewPlaceHolderId12Atom(&_s));
        parseRoundTripNewPlaceHolderId12Atom(in, *(RoundTripNewPlaceHolderId12Atom *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recVer == 0) && (_choice.recInstance == 0) && (_choice.recType == 0x41F) && (_choice.recLen == 4))) {
        _s.anon = ShapeClientRoundtripDataSubcontainerOrAtom::choice3146562028(new RoundTripShapeId12Atom(&_s));
        parseRoundTripShapeId12Atom(in, *(RoundTripShapeId12Atom *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recVer == 0) && (_choice.recInstance == 0) && (_choice.recType == 0x420) && (_choice.recLen == 1))) {
        _s.anon = ShapeClientRoundtripDataSubcontainerOrAtom::choice3146562028(new RoundTripHFPlaceholder12Atom(&_s));
        parseRoundTripHFPlaceholder12Atom(in, *(RoundTripHFPlaceholder12Atom *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = ShapeClientRoundtripDataSubcontainerOrAtom::choice3146562028(new RoundTripShapeCheckSumForCustomLayouts12Atom(&_s));
        parseRoundTripShapeCheckSumForCustomLayouts12Atom(in, *(RoundTripShapeCheckSumForCustomLayouts12Atom *)_s.anon.data());
    }
}
void MSO::parseShapeProgBinaryTagSubContainerOrAtom(LEInputStream &in, ShapeProgBinaryTagSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    try {
        _s.anon = ShapeProgBinaryTagSubContainerOrAtom::choice2754406405(new PP9ShapeBinaryTagExtension(&_s));
        parsePP9ShapeBinaryTagExtension(in, *(PP9ShapeBinaryTagExtension *)_s.anon.data());
    } catch (IncorrectValueException &_x) {
        _s.anon.clear();
        in.rewind(_m);
        try {
            _s.anon = ShapeProgBinaryTagSubContainerOrAtom::choice2754406405(new PP10ShapeBinaryTagExtension(&_s));
            parsePP10ShapeBinaryTagExtension(in, *(PP10ShapeBinaryTagExtension *)_s.anon.data());
        } catch (IncorrectValueException &_xx) {
            _s.anon.clear();
            in.rewind(_m);
            try {
                _s.anon = ShapeProgBinaryTagSubContainerOrAtom::choice2754406405(new PP11ShapeBinaryTagExtension(&_s));
                parsePP11ShapeBinaryTagExtension(in, *(PP11ShapeBinaryTagExtension *)_s.anon.data());
            } catch (IncorrectValueException &_xxx) {
                _s.anon.clear();
                in.rewind(_m);
                _s.anon = ShapeProgBinaryTagSubContainerOrAtom::choice2754406405(new UnknownBinaryTag(&_s));
                parseUnknownBinaryTag(in, *(UnknownBinaryTag *)_s.anon.data());
            }
        }
    }
}
void MSO::parseOfficeArtClientTextBox(LEInputStream &in, OfficeArtClientTextBox &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recVer == 0) && (_choice.recLen == 0))) {
        _s.anon = OfficeArtClientTextBox::choice2757443956(new XlsOfficeArtClientTextBox(&_s));
        parseXlsOfficeArtClientTextBox(in, *(XlsOfficeArtClientTextBox *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recVer == 0 || _choice.recVer == 0xF) && (_choice.recLen == 0x4))) {
        _s.anon = OfficeArtClientTextBox::choice2757443956(new DocOfficeArtClientTextBox(&_s));
        parseDocOfficeArtClientTextBox(in, *(DocOfficeArtClientTextBox *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = OfficeArtClientTextBox::choice2757443956(new PptOfficeArtClientTextBox(&_s));
        parsePptOfficeArtClientTextBox(in, *(PptOfficeArtClientTextBox *)_s.anon.data());
    }
}
void MSO::parseTextRulerAtom(LEInputStream &in, TextRulerAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFA6)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFA6");
    }
    parseTextRuler(in, _s.textRuler);
}
void MSO::parseOfficeArtFOPTE(LEInputStream &in, OfficeArtFOPTE &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtFOPTEOPID(in, _s.opid);
    _s.op = in.readint32();
}
void MSO::parseFib(LEInputStream &in, Fib &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseFibBase(in, _s.base);
    _s.csw = in.readuint16();
    if (!(((quint16)_s.csw) == 14)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.csw) == 14");
    }
    parseFibRgW97(in, _s.fibRgW);
    _s.cslw = in.readuint16();
    if (!(((quint16)_s.cslw) == 22)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.cslw) == 22");
    }
    parseFibRgLw97(in, _s.fibRgLw);
    _s.cbRgFcLcb = in.readuint16();
    if (!(((quint16)_s.cbRgFcLcb) == 0x5D || ((quint16)_s.cbRgFcLcb) == 0x6C || ((quint16)_s.cbRgFcLcb) == 0x88 || ((quint16)_s.cbRgFcLcb) == 0xA4
          || ((quint16)_s.cbRgFcLcb) == 0xB7)) {
        throw IncorrectValueException(in.getPosition(),
                                      "((quint16)_s.cbRgFcLcb) == 0x5D || ((quint16)_s.cbRgFcLcb) == 0x6C || ((quint16)_s.cbRgFcLcb) == 0x88 || "
                                      "((quint16)_s.cbRgFcLcb) == 0xA4 || ((quint16)_s.cbRgFcLcb) == 0xB7");
    }
    parseFibRgFcLcb97(in, _s.fibRgFcLcbBlob);
    if (_s.cbRgFcLcb >= 0x6C) {
        _s.fibRgFcLcbBlob2 = QSharedPointer<FibRgFcLcb2000>(new FibRgFcLcb2000(&_s));
        parseFibRgFcLcb2000(in, *_s.fibRgFcLcbBlob2.data());
    }
    if (_s.cbRgFcLcb >= 0x88) {
        _s.fibRgFcLcbBlob3 = QSharedPointer<FibRgFcLcb2002>(new FibRgFcLcb2002(&_s));
        parseFibRgFcLcb2002(in, *_s.fibRgFcLcbBlob3.data());
    }
    _s.cswNew = in.readuint16();
    if (!(((quint16)_s.cswNew) == 0 || ((quint16)_s.cswNew) == 2 || ((quint16)_s.cswNew) == 5)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.cswNew) == 0 || ((quint16)_s.cswNew) == 2 || ((quint16)_s.cswNew) == 5");
    }
    _c = 2 * _s.cswNew;
    _s.fibRgCswNew.resize(_c);
    in.readBytes(_s.fibRgCswNew);
    _c = _s.fibRgLw.cbMac - 156 - 8 * _s.cbRgFcLcb - 2 * _s.cswNew;
    _s.trail.resize(_c);
    in.readBytes(_s.trail);
}
void MSO::parseSTSH(LEInputStream &in, STSH &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseLPStshi(in, _s.lpstshi);
    _c = 20;
    for (int _i = 0; _i < _c; ++_i) {
        _s.rglpstd.append(LPStd(&_s));
        parseLPStd(in, _s.rglpstd[_i]);
    }
}
void MSO::parseClx(LEInputStream &in, Clx &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.RgPrc.append(Pcr(&_s));
            parsePcr(in, _s.RgPrc.last());
        } catch (IncorrectValueException &_e) {
            _s.RgPrc.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.RgPrc.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    parsePcdt(in, _s.pcdt);
}
void MSO::parsePcr(LEInputStream &in, Pcr &_s)
{
    _s.streamOffset = in.getPosition();
    _s.clxt = in.readuint8();
    if (!(((quint8)_s.clxt) == 1)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.clxt) == 1");
    }
    parsePrcData(in, _s.prcData);
}
void MSO::parsePrm(LEInputStream &in, Prm &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    bool _choice = in.readbit();
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice == false))) {
        _s.prm = Prm::choice1129181155(new Prm0(&_s));
        parsePrm0(in, *(Prm0 *)_s.prm.data());
    }
    if (startPos == in.getPosition()) {
        _s.prm = Prm::choice1129181155(new Prm1(&_s));
        parsePrm1(in, *(Prm1 *)_s.prm.data());
    }
}
void MSO::parseOfficeArtBlipEMF(LEInputStream &in, OfficeArtBlipEMF &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0x3D4 || _s.rh.recInstance == 0x3D5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x3D4 || _s.rh.recInstance == 0x3D5");
    }
    if (!(_s.rh.recType == 0xF01A)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF01A");
    }
    _c = 16;
    _s.rgbUid1.resize(_c);
    in.readBytes(_s.rgbUid1);
    _s._has_rgbUid2 = _s.rh.recInstance == 0x3D5;
    if (_s._has_rgbUid2) {
        _c = 16;
        _s.rgbUid2.resize(_c);
        in.readBytes(_s.rgbUid2);
    }
    parseOfficeArtMetafileHeader(in, _s.metafileHeader);
    _c = _s.rh.recLen - ((_s.rh.recInstance == 0x3D4) ? 50 : 66);
    _s.BLIPFileData.resize(_c);
    in.readBytes(_s.BLIPFileData);
}
void MSO::parseOfficeArtBlipWMF(LEInputStream &in, OfficeArtBlipWMF &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0x216 || _s.rh.recInstance == 0x217)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x216 || _s.rh.recInstance == 0x217");
    }
    if (!(_s.rh.recType == 0xF01B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF01B");
    }
    _c = 16;
    _s.rgbUid1.resize(_c);
    in.readBytes(_s.rgbUid1);
    _s._has_rgbUid2 = _s.rh.recInstance == 0x217;
    if (_s._has_rgbUid2) {
        _c = 16;
        _s.rgbUid2.resize(_c);
        in.readBytes(_s.rgbUid2);
    }
    parseOfficeArtMetafileHeader(in, _s.metafileHeader);
    _c = _s.rh.recLen - ((_s.rh.recInstance == 0x216) ? 50 : 66);
    _s.BLIPFileData.resize(_c);
    in.readBytes(_s.BLIPFileData);
}
void MSO::parseOfficeArtBlipPICT(LEInputStream &in, OfficeArtBlipPICT &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0x542 || _s.rh.recInstance == 0x543)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x542 || _s.rh.recInstance == 0x543");
    }
    if (!(_s.rh.recType == 0xF01C)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF01C");
    }
    _c = 16;
    _s.rgbUid1.resize(_c);
    in.readBytes(_s.rgbUid1);
    _s._has_rgbUid2 = _s.rh.recInstance == 0x543;
    if (_s._has_rgbUid2) {
        _c = 16;
        _s.rgbUid2.resize(_c);
        in.readBytes(_s.rgbUid2);
    }
    parseOfficeArtMetafileHeader(in, _s.metafileHeader);
    _c = _s.rh.recLen - ((_s.rh.recInstance == 0x542) ? 50 : 66);
    _s.BLIPFileData.resize(_c);
    in.readBytes(_s.BLIPFileData);
}
void MSO::parseOfficeArtBlip(LEInputStream &in, OfficeArtBlip &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recInstance == 0x3D4 || _choice.recInstance == 0x3D5) && (_choice.recType == 0xF01A))) {
        _s.anon = OfficeArtBlip::choice279968329(new OfficeArtBlipEMF(&_s));
        parseOfficeArtBlipEMF(in, *(OfficeArtBlipEMF *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0x216 || _choice.recInstance == 0x217) && (_choice.recType == 0xF01B))) {
        _s.anon = OfficeArtBlip::choice279968329(new OfficeArtBlipWMF(&_s));
        parseOfficeArtBlipWMF(in, *(OfficeArtBlipWMF *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0x542 || _choice.recInstance == 0x543) && (_choice.recType == 0xF01C))) {
        _s.anon = OfficeArtBlip::choice279968329(new OfficeArtBlipPICT(&_s));
        parseOfficeArtBlipPICT(in, *(OfficeArtBlipPICT *)_s.anon.data());
    }
    if (startPos == in.getPosition()
        && ((_choice.recInstance == 0x46A || _choice.recInstance == 0x46B || _choice.recInstance == 0x6E2 || _choice.recInstance == 0x6E3)
            && (_choice.recType == 0xF01D))) {
        _s.anon = OfficeArtBlip::choice279968329(new OfficeArtBlipJPEG(&_s));
        parseOfficeArtBlipJPEG(in, *(OfficeArtBlipJPEG *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0x6E0 || _choice.recInstance == 0x6E1) && (_choice.recType == 0xF01E))) {
        _s.anon = OfficeArtBlip::choice279968329(new OfficeArtBlipPNG(&_s));
        parseOfficeArtBlipPNG(in, *(OfficeArtBlipPNG *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0x7A8 || _choice.recInstance == 0x7A9) && (_choice.recType == 0xF01F))) {
        _s.anon = OfficeArtBlip::choice279968329(new OfficeArtBlipDIB(&_s));
        parseOfficeArtBlipDIB(in, *(OfficeArtBlipDIB *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = OfficeArtBlip::choice279968329(new OfficeArtBlipTIFF(&_s));
        parseOfficeArtBlipTIFF(in, *(OfficeArtBlipTIFF *)_s.anon.data());
    }
}
void MSO::parseZoomViewInfoAtom(LEInputStream &in, ZoomViewInfoAtom &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x3FD)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3FD");
    }
    if (!(_s.rh.recLen == 0x34)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x34");
    }
    parseScalingStruct(in, _s.curScale);
    _c = 24;
    _s.unused1.resize(_c);
    in.readBytes(_s.unused1);
    parsePointStruct(in, _s.origin);
    _s.fUseVarScale = in.readuint8();
    if (!(((quint8)_s.fUseVarScale) == 0 || ((quint8)_s.fUseVarScale) == 1)) {
        throw IncorrectValueException(in.getPosition(), "((quint8)_s.fUseVarScale) == 0 || ((quint8)_s.fUseVarScale) == 1");
    }
    _s.fDraftMode = in.readuint8();
    _s.unused2 = in.readuint16();
}
void MSO::parsePP9DocBinaryTagExtension(LEInputStream &in, PP9DocBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen == 0x0E)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x0E");
    }
    _c = 14;
    _s.tagName.resize(_c);
    in.readBytes(_s.tagName);
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0x0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgTextMasterStyle9.append(TextMasterStyle9Atom(&_s));
            parseTextMasterStyle9Atom(in, _s.rgTextMasterStyle9.last());
        } catch (IncorrectValueException &_e) {
            _s.rgTextMasterStyle9.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgTextMasterStyle9.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x07F8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.blipCollectionContainer = QSharedPointer<BlipCollection9Container>(new BlipCollection9Container(&_s));
            parseBlipCollection9Container(in, *_s.blipCollectionContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.blipCollectionContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.blipCollectionContainer.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x00) && (_optionCheck.recType == 0x0FB0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.textDefaultsAtom = QSharedPointer<TextDefaults9Atom>(new TextDefaults9Atom(&_s));
            parseTextDefaults9Atom(in, *_s.textDefaultsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.textDefaultsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.textDefaultsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0x2) && (_optionCheck.recType == 0x0FC8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.kinsokuContainer = QSharedPointer<Kinsoku9Container>(new Kinsoku9Container(&_s));
            parseKinsoku9Container(in, *_s.kinsokuContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.kinsokuContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.kinsokuContainer.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgExternalHyperlink9.append(ExHyperlink9Container(&_s));
            parseExHyperlink9Container(in, _s.rgExternalHyperlink9.last());
        } catch (IncorrectValueException &_e) {
            _s.rgExternalHyperlink9.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgExternalHyperlink9.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x177A) && (_optionCheck.recLen == 0x4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.presAdvisorFlagsAtom = QSharedPointer<PresAdvisorFlags9Atom>(new PresAdvisorFlags9Atom(&_s));
            parsePresAdvisorFlags9Atom(in, *_s.presAdvisorFlagsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.presAdvisorFlagsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.presAdvisorFlagsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x1785);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.envelopeDataAtom = QSharedPointer<EnvelopeData9Atom>(new EnvelopeData9Atom(&_s));
            parseEnvelopeData9Atom(in, *_s.envelopeDataAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.envelopeDataAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.envelopeDataAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x1784) && (_optionCheck.recLen == 4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.envelopeFlagsAtom = QSharedPointer<EnvelopeFlags9Atom>(new EnvelopeFlags9Atom(&_s));
            parseEnvelopeFlags9Atom(in, *_s.envelopeFlagsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.envelopeFlagsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.envelopeFlagsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x177B) && (_optionCheck.recLen == 0x10);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.htmlDocInfoAtom = QSharedPointer<HTMLDocInfo9Atom>(new HTMLDocInfo9Atom(&_s));
            parseHTMLDocInfo9Atom(in, *_s.htmlDocInfoAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.htmlDocInfoAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.htmlDocInfoAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x177D);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.htmlPublishInfoAtom = QSharedPointer<HTMLPublishInfo9Container>(new HTMLPublishInfo9Container(&_s));
            parseHTMLPublishInfo9Container(in, *_s.htmlPublishInfoAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.htmlPublishInfoAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.htmlPublishInfoAtom.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgBroadcastDocInfo9.append(BroadcastDocInfo9Container(&_s));
            parseBroadcastDocInfo9Container(in, _s.rgBroadcastDocInfo9.last());
        } catch (IncorrectValueException &_e) {
            _s.rgBroadcastDocInfo9.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgBroadcastDocInfo9.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x0FAE);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.outlineTextPropsContainer = QSharedPointer<OutlineTextProps9Container>(new OutlineTextProps9Container(&_s));
            parseOutlineTextProps9Container(in, *_s.outlineTextPropsContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.outlineTextPropsContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.outlineTextPropsContainer.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseTextMasterStyle9Level(LEInputStream &in, TextMasterStyle9Level &_s)
{
    _s.streamOffset = in.getPosition();
    parseTextPFException9(in, _s.pf9);
    parseTextCFException9(in, _s.cf9);
}
void MSO::parseStyleTextProp9(LEInputStream &in, StyleTextProp9 &_s)
{
    _s.streamOffset = in.getPosition();
    parseTextPFException9(in, _s.pf9);
    parseTextCFException9(in, _s.cf9);
    parseTextSIException(in, _s.si);
    if (!(_s.si.spell == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.si.spell == false");
    }
    if (!(_s.si.lang == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.si.lang == false");
    }
    if (!(_s.si.altLang == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.si.altLang == false");
    }
    if (!(_s.si.smartTag == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.si.smartTag == false");
    }
}
void MSO::parsePP10DocBinaryTagExtension(LEInputStream &in, PP10DocBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0FBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FBA");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _c = 16;
    _s.tagName.resize(_c);
    in.readBytes(_s.tagName);
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0x0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x07D6);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.fontCollectionContainer = QSharedPointer<FontCollection10Container>(new FontCollection10Container(&_s));
            parseFontCollection10Container(in, *_s.fontCollectionContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.fontCollectionContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.fontCollectionContainer.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgTextMasterStyle10.append(TextMasterStyle10Atom(&_s));
            parseTextMasterStyle10Atom(in, _s.rgTextMasterStyle10.last());
        } catch (IncorrectValueException &_e) {
            _s.rgTextMasterStyle10.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgTextMasterStyle10.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FB4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.textDefaultsAtom = QSharedPointer<TextDefaults10Atom>(new TextDefaults10Atom(&_s));
            parseTextDefaults10Atom(in, *_s.textDefaultsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.textDefaultsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.textDefaultsAtom.clear();
            in.rewind(_m);
        }
    }
    parseGridSpacing10Atom(in, _s.gridSpacingAtom);
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgCommentIndex10.append(CommentIndex10Container(&_s));
            parseCommentIndex10Container(in, _s.rgCommentIndex10.last());
        } catch (IncorrectValueException &_e) {
            _s.rgCommentIndex10.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgCommentIndex10.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x32C8) && (_optionCheck.recLen == 0x04);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.fontEmbedFlagsAtom = QSharedPointer<FontEmbedFlags10Atom>(new FontEmbedFlags10Atom(&_s));
            parseFontEmbedFlags10Atom(in, *_s.fontEmbedFlagsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.fontEmbedFlagsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.fontEmbedFlagsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x1) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen <= 510)
            && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.copyrightAtom = QSharedPointer<CopyrightAtom>(new CopyrightAtom(&_s));
            parseCopyrightAtom(in, *_s.copyrightAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.copyrightAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.copyrightAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x2) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen <= 510)
            && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.keywordsAtom = QSharedPointer<KeywordsAtom>(new KeywordsAtom(&_s));
            parseKeywordsAtom(in, *_s.keywordsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.keywordsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.keywordsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x36B0) && (_optionCheck.recLen == 0x04);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.filterPrivacyFlagsAtom = QSharedPointer<FilterPrivacyFlags10Atom>(new FilterPrivacyFlags10Atom(&_s));
            parseFilterPrivacyFlags10Atom(in, *_s.filterPrivacyFlagsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.filterPrivacyFlagsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.filterPrivacyFlagsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x0FB3);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.outlineTextPropsContainer = QSharedPointer<OutlineTextProps10Container>(new OutlineTextProps10Container(&_s));
            parseOutlineTextProps10Container(in, *_s.outlineTextPropsContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.outlineTextPropsContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.outlineTextPropsContainer.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x36B1) && (_optionCheck.recLen == 0x01);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.docToolbarStatesAtom = QSharedPointer<DocToolbarStates10Atom>(new DocToolbarStates10Atom(&_s));
            parseDocToolbarStates10Atom(in, *_s.docToolbarStatesAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.docToolbarStatesAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.docToolbarStatesAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x2EF1);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideListTableContainer = QSharedPointer<SlideListTable10Container>(new SlideListTable10Container(&_s));
            parseSlideListTable10Container(in, *_s.slideListTableContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.slideListTableContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideListTableContainer.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x2EEC);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.rgDiffTree10Container = QSharedPointer<DiffTree10Container>(new DiffTree10Container(&_s));
            parseDiffTree10Container(in, *_s.rgDiffTree10Container.data());
        } catch (IncorrectValueException &_e) {
            _s.rgDiffTree10Container.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgDiffTree10Container.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x03) && (_optionCheck.recType == 0x0FBA)
            && (_optionCheck.recLen <= 510) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.modifyPasswordAtom = QSharedPointer<ModifyPasswordAtom>(new ModifyPasswordAtom(&_s));
            parseModifyPasswordAtom(in, *_s.modifyPasswordAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.modifyPasswordAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.modifyPasswordAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x036B2) && (_optionCheck.recLen == 0x06);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.photoAlbumInfoAtom = QSharedPointer<PhotoAlbumInfo10Atom>(new PhotoAlbumInfo10Atom(&_s));
            parsePhotoAlbumInfo10Atom(in, *_s.photoAlbumInfoAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.photoAlbumInfoAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.photoAlbumInfoAtom.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseTextMasterStyle10Level(LEInputStream &in, TextMasterStyle10Level &_s)
{
    _s.streamOffset = in.getPosition();
    parseTextCFException10(in, _s.cf10);
}
void MSO::parseNotesTextViewInfoContainer(LEInputStream &in, NotesTextViewInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x413)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x413");
    }
    parseZoomViewInfoAtom(in, _s.zoomViewInfo);
}
void MSO::parseOutlineViewInfoContainer(LEInputStream &in, OutlineViewInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0 || _s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x407)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x407");
    }
    parseNoZoomViewInfoAtom(in, _s.noZoomViewInfo);
}
void MSO::parseNormalViewSetInfoContainer(LEInputStream &in, NormalViewSetInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x414)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x414");
    }
    if (!(_s.rh.recLen == 0x1C)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x1C");
    }
    parseNormalViewSetInfoAtom(in, _s.normalViewSetInfoAtom);
}
void MSO::parseSlideListWithTextSubContainerOrAtom(LEInputStream &in, SlideListWithTextSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseSlidePersistAtom(in, _s.slidePersistAtom);
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.atoms.append(TextContainer(&_s));
            parseTextContainer(in, _s.atoms.last());
        } catch (IncorrectValueException &_e) {
            _s.atoms.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.atoms.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseOutlineAtom(LEInputStream &in, OutlineAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseOutlineTextRefAtom(in, _s.outlineTextRefAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFA6);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.textRulerAtom = QSharedPointer<TextRulerAtom>(new TextRulerAtom(&_s));
            parseTextRulerAtom(in, *_s.textRulerAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.textRulerAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.textRulerAtom.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseTextContainer(LEInputStream &in, TextContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseTextHeaderAtom(in, _s.textHeaderAtom);
    _m = in.setMark();
    RecordHeader _choice(&_s);
    parseRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recVer == 0) && (_choice.recInstance == 0) && (_choice.recType == 0xFA0) && (_choice.recLen % 2 == 0))) {
        _s.text = TextContainer::choice1060411409(new TextCharsAtom(&_s));
        parseTextCharsAtom(in, *(TextCharsAtom *)_s.text.data());
    }
    if (startPos == in.getPosition() && ((_choice.recVer == 0) && (_choice.recInstance == 0) && (_choice.recType == 0xFA8))) {
        _s.text = TextContainer::choice1060411409(new TextBytesAtom(&_s));
        parseTextBytesAtom(in, *(TextBytesAtom *)_s.text.data());
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFA1);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.style = QSharedPointer<StyleTextPropAtom>(new StyleTextPropAtom(&_s));
            parseStyleTextPropAtom(in, *_s.style.data());
        } catch (IncorrectValueException &_e) {
            _s.style.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.style.clear();
            in.rewind(_m);
        }
    }
    if (_s.style) {
        quint32 count = 0;
        if (_s.text.is<TextCharsAtom>()) {
            count = _s.text.get<TextCharsAtom>()->textChars.size();
        }
        if (_s.text.is<TextBytesAtom>()) {
            count = _s.text.get<TextBytesAtom>()->textChars.size();
        }
        quint32 sum = 0;
        do {
            _s.style->rgTextPFRun.append(TextPFRun(_s.style.data()));
            parseTextPFRun(in, _s.style->rgTextPFRun.last());
            sum += _s.style->rgTextPFRun.last().count;
        } while (sum <= count);
        sum = 0;
        do {
            _s.style->rgTextCFRun.append(TextCFRun(_s.style.data()));
            parseTextCFRun(in, _s.style->rgTextCFRun.last());
            sum += _s.style->rgTextCFRun.last().count;
        } while (sum <= count);
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.meta.append(TextContainerMeta(&_s));
            parseTextContainerMeta(in, _s.meta.last());
        } catch (IncorrectValueException &_e) {
            _s.meta.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.meta.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFA2);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.master = QSharedPointer<MasterTextPropAtom>(new MasterTextPropAtom(&_s));
            parseMasterTextPropAtom(in, *_s.master.data());
        } catch (IncorrectValueException &_e) {
            _s.master.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.master.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.bookmark.append(TextBookmarkAtom(&_s));
            parseTextBookmarkAtom(in, _s.bookmark.last());
        } catch (IncorrectValueException &_e) {
            _s.bookmark.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.bookmark.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 3) && (_optionCheck.recInstance == 9) && (_optionCheck.recType == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown = QSharedPointer<UnknownTextContainerChild>(new UnknownTextContainerChild(&_s));
            parseUnknownTextContainerChild(in, *_s.unknown.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0xFAA);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.specialinfo = QSharedPointer<TextSpecialInfoAtom>(new TextSpecialInfoAtom(&_s));
            parseTextSpecialInfoAtom(in, *_s.specialinfo.data());
        } catch (IncorrectValueException &_e) {
            _s.specialinfo.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.specialinfo.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.interactive.append(TextContainerInteractiveInfo(&_s));
            parseTextContainerInteractiveInfo(in, _s.interactive.last());
        } catch (IncorrectValueException &_e) {
            _s.interactive.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.interactive.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0xFAA);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.specialinfo2 = QSharedPointer<TextSpecialInfoAtom>(new TextSpecialInfoAtom(&_s));
            parseTextSpecialInfoAtom(in, *_s.specialinfo2.data());
        } catch (IncorrectValueException &_e) {
            _s.specialinfo2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.specialinfo2.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFA6);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.textRulerAtom = QSharedPointer<TextRulerAtom>(new TextRulerAtom(&_s));
            parseTextRulerAtom(in, *_s.textRulerAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.textRulerAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.textRulerAtom.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.interactive2.append(TextContainerInteractiveInfo(&_s));
            parseTextContainerInteractiveInfo(in, _s.interactive2.last());
        } catch (IncorrectValueException &_e) {
            _s.interactive2.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.interactive2.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseMouseClickTextInfo(LEInputStream &in, MouseClickTextInfo &_s)
{
    _s.streamOffset = in.getPosition();
    parseMouseClickInteractiveInfoContainer(in, _s.interactive);
    parseMouseClickTextInteractiveInfoAtom(in, _s.text);
}
void MSO::parseMouseOverTextInfo(LEInputStream &in, MouseOverTextInfo &_s)
{
    _s.streamOffset = in.getPosition();
    parseMouseOverInteractiveInfoContainer(in, _s.interactive);
    parseMouseOverTextInteractiveInfoAtom(in, _s.text);
}
void MSO::parseTextPFRun(LEInputStream &in, TextPFRun &_s)
{
    _s.streamOffset = in.getPosition();
    _s.count = in.readuint32();
    if (!(((quint32)_s.count) > 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.count)>0");
    }
    _s.indentLevel = in.readuint16();
    if (!(((quint16)_s.indentLevel) <= 4)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.indentLevel)<=4");
    }
    parseTextPFException(in, _s.pf);
    if (!(_s.pf.masks.defaultTabSize == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.pf.masks.defaultTabSize == false");
    }
    if (!(_s.pf.masks.tabStops == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.pf.masks.tabStops == false");
    }
}
void MSO::parseTextCFRun(LEInputStream &in, TextCFRun &_s)
{
    _s.streamOffset = in.getPosition();
    _s.count = in.readuint32();
    if (!(((quint32)_s.count) > 0)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.count)>0");
    }
    parseTextCFException(in, _s.cf);
}
void MSO::parseTextCFExceptionAtom(LEInputStream &in, TextCFExceptionAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FA4)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FA4");
    }
    parseTextCFException(in, _s.cf);
}
void MSO::parseDefaultRulerAtom(LEInputStream &in, DefaultRulerAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FAB)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FAB");
    }
    parseTextRuler(in, _s.defaultTextRuler);
    if (!(_s.defaultTextRuler.fDefaultTabSize == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fDefaultTabSize == true");
    }
    if (!(_s.defaultTextRuler.fCLevels == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fCLevels == true");
    }
    if (!(_s.defaultTextRuler.fTabStops == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fTabStops == true");
    }
    if (!(_s.defaultTextRuler.fLeftMargin1 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fLeftMargin1 == true");
    }
    if (!(_s.defaultTextRuler.fLeftMargin2 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fLeftMargin2 == true");
    }
    if (!(_s.defaultTextRuler.fLeftMargin3 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fLeftMargin3 == true");
    }
    if (!(_s.defaultTextRuler.fLeftMargin4 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fLeftMargin4 == true");
    }
    if (!(_s.defaultTextRuler.fIndent1 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fIndent1 == true");
    }
    if (!(_s.defaultTextRuler.fIndent2 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fIndent2 == true");
    }
    if (!(_s.defaultTextRuler.fIndent3 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fIndent3 == true");
    }
    if (!(_s.defaultTextRuler.fIndent4 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fIndent4 == true");
    }
    if (!(_s.defaultTextRuler.fIndent5 == true)) {
        throw IncorrectValueException(in.getPosition(), "_s.defaultTextRuler.fIndent5 == true");
    }
}
void MSO::parseTextPFExceptionAtom(LEInputStream &in, TextPFExceptionAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FA5)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FA5");
    }
    _s.reserved = in.readuint16();
    parseTextPFException(in, _s.pf);
}
void MSO::parseTextSIRun(LEInputStream &in, TextSIRun &_s)
{
    _s.streamOffset = in.getPosition();
    _s.count = in.readuint32();
    if (!(((quint32)_s.count) >= 1)) {
        throw IncorrectValueException(in.getPosition(), "((quint32)_s.count)>=1");
    }
    parseTextSIException(in, _s.si);
}
void MSO::parseTextSIExceptionAtom(LEInputStream &in, TextSIExceptionAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0FA9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FA9");
    }
    parseTextSIException(in, _s.textSIException);
    if (!(_s.textSIException.fPp10ext == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.textSIException.fPp10ext == false");
    }
    if (!(_s.textSIException.fBidi == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.textSIException.fBidi == false");
    }
    if (!(_s.textSIException.smartTag == false)) {
        throw IncorrectValueException(in.getPosition(), "_s.textSIException.smartTag == false");
    }
}
void MSO::parseTextMasterStyleAtom(LEInputStream &in, TextMasterStyleAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4
          || _s.rh.recInstance == 5 || _s.rh.recInstance == 6 || _s.rh.recInstance == 7 || _s.rh.recInstance == 8)) {
        throw IncorrectValueException(
            in.getPosition(),
            "_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4 || "
            "_s.rh.recInstance == 5 || _s.rh.recInstance == 6 || _s.rh.recInstance == 7 || _s.rh.recInstance == 8");
    }
    if (!(_s.rh.recType == 0x0FA3)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FA3");
    }
    _s.cLevels = in.readuint16();
    if (!(((quint16)_s.cLevels) <= 5)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.cLevels)<=5");
    }
    _s._has_lstLvl1level = _s.cLevels > 0 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl1level) {
        _s.lstLvl1level = in.readuint16();
    }
    if (_s.cLevels > 0) {
        _s.lstLvl1 = QSharedPointer<TextMasterStyleLevel>(new TextMasterStyleLevel(&_s));
        parseTextMasterStyleLevel(in, *_s.lstLvl1.data());
    }
    _s._has_lstLvl2level = _s.cLevels > 1 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl2level) {
        _s.lstLvl2level = in.readuint16();
    }
    if (_s.cLevels > 1) {
        _s.lstLvl2 = QSharedPointer<TextMasterStyleLevel>(new TextMasterStyleLevel(&_s));
        parseTextMasterStyleLevel(in, *_s.lstLvl2.data());
    }
    _s._has_lstLvl3level = _s.cLevels > 2 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl3level) {
        _s.lstLvl3level = in.readuint16();
    }
    if (_s.cLevels > 2) {
        _s.lstLvl3 = QSharedPointer<TextMasterStyleLevel>(new TextMasterStyleLevel(&_s));
        parseTextMasterStyleLevel(in, *_s.lstLvl3.data());
    }
    _s._has_lstLvl4level = _s.cLevels > 3 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl4level) {
        _s.lstLvl4level = in.readuint16();
    }
    if (_s.cLevels > 3) {
        _s.lstLvl4 = QSharedPointer<TextMasterStyleLevel>(new TextMasterStyleLevel(&_s));
        parseTextMasterStyleLevel(in, *_s.lstLvl4.data());
    }
    _s._has_lstLvl5level = _s.cLevels > 4 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl5level) {
        _s.lstLvl5level = in.readuint16();
    }
    if (_s.cLevels > 4) {
        _s.lstLvl5 = QSharedPointer<TextMasterStyleLevel>(new TextMasterStyleLevel(&_s));
        parseTextMasterStyleLevel(in, *_s.lstLvl5.data());
    }
}
void MSO::parsePP10SlideBinaryTagExtension(LEInputStream &in, PP10SlideBinaryTagExtension &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xFBA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xFBA");
    }
    if (!(_s.rh.recLen == 0x10)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recLen == 0x10");
    }
    _c = 8;
    _s.tagName.resize(_c);
    for (int _i = 0; _i < _c; ++_i) {
        _s.tagName[_i] = in.readuint16();
    }
    parseRecordHeader(in, _s.rhData);
    if (!(_s.rhData.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recVer == 0");
    }
    if (!(_s.rhData.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recInstance == 0");
    }
    if (!(_s.rhData.recType == 0x138B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rhData.recType == 0x138B");
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgTextMasterStyleAtom.append(TextMasterStyle10Atom(&_s));
            parseTextMasterStyle10Atom(in, _s.rgTextMasterStyleAtom.last());
        } catch (IncorrectValueException &_e) {
            _s.rgTextMasterStyleAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgTextMasterStyleAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgComment10Container.append(Comment10Container(&_s));
            parseComment10Container(in, _s.rgComment10Container.last());
        } catch (IncorrectValueException &_e) {
            _s.rgComment10Container.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgComment10Container.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x2EE7) && (_optionCheck.recLen == 8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.linkedSlideAtom = QSharedPointer<LinkedSlide10Atom>(new LinkedSlide10Atom(&_s));
            parseLinkedSlide10Atom(in, *_s.linkedSlideAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.linkedSlideAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.linkedSlideAtom.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgLinkedShape10Atom.append(LinkedShape10Atom(&_s));
            parseLinkedShape10Atom(in, _s.rgLinkedShape10Atom.last());
        } catch (IncorrectValueException &_e) {
            _s.rgLinkedShape10Atom.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgLinkedShape10Atom.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x2EEA) && (_optionCheck.recLen == 4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideFlagsAtom = QSharedPointer<SlideFlags10Atom>(new SlideFlags10Atom(&_s));
            parseSlideFlags10Atom(in, *_s.slideFlagsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.slideFlagsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideFlagsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x2EEB) && (_optionCheck.recLen == 8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideTimeAtom = QSharedPointer<SlideTime10Atom>(new SlideTime10Atom(&_s));
            parseSlideTime10Atom(in, *_s.slideTimeAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.slideTimeAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideTimeAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x101D);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown = QSharedPointer<UnknownSlideContainerChild>(new UnknownSlideContainerChild(&_s));
            parseUnknownSlideContainerChild(in, *_s.unknown.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x2B00) && (_optionCheck.recLen == 4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.hashCodeAtom = QSharedPointer<HashCode10Atom>(new HashCode10Atom(&_s));
            parseHashCode10Atom(in, *_s.hashCodeAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.hashCodeAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.hashCodeAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 1) && (_optionCheck.recType == 0xF144);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.extTimeNodeContainer = QSharedPointer<ExtTimeNodeContainer>(new ExtTimeNodeContainer(&_s));
            parseExtTimeNodeContainer(in, *_s.extTimeNodeContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.extTimeNodeContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.extTimeNodeContainer.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x2B02);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.buildListContainer = QSharedPointer<BuildListContainer>(new BuildListContainer(&_s));
            parseBuildListContainer(in, *_s.buildListContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.buildListContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.buildListContainer.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseExObjListSubContainer(LEInputStream &in, ExObjListSubContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0x1006))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExAviMovieContainer(&_s));
        parseExAviMovieContainer(in, *(ExAviMovieContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0x100E))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExCDAudioContainer(&_s));
        parseExCDAudioContainer(in, *(ExCDAudioContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0xFEE))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExControlContainer(&_s));
        parseExControlContainer(in, *(ExControlContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0xFD7))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExHyperlinkContainer(&_s));
        parseExHyperlinkContainer(in, *(ExHyperlinkContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0x1007))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExMCIMovieContainer(&_s));
        parseExMCIMovieContainer(in, *(ExMCIMovieContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0x100D))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExMIDIAudioContainer(&_s));
        parseExMIDIAudioContainer(in, *(ExMIDIAudioContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0x0) && (_choice.recType == 0x0FCC))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExOleEmbedContainer(&_s));
        parseExOleEmbedContainer(in, *(ExOleEmbedContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0x0) && (_choice.recType == 0x0FCE))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExOleLinkContainer(&_s));
        parseExOleLinkContainer(in, *(ExOleLinkContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0x100F))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExWAVAudioEmbeddedContainer(&_s));
        parseExWAVAudioEmbeddedContainer(in, *(ExWAVAudioEmbeddedContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0x1010))) {
        _s.anon = ExObjListSubContainer::choice2338534801(new ExWAVAudioLinkContainer(&_s));
        parseExWAVAudioLinkContainer(in, *(ExWAVAudioLinkContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = ExObjListSubContainer::choice2338534801(new UnknownExObjListSubContainerChild(&_s));
        parseUnknownExObjListSubContainerChild(in, *(UnknownExObjListSubContainerChild *)_s.anon.data());
    }
}
void MSO::parseOfficeArtDggContainer(LEInputStream &in, OfficeArtDggContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x0F000)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F000");
    }
    parseOfficeArtFDGGBlock(in, _s.drawingGroup);
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recType == 0x0F001);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.blipStore = QSharedPointer<OfficeArtBStoreContainer>(new OfficeArtBStoreContainer(&_s));
            parseOfficeArtBStoreContainer(in, *_s.blipStore.data());
        } catch (IncorrectValueException &_e) {
            _s.blipStore.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.blipStore.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x3) && (_optionCheck.recType == 0x0F00B);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.drawingPrimaryOptions = QSharedPointer<OfficeArtFOPT>(new OfficeArtFOPT(&_s));
            parseOfficeArtFOPT(in, *_s.drawingPrimaryOptions.data());
        } catch (IncorrectValueException &_e) {
            _s.drawingPrimaryOptions.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.drawingPrimaryOptions.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 3) && (_optionCheck.recType == 0xF122);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.drawingTertiaryOptions = QSharedPointer<OfficeArtTertiaryFOPT>(new OfficeArtTertiaryFOPT(&_s));
            parseOfficeArtTertiaryFOPT(in, *_s.drawingTertiaryOptions.data());
        } catch (IncorrectValueException &_e) {
            _s.drawingTertiaryOptions.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.drawingTertiaryOptions.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recType == 0xF11A) && (_optionCheck.recLen == 4 * _optionCheck.recInstance);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.colorMRU = QSharedPointer<OfficeArtColorMRUContainer>(new OfficeArtColorMRUContainer(&_s));
            parseOfficeArtColorMRUContainer(in, *_s.colorMRU.data());
        } catch (IncorrectValueException &_e) {
            _s.colorMRU.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.colorMRU.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x4) && (_optionCheck.recType == 0xF11E) && (_optionCheck.recLen == 0x10);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.splitColors = QSharedPointer<OfficeArtSplitMenuColorContainer>(new OfficeArtSplitMenuColorContainer(&_s));
            parseOfficeArtSplitMenuColorContainer(in, *_s.splitColors.data());
        } catch (IncorrectValueException &_e) {
            _s.splitColors.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.splitColors.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recType == 0x0F001);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.blipStore2 = QSharedPointer<OfficeArtBStoreContainer>(new OfficeArtBStoreContainer(&_s));
            parseOfficeArtBStoreContainer(in, *_s.blipStore2.data());
        } catch (IncorrectValueException &_e) {
            _s.blipStore2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.blipStore2.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 3) && (_optionCheck.recType == 0xF122);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown = QSharedPointer<OfficeArtTertiaryFOPT>(new OfficeArtTertiaryFOPT(&_s));
            parseOfficeArtTertiaryFOPT(in, *_s.unknown.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseOfficeArtFOPTEChoice(LEInputStream &in, OfficeArtFOPTEChoice &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtFOPTEOPID _choice(&_s);
    parseOfficeArtFOPTEOPID(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.opid == 0x0004) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Rotation(&_s));
        parseRotation(in, *(Rotation *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x007F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ProtectionBooleanProperties(&_s));
        parseProtectionBooleanProperties(in, *(ProtectionBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0080) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ITxid(&_s));
        parseITxid(in, *(ITxid *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0081) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxTextLeft(&_s));
        parseDxTextLeft(in, *(DxTextLeft *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0082) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DyTextTop(&_s));
        parseDyTextTop(in, *(DyTextTop *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0083) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxTextRight(&_s));
        parseDxTextRight(in, *(DxTextRight *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0084) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DyTextBottom(&_s));
        parseDyTextBottom(in, *(DyTextBottom *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0085) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new WrapText(&_s));
        parseWrapText(in, *(WrapText *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0087) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new AnchorText(&_s));
        parseAnchorText(in, *(AnchorText *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0088) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new TxflTextFlow(&_s));
        parseTxflTextFlow(in, *(TxflTextFlow *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0089) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new CdirFont(&_s));
        parseCdirFont(in, *(CdirFont *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x008A) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new HspNext(&_s));
        parseHspNext(in, *(HspNext *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x008B) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Txdir(&_s));
        parseTxdir(in, *(Txdir *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x00BF) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new TextBooleanProperties(&_s));
        parseTextBooleanProperties(in, *(TextBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0100) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new CropFromTop(&_s));
        parseCropFromTop(in, *(CropFromTop *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0101) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new CropFromBottom(&_s));
        parseCropFromBottom(in, *(CropFromBottom *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0102) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new CropFromLeft(&_s));
        parseCropFromLeft(in, *(CropFromLeft *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0103) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new CropFromRight(&_s));
        parseCropFromRight(in, *(CropFromRight *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0104))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Pib(&_s));
        parsePib(in, *(Pib *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0105))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PibName(&_s));
        parsePibName(in, *(PibName *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0106) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PibFlags(&_s));
        parsePibFlags(in, *(PibFlags *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0107) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PictureTransparent(&_s));
        parsePictureTransparent(in, *(PictureTransparent *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0108) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PictureContrast(&_s));
        parsePictureContrast(in, *(PictureContrast *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0109) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PictureBrightness(&_s));
        parsePictureBrightness(in, *(PictureBrightness *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x013F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new BlipBooleanProperties(&_s));
        parseBlipBooleanProperties(in, *(BlipBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0140) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new GeoLeft(&_s));
        parseGeoLeft(in, *(GeoLeft *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0141) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new GeoTop(&_s));
        parseGeoTop(in, *(GeoTop *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0142) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new GeoRight(&_s));
        parseGeoRight(in, *(GeoRight *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0143) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new GeoBottom(&_s));
        parseGeoBottom(in, *(GeoBottom *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0144) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ShapePath(&_s));
        parseShapePath(in, *(ShapePath *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0145))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PVertices(&_s));
        parsePVertices(in, *(PVertices *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0146))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PSegmentInfo(&_s));
        parsePSegmentInfo(in, *(PSegmentInfo *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0147) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new AdjustValue(&_s));
        parseAdjustValue(in, *(AdjustValue *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0148) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Adjust2Value(&_s));
        parseAdjust2Value(in, *(Adjust2Value *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0149) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Adjust3Value(&_s));
        parseAdjust3Value(in, *(Adjust3Value *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x014A) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Adjust4Value(&_s));
        parseAdjust4Value(in, *(Adjust4Value *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x014B) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Adjust5Value(&_s));
        parseAdjust5Value(in, *(Adjust5Value *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x014C) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Adjust6Value(&_s));
        parseAdjust6Value(in, *(Adjust6Value *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x014D) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Adjust7Value(&_s));
        parseAdjust7Value(in, *(Adjust7Value *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x014E) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Adjust8Value(&_s));
        parseAdjust8Value(in, *(Adjust8Value *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x017F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new GeometryBooleanProperties(&_s));
        parseGeometryBooleanProperties(in, *(GeometryBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0180) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillType(&_s));
        parseFillType(in, *(FillType *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0181) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillColor(&_s));
        parseFillColor(in, *(FillColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0182) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillOpacity(&_s));
        parseFillOpacity(in, *(FillOpacity *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0183) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillBackColor(&_s));
        parseFillBackColor(in, *(FillBackColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0184) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillBackOpacity(&_s));
        parseFillBackOpacity(in, *(FillBackOpacity *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0185) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillCrMod(&_s));
        parseFillCrMod(in, *(FillCrMod *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0186))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillBlip(&_s));
        parseFillBlip(in, *(FillBlip *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0187))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillBlipName(&_s));
        parseFillBlipName(in, *(FillBlipName *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0188) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillBlipFlags(&_s));
        parseFillBlipFlags(in, *(FillBlipFlags *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0189) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillWidth(&_s));
        parseFillWidth(in, *(FillWidth *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x018A) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillHeight(&_s));
        parseFillHeight(in, *(FillHeight *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x018B) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillAngle(&_s));
        parseFillAngle(in, *(FillAngle *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x018C) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillFocus(&_s));
        parseFillFocus(in, *(FillFocus *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x018D) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillToLeft(&_s));
        parseFillToLeft(in, *(FillToLeft *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x018E) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillToTop(&_s));
        parseFillToTop(in, *(FillToTop *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x018F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillToRight(&_s));
        parseFillToRight(in, *(FillToRight *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0190) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillToBottom(&_s));
        parseFillToBottom(in, *(FillToBottom *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0191) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillRectLeft(&_s));
        parseFillRectLeft(in, *(FillRectLeft *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0192) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillRectTop(&_s));
        parseFillRectTop(in, *(FillRectTop *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0193) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillRectRight(&_s));
        parseFillRectRight(in, *(FillRectRight *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0194) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillRectBottom(&_s));
        parseFillRectBottom(in, *(FillRectBottom *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0195) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillDztype(&_s));
        parseFillDztype(in, *(FillDztype *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0196) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillShadePreset(&_s));
        parseFillShadePreset(in, *(FillShadePreset *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0197))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillShadeColors(&_s));
        parseFillShadeColors(in, *(FillShadeColors *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0198) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillOriginX(&_s));
        parseFillOriginX(in, *(FillOriginX *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0199) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillOriginY(&_s));
        parseFillOriginY(in, *(FillOriginY *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x019A) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillShapeOriginX(&_s));
        parseFillShapeOriginX(in, *(FillShapeOriginX *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x019B) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillShapeOriginY(&_s));
        parseFillShapeOriginY(in, *(FillShapeOriginY *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x019E) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillColorExt(&_s));
        parseFillColorExt(in, *(FillColorExt *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01A2) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillBackColorExt(&_s));
        parseFillBackColorExt(in, *(FillBackColorExt *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01BF) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new FillStyleBooleanProperties(&_s));
        parseFillStyleBooleanProperties(in, *(FillStyleBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01C0) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineColor(&_s));
        parseLineColor(in, *(LineColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01C1) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineOpacity(&_s));
        parseLineOpacity(in, *(LineOpacity *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01C2))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineBackColor(&_s));
        parseLineBackColor(in, *(LineBackColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01C5))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineFillBlip(&_s));
        parseLineFillBlip(in, *(LineFillBlip *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01CB) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineWidth(&_s));
        parseLineWidth(in, *(LineWidth *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01CD) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineStyle(&_s));
        parseLineStyle(in, *(LineStyle *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01CE) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineDashing(&_s));
        parseLineDashing(in, *(LineDashing *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01D0) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineStartArrowhead(&_s));
        parseLineStartArrowhead(in, *(LineStartArrowhead *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01D1) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineEndArrowhead(&_s));
        parseLineEndArrowhead(in, *(LineEndArrowhead *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01D2) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineStartArrowWidth(&_s));
        parseLineStartArrowWidth(in, *(LineStartArrowWidth *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01D3) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineStartArrowLength(&_s));
        parseLineStartArrowLength(in, *(LineStartArrowLength *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01D4) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineEndArrowWidth(&_s));
        parseLineEndArrowWidth(in, *(LineEndArrowWidth *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01D5) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineEndArrowLength(&_s));
        parseLineEndArrowLength(in, *(LineEndArrowLength *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01D6) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineJoinStyle(&_s));
        parseLineJoinStyle(in, *(LineJoinStyle *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01D7) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineEndCapStyle(&_s));
        parseLineEndCapStyle(in, *(LineEndCapStyle *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x01FF) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LineStyleBooleanProperties(&_s));
        parseLineStyleBooleanProperties(in, *(LineStyleBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0200) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ShadowType(&_s));
        parseShadowType(in, *(ShadowType *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0201) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ShadowColor(&_s));
        parseShadowColor(in, *(ShadowColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0204) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ShadowOpacity(&_s));
        parseShadowOpacity(in, *(ShadowOpacity *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0205) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ShadowOffsetX(&_s));
        parseShadowOffsetX(in, *(ShadowOffsetX *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0206) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ShadowOffsetY(&_s));
        parseShadowOffsetY(in, *(ShadowOffsetY *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x023F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ShadowStyleBooleanProperties(&_s));
        parseShadowStyleBooleanProperties(in, *(ShadowStyleBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0301) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new HspMaster(&_s));
        parseHspMaster(in, *(HspMaster *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0303) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Cxstyle(&_s));
        parseCxstyle(in, *(Cxstyle *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0304) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new BWMode(&_s));
        parseBWMode(in, *(BWMode *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x033F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new ShapeBooleanProperties(&_s));
        parseShapeBooleanProperties(in, *(ShapeBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0341) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxyCalloutGap(&_s));
        parseDxyCalloutGap(in, *(DxyCalloutGap *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0342) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Spcoa(&_s));
        parseSpcoa(in, *(Spcoa *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0343) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new Spcod(&_s));
        parseSpcod(in, *(Spcod *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0344) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxyCalloutDropSpecified(&_s));
        parseDxyCalloutDropSpecified(in, *(DxyCalloutDropSpecified *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0345) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxyCalloutLengthSpecified(&_s));
        parseDxyCalloutLengthSpecified(in, *(DxyCalloutLengthSpecified *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x037F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new CalloutBooleanProperties(&_s));
        parseCalloutBooleanProperties(in, *(CalloutBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0383))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PWrapPolygonVertices(&_s));
        parsePWrapPolygonVertices(in, *(PWrapPolygonVertices *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0384) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxWrapDistLeft(&_s));
        parseDxWrapDistLeft(in, *(DxWrapDistLeft *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0385) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DyWrapDistTop(&_s));
        parseDyWrapDistTop(in, *(DyWrapDistTop *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0386) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxWrapDistRight(&_s));
        parseDxWrapDistRight(in, *(DxWrapDistRight *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0387) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DyWrapDistBottom(&_s));
        parseDyWrapDistBottom(in, *(DyWrapDistBottom *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0388) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new LidRegroup(&_s));
        parseLidRegroup(in, *(LidRegroup *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x038F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PosH(&_s));
        parsePosH(in, *(PosH *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0390) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PosRelH(&_s));
        parsePosRelH(in, *(PosRelH *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0391) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PosV(&_s));
        parsePosV(in, *(PosV *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0392) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PosRelV(&_s));
        parsePosRelV(in, *(PosRelV *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0393) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new PctHR(&_s));
        parsePctHR(in, *(PctHR *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0394) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new AlignHR(&_s));
        parseAlignHR(in, *(AlignHR *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0395) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxHeightHR(&_s));
        parseDxHeightHR(in, *(DxHeightHR *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0396) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DxWidthHR(&_s));
        parseDxWidthHR(in, *(DxWidthHR *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x039b) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new BorderTopColor(&_s));
        parseBorderTopColor(in, *(BorderTopColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x039c) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new BorderLeftColor(&_s));
        parseBorderLeftColor(in, *(BorderLeftColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x039d) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new BorderBottomColor(&_s));
        parseBorderBottomColor(in, *(BorderBottomColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x039e) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new BorderRightColor(&_s));
        parseBorderRightColor(in, *(BorderRightColor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x03bf) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new GroupShapeBooleanProperties(&_s));
        parseGroupShapeBooleanProperties(in, *(GroupShapeBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x0403))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new WzFillId(&_s));
        parseWzFillId(in, *(WzFillId *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.opid == 0x053F) && (_choice.fBid == false) && (_choice.fComplex == false))) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new DiagramBooleanProperties(&_s));
        parseDiagramBooleanProperties(in, *(DiagramBooleanProperties *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = OfficeArtFOPTEChoice::choice3165202096(new OfficeArtFOPTE(&_s));
        parseOfficeArtFOPTE(in, *(OfficeArtFOPTE *)_s.anon.data());
    }
}
void MSO::parseOfficeArtClientAnchor(LEInputStream &in, OfficeArtClientAnchor &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recLen == 0x8 || _choice.recLen == 0x10))) {
        _s.anon = OfficeArtClientAnchor::choice1726903461(new PptOfficeArtClientAnchor(&_s));
        parsePptOfficeArtClientAnchor(in, *(PptOfficeArtClientAnchor *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recLen == 0x4))) {
        _s.anon = OfficeArtClientAnchor::choice1726903461(new DocOfficeArtClientAnchor(&_s));
        parseDocOfficeArtClientAnchor(in, *(DocOfficeArtClientAnchor *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = OfficeArtClientAnchor::choice1726903461(new XlsOfficeArtClientAnchor(&_s));
        parseXlsOfficeArtClientAnchor(in, *(XlsOfficeArtClientAnchor *)_s.anon.data());
    }
}
void MSO::parsePptOfficeArtClientData(LEInputStream &in, PptOfficeArtClientData &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0xF011)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF011");
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xBDB) && (_optionCheck.recLen == 1);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapeFlagsAtom = QSharedPointer<ShapeFlagsAtom>(new ShapeFlagsAtom(&_s));
            parseShapeFlagsAtom(in, *_s.shapeFlagsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.shapeFlagsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapeFlagsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xBDC) && (_optionCheck.recLen == 1);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapeFlags10Atom = QSharedPointer<ShapeFlags10Atom>(new ShapeFlags10Atom(&_s));
            parseShapeFlags10Atom(in, *_s.shapeFlags10Atom.data());
        } catch (IncorrectValueException &_e) {
            _s.shapeFlags10Atom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapeFlags10Atom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xBC1) && (_optionCheck.recLen == 4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.exObjRefAtom = QSharedPointer<ExObjRefAtom>(new ExObjRefAtom(&_s));
            parseExObjRefAtom(in, *_s.exObjRefAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.exObjRefAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.exObjRefAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x1014);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.animationInfo = QSharedPointer<AnimationInfoContainer>(new AnimationInfoContainer(&_s));
            parseAnimationInfoContainer(in, *_s.animationInfo.data());
        } catch (IncorrectValueException &_e) {
            _s.animationInfo.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.animationInfo.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFF2);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.mouseClickInteractiveInfo = QSharedPointer<MouseClickInteractiveInfoContainer>(new MouseClickInteractiveInfoContainer(&_s));
            parseMouseClickInteractiveInfoContainer(in, *_s.mouseClickInteractiveInfo.data());
        } catch (IncorrectValueException &_e) {
            _s.mouseClickInteractiveInfo.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.mouseClickInteractiveInfo.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 1) && (_optionCheck.recType == 0xFF2);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.mouseOverInteractiveInfo = QSharedPointer<MouseOverInteractiveInfoContainer>(new MouseOverInteractiveInfoContainer(&_s));
            parseMouseOverInteractiveInfoContainer(in, *_s.mouseOverInteractiveInfo.data());
        } catch (IncorrectValueException &_e) {
            _s.mouseOverInteractiveInfo.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.mouseOverInteractiveInfo.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgShapeClientRoundtripData0.append(ShapeClientRoundtripDataSubcontainerOrAtom(&_s));
            parseShapeClientRoundtripDataSubcontainerOrAtom(in, _s.rgShapeClientRoundtripData0.last());
        } catch (IncorrectValueException &_e) {
            _s.rgShapeClientRoundtripData0.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgShapeClientRoundtripData0.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xBC3) && (_optionCheck.recLen == 8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.placeholderAtom = QSharedPointer<PlaceholderAtom>(new PlaceholderAtom(&_s));
            parsePlaceholderAtom(in, *_s.placeholderAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.placeholderAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.placeholderAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFE7);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.recolorInfoAtom = QSharedPointer<RecolorInfoAtom>(new RecolorInfoAtom(&_s));
            parseRecolorInfoAtom(in, *_s.recolorInfoAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.recolorInfoAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.recolorInfoAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFE8 || _optionCheck.recType == 0x1019);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown1 = QSharedPointer<UnknownOfficeArtClientDataChild>(new UnknownOfficeArtClientDataChild(&_s));
            parseUnknownOfficeArtClientDataChild(in, *_s.unknown1.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown1.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown1.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgShapeClientRoundtripData.append(ShapeClientRoundtripDataSubcontainerOrAtom(&_s));
            parseShapeClientRoundtripDataSubcontainerOrAtom(in, _s.rgShapeClientRoundtripData.last());
        } catch (IncorrectValueException &_e) {
            _s.rgShapeClientRoundtripData.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgShapeClientRoundtripData.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFE8 || _optionCheck.recType == 0x1019);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown2 = QSharedPointer<UnknownOfficeArtClientDataChild>(new UnknownOfficeArtClientDataChild(&_s));
            parseUnknownOfficeArtClientDataChild(in, *_s.unknown2.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown2.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseShapeProgBinaryTagContainer(LEInputStream &in, ShapeProgBinaryTagContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x138A)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x138A");
    }
    parseShapeProgBinaryTagSubContainerOrAtom(in, _s.rec);
}
void MSO::parseWordDocument(LEInputStream &in, WordDocument &_s)
{
    _s.streamOffset = in.getPosition();
    parseFib(in, _s.fib);
}
void MSO::parseTable(LEInputStream &in, Table &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseSTSH(in, _s.stsh);
    parsePlcfSed(in, _s.plcfSed);
    parsePlcfhdd(in, _s.plcfHdd);
    parsePlcBteChpx(in, _s.plcfBteChpx);
    parsePlcfBtePapx(in, _s.plcfBtePapx);
    parseTcg(in, _s.cmds);
    parseClx(in, _s.clx);
    parseSttbfFfn(in, _s.sttbfFfn);
    _c = 600;
    _s.dop.resize(_c);
    in.readBytes(_s.dop);
}
void MSO::parsePcd(LEInputStream &in, Pcd &_s)
{
    _s.streamOffset = in.getPosition();
    _s.fNoParaLast = in.readbit();
    _s.fR1 = in.readbit();
    _s.fDirtly = in.readbit();
    if (!(((bool)_s.fDirtly) == false)) {
        throw IncorrectValueException(in.getPosition(), "((bool)_s.fDirtly) == false");
    }
    _s.fR2 = in.readbit();
    _s.fR3 = in.readuint12();
    parseFCompressed(in, _s.fc);
    parsePrm(in, _s.prm);
}
void MSO::parseOfficeArtFBSE(LEInputStream &in, OfficeArtFBSE &_s)
{
    _s.streamOffset = in.getPosition();
    int _c;
    LEInputStream::Mark _m;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x2");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4
          || _s.rh.recInstance == 5 || _s.rh.recInstance == 6 || _s.rh.recInstance == 7 || _s.rh.recInstance == 0x11 || _s.rh.recInstance == 0x12)) {
        throw IncorrectValueException(
            in.getPosition(),
            "_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4 || "
            "_s.rh.recInstance == 5 || _s.rh.recInstance == 6 || _s.rh.recInstance == 7 || _s.rh.recInstance == 0x11 || _s.rh.recInstance == 0x12");
    }
    if (!(_s.rh.recType == 0xF007)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF007");
    }
    _s.btWin32 = in.readuint8();
    _s.btMacOS = in.readuint8();
    _c = 16;
    _s.rgbUid.resize(_c);
    in.readBytes(_s.rgbUid);
    _s.tag = in.readuint16();
    _s.size = in.readuint32();
    _s.cRef = in.readuint32();
    _s.foDelay = in.readuint32();
    _s.unused1 = in.readuint8();
    _s.cbName = in.readuint8();
    _s.unused2 = in.readuint8();
    _s.unused3 = in.readuint8();
    _s._has_nameData = _s.cbName > 0;
    if (_s._has_nameData) {
        _c = _s.cbName;
        _s.nameData.resize(_c);
        in.readBytes(_s.nameData);
    }
    if (_s.rh.recLen > 36 + _s.cbName) {
        _s.embeddedBlip = QSharedPointer<OfficeArtBlip>(new OfficeArtBlip(&_s));
        parseOfficeArtBlip(in, *_s.embeddedBlip.data());
    }
}
void MSO::parseOfficeArtBStoreContainerFileBlock(LEInputStream &in, OfficeArtBStoreContainerFileBlock &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition()
        && ((_choice.recVer == 0x2)
            && (_choice.recInstance == 0 || _choice.recInstance == 1 || _choice.recInstance == 2 || _choice.recInstance == 3 || _choice.recInstance == 4
                || _choice.recInstance == 5 || _choice.recInstance == 6 || _choice.recInstance == 7 || _choice.recInstance == 0x11
                || _choice.recInstance == 0x12)
            && (_choice.recType == 0xF007))) {
        _s.anon = OfficeArtBStoreContainerFileBlock::choice2043165903(new OfficeArtFBSE(&_s));
        parseOfficeArtFBSE(in, *(OfficeArtFBSE *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = OfficeArtBStoreContainerFileBlock::choice2043165903(new OfficeArtBlip(&_s));
        parseOfficeArtBlip(in, *(OfficeArtBlip *)_s.anon.data());
    }
}
void MSO::parseSlideViewInfoInstance(LEInputStream &in, SlideViewInfoInstance &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0 || _s.rh.recInstance == 1");
    }
    if (!(_s.rh.recType == 0x3FA)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x3FA");
    }
    parseSlideViewInfoAtom(in, _s.slideViewInfoAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x3FD) && (_optionCheck.recLen == 0x34);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.zoomViewInfoAtom = QSharedPointer<ZoomViewInfoAtom>(new ZoomViewInfoAtom(&_s));
            parseZoomViewInfoAtom(in, *_s.zoomViewInfoAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.zoomViewInfoAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.zoomViewInfoAtom.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgGuideAtom.append(GuideAtom(&_s));
            parseGuideAtom(in, _s.rgGuideAtom.last());
        } catch (IncorrectValueException &_e) {
            _s.rgGuideAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgGuideAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseDocProgBinaryTagSubContainerOrAtom(LEInputStream &in, DocProgBinaryTagSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    try {
        _s.anon = DocProgBinaryTagSubContainerOrAtom::choice214961565(new PP9DocBinaryTagExtension(&_s));
        parsePP9DocBinaryTagExtension(in, *(PP9DocBinaryTagExtension *)_s.anon.data());
    } catch (IncorrectValueException &_x) {
        _s.anon.clear();
        in.rewind(_m);
        try {
            _s.anon = DocProgBinaryTagSubContainerOrAtom::choice214961565(new PP10DocBinaryTagExtension(&_s));
            parsePP10DocBinaryTagExtension(in, *(PP10DocBinaryTagExtension *)_s.anon.data());
        } catch (IncorrectValueException &_xx) {
            _s.anon.clear();
            in.rewind(_m);
            try {
                _s.anon = DocProgBinaryTagSubContainerOrAtom::choice214961565(new PP11DocBinaryTagExtension(&_s));
                parsePP11DocBinaryTagExtension(in, *(PP11DocBinaryTagExtension *)_s.anon.data());
            } catch (IncorrectValueException &_xxx) {
                _s.anon.clear();
                in.rewind(_m);
                try {
                    _s.anon = DocProgBinaryTagSubContainerOrAtom::choice214961565(new PP12DocBinaryTagExtension(&_s));
                    parsePP12DocBinaryTagExtension(in, *(PP12DocBinaryTagExtension *)_s.anon.data());
                } catch (IncorrectValueException &_xxxx) {
                    _s.anon.clear();
                    in.rewind(_m);
                    _s.anon = DocProgBinaryTagSubContainerOrAtom::choice214961565(new UnknownBinaryTag(&_s));
                    parseUnknownBinaryTag(in, *(UnknownBinaryTag *)_s.anon.data());
                }
            }
        }
    }
}
void MSO::parseTextMasterStyle9Atom(LEInputStream &in, TextMasterStyle9Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4
          || _s.rh.recInstance == 5 || _s.rh.recInstance == 6 || _s.rh.recInstance == 7 || _s.rh.recInstance == 8)) {
        throw IncorrectValueException(
            in.getPosition(),
            "_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4 || "
            "_s.rh.recInstance == 5 || _s.rh.recInstance == 6 || _s.rh.recInstance == 7 || _s.rh.recInstance == 8");
    }
    if (!(_s.rh.recType == 0x0FAD)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FAD");
    }
    _s.cLevels = in.readuint16();
    if (!(((quint16)_s.cLevels) <= 5)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.cLevels)<=5");
    }
    if (_s.cLevels > 0) {
        _s.lstLvl1 = QSharedPointer<TextMasterStyle9Level>(new TextMasterStyle9Level(&_s));
        parseTextMasterStyle9Level(in, *_s.lstLvl1.data());
    }
    if (_s.cLevels > 1) {
        _s.lstLvl2 = QSharedPointer<TextMasterStyle9Level>(new TextMasterStyle9Level(&_s));
        parseTextMasterStyle9Level(in, *_s.lstLvl2.data());
    }
    if (_s.cLevels > 2) {
        _s.lstLvl3 = QSharedPointer<TextMasterStyle9Level>(new TextMasterStyle9Level(&_s));
        parseTextMasterStyle9Level(in, *_s.lstLvl3.data());
    }
    if (_s.cLevels > 3) {
        _s.lstLvl4 = QSharedPointer<TextMasterStyle9Level>(new TextMasterStyle9Level(&_s));
        parseTextMasterStyle9Level(in, *_s.lstLvl4.data());
    }
    if (_s.cLevels > 4) {
        _s.lstLvl5 = QSharedPointer<TextMasterStyle9Level>(new TextMasterStyle9Level(&_s));
        parseTextMasterStyle9Level(in, *_s.lstLvl5.data());
    }
}
void MSO::parseBlipEntityAtom(LEInputStream &in, BlipEntityAtom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0");
    }
    if (!(_s.rh.recInstance <= 128)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance<=128");
    }
    if (!(_s.rh.recType == 0x07F9)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x07F9");
    }
    _s.winBlipType = in.readuint8();
    if (!(((quint8)_s.winBlipType) == 0x02 || ((quint8)_s.winBlipType) == 0x03 || ((quint8)_s.winBlipType) == 0x05 || ((quint8)_s.winBlipType) == 0x06)) {
        throw IncorrectValueException(
            in.getPosition(),
            "((quint8)_s.winBlipType) == 0x02 || ((quint8)_s.winBlipType) == 0x03 || ((quint8)_s.winBlipType) == 0x05 || ((quint8)_s.winBlipType) == 0x06");
    }
    _s.unused = in.readuint8();
    parseOfficeArtBStoreContainerFileBlock(in, _s.blip);
}
void MSO::parseTextMasterStyle10Atom(LEInputStream &in, TextMasterStyle10Atom &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0x0");
    }
    if (!(_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4
          || _s.rh.recInstance == 5 || _s.rh.recInstance == 6 || _s.rh.recInstance == 7 || _s.rh.recInstance == 8)) {
        throw IncorrectValueException(
            in.getPosition(),
            "_s.rh.recInstance == 0 || _s.rh.recInstance == 1 || _s.rh.recInstance == 2 || _s.rh.recInstance == 3 || _s.rh.recInstance == 4 || "
            "_s.rh.recInstance == 5 || _s.rh.recInstance == 6 || _s.rh.recInstance == 7 || _s.rh.recInstance == 8");
    }
    if (!(_s.rh.recType == 0x0FB2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0FB2");
    }
    _s.cLevels = in.readuint16();
    if (!(((quint16)_s.cLevels) <= 5)) {
        throw IncorrectValueException(in.getPosition(), "((quint16)_s.cLevels)<=5");
    }
    _s._has_lstLvl1level = _s.cLevels > 0 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl1level) {
        _s.lstLvl1level = in.readuint16();
    }
    if (_s.cLevels > 0) {
        _s.lstLvl1 = QSharedPointer<TextMasterStyle10Level>(new TextMasterStyle10Level(&_s));
        parseTextMasterStyle10Level(in, *_s.lstLvl1.data());
    }
    _s._has_lstLvl2level = _s.cLevels > 1 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl2level) {
        _s.lstLvl2level = in.readuint16();
    }
    if (_s.cLevels > 1) {
        _s.lstLvl2 = QSharedPointer<TextMasterStyle10Level>(new TextMasterStyle10Level(&_s));
        parseTextMasterStyle10Level(in, *_s.lstLvl2.data());
    }
    _s._has_lstLvl3level = _s.cLevels > 2 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl3level) {
        _s.lstLvl3level = in.readuint16();
    }
    if (_s.cLevels > 2) {
        _s.lstLvl3 = QSharedPointer<TextMasterStyle10Level>(new TextMasterStyle10Level(&_s));
        parseTextMasterStyle10Level(in, *_s.lstLvl3.data());
    }
    _s._has_lstLvl4level = _s.cLevels > 3 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl4level) {
        _s.lstLvl4level = in.readuint16();
    }
    if (_s.cLevels > 3) {
        _s.lstLvl4 = QSharedPointer<TextMasterStyle10Level>(new TextMasterStyle10Level(&_s));
        parseTextMasterStyle10Level(in, *_s.lstLvl4.data());
    }
    _s._has_lstLvl5level = _s.cLevels > 4 && _s.rh.recInstance >= 5;
    if (_s._has_lstLvl5level) {
        _s.lstLvl5level = in.readuint16();
    }
    if (_s.cLevels > 4) {
        _s.lstLvl5 = QSharedPointer<TextMasterStyle10Level>(new TextMasterStyle10Level(&_s));
        parseTextMasterStyle10Level(in, *_s.lstLvl5.data());
    }
}
void MSO::parseTextClientDataSubContainerOrAtom(LEInputStream &in, TextClientDataSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    RecordHeader _choice(&_s);
    parseRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recInstance == 0) && (_choice.recType == 0xF9E))) {
        _s.anon = TextClientDataSubContainerOrAtom::choice2925155378(new OutlineAtom(&_s));
        parseOutlineAtom(in, *(OutlineAtom *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = TextClientDataSubContainerOrAtom::choice2925155378(new TextContainer(&_s));
        parseTextContainer(in, *(TextContainer *)_s.anon.data());
    }
}
void MSO::parseTextContainerInteractiveInfo(LEInputStream &in, TextContainerInteractiveInfo &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    RecordHeader _choice(&_s);
    parseRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recInstance == 0))) {
        _s.interactive = TextContainerInteractiveInfo::choice3752530176(new MouseClickTextInfo(&_s));
        parseMouseClickTextInfo(in, *(MouseClickTextInfo *)_s.interactive.data());
    }
    if (startPos == in.getPosition()) {
        _s.interactive = TextContainerInteractiveInfo::choice3752530176(new MouseOverTextInfo(&_s));
        parseMouseOverTextInfo(in, *(MouseOverTextInfo *)_s.interactive.data());
    }
}
void MSO::parseDocumentTextInfoContainer(LEInputStream &in, DocumentTextInfoContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x03F2)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03F2");
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0x2) && (_optionCheck.recType == 0x0FC8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.kinsoku = QSharedPointer<KinsokuContainer>(new KinsokuContainer(&_s));
            parseKinsokuContainer(in, *_s.kinsoku.data());
        } catch (IncorrectValueException &_e) {
            _s.kinsoku.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.kinsoku.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x07D5);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.fontCollection = QSharedPointer<FontCollectionContainer>(new FontCollectionContainer(&_s));
            parseFontCollectionContainer(in, *_s.fontCollection.data());
        } catch (IncorrectValueException &_e) {
            _s.fontCollection.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.fontCollection.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FA4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.textCFDefaultsAtom = QSharedPointer<TextCFExceptionAtom>(new TextCFExceptionAtom(&_s));
            parseTextCFExceptionAtom(in, *_s.textCFDefaultsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.textCFDefaultsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.textCFDefaultsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FA5);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.textPFDefaultsAtom = QSharedPointer<TextPFExceptionAtom>(new TextPFExceptionAtom(&_s));
            parseTextPFExceptionAtom(in, *_s.textPFDefaultsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.textPFDefaultsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.textPFDefaultsAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FAB);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.defaultRulerAtom = QSharedPointer<DefaultRulerAtom>(new DefaultRulerAtom(&_s));
            parseDefaultRulerAtom(in, *_s.defaultRulerAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.defaultRulerAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.defaultRulerAtom.clear();
            in.rewind(_m);
        }
    }
    parseTextSIExceptionAtom(in, _s.textSIDefaultsAtom);
    parseTextMasterStyleAtom(in, _s.textMasterStyleAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0)
            && (_optionCheck.recInstance == 0 || _optionCheck.recInstance == 1 || _optionCheck.recInstance == 2 || _optionCheck.recInstance == 3
                || _optionCheck.recInstance == 4 || _optionCheck.recInstance == 5 || _optionCheck.recInstance == 6 || _optionCheck.recInstance == 7
                || _optionCheck.recInstance == 8)
            && (_optionCheck.recType == 0x0FA3);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.textMasterStyleAtom2 = QSharedPointer<TextMasterStyleAtom>(new TextMasterStyleAtom(&_s));
            parseTextMasterStyleAtom(in, *_s.textMasterStyleAtom2.data());
        } catch (IncorrectValueException &_e) {
            _s.textMasterStyleAtom2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.textMasterStyleAtom2.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseSlideProgBinaryTagSubContainerOrAtom(LEInputStream &in, SlideProgBinaryTagSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    try {
        _s.anon = SlideProgBinaryTagSubContainerOrAtom::choice4024872665(new PP9SlideBinaryTagExtension(&_s));
        parsePP9SlideBinaryTagExtension(in, *(PP9SlideBinaryTagExtension *)_s.anon.data());
    } catch (IncorrectValueException &_x) {
        _s.anon.clear();
        in.rewind(_m);
        try {
            _s.anon = SlideProgBinaryTagSubContainerOrAtom::choice4024872665(new PP12SlideBinaryTagExtension(&_s));
            parsePP12SlideBinaryTagExtension(in, *(PP12SlideBinaryTagExtension *)_s.anon.data());
        } catch (IncorrectValueException &_xx) {
            _s.anon.clear();
            in.rewind(_m);
            try {
                _s.anon = SlideProgBinaryTagSubContainerOrAtom::choice4024872665(new PP10SlideBinaryTagExtension(&_s));
                parsePP10SlideBinaryTagExtension(in, *(PP10SlideBinaryTagExtension *)_s.anon.data());
            } catch (IncorrectValueException &_xxx) {
                _s.anon.clear();
                in.rewind(_m);
                _s.anon = SlideProgBinaryTagSubContainerOrAtom::choice4024872665(new UnknownBinaryTag(&_s));
                parseUnknownBinaryTag(in, *(UnknownBinaryTag *)_s.anon.data());
            }
        }
    }
}
void MSO::parseDrawingGroupContainer(LEInputStream &in, DrawingGroupContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x040B)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x040B");
    }
    parseOfficeArtDggContainer(in, _s.OfficeArtDgg);
}
void MSO::parseOfficeArtClientData(LEInputStream &in, OfficeArtClientData &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recVer == 0) && (_choice.recLen == 4))) {
        _s.anon = OfficeArtClientData::choice2520977885(new DocOfficeArtClientData(&_s));
        parseDocOfficeArtClientData(in, *(DocOfficeArtClientData *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recVer == 0xF))) {
        _s.anon = OfficeArtClientData::choice2520977885(new PptOfficeArtClientData(&_s));
        parsePptOfficeArtClientData(in, *(PptOfficeArtClientData *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = OfficeArtClientData::choice2520977885(new XlsOfficeArtClientData(&_s));
        parseXlsOfficeArtClientData(in, *(XlsOfficeArtClientData *)_s.anon.data());
    }
}
void MSO::parseShapeProgTagsSubContainerOrAtom(LEInputStream &in, ShapeProgTagsSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    OfficeArtRecordHeader _choice(&_s);
    parseOfficeArtRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recType == 0x1389))) {
        _s.anon = ShapeProgTagsSubContainerOrAtom::choice42781012(new ProgStringTagContainer(&_s));
        parseProgStringTagContainer(in, *(ProgStringTagContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = ShapeProgTagsSubContainerOrAtom::choice42781012(new ShapeProgBinaryTagContainer(&_s));
        parseShapeProgBinaryTagContainer(in, *(ShapeProgBinaryTagContainer *)_s.anon.data());
    }
}
void MSO::parseDocumentContainer(LEInputStream &in, DocumentContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x03E8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03E8");
    }
    parseDocumentAtom(in, _s.documentAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0409) && (_optionCheck.recLen >= 12);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.exObjList = QSharedPointer<ExObjListContainer>(new ExObjListContainer(&_s));
            parseExObjListContainer(in, *_s.exObjList.data());
        } catch (IncorrectValueException &_e) {
            _s.exObjList.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.exObjList.clear();
            in.rewind(_m);
        }
    }
    parseDocumentTextInfoContainer(in, _s.documentTextInfo);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0 || _optionCheck.recInstance == 5) && (_optionCheck.recType == 0x7E4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.soundCollection = QSharedPointer<SoundCollectionContainer>(new SoundCollectionContainer(&_s));
            parseSoundCollectionContainer(in, *_s.soundCollection.data());
        } catch (IncorrectValueException &_e) {
            _s.soundCollection.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.soundCollection.clear();
            in.rewind(_m);
        }
    }
    parseDrawingGroupContainer(in, _s.drawingGroup);
    parseMasterListWithTextContainer(in, _s.masterList);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x7D0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.docInfoList = QSharedPointer<DocInfoListContainer>(new DocInfoListContainer(&_s));
            parseDocInfoListContainer(in, *_s.docInfoList.data());
        } catch (IncorrectValueException &_e) {
            _s.docInfoList.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.docInfoList.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 3) && (_optionCheck.recType == 0xFD9);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideHF = QSharedPointer<SlideHeadersFootersContainer>(new SlideHeadersFootersContainer(&_s));
            parseSlideHeadersFootersContainer(in, *_s.slideHF.data());
        } catch (IncorrectValueException &_e) {
            _s.slideHF.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideHF.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 4) && (_optionCheck.recType == 0xFD9);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.notesHF = QSharedPointer<NotesHeadersFootersContainer>(new NotesHeadersFootersContainer(&_s));
            parseNotesHeadersFootersContainer(in, *_s.notesHF.data());
        } catch (IncorrectValueException &_e) {
            _s.notesHF.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.notesHF.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0x0) && (_optionCheck.recType == 0x0FF0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideList = QSharedPointer<SlideListWithTextContainer>(new SlideListWithTextContainer(&_s));
            parseSlideListWithTextContainer(in, *_s.slideList.data());
        } catch (IncorrectValueException &_e) {
            _s.slideList.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideList.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 3) && (_optionCheck.recType == 0xFD9);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideHF2 = QSharedPointer<SlideHeadersFootersContainer>(new SlideHeadersFootersContainer(&_s));
            parseSlideHeadersFootersContainer(in, *_s.slideHF2.data());
        } catch (IncorrectValueException &_e) {
            _s.slideHF2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideHF2.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 2) && (_optionCheck.recType == 0x0FF0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.notesList = QSharedPointer<NotesListWithTextContainer>(new NotesListWithTextContainer(&_s));
            parseNotesListWithTextContainer(in, *_s.notesList.data());
        } catch (IncorrectValueException &_e) {
            _s.notesList.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.notesList.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 1) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x0401) && (_optionCheck.recLen == 0x50);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideShowDocInfoAtom = QSharedPointer<SlideShowDocInfoAtom>(new SlideShowDocInfoAtom(&_s));
            parseSlideShowDocInfoAtom(in, *_s.slideShowDocInfoAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.slideShowDocInfoAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideShowDocInfoAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x410);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.namedShows = QSharedPointer<NamedShowsContainer>(new NamedShowsContainer(&_s));
            parseNamedShowsContainer(in, *_s.namedShows.data());
        } catch (IncorrectValueException &_e) {
            _s.namedShows.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.namedShows.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x402);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.summary = QSharedPointer<SummaryContainer>(new SummaryContainer(&_s));
            parseSummaryContainer(in, *_s.summary.data());
        } catch (IncorrectValueException &_e) {
            _s.summary.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.summary.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x406);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.docRoutingSlipAtom = QSharedPointer<DocRoutingSlipAtom>(new DocRoutingSlipAtom(&_s));
            parseDocRoutingSlipAtom(in, *_s.docRoutingSlipAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.docRoutingSlipAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.docRoutingSlipAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x1770) && (_optionCheck.recLen == 5);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.printOptionsAtom = QSharedPointer<PrintOptionsAtom>(new PrintOptionsAtom(&_s));
            parsePrintOptionsAtom(in, *_s.printOptionsAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.printOptionsAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.printOptionsAtom.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.unknown0.append(UnknownDocumentContainerChild(&_s));
            parseUnknownDocumentContainerChild(in, _s.unknown0.last());
        } catch (IncorrectValueException &_e) {
            _s.unknown0.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown0.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0 || _optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x428);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.rtCustomTableStylesAtom1 = QSharedPointer<RoundTripCustomTableStyles12Atom>(new RoundTripCustomTableStyles12Atom(&_s));
            parseRoundTripCustomTableStyles12Atom(in, *_s.rtCustomTableStylesAtom1.data());
        } catch (IncorrectValueException &_e) {
            _s.rtCustomTableStylesAtom1.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rtCustomTableStylesAtom1.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.unknown1.append(UnknownDocumentContainerChild(&_s));
            parseUnknownDocumentContainerChild(in, _s.unknown1.last());
        } catch (IncorrectValueException &_e) {
            _s.unknown1.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown1.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    parseEndDocumentAtom(in, _s.endDocumentAtom);
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.unknown2.append(UnknownDocumentContainerChild(&_s));
            parseUnknownDocumentContainerChild(in, _s.unknown2.last());
        } catch (IncorrectValueException &_e) {
            _s.unknown2.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown2.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0 || _optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x428);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.rtCustomTableStylesAtom2 = QSharedPointer<RoundTripCustomTableStyles12Atom>(new RoundTripCustomTableStyles12Atom(&_s));
            parseRoundTripCustomTableStyles12Atom(in, *_s.rtCustomTableStylesAtom2.data());
        } catch (IncorrectValueException &_e) {
            _s.rtCustomTableStylesAtom2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rtCustomTableStylesAtom2.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.unknown4.append(UnknownDocumentContainerChild(&_s));
            parseUnknownDocumentContainerChild(in, _s.unknown4.last());
        } catch (IncorrectValueException &_e) {
            _s.unknown4.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown4.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x0)
            && (_optionCheck.recInstance == 0 || _optionCheck.recInstance == 1 || _optionCheck.recInstance == 2 || _optionCheck.recInstance == 3
                || _optionCheck.recInstance == 4 || _optionCheck.recInstance == 5 || _optionCheck.recInstance == 6 || _optionCheck.recInstance == 7
                || _optionCheck.recInstance == 8)
            && (_optionCheck.recType == 0x0FB2);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown5 = QSharedPointer<TextMasterStyle10Atom>(new TextMasterStyle10Atom(&_s));
            parseTextMasterStyle10Atom(in, *_s.unknown5.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown5.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown5.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseDocInfoListSubContainerOrAtom(LEInputStream &in, DocInfoListSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    RecordHeader _choice(&_s);
    parseRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recInstance == 0 || _choice.recInstance == 1) && (_choice.recType == 0x1388))) {
        _s.anon = DocInfoListSubContainerOrAtom::choice2631814737(new DocProgTagsContainer(&_s));
        parseDocProgTagsContainer(in, *(DocProgTagsContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 1) && (_choice.recType == 0x414) && (_choice.recLen == 0x1C))) {
        _s.anon = DocInfoListSubContainerOrAtom::choice2631814737(new NormalViewSetInfoContainer(&_s));
        parseNormalViewSetInfoContainer(in, *(NormalViewSetInfoContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 1) && (_choice.recType == 0x413))) {
        _s.anon = DocInfoListSubContainerOrAtom::choice2631814737(new NotesTextViewInfoContainer(&_s));
        parseNotesTextViewInfoContainer(in, *(NotesTextViewInfoContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0 || _choice.recInstance == 1) && (_choice.recType == 0x407))) {
        _s.anon = DocInfoListSubContainerOrAtom::choice2631814737(new OutlineViewInfoContainer(&_s));
        parseOutlineViewInfoContainer(in, *(OutlineViewInfoContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 0 || _choice.recInstance == 1) && (_choice.recType == 0x3FA))) {
        _s.anon = DocInfoListSubContainerOrAtom::choice2631814737(new SlideViewInfoInstance(&_s));
        parseSlideViewInfoInstance(in, *(SlideViewInfoInstance *)_s.anon.data());
    }
    if (startPos == in.getPosition() && ((_choice.recInstance == 1) && (_choice.recType == 0x408))) {
        _s.anon = DocInfoListSubContainerOrAtom::choice2631814737(new SorterViewInfoContainer(&_s));
        parseSorterViewInfoContainer(in, *(SorterViewInfoContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = DocInfoListSubContainerOrAtom::choice2631814737(new VBAInfoContainer(&_s));
        parseVBAInfoContainer(in, *(VBAInfoContainer *)_s.anon.data());
    }
}
void MSO::parseDocProgBinaryTagContainer(LEInputStream &in, DocProgBinaryTagContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x138A)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x138A");
    }
    parseDocProgBinaryTagSubContainerOrAtom(in, _s.rec);
}
void MSO::parseSlideProgBinaryTagContainer(LEInputStream &in, SlideProgBinaryTagContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x138A)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x138A");
    }
    parseSlideProgBinaryTagSubContainerOrAtom(in, _s.rec);
}
void MSO::parseOfficeArtSpContainer(LEInputStream &in, OfficeArtSpContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x0F004)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x0F004");
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x1) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x0F009) && (_optionCheck.recLen == 0x10);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapeGroup = QSharedPointer<OfficeArtFSPGR>(new OfficeArtFSPGR(&_s));
            parseOfficeArtFSPGR(in, *_s.shapeGroup.data());
        } catch (IncorrectValueException &_e) {
            _s.shapeGroup.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapeGroup.clear();
            in.rewind(_m);
        }
    }
    parseOfficeArtFSP(in, _s.shapeProp);
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xF11D) && (_optionCheck.recLen == 4);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.deletedshape = QSharedPointer<OfficeArtFPSPL>(new OfficeArtFPSPL(&_s));
            parseOfficeArtFPSPL(in, *_s.deletedshape.data());
        } catch (IncorrectValueException &_e) {
            _s.deletedshape.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.deletedshape.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x3) && (_optionCheck.recType == 0x0F00B);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapePrimaryOptions = QSharedPointer<OfficeArtFOPT>(new OfficeArtFOPT(&_s));
            parseOfficeArtFOPT(in, *_s.shapePrimaryOptions.data());
        } catch (IncorrectValueException &_e) {
            _s.shapePrimaryOptions.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapePrimaryOptions.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 3) && (_optionCheck.recType == 0xF121);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapeSecondaryOptions1 = QSharedPointer<OfficeArtSecondaryFOPT>(new OfficeArtSecondaryFOPT(&_s));
            parseOfficeArtSecondaryFOPT(in, *_s.shapeSecondaryOptions1.data());
        } catch (IncorrectValueException &_e) {
            _s.shapeSecondaryOptions1.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapeSecondaryOptions1.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 3) && (_optionCheck.recType == 0xF122);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapeTertiaryOptions1 = QSharedPointer<OfficeArtTertiaryFOPT>(new OfficeArtTertiaryFOPT(&_s));
            parseOfficeArtTertiaryFOPT(in, *_s.shapeTertiaryOptions1.data());
        } catch (IncorrectValueException &_e) {
            _s.shapeTertiaryOptions1.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapeTertiaryOptions1.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xF00F) && (_optionCheck.recLen == 0x10);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.childAnchor = QSharedPointer<OfficeArtChildAnchor>(new OfficeArtChildAnchor(&_s));
            parseOfficeArtChildAnchor(in, *_s.childAnchor.data());
        } catch (IncorrectValueException &_e) {
            _s.childAnchor.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.childAnchor.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = ((_optionCheck.recLen == 0x8 || _optionCheck.recLen == 0x10)) || ((_optionCheck.recLen == 0x4))
            || ((_optionCheck.recLen == 0x8 || _optionCheck.recLen == 0x12));
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.clientAnchor = QSharedPointer<OfficeArtClientAnchor>(new OfficeArtClientAnchor(&_s));
            parseOfficeArtClientAnchor(in, *_s.clientAnchor.data());
        } catch (IncorrectValueException &_e) {
            _s.clientAnchor.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.clientAnchor.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = ((_optionCheck.recVer == 0) && (_optionCheck.recLen == 4)) || ((_optionCheck.recVer == 0xF))
            || ((_optionCheck.recVer == 0) && (_optionCheck.recLen == 0));
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.clientData = QSharedPointer<OfficeArtClientData>(new OfficeArtClientData(&_s));
            parseOfficeArtClientData(in, *_s.clientData.data());
        } catch (IncorrectValueException &_e) {
            _s.clientData.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.clientData.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = ((_optionCheck.recVer == 0) && (_optionCheck.recLen == 0))
            || ((_optionCheck.recVer == 0 || _optionCheck.recVer == 0xF) && (_optionCheck.recLen == 0x4))
            || ((_optionCheck.recVer == 0 || _optionCheck.recVer == 0xF) && (_optionCheck.recLen != 4));
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.clientTextbox = QSharedPointer<OfficeArtClientTextBox>(new OfficeArtClientTextBox(&_s));
            parseOfficeArtClientTextBox(in, *_s.clientTextbox.data());
        } catch (IncorrectValueException &_e) {
            _s.clientTextbox.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.clientTextbox.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0x3) && (_optionCheck.recType == 0x0F00B);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapePrimaryOptions2 = QSharedPointer<OfficeArtFOPT>(new OfficeArtFOPT(&_s));
            parseOfficeArtFOPT(in, *_s.shapePrimaryOptions2.data());
        } catch (IncorrectValueException &_e) {
            _s.shapePrimaryOptions2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapePrimaryOptions2.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 3) && (_optionCheck.recType == 0xF121);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapeSecondaryOptions2 = QSharedPointer<OfficeArtSecondaryFOPT>(new OfficeArtSecondaryFOPT(&_s));
            parseOfficeArtSecondaryFOPT(in, *_s.shapeSecondaryOptions2.data());
        } catch (IncorrectValueException &_e) {
            _s.shapeSecondaryOptions2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapeSecondaryOptions2.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 3) && (_optionCheck.recType == 0xF122);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shapeTertiaryOptions2 = QSharedPointer<OfficeArtTertiaryFOPT>(new OfficeArtTertiaryFOPT(&_s));
            parseOfficeArtTertiaryFOPT(in, *_s.shapeTertiaryOptions2.data());
        } catch (IncorrectValueException &_e) {
            _s.shapeTertiaryOptions2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shapeTertiaryOptions2.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 3) && (_optionCheck.recInstance == 9) && (_optionCheck.recType == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown = QSharedPointer<UnknownTextContainerChild>(new UnknownTextContainerChild(&_s));
            parseUnknownTextContainerChild(in, *_s.unknown.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseOfficeArtInlineSpContainer(LEInputStream &in, OfficeArtInlineSpContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _atend;
    parseOfficeArtSpContainer(in, _s.shape);
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgfb.append(OfficeArtBStoreContainerFileBlock(&_s));
            parseOfficeArtBStoreContainerFileBlock(in, _s.rgfb.last());
        } catch (IncorrectValueException &_e) {
            _s.rgfb.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgfb.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseDocProgTagsSubContainerOrAtom(LEInputStream &in, DocProgTagsSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    RecordHeader _choice(&_s);
    parseRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recType == 0x1389))) {
        _s.anon = DocProgTagsSubContainerOrAtom::choice61655436(new ProgStringTagContainer(&_s));
        parseProgStringTagContainer(in, *(ProgStringTagContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = DocProgTagsSubContainerOrAtom::choice61655436(new DocProgBinaryTagContainer(&_s));
        parseDocProgBinaryTagContainer(in, *(DocProgBinaryTagContainer *)_s.anon.data());
    }
}
void MSO::parseSlideProgTagsSubContainerOrAtom(LEInputStream &in, SlideProgTagsSubContainerOrAtom &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    RecordHeader _choice(&_s);
    parseRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recType == 0x1389))) {
        _s.anon = SlideProgTagsSubContainerOrAtom::choice310259039(new ProgStringTagContainer(&_s));
        parseProgStringTagContainer(in, *(ProgStringTagContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = SlideProgTagsSubContainerOrAtom::choice310259039(new SlideProgBinaryTagContainer(&_s));
        parseSlideProgBinaryTagContainer(in, *(SlideProgBinaryTagContainer *)_s.anon.data());
    }
}
void MSO::parseOfficeArtDgContainer(LEInputStream &in, OfficeArtDgContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseOfficeArtRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0xF002)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0xF002");
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent =
            (_optionCheck.recVer == 0x0) && (_optionCheck.recInstance <= 4094) && (_optionCheck.recType == 0x0F008) && (_optionCheck.recLen == 8);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.drawingData = QSharedPointer<OfficeArtFDG>(new OfficeArtFDG(&_s));
            parseOfficeArtFDG(in, *_s.drawingData.data());
        } catch (IncorrectValueException &_e) {
            _s.drawingData.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.drawingData.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recType == 0xF118) && (_optionCheck.recLen == 4 * _optionCheck.recInstance);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.regroupItems = QSharedPointer<OfficeArtFRITContainer>(new OfficeArtFRITContainer(&_s));
            parseOfficeArtFRITContainer(in, *_s.regroupItems.data());
        } catch (IncorrectValueException &_e) {
            _s.regroupItems.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.regroupItems.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x0F003);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.groupShape = QSharedPointer<OfficeArtSpgrContainer>(new OfficeArtSpgrContainer(&_s));
            parseOfficeArtSpgrContainer(in, *_s.groupShape.data());
        } catch (IncorrectValueException &_e) {
            _s.groupShape.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.groupShape.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x0F004);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.shape = QSharedPointer<OfficeArtSpContainer>(new OfficeArtSpContainer(&_s));
            parseOfficeArtSpContainer(in, *_s.shape.data());
        } catch (IncorrectValueException &_e) {
            _s.shape.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.shape.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.deletedShapes.append(OfficeArtSpgrContainerFileBlock(&_s));
            parseOfficeArtSpgrContainerFileBlock(in, _s.deletedShapes.last());
        } catch (IncorrectValueException &_e) {
            _s.deletedShapes.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.deletedShapes.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        OfficeArtRecordHeader _optionCheck(&_s);
        parseOfficeArtRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recType == 0xF005);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.solvers = QSharedPointer<OfficeArtSolverContainer>(new OfficeArtSolverContainer(&_s));
            parseOfficeArtSolverContainer(in, *_s.solvers.data());
        } catch (IncorrectValueException &_e) {
            _s.solvers.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.solvers.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseOfficeArtSpgrContainerFileBlock(LEInputStream &in, OfficeArtSpgrContainerFileBlock &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    try {
        _s.anon = OfficeArtSpgrContainerFileBlock::choice4117040(new OfficeArtSpContainer(&_s));
        parseOfficeArtSpContainer(in, *(OfficeArtSpContainer *)_s.anon.data());
    } catch (IncorrectValueException &_x) {
        _s.anon.clear();
        in.rewind(_m);
        try {
            _s.anon = OfficeArtSpgrContainerFileBlock::choice4117040(new OfficeArtSpgrContainer(&_s));
            parseOfficeArtSpgrContainer(in, *(OfficeArtSpgrContainer *)_s.anon.data());
        } catch (IncorrectValueException &_xx) {
            _s.anon.clear();
            in.rewind(_m);
            try {
                _s.anon = OfficeArtSpgrContainerFileBlock::choice4117040(new OfficeArtFSP(&_s));
                parseOfficeArtFSP(in, *(OfficeArtFSP *)_s.anon.data());
            } catch (IncorrectValueException &_xxx) {
                _s.anon.clear();
                in.rewind(_m);
                try {
                    _s.anon = OfficeArtSpgrContainerFileBlock::choice4117040(new OfficeArtFSPGR(&_s));
                    parseOfficeArtFSPGR(in, *(OfficeArtFSPGR *)_s.anon.data());
                } catch (IncorrectValueException &_xxxx) {
                    _s.anon.clear();
                    in.rewind(_m);
                    try {
                        _s.anon = OfficeArtSpgrContainerFileBlock::choice4117040(new OfficeArtClientAnchor(&_s));
                        parseOfficeArtClientAnchor(in, *(OfficeArtClientAnchor *)_s.anon.data());
                    } catch (IncorrectValueException &_xxxxx) {
                        _s.anon.clear();
                        in.rewind(_m);
                        _s.anon = OfficeArtSpgrContainerFileBlock::choice4117040(new OfficeArtClientData(&_s));
                        parseOfficeArtClientData(in, *(OfficeArtClientData *)_s.anon.data());
                    }
                }
            }
        }
    }
}
void MSO::parseDrawingContainer(LEInputStream &in, DrawingContainer &_s)
{
    _s.streamOffset = in.getPosition();
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x040C)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x040C");
    }
    parseOfficeArtDgContainer(in, _s.OfficeArtDg);
}
void MSO::parseMainMasterContainer(LEInputStream &in, MainMasterContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x03F8)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03F8");
    }
    parseSlideAtom(in, _s.slideAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x03F9) && (_optionCheck.recLen == 0x10);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown = QSharedPointer<SlideShowSlideInfoAtom>(new SlideShowSlideInfoAtom(&_s));
            parseSlideShowSlideInfoAtom(in, *_s.unknown.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgSchemeListElementColorScheme.append(SchemeListElementColorSchemeAtom(&_s));
            parseSchemeListElementColorSchemeAtom(in, _s.rgSchemeListElementColorScheme.last());
        } catch (IncorrectValueException &_e) {
            _s.rgSchemeListElementColorScheme.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgSchemeListElementColorScheme.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgTextMasterStyle.append(TextMasterStyleAtom(&_s));
            parseTextMasterStyleAtom(in, _s.rgTextMasterStyle.last());
        } catch (IncorrectValueException &_e) {
            _s.rgTextMasterStyle.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgTextMasterStyle.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x423);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.roundTripOArtTextSTyles12Atom = QSharedPointer<RoundTripOArtTextStyles12Atom>(new RoundTripOArtTextStyles12Atom(&_s));
            parseRoundTripOArtTextStyles12Atom(in, *_s.roundTripOArtTextSTyles12Atom.data());
        } catch (IncorrectValueException &_e) {
            _s.roundTripOArtTextSTyles12Atom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.roundTripOArtTextSTyles12Atom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x03F9) && (_optionCheck.recLen == 0x10);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideShowInfoAtom = QSharedPointer<SlideShowSlideInfoAtom>(new SlideShowSlideInfoAtom(&_s));
            parseSlideShowSlideInfoAtom(in, *_s.slideShowInfoAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.slideShowInfoAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideShowInfoAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFD9);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.perSlideHeadersFootersContainer = QSharedPointer<PerSlideHeadersFootersContainer>(new PerSlideHeadersFootersContainer(&_s));
            parsePerSlideHeadersFootersContainer(in, *_s.perSlideHeadersFootersContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.perSlideHeadersFootersContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.perSlideHeadersFootersContainer.clear();
            in.rewind(_m);
        }
    }
    parseDrawingContainer(in, _s.drawing);
    parseSlideSchemeColorSchemeAtom(in, _s.slideSchemeColorSchemeAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 3) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideNameAtom = QSharedPointer<SlideNameAtom>(new SlideNameAtom(&_s));
            parseSlideNameAtom(in, *_s.slideNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.slideNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x1388);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideProgTagsContainer = QSharedPointer<SlideProgTagsContainer>(new SlideProgTagsContainer(&_s));
            parseSlideProgTagsContainer(in, *_s.slideProgTagsContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.slideProgTagsContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideProgTagsContainer.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgRoundTripMainMaster.append(RoundTripMainMasterRecord(&_s));
            parseRoundTripMainMasterRecord(in, _s.rgRoundTripMainMaster.last());
        } catch (IncorrectValueException &_e) {
            _s.rgRoundTripMainMaster.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgRoundTripMainMaster.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 2) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.templateNameAtom = QSharedPointer<TemplateNameAtom>(new TemplateNameAtom(&_s));
            parseTemplateNameAtom(in, *_s.templateNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.templateNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.templateNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x1388);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown3 = QSharedPointer<SlideProgTagsContainer>(new SlideProgTagsContainer(&_s));
            parseSlideProgTagsContainer(in, *_s.unknown3.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown3.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown3.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseSlideContainer(LEInputStream &in, SlideContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0x0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0x0");
    }
    if (!(_s.rh.recType == 0x03EE)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03EE");
    }
    parseSlideAtom(in, _s.slideAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x03F9) && (_optionCheck.recLen == 0x10);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideShowSlideInfoAtom = QSharedPointer<SlideShowSlideInfoAtom>(new SlideShowSlideInfoAtom(&_s));
            parseSlideShowSlideInfoAtom(in, *_s.slideShowSlideInfoAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.slideShowSlideInfoAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideShowSlideInfoAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFD9);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.perSlideHFContainer = QSharedPointer<PerSlideHeadersFootersContainer>(new PerSlideHeadersFootersContainer(&_s));
            parsePerSlideHeadersFootersContainer(in, *_s.perSlideHFContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.perSlideHFContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.perSlideHFContainer.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x3714);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.rtSlideSyncInfo12 = QSharedPointer<RoundTripSlideSyncInfo12Container>(new RoundTripSlideSyncInfo12Container(&_s));
            parseRoundTripSlideSyncInfo12Container(in, *_s.rtSlideSyncInfo12.data());
        } catch (IncorrectValueException &_e) {
            _s.rtSlideSyncInfo12.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rtSlideSyncInfo12.clear();
            in.rewind(_m);
        }
    }
    parseDrawingContainer(in, _s.drawing);
    parseSlideSchemeColorSchemeAtom(in, _s.slideSchemeColorSchemeAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 3) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideNameAtom = QSharedPointer<SlideNameAtom>(new SlideNameAtom(&_s));
            parseSlideNameAtom(in, *_s.slideNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.slideNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x1388);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideProgTagsContainer = QSharedPointer<SlideProgTagsContainer>(new SlideProgTagsContainer(&_s));
            parseSlideProgTagsContainer(in, *_s.slideProgTagsContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.slideProgTagsContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideProgTagsContainer.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x101D);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown = QSharedPointer<UnknownSlideContainerChild>(new UnknownSlideContainerChild(&_s));
            parseUnknownSlideContainerChild(in, *_s.unknown.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgRoundTripSlide.append(RoundTripSlideRecord(&_s));
            parseRoundTripSlideRecord(in, _s.rgRoundTripSlide.last());
        } catch (IncorrectValueException &_e) {
            _s.rgRoundTripSlide.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgRoundTripSlide.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x101D);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.unknown2 = QSharedPointer<UnknownSlideContainerChild>(new UnknownSlideContainerChild(&_s));
            parseUnknownSlideContainerChild(in, *_s.unknown2.data());
        } catch (IncorrectValueException &_e) {
            _s.unknown2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.unknown2.clear();
            in.rewind(_m);
        }
    }
}
void MSO::parseNotesContainer(LEInputStream &in, NotesContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    bool _possiblyPresent;
    bool _atend;
    parseRecordHeader(in, _s.rh);
    if (!(_s.rh.recVer == 0xF)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recVer == 0xF");
    }
    if (!(_s.rh.recInstance == 0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recInstance == 0");
    }
    if (!(_s.rh.recType == 0x03F0)) {
        throw IncorrectValueException(in.getPosition(), "_s.rh.recType == 0x03F0");
    }
    parseNotesAtom(in, _s.notesAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFD9);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.perSlideHFContainer = QSharedPointer<PerSlideHeadersFootersContainer>(new PerSlideHeadersFootersContainer(&_s));
            parsePerSlideHeadersFootersContainer(in, *_s.perSlideHFContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.perSlideHFContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.perSlideHFContainer.clear();
            in.rewind(_m);
        }
    }
    parseDrawingContainer(in, _s.drawing);
    parseSlideSchemeColorSchemeAtom(in, _s.slideSchemeColorSchemeAtom);
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0) && (_optionCheck.recInstance == 3) && (_optionCheck.recType == 0x0FBA) && (_optionCheck.recLen % 2 == 0);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideNameAtom = QSharedPointer<SlideNameAtom>(new SlideNameAtom(&_s));
            parseSlideNameAtom(in, *_s.slideNameAtom.data());
        } catch (IncorrectValueException &_e) {
            _s.slideNameAtom.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideNameAtom.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0x1388);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.slideProgTagsContainer = QSharedPointer<SlideProgTagsContainer>(new SlideProgTagsContainer(&_s));
            parseSlideProgTagsContainer(in, *_s.slideProgTagsContainer.data());
        } catch (IncorrectValueException &_e) {
            _s.slideProgTagsContainer.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.slideProgTagsContainer.clear();
            in.rewind(_m);
        }
    }
    _m = in.setMark();
    try {
        RecordHeader _optionCheck(&_s);
        parseRecordHeader(in, _optionCheck);
        _possiblyPresent = (_optionCheck.recVer == 0xF) && (_optionCheck.recInstance == 0) && (_optionCheck.recType == 0xFD9);
    } catch (EOFException &_e) {
        _possiblyPresent = false;
    }
    in.rewind(_m);
    _m = in.setMark();
    if (_possiblyPresent) {
        try {
            _s.perSlideHFContainer2 = QSharedPointer<PerSlideHeadersFootersContainer>(new PerSlideHeadersFootersContainer(&_s));
            parsePerSlideHeadersFootersContainer(in, *_s.perSlideHFContainer2.data());
        } catch (IncorrectValueException &_e) {
            _s.perSlideHFContainer2.clear();
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.perSlideHFContainer2.clear();
            in.rewind(_m);
        }
    }
    _atend = false;
    while (!_atend) {
        _m = in.setMark();
        try {
            _s.rgNotesRoundTripAtom.append(NotesRoundTripAtom(&_s));
            parseNotesRoundTripAtom(in, _s.rgNotesRoundTripAtom.last());
        } catch (IncorrectValueException &_e) {
            _s.rgNotesRoundTripAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        } catch (EOFException &_e) {
            _s.rgNotesRoundTripAtom.removeLast();
            _atend = true;
            in.rewind(_m);
        }
    }
}
void MSO::parseMasterOrSlideContainer(LEInputStream &in, MasterOrSlideContainer &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    RecordHeader _choice(&_s);
    parseRecordHeader(in, _choice);
    in.rewind(_m);
    qint64 startPos = in.getPosition();
    if (startPos == in.getPosition() && ((_choice.recType == 0x03F8))) {
        _s.anon = MasterOrSlideContainer::choice2788643208(new MainMasterContainer(&_s));
        parseMainMasterContainer(in, *(MainMasterContainer *)_s.anon.data());
    }
    if (startPos == in.getPosition()) {
        _s.anon = MasterOrSlideContainer::choice2788643208(new SlideContainer(&_s));
        parseSlideContainer(in, *(SlideContainer *)_s.anon.data());
    }
}
void MSO::parsePowerPointStruct(LEInputStream &in, PowerPointStruct &_s)
{
    _s.streamOffset = in.getPosition();
    LEInputStream::Mark _m;
    _m = in.setMark();
    try {
        _s.anon = PowerPointStruct::choice394521820(new DocumentContainer(&_s));
        parseDocumentContainer(in, *(DocumentContainer *)_s.anon.data());
    } catch (IncorrectValueException &_x) {
        _s.anon.clear();
        in.rewind(_m);
        try {
            _s.anon = PowerPointStruct::choice394521820(new MasterOrSlideContainer(&_s));
            parseMasterOrSlideContainer(in, *(MasterOrSlideContainer *)_s.anon.data());
        } catch (IncorrectValueException &_xx) {
            _s.anon.clear();
            in.rewind(_m);
            try {
                _s.anon = PowerPointStruct::choice394521820(new PersistDirectoryAtom(&_s));
                parsePersistDirectoryAtom(in, *(PersistDirectoryAtom *)_s.anon.data());
            } catch (IncorrectValueException &_xxx) {
                _s.anon.clear();
                in.rewind(_m);
                try {
                    _s.anon = PowerPointStruct::choice394521820(new NotesContainer(&_s));
                    parseNotesContainer(in, *(NotesContainer *)_s.anon.data());
                } catch (IncorrectValueException &_xxxx) {
                    _s.anon.clear();
                    in.rewind(_m);
                    try {
                        _s.anon = PowerPointStruct::choice394521820(new HandoutContainer(&_s));
                        parseHandoutContainer(in, *(HandoutContainer *)_s.anon.data());
                    } catch (IncorrectValueException &_xxxxx) {
                        _s.anon.clear();
                        in.rewind(_m);
                        try {
                            _s.anon = PowerPointStruct::choice394521820(new SlideContainer(&_s));
                            parseSlideContainer(in, *(SlideContainer *)_s.anon.data());
                        } catch (IncorrectValueException &_xxxxxx) {
                            _s.anon.clear();
                            in.rewind(_m);
                            try {
                                _s.anon = PowerPointStruct::choice394521820(new ExOleObjStg(&_s));
                                parseExOleObjStg(in, *(ExOleObjStg *)_s.anon.data());
                            } catch (IncorrectValueException &_xxxxxxx) {
                                _s.anon.clear();
                                in.rewind(_m);
                                try {
                                    _s.anon = PowerPointStruct::choice394521820(new ExControlStg(&_s));
                                    parseExControlStg(in, *(ExControlStg *)_s.anon.data());
                                } catch (IncorrectValueException &_xxxxxxxx) {
                                    _s.anon.clear();
                                    in.rewind(_m);
                                    try {
                                        _s.anon = PowerPointStruct::choice394521820(new VbaProjectStg(&_s));
                                        parseVbaProjectStg(in, *(VbaProjectStg *)_s.anon.data());
                                    } catch (IncorrectValueException &_xxxxxxxxx) {
                                        _s.anon.clear();
                                        in.rewind(_m);
                                        _s.anon = PowerPointStruct::choice394521820(new UserEditAtom(&_s));
                                        parseUserEditAtom(in, *(UserEditAtom *)_s.anon.data());
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
