diff options
106 files changed, 1163 insertions, 5426 deletions
@@ -1,5 +1,5 @@ Doxygen uses cmake (http://www.cmake.org/) to build executables for various platforms. -It's required at least cmake version 2.8.12 +It's required at least cmake version 3.1.3 The first step is to create a build directory where the output should be stored. Doxygen can be fully build outside of the source tree. diff --git a/CMakeLists.txt b/CMakeLists.txt index 45c2f2c..6bf9246 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ # Documents produced by Doxygen are derivative works derived from the # input used in their production; they are not affected by this license. -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.1.3) project(doxygen) option(build_wizard "Build the GUI frontend for doxygen." OFF) diff --git a/doc/install.doc b/doc/install.doc index 5996d86..18ea44e 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -38,7 +38,7 @@ following to build the executable: \addindex python <li>You need \c python (version 2.6 or higher, see https://www.python.org). <li>In order to generate a \c Makefile for your platform, you need - <a href="https://cmake.org/">cmake</a> version 2.8.12 or later. + <a href="https://cmake.org/">cmake</a> version 3.1.3 or later. \addindex cmake </ul> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4dc31fa..92a302a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -204,12 +204,10 @@ add_library(_doxygen STATIC latexgen.cpp layout.cpp lodepng.cpp - logos.cpp mandocvisitor.cpp mangen.cpp sqlite3gen.cpp markdown.cpp - marshal.cpp memberdef.cpp membergroup.cpp memberlist.cpp @@ -230,7 +228,6 @@ add_library(_doxygen STATIC rtfgen.cpp rtfstyle.cpp searchindex.cpp - store.cpp tagreader.cpp template.cpp textdocvisitor.cpp diff --git a/src/arguments.cpp b/src/arguments.cpp index a828dab..6d3e13b 100644 --- a/src/arguments.cpp +++ b/src/arguments.cpp @@ -1,5 +1,4 @@ #include "arguments.h" -#include "marshal.h" #include <assert.h> /*! the argument list is documented if one of its @@ -38,67 +37,3 @@ ArgumentList *ArgumentList::deepCopy() const return argList; } -ArgumentList *ArgumentList::unmarshal(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - ArgumentList *result = new ArgumentList; - assert(count<1000000); - //printf("unmarshalArgumentList: %d\n",count); - for (i=0;i<count;i++) - { - Argument *a = new Argument; - a->attrib = unmarshalQCString(s); - a->type = unmarshalQCString(s); - a->canType = unmarshalQCString(s); - a->name = unmarshalQCString(s); - a->array = unmarshalQCString(s); - a->defval = unmarshalQCString(s); - a->docs = unmarshalQCString(s); - a->typeConstraint = unmarshalQCString(s); - result->append(a); - } - result->constSpecifier = unmarshalBool(s); - result->volatileSpecifier = unmarshalBool(s); - result->pureSpecifier = unmarshalBool(s); - result->trailingReturnType = unmarshalQCString(s); - result->isDeleted = unmarshalBool(s); - result->refQualifier = (RefQualifierType)unmarshalInt(s); - return result; -} - -void ArgumentList::marshal(StorageIntf *s,ArgumentList *argList) -{ - if (argList==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,argList->count()); - if (argList->count()>0) - { - ArgumentListIterator ali(*argList); - Argument *a; - for (ali.toFirst();(a=ali.current());++ali) - { - marshalQCString(s,a->attrib); - marshalQCString(s,a->type); - marshalQCString(s,a->canType); - marshalQCString(s,a->name); - marshalQCString(s,a->array); - marshalQCString(s,a->defval); - marshalQCString(s,a->docs); - marshalQCString(s,a->typeConstraint); - } - } - marshalBool(s,argList->constSpecifier); - marshalBool(s,argList->volatileSpecifier); - marshalBool(s,argList->pureSpecifier); - marshalQCString(s,argList->trailingReturnType); - marshalBool(s,argList->isDeleted); - marshalInt(s,(int)argList->refQualifier); - } -} - diff --git a/src/arguments.h b/src/arguments.h index 3af7134..7ef9642 100644 --- a/src/arguments.h +++ b/src/arguments.h @@ -115,9 +115,6 @@ class ArgumentList : public QList<Argument> bool isDeleted; /*! C++11 ref qualifier */ RefQualifierType refQualifier; - - static ArgumentList *unmarshal(StorageIntf *s); - static void marshal(StorageIntf *s,ArgumentList *argList); }; typedef QListIterator<Argument> ArgumentListIterator; diff --git a/src/config.h b/src/config.h index 102774e..1b79b1e 100644 --- a/src/config.h +++ b/src/config.h @@ -65,6 +65,8 @@ namespace Config /*! Post processed the parsed data. Replaces raw string values by the actual values. * and replaces environment variables. * \param clearHeaderAndFooter set to TRUE when writing header and footer templates. + * \param compare signals if we in Doxyfile compare (`-x`) mode are or not. Influences + * setting of the default value. */ void postProcess(bool clearHeaderAndFooter, bool compare = FALSE); diff --git a/src/context.cpp b/src/context.cpp index 8a3a784..6ddc141 100644 --- a/src/context.cpp +++ b/src/context.cpp @@ -3854,7 +3854,7 @@ class TextGeneratorHtml : public TextGeneratorIntf if (ref) { m_ts << "<a class=\"elRef\" "; - m_ts << externalLinkTarget() << externalRef(m_relPath,ref,FALSE); + m_ts << externalLinkTarget(); } else { diff --git a/src/defargs.l b/src/defargs.l index 7e9ccca..e49ef2e 100644 --- a/src/defargs.l +++ b/src/defargs.l @@ -282,6 +282,7 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" <CopyArgSharp>"<<" { if (g_argRoundCount>0) { + // for e.g. < typename A = (i<<3) > *g_copyArgValue += yytext; } else @@ -289,17 +290,10 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" REJECT; } } -<CopyArgSharp>">>)" { // combined token (see bug 790320) - *g_copyArgValue += yytext; - if (g_argSharpCount>0) g_argSharpCount--; - else BEGIN( g_readArgContext ); - if (g_argSharpCount>0) g_argSharpCount--; - else BEGIN( g_readArgContext ); - g_argRoundCount--; - } <CopyArgSharp>">>" { if (g_argRoundCount>0) { + // for e.g. < typename A = (i>>3) > *g_copyArgValue += yytext; } else @@ -308,12 +302,14 @@ RAWEND ")"[^ \t\(\)\\]{0,16}\" } } <CopyArgSharp>"<" { - g_argSharpCount++; + // don't count < inside (, e.g. for things like: < typename A=(i<6) > + if (g_argRoundCount==0) g_argSharpCount++; *g_copyArgValue += *yytext; } <CopyArgSharp>">" { *g_copyArgValue += *yytext; - if (g_argSharpCount>0) g_argSharpCount--; + // don't count > inside ) + if (g_argSharpCount>0 && g_argRoundCount==0) g_argSharpCount--; else BEGIN( g_readArgContext ); } <CopyArgSharp>"(" { diff --git a/src/definition.cpp b/src/definition.cpp index ae229ad..a649700 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -26,6 +26,7 @@ #include "doxygen.h" #include "language.h" #include "message.h" +#include "portable.h" #include "outputlist.h" #include "code.h" #include "util.h" @@ -34,7 +35,6 @@ #include "section.h" #include "htags.h" #include "parserintf.h" -#include "marshal.h" #include "debug.h" #include "vhdldocgen.h" #include "memberlist.h" diff --git a/src/diagram.cpp b/src/diagram.cpp index 83e42b3..7e2fe15 100644 --- a/src/diagram.cpp +++ b/src/diagram.cpp @@ -261,7 +261,7 @@ static void writeMapArea(FTextStream &t,ClassDef *cd,QCString relPath, t << "<area "; if (!ref.isEmpty()) { - t << externalLinkTarget() << externalRef(relPath,ref,FALSE); + t << externalLinkTarget(); } t << "href=\""; t << externalRef(relPath,ref,TRUE); diff --git a/src/docparser.cpp b/src/docparser.cpp index 4b1ce94..aff7411 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -335,11 +335,11 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type, bool "could not write output image %s",qPrint(outputFile)); } } - else - { - warn(g_fileName,doctokenizerYYlineno, - "Prevented to copy file %s onto itself!\n",qPrint(inputFile)); - } + //else + //{ + // warn(g_fileName,doctokenizerYYlineno, + // "Prevented to copy file %s onto itself!\n",qPrint(inputFile)); + //} } else { @@ -1037,6 +1037,11 @@ static int handleAHref(DocNode *parent,QList<DocNode> &children,const HtmlAttrib { if (!opt->value.isEmpty()) { + // copy attributes + HtmlAttribList attrList = tagHtmlAttribs; + // and remove the href attribute + bool result = attrList.remove(index); + ASSERT(result); DocAnchor *anc = new DocAnchor(parent,opt->value,TRUE); children.append(anc); break; // stop looking for other tag attribs @@ -1929,7 +1934,7 @@ DocLinkedWord::DocLinkedWord(DocNode *parent,const QCString &word, //--------------------------------------------------------------------------- -DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor) +DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor) { m_parent = parent; if (id.isEmpty()) @@ -3073,7 +3078,7 @@ int DocHtmlHeader::parse() } else if (tagId==HTML_BR) { - DocLineBreak *lb = new DocLineBreak(this); + DocLineBreak *lb = new DocLineBreak(this,g_token->attribs); m_children.append(lb); } else @@ -6080,13 +6085,13 @@ int DocPara::handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &ta break; case HTML_BR: { - DocLineBreak *lb = new DocLineBreak(this); + DocLineBreak *lb = new DocLineBreak(this,tagHtmlAttribs); m_children.append(lb); } break; case HTML_HR: { - DocHorRuler *hr = new DocHorRuler(this); + DocHorRuler *hr = new DocHorRuler(this,tagHtmlAttribs); m_children.append(hr); } break; @@ -6861,6 +6866,11 @@ endparagraph: DocNode *n = g_nodeStack.pop(); ASSERT(n==this); DBG(("DocPara::parse() end retval=%x\n",retval)); + if (!g_token->endTag && n->kind()==DocNode::Kind_Para && + retval==TK_NEWPARA && g_token->name.lower() == "p") + { + ((DocPara *)n)->setAttribs(g_token->attribs); + } INTERNAL_ASSERT(retval==0 || retval==TK_NEWPARA || retval==TK_LISTITEM || retval==TK_ENDLIST || retval>RetVal_OK ); @@ -7128,7 +7138,7 @@ void DocRoot::parse() DocPara *par = new DocPara(this); if (isFirst) { par->markFirst(); isFirst=FALSE; } retval=par->parse(); - if (!par->isEmpty()) + if (!par->isEmpty() || par->attribs().count()>0) { m_children.append(par); lastPar=par; diff --git a/src/docparser.h b/src/docparser.h index 5d2cc89..d36ed6c 100644 --- a/src/docparser.h +++ b/src/docparser.h @@ -300,22 +300,31 @@ class DocURL : public DocNode class DocLineBreak : public DocNode { public: - DocLineBreak(DocNode *parent) { m_parent=parent; } + DocLineBreak(DocNode *parent) { m_parent = parent; } + DocLineBreak(DocNode *parent,const HtmlAttribList &attribs) + : m_attribs(attribs) { m_parent = parent; } Kind kind() const { return Kind_LineBreak; } void accept(DocVisitor *v) { v->visit(this); } + const HtmlAttribList &attribs() const { return m_attribs; } + private: + HtmlAttribList m_attribs; }; /** Node representing a horizontal ruler */ class DocHorRuler : public DocNode { public: - DocHorRuler(DocNode *parent) { m_parent = parent; } + DocHorRuler(DocNode *parent,const HtmlAttribList &attribs) + : m_attribs(attribs) { m_parent = parent; } Kind kind() const { return Kind_HorRuler; } void accept(DocVisitor *v) { v->visit(this); } + const HtmlAttribList &attribs() const { return m_attribs; } + private: + HtmlAttribList m_attribs; }; /** Node representing an anchor */ @@ -328,9 +337,12 @@ class DocAnchor : public DocNode QCString file() const { return m_file; } void accept(DocVisitor *v) { v->visit(this); } + const HtmlAttribList &attribs() const { return m_attribs; } + private: QCString m_anchor; QCString m_file; + HtmlAttribList m_attribs; }; /** Node representing a citation of some bibliographic reference */ @@ -1199,11 +1211,14 @@ class DocPara : public CompAccept<DocPara> int handleHtmlHeader(const HtmlAttribList &tagHtmlAttribs,int level); bool injectToken(int tok,const QCString &tokText); + const HtmlAttribList &attribs() const { return m_attribs; } + void setAttribs(const HtmlAttribList &attribs) { m_attribs = attribs; } private: QCString m_sectionId; bool m_isFirst; bool m_isLast; + HtmlAttribList m_attribs; }; /** Node representing a parameter list. */ diff --git a/src/dot.cpp b/src/dot.cpp index 07a1a43..6972005 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -336,7 +336,6 @@ static QCString replaceRef(const QCString &buf,const QCString relPath, { result = externalLinkTarget(); if (result != "") setTarget = TRUE; - result += externalRef(relPath,ref,FALSE); } result+= href+"=\""; result+=externalRef(relPath,ref,TRUE); @@ -721,7 +720,7 @@ static bool insertMapFile(FTextStream &out,const QCString &mapFile, { QGString tmpstr; FTextStream tmpout(&tmpstr); - convertMapFile(tmpout,mapFile,relPath); + convertMapFile(tmpout,mapFile,relPath,TRUE); if (!tmpstr.isEmpty()) { out << "<map name=\"" << mapLabel << "\" id=\"" << mapLabel << "\">" << endl; diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 9cdad02..caa13a6 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -38,7 +38,6 @@ #include "scanner.h" #include "entry.h" #include "index.h" -#include "logos.h" #include "message.h" #include "config.h" #include "util.h" @@ -80,14 +79,11 @@ #include "tclscanner.h" #include "code.h" #include "objcache.h" -#include "store.h" -#include "marshal.h" #include "portable.h" #include "vhdljjparser.h" #include "vhdldocgen.h" #include "eclipsehelp.h" #include "cite.h" -#include "filestorage.h" #include "markdown.h" #include "arguments.h" #include "memberlist.h" @@ -111,7 +107,7 @@ extern void initResources(); #define RECURSE_ENTRYTREE(func,var) \ do { if (var->children()) { \ - EntryNavListIterator eli(*var->children()); \ + EntryListIterator eli(*var->children()); \ for (;eli.current();++eli) func(eli.current()); \ } } while(0) @@ -166,7 +162,7 @@ SDict<DirRelation> Doxygen::dirRelations(257); ParserManager *Doxygen::parserManager = 0; QCString Doxygen::htmlFileExtension; bool Doxygen::suppressDocWarnings = FALSE; -Store *Doxygen::symbolStorage; +//Store *Doxygen::symbolStorage; QCString Doxygen::objDBFileName; QCString Doxygen::entryDBFileName; QCString Doxygen::filterDBFileName; @@ -180,12 +176,11 @@ bool Doxygen::markdownSupport = TRUE; GenericsSDict *Doxygen::genericsDict; // locally accessible globals -static QDict<EntryNav> g_classEntries(1009); +static QDict<Entry> g_classEntries(1009); static StringList g_inputFiles; static QDict<void> g_compoundKeywordDict(7); // keywords recognised as compounds static OutputList *g_outputList = 0; // list of output generating objects static QDict<FileDef> g_usingDeclarations(1009); // used classes -static FileStorage *g_storage = 0; static bool g_successfulRun = FALSE; static bool g_dumpSymbolMap = FALSE; static bool g_useOutputTemplate = FALSE; @@ -301,9 +296,9 @@ void statistics() -static void addMemberDocs(EntryNav *rootNav,MemberDef *md, const char *funcDecl, +static void addMemberDocs(Entry *root,MemberDef *md, const char *funcDecl, ArgumentList *al,bool over_load,NamespaceSDict *nl=0); -static void findMember(EntryNav *rootNav, +static void findMember(Entry *root, QCString funcDecl, bool overloaded, bool isFunc @@ -317,7 +312,7 @@ enum FindBaseClassRelation_Mode }; static bool findClassRelation( - EntryNav *rootNav, + Entry *root, Definition *context, ClassDef *cd, BaseInfo *bi, @@ -424,7 +419,7 @@ static STLInfo g_stlinfo[] = { 0, 0, 0, 0, 0, 0, 0, FALSE, FALSE } }; -static void addSTLMember(EntryNav *rootNav,const char *type,const char *name) +static void addSTLMember(Entry *root,const char *type,const char *name) { Entry *memEntry = new Entry; memEntry->name = name; @@ -435,13 +430,13 @@ static void addSTLMember(EntryNav *rootNav,const char *type,const char *name) memEntry->hidden = FALSE; memEntry->artificial = TRUE; //memEntry->parent = root; - //root->addSubEntry(memEntry); - EntryNav *memEntryNav = new EntryNav(rootNav,memEntry); - memEntryNav->setEntry(memEntry); - rootNav->addChild(memEntryNav); + root->addSubEntry(memEntry); + //EntryNav *memEntryNav = new EntryNav(root,memEntry); + //memEntryNav->setEntry(memEntry); + //rootNav->addChild(memEntryNav); } -static void addSTLIterator(EntryNav *classEntryNav,const char *name) +static void addSTLIterator(Entry *classEntry,const char *name) { Entry *iteratorClassEntry = new Entry; iteratorClassEntry->fileName = "[STL]"; @@ -451,13 +446,14 @@ static void addSTLIterator(EntryNav *classEntryNav,const char *name) iteratorClassEntry->brief = "STL iterator class"; iteratorClassEntry->hidden = FALSE; iteratorClassEntry->artificial= TRUE; - EntryNav *iteratorClassEntryNav = new EntryNav(classEntryNav,iteratorClassEntry); - iteratorClassEntryNav->setEntry(iteratorClassEntry); - classEntryNav->addChild(iteratorClassEntryNav); + classEntry->addSubEntry(iteratorClassEntry); + //EntryNav *iteratorClassEntryNav = new EntryNav(classEntryNav,iteratorClassEntry); + //iteratorClassEntryNav->setEntry(iteratorClassEntry); + //classEntryNav->addChild(iteratorClassEntryNav); } -static void addSTLClasses(EntryNav *rootNav) +static void addSTLClasses(Entry *root) { Entry *namespaceEntry = new Entry; namespaceEntry->fileName = "[STL]"; @@ -468,10 +464,10 @@ static void addSTLClasses(EntryNav *rootNav) namespaceEntry->brief = "STL namespace"; namespaceEntry->hidden = FALSE; namespaceEntry->artificial= TRUE; - //root->addSubEntry(namespaceEntry); - EntryNav *namespaceEntryNav = new EntryNav(rootNav,namespaceEntry); - namespaceEntryNav->setEntry(namespaceEntry); - rootNav->addChild(namespaceEntryNav); + root->addSubEntry(namespaceEntry); + //EntryNav *namespaceEntryNav = new EntryNav(rootNav,namespaceEntry); + //namespaceEntryNav->setEntry(namespaceEntry); + //rootNav->addChild(namespaceEntryNav); STLInfo *info = g_stlinfo; while (info->className) @@ -485,15 +481,14 @@ static void addSTLClasses(EntryNav *rootNav) classEntry->fileName = "[STL]"; classEntry->startLine = 1; classEntry->name = fullName; - //classEntry->parent = namespaceEntry; classEntry->section = Entry::CLASS_SEC; classEntry->brief = "STL class"; classEntry->hidden = FALSE; classEntry->artificial= TRUE; - //namespaceEntry->addSubEntry(classEntry); - EntryNav *classEntryNav = new EntryNav(namespaceEntryNav,classEntry); - classEntryNav->setEntry(classEntry); - namespaceEntryNav->addChild(classEntryNav); + namespaceEntry->addSubEntry(classEntry); + //EntryNav *classEntryNav = new EntryNav(namespaceEntryNav,classEntry); + //classEntryNav->setEntry(classEntry); + //namespaceEntryNav->addChild(classEntryNav); // add template arguments to class if (info->templType1) @@ -517,11 +512,11 @@ static void addSTLClasses(EntryNav *rootNav) // add member variables if (info->templName1) { - addSTLMember(classEntryNav,info->templType1,info->templName1); + addSTLMember(classEntry,info->templType1,info->templName1); } if (info->templName2) { - addSTLMember(classEntryNav,info->templType2,info->templName2); + addSTLMember(classEntry,info->templType2,info->templName2); } if (fullName=="std::auto_ptr" || fullName=="std::smart_ptr" || fullName=="std::shared_ptr" || fullName=="std::unique_ptr" || fullName=="std::weak_ptr") @@ -535,9 +530,10 @@ static void addSTLClasses(EntryNav *rootNav) memEntry->brief = "STL member"; memEntry->hidden = FALSE; memEntry->artificial = FALSE; - EntryNav *memEntryNav = new EntryNav(classEntryNav,memEntry); - memEntryNav->setEntry(memEntry); - classEntryNav->addChild(memEntryNav); + classEntry->addSubEntry(memEntry); + //EntryNav *memEntryNav = new EntryNav(classEntryNav,memEntry); + //memEntryNav->setEntry(memEntry); + //classEntryNav->addChild(memEntryNav); } if (info->baseClass1) { @@ -550,10 +546,10 @@ static void addSTLClasses(EntryNav *rootNav) if (info->iterators) { // add iterator class - addSTLIterator(classEntryNav,fullName+"::iterator"); - addSTLIterator(classEntryNav,fullName+"::const_iterator"); - addSTLIterator(classEntryNav,fullName+"::reverse_iterator"); - addSTLIterator(classEntryNav,fullName+"::const_reverse_iterator"); + addSTLIterator(classEntry,fullName+"::iterator"); + addSTLIterator(classEntry,fullName+"::const_iterator"); + addSTLIterator(classEntry,fullName+"::reverse_iterator"); + addSTLIterator(classEntry,fullName+"::const_reverse_iterator"); } info++; } @@ -564,18 +560,18 @@ static void addSTLClasses(EntryNav *rootNav) static Definition *findScopeFromQualifiedName(Definition *startScope,const QCString &n, FileDef *fileScope,TagInfo *tagInfo); -static void addPageToContext(PageDef *pd,EntryNav *rootNav) +static void addPageToContext(PageDef *pd,Entry *root) { - if (rootNav->parent()) // add the page to it's scope + if (root->parent()) // add the page to it's scope { - QCString scope = rootNav->parent()->name(); - if (rootNav->parent()->section()==Entry::PACKAGEDOC_SEC) + QCString scope = root->parent()->name; + if (root->parent()->section==Entry::PACKAGEDOC_SEC) { scope=substitute(scope,".","::"); } scope = stripAnonymousNamespaceScope(scope); scope+="::"+pd->name(); - Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,scope,0,rootNav->tagInfo()); + Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,scope,0,root->tagInfo); if (d) { pd->setPageScope(d); @@ -583,9 +579,8 @@ static void addPageToContext(PageDef *pd,EntryNav *rootNav) } } -static void addRelatedPage(EntryNav *rootNav) +static void addRelatedPage(Entry *root) { - Entry *root = rootNav->entry(); GroupDef *gd=0; QListIterator<Grouping> gli(*root->groups); Grouping *g; @@ -606,7 +601,7 @@ static void addRelatedPage(EntryNav *rootNav) PageDef *pd = addRelatedPage(root->name,root->args,doc,root->anchors, root->docFile,root->docLine, root->sli, - gd,rootNav->tagInfo(), + gd,root->tagInfo, root->lang ); if (pd) @@ -614,20 +609,17 @@ static void addRelatedPage(EntryNav *rootNav) pd->setBriefDescription(root->brief,root->briefFile,root->briefLine); pd->addSectionsToDefinition(root->anchors); pd->setLocalToc(root->localToc); - addPageToContext(pd,rootNav); + addPageToContext(pd,root); } } -static void buildGroupListFiltered(EntryNav *rootNav,bool additional, bool includeExternal) +static void buildGroupListFiltered(Entry *root,bool additional, bool includeExternal) { - if (rootNav->section()==Entry::GROUPDOC_SEC && !rootNav->name().isEmpty() && - ((!includeExternal && rootNav->tagInfo()==0) || - ( includeExternal && rootNav->tagInfo()!=0)) + if (root->section==Entry::GROUPDOC_SEC && !root->name.isEmpty() && + ((!includeExternal && root->tagInfo==0) || + ( includeExternal && root->tagInfo!=0)) ) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - if ((root->groupDocType==Entry::GROUPDOC_NORMAL && !additional) || (root->groupDocType!=Entry::GROUPDOC_NORMAL && additional)) { @@ -656,10 +648,10 @@ static void buildGroupListFiltered(EntryNav *rootNav,bool additional, bool inclu } else { - if (rootNav->tagInfo()) + if (root->tagInfo) { - gd = new GroupDef(root->fileName,root->startLine,root->name,root->type,rootNav->tagInfo()->fileName); - gd->setReference(rootNav->tagInfo()->tagName); + gd = new GroupDef(root->fileName,root->startLine,root->name,root->type,root->tagInfo->fileName); + gd->setReference(root->tagInfo->tagName); } else { @@ -675,13 +667,11 @@ static void buildGroupListFiltered(EntryNav *rootNav,bool additional, bool inclu gd->setLanguage(root->lang); } } - - rootNav->releaseEntry(); } - if (rootNav->children()) + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); - EntryNav *e; + EntryListIterator eli(*root->children()); + Entry *e; for (;(e=eli.current());++eli) { buildGroupListFiltered(e,additional,includeExternal); @@ -689,53 +679,50 @@ static void buildGroupListFiltered(EntryNav *rootNav,bool additional, bool inclu } } -static void buildGroupList(EntryNav *rootNav) +static void buildGroupList(Entry *root) { // --- first process only local groups // first process the @defgroups blocks - buildGroupListFiltered(rootNav,FALSE,FALSE); + buildGroupListFiltered(root,FALSE,FALSE); // then process the @addtogroup, @weakgroup blocks - buildGroupListFiltered(rootNav,TRUE,FALSE); + buildGroupListFiltered(root,TRUE,FALSE); // --- then also process external groups // first process the @defgroups blocks - buildGroupListFiltered(rootNav,FALSE,TRUE); + buildGroupListFiltered(root,FALSE,TRUE); // then process the @addtogroup, @weakgroup blocks - buildGroupListFiltered(rootNav,TRUE,TRUE); + buildGroupListFiltered(root,TRUE,TRUE); } -static void findGroupScope(EntryNav *rootNav) +static void findGroupScope(Entry *root) { - if (rootNav->section()==Entry::GROUPDOC_SEC && !rootNav->name().isEmpty() && - rootNav->parent() && !rootNav->parent()->name().isEmpty()) + if (root->section==Entry::GROUPDOC_SEC && !root->name.isEmpty() && + root->parent() && !root->parent()->name.isEmpty()) { GroupDef *gd; - if ((gd=Doxygen::groupSDict->find(rootNav->name()))) + if ((gd=Doxygen::groupSDict->find(root->name))) { - QCString scope = rootNav->parent()->name(); - if (rootNav->parent()->section()==Entry::PACKAGEDOC_SEC) + QCString scope = root->parent()->name; + if (root->parent()->section==Entry::PACKAGEDOC_SEC) { scope=substitute(scope,".","::"); } scope = stripAnonymousNamespaceScope(scope); scope+="::"+gd->name(); - Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,scope,0,rootNav->tagInfo()); + Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,scope,0,root->tagInfo); if (d) { gd->setGroupScope(d); } } } - RECURSE_ENTRYTREE(findGroupScope,rootNav); + RECURSE_ENTRYTREE(findGroupScope,root); } -static void organizeSubGroupsFiltered(EntryNav *rootNav,bool additional) +static void organizeSubGroupsFiltered(Entry *root,bool additional) { - if (rootNav->section()==Entry::GROUPDOC_SEC && !rootNav->name().isEmpty()) + if (root->section==Entry::GROUPDOC_SEC && !root->name.isEmpty()) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - if ((root->groupDocType==Entry::GROUPDOC_NORMAL && !additional) || (root->groupDocType!=Entry::GROUPDOC_NORMAL && additional)) { @@ -746,13 +733,11 @@ static void organizeSubGroupsFiltered(EntryNav *rootNav,bool additional) addGroupToGroups(root,gd); } } - - rootNav->releaseEntry(); } - if (rootNav->children()) + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); - EntryNav *e; + EntryListIterator eli(*root->children()); + Entry *e; for (;(e=eli.current());++eli) { organizeSubGroupsFiltered(e,additional); @@ -760,66 +745,48 @@ static void organizeSubGroupsFiltered(EntryNav *rootNav,bool additional) } } -static void organizeSubGroups(EntryNav *rootNav) +static void organizeSubGroups(Entry *root) { //printf("Defining groups\n"); // first process the @defgroups blocks - organizeSubGroupsFiltered(rootNav,FALSE); + organizeSubGroupsFiltered(root,FALSE); //printf("Additional groups\n"); // then process the @addtogroup, @weakgroup blocks - organizeSubGroupsFiltered(rootNav,TRUE); + organizeSubGroupsFiltered(root,TRUE); } //---------------------------------------------------------------------- -static void buildFileList(EntryNav *rootNav) +static void buildFileList(Entry *root) { - if (((rootNav->section()==Entry::FILEDOC_SEC) || - ((rootNav->section() & Entry::FILE_MASK) && Config_getBool(EXTRACT_ALL))) && - !rootNav->name().isEmpty() && !rootNav->tagInfo() // skip any file coming from tag files + if (((root->section==Entry::FILEDOC_SEC) || + ((root->section & Entry::FILE_MASK) && Config_getBool(EXTRACT_ALL))) && + !root->name.isEmpty() && !root->tagInfo // skip any file coming from tag files ) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - bool ambig; FileDef *fd=findFileDef(Doxygen::inputNameDict,root->name,ambig); //printf("**************** root->name=%s fd=%p\n",root->name.data(),fd); if (fd && !ambig) { -#if 0 - if ((!root->doc.isEmpty() && !fd->documentation().isEmpty()) || - (!root->brief.isEmpty() && !fd->briefDescription().isEmpty())) - { - warn( - root->fileName,root->startLine, - "file %s already documented. " - "Skipping documentation.", - root->name.data() - ); - } - else -#endif + //printf("Adding documentation!\n"); + // using FALSE in setDocumentation is small hack to make sure a file + // is documented even if a \file command is used without further + // documentation + fd->setDocumentation(root->doc,root->docFile,root->docLine,FALSE); + fd->setBriefDescription(root->brief,root->briefFile,root->briefLine); + fd->addSectionsToDefinition(root->anchors); + fd->setRefItems(root->sli); + QListIterator<Grouping> gli(*root->groups); + Grouping *g; + for (;(g=gli.current());++gli) { - //printf("Adding documentation!\n"); - // using FALSE in setDocumentation is small hack to make sure a file - // is documented even if a \file command is used without further - // documentation - fd->setDocumentation(root->doc,root->docFile,root->docLine,FALSE); - fd->setBriefDescription(root->brief,root->briefFile,root->briefLine); - fd->addSectionsToDefinition(root->anchors); - fd->setRefItems(root->sli); - QListIterator<Grouping> gli(*root->groups); - Grouping *g; - for (;(g=gli.current());++gli) + GroupDef *gd=0; + if (!g->groupname.isEmpty() && (gd=Doxygen::groupSDict->find(g->groupname))) { - GroupDef *gd=0; - if (!g->groupname.isEmpty() && (gd=Doxygen::groupSDict->find(g->groupname))) - { - gd->addFile(fd); - fd->makePartOfGroup(gd); - //printf("File %s: in group %s\n",fd->name().data(),s->data()); - } + gd->addFile(fd); + fd->makePartOfGroup(gd); + //printf("File %s: in group %s\n",fd->name().data(),s->data()); } } } @@ -843,10 +810,8 @@ static void buildFileList(EntryNav *rootNav) } warn(fn,root->startLine,text); } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(buildFileList,rootNav); + RECURSE_ENTRYTREE(buildFileList,root); } static void addIncludeFile(ClassDef *cd,FileDef *ifd,Entry *root) @@ -1242,19 +1207,15 @@ ClassDef::CompoundType convertToCompoundType(int section,uint64 specifier) } -static void addClassToContext(EntryNav *rootNav) +static void addClassToContext(Entry *root) { //printf("Loading entry for rootNav=%p name=%s\n",rootNav,rootNav->name().data()); - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - - //NamespaceDef *nd = 0; - FileDef *fd = rootNav->fileDef(); + FileDef *fd = root->fileDef(); QCString scName; - if (rootNav->parent()->section()&Entry::SCOPE_MASK) + if (root->parent()->section&Entry::SCOPE_MASK) { - scName=rootNav->parent()->name(); + scName=root->parent()->name; } // name without parent's scope QCString fullName = root->name; @@ -1322,7 +1283,7 @@ static void addClassToContext(EntryNav *rootNav) QCString tagName; QCString refFileName; - TagInfo *tagInfo = rootNav->tagInfo(); + TagInfo *tagInfo = root->tagInfo; int i; if (tagInfo) { @@ -1408,34 +1369,32 @@ static void addClassToContext(EntryNav *rootNav) } addClassToGroups(root,cd); cd->setRefItems(root->sli); - - rootNav->releaseEntry(); } //---------------------------------------------------------------------- // build a list of all classes mentioned in the documentation // and all classes that have a documentation block before their definition. -static void buildClassList(EntryNav *rootNav) +static void buildClassList(Entry *root) { if ( - ((rootNav->section() & Entry::COMPOUND_MASK) || - rootNav->section()==Entry::OBJCIMPL_SEC) && !rootNav->name().isEmpty() + ((root->section & Entry::COMPOUND_MASK) || + root->section==Entry::OBJCIMPL_SEC) && !root->name.isEmpty() ) { - addClassToContext(rootNav); + addClassToContext(root); } - RECURSE_ENTRYTREE(buildClassList,rootNav); + RECURSE_ENTRYTREE(buildClassList,root); } -static void buildClassDocList(EntryNav *rootNav) +static void buildClassDocList(Entry *root) { if ( - (rootNav->section() & Entry::COMPOUNDDOC_MASK) && !rootNav->name().isEmpty() + (root->section & Entry::COMPOUNDDOC_MASK) && !root->name.isEmpty() ) { - addClassToContext(rootNav); + addClassToContext(root); } - RECURSE_ENTRYTREE(buildClassDocList,rootNav); + RECURSE_ENTRYTREE(buildClassDocList,root); } static void resolveClassNestingRelations() @@ -1721,19 +1680,16 @@ static void findTagLessClasses() //---------------------------------------------------------------------- // build a list of all namespaces mentioned in the documentation // and all namespaces that have a documentation block before their definition. -static void buildNamespaceList(EntryNav *rootNav) +static void buildNamespaceList(Entry *root) { if ( - (rootNav->section()==Entry::NAMESPACE_SEC || - rootNav->section()==Entry::NAMESPACEDOC_SEC || - rootNav->section()==Entry::PACKAGEDOC_SEC + (root->section==Entry::NAMESPACE_SEC || + root->section==Entry::NAMESPACEDOC_SEC || + root->section==Entry::PACKAGEDOC_SEC ) && - !rootNav->name().isEmpty() + !root->name.isEmpty() ) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - //printf("** buildNamespaceList(%s)\n",root->name.data()); QCString fName = root->name; @@ -1758,7 +1714,7 @@ static void buildNamespaceList(EntryNav *rootNav) { nd->setLanguage(root->lang); } - if (rootNav->tagInfo()==0) // if we found the namespace in a tag file + if (root->tagInfo==0) // if we found the namespace in a tag file // and also in a project file, then remove // the tag file reference { @@ -1768,7 +1724,7 @@ static void buildNamespaceList(EntryNav *rootNav) nd->setMetaData(root->metaData); // file definition containing the namespace nd - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); // insert the namespace in the file definition if (fd) fd->insertNamespace(nd); addNamespaceToGroups(root,nd); @@ -1778,7 +1734,7 @@ static void buildNamespaceList(EntryNav *rootNav) { QCString tagName; QCString tagFileName; - TagInfo *tagInfo = rootNav->tagInfo(); + TagInfo *tagInfo = root->tagInfo; if (tagInfo) { tagName = tagInfo->tagName; @@ -1802,7 +1758,7 @@ static void buildNamespaceList(EntryNav *rootNav) nd->setRefItems(root->sli); // file definition containing the namespace nd - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); // insert the namespace in the file definition if (fd) fd->insertNamespace(nd); @@ -1833,10 +1789,8 @@ static void buildNamespaceList(EntryNav *rootNav) } } } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(buildNamespaceList,rootNav); + RECURSE_ENTRYTREE(buildNamespaceList,root); } //---------------------------------------------------------------------- @@ -1860,13 +1814,10 @@ static NamespaceDef *findUsedNamespace(NamespaceSDict *unl, return usingNd; } -static void findUsingDirectives(EntryNav *rootNav) +static void findUsingDirectives(Entry *root) { - if (rootNav->section()==Entry::USINGDIR_SEC) + if (root->section==Entry::USINGDIR_SEC) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - //printf("Found using directive %s at line %d of %s\n", // root->name.data(),root->startLine,root->fileName.data()); QCString name=substitute(root->name,".","::"); @@ -1878,16 +1829,16 @@ static void findUsingDirectives(EntryNav *rootNav) { NamespaceDef *usingNd = 0; NamespaceDef *nd = 0; - FileDef *fd = rootNav->fileDef(); + FileDef *fd = root->fileDef(); QCString nsName; // see if the using statement was found inside a namespace or inside // the global file scope. - if (rootNav->parent() && rootNav->parent()->section()==Entry::NAMESPACE_SEC && + if (root->parent() && root->parent()->section==Entry::NAMESPACE_SEC && (fd==0 || fd->getLanguage()!=SrcLangExt_Java) // not a .java file ) { - nsName=stripAnonymousNamespaceScope(rootNav->parent()->name()); + nsName=stripAnonymousNamespaceScope(root->parent()->name); if (!nsName.isEmpty()) { nd = getResolvedNamespace(nsName); @@ -1997,49 +1948,39 @@ static void findUsingDirectives(EntryNav *rootNav) nd->setRefItems(root->sli); } } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(findUsingDirectives,rootNav); + RECURSE_ENTRYTREE(findUsingDirectives,root); } //---------------------------------------------------------------------- -static void buildListOfUsingDecls(EntryNav *rootNav) +static void buildListOfUsingDecls(Entry *root) { - if (rootNav->section()==Entry::USINGDECL_SEC && - !(rootNav->parent()->section()&Entry::COMPOUND_MASK) // not a class/struct member + if (root->section==Entry::USINGDECL_SEC && + !(root->parent()->section&Entry::COMPOUND_MASK) // not a class/struct member ) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - QCString name = substitute(root->name,".","::"); if (g_usingDeclarations.find(name)==0) { - FileDef *fd = rootNav->fileDef(); + FileDef *fd = root->fileDef(); if (fd) { g_usingDeclarations.insert(name,fd); } } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(buildListOfUsingDecls,rootNav); + RECURSE_ENTRYTREE(buildListOfUsingDecls,root); } -static void findUsingDeclarations(EntryNav *rootNav) +static void findUsingDeclarations(Entry *root) { - if (rootNav->section()==Entry::USINGDECL_SEC && - !(rootNav->parent()->section()&Entry::COMPOUND_MASK) // not a class/struct member + if (root->section==Entry::USINGDECL_SEC && + !(root->parent()->section&Entry::COMPOUND_MASK) // not a class/struct member ) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - //printf("Found using declaration %s at line %d of %s inside section %x\n", // root->name.data(),root->startLine,root->fileName.data(), // rootNav->parent()->section()); @@ -2047,14 +1988,14 @@ static void findUsingDeclarations(EntryNav *rootNav) { ClassDef *usingCd = 0; NamespaceDef *nd = 0; - FileDef *fd = rootNav->fileDef(); + FileDef *fd = root->fileDef(); QCString scName; // see if the using statement was found inside a namespace or inside // the global file scope. - if (rootNav->parent()->section() == Entry::NAMESPACE_SEC) + if (root->parent()->section == Entry::NAMESPACE_SEC) { - scName=rootNav->parent()->name(); + scName=root->parent()->name; if (!scName.isEmpty()) { nd = getResolvedNamespace(scName); @@ -2113,34 +2054,32 @@ static void findUsingDeclarations(EntryNav *rootNav) fd->addUsingDeclaration(usingCd); } } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(findUsingDeclarations,rootNav); + RECURSE_ENTRYTREE(findUsingDeclarations,root); } //---------------------------------------------------------------------- -static void findUsingDeclImports(EntryNav *rootNav) +static void findUsingDeclImports(Entry *root) { - if (rootNav->section()==Entry::USINGDECL_SEC && - (rootNav->parent()->section()&Entry::COMPOUND_MASK) // in a class/struct member + if (root->section==Entry::USINGDECL_SEC && + (root->parent()->section&Entry::COMPOUND_MASK) // in a class/struct member ) { //printf("Found using declaration %s inside section %x\n", // rootNav->name().data(), rootNav->parent()->section()); - QCString fullName=removeRedundantWhiteSpace(rootNav->parent()->name()); + QCString fullName=removeRedundantWhiteSpace(root->parent()->name); fullName=stripAnonymousNamespaceScope(fullName); fullName=stripTemplateSpecifiersFromScope(fullName); ClassDef *cd = getClass(fullName); if (cd) { //printf("found class %s\n",cd->name().data()); - int i=rootNav->name().find("::"); + int i=root->name.find("::"); if (i!=-1) { - QCString scope=rootNav->name().left(i); - QCString memName=rootNav->name().right(rootNav->name().length()-i-2); + QCString scope=root->name.left(i); + QCString memName=root->name.right(root->name.length()-i-2); ClassDef *bcd = getResolvedClass(cd,0,scope); // todo: file in fileScope parameter if (bcd) { @@ -2158,17 +2097,13 @@ static void findUsingDeclImports(EntryNav *rootNav) MemberDef *md = mi->memberDef; if (md && md->protection()!=Private) { - - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - //printf("found member %s\n",mni->memberName()); MemberDef *newMd = 0; { QCString fileName = root->fileName; - if (fileName.isEmpty() && rootNav->tagInfo()) + if (fileName.isEmpty() && root->tagInfo) { - fileName = rootNav->tagInfo()->tagName; + fileName = root->tagInfo->tagName; } ArgumentList *templAl = md->templateArguments(); ArgumentList *al = md->templateArguments(); @@ -2209,8 +2144,6 @@ static void findUsingDeclImports(EntryNav *rootNav) newMd->setMemberSpecifiers(md->getMemberSpecifiers()); newMd->setLanguage(root->lang); newMd->setId(root->id); - - rootNav->releaseEntry(); } } } @@ -2220,7 +2153,7 @@ static void findUsingDeclImports(EntryNav *rootNav) } } - RECURSE_ENTRYTREE(findUsingDeclImports,rootNav); + RECURSE_ENTRYTREE(findUsingDeclImports,root); } //---------------------------------------------------------------------- @@ -2259,7 +2192,7 @@ static void findIncludedUsingDirectives() //---------------------------------------------------------------------- static MemberDef *addVariableToClass( - EntryNav *rootNav, + Entry *root, ClassDef *cd, MemberType mtype, const QCString &name, @@ -2268,8 +2201,6 @@ static MemberDef *addVariableToClass( Protection prot, Relationship related) { - Entry *root = rootNav->entry(); - QCString qualScope = cd->qualifiedNameWithTemplateParameters(); QCString scopeSeparator="::"; SrcLangExt lang = cd->getLanguage(); @@ -2354,7 +2285,7 @@ static MemberDef *addVariableToClass( md->setProtection(root->protection); cd->reclassifyMember(md,MemberType_Property); } - addMemberDocs(rootNav,md,def,0,FALSE); + addMemberDocs(root,md,def,0,FALSE); //printf(" Member already found!\n"); return md; } @@ -2362,9 +2293,9 @@ static MemberDef *addVariableToClass( } QCString fileName = root->fileName; - if (fileName.isEmpty() && rootNav->tagInfo()) + if (fileName.isEmpty() && root->tagInfo) { - fileName = rootNav->tagInfo()->tagName; + fileName = root->tagInfo->tagName; } // new member variable, typedef or enum value @@ -2373,7 +2304,7 @@ static MemberDef *addVariableToClass( root->type,name,root->args,root->exception, prot,Normal,root->stat,related, mtype,root->tArgLists ? root->tArgLists->getLast() : 0,0, root->metaData); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setMemberClass(cd); // also sets outer scope (i.e. getOuterScope()) //md->setDefFile(root->fileName); //md->setDefLine(root->startLine); @@ -2407,7 +2338,7 @@ static MemberDef *addVariableToClass( // printf("memberdef %s in memberGroup %d\n",name.data(),root->mGrpId); // md->setMemberGroup(memberGroupDict[root->mGrpId]); // - md->setBodyDef(rootNav->fileDef()); + md->setBodyDef(root->fileDef()); //printf(" Adding member=%s\n",md->name().data()); // add the member to the global list @@ -2430,15 +2361,15 @@ static MemberDef *addVariableToClass( md->setRefItems(root->sli); //TODO: insert FileDef instead of filename strings. - cd->insertUsedFile(rootNav->fileDef()); - rootNav->changeSection(Entry::EMPTY_SEC); + cd->insertUsedFile(root->fileDef()); + root->changeSection(Entry::EMPTY_SEC); return md; } //---------------------------------------------------------------------- static MemberDef *addVariableToFile( - EntryNav *rootNav, + Entry *root, MemberType mtype, const QCString &scope, const QCString &name, @@ -2446,7 +2377,6 @@ static MemberDef *addVariableToFile( /*int indentDepth,*/ MemberDef *fromAnnMemb) { - Entry *root = rootNav->entry(); Debug::print(Debug::Variables,0, " global variable:\n" " file='%s' type=`%s' scope=`%s' name=`%s' args=`%s' prot=`%d mtype=%d lang=%d\n", @@ -2460,7 +2390,7 @@ static MemberDef *addVariableToFile( root->lang ); - FileDef *fd = rootNav->fileDef(); + FileDef *fd = root->fileDef(); // see if we have a typedef that should hide a struct or union if (mtype==MemberType_Typedef && Config_getBool(TYPEDEF_HIDES_STRUCT)) @@ -2596,7 +2526,7 @@ static MemberDef *addVariableToFile( { Debug::print(Debug::Variables,0, " variable already found: scope=%s\n",qPrint(md->getOuterScope()->name())); - addMemberDocs(rootNav,md,def,0,FALSE); + addMemberDocs(root,md,def,0,FALSE); md->setRefItems(root->sli); // if md is a variable forward declaration and root is the definition that // turn md into the defintion @@ -2618,20 +2548,20 @@ static MemberDef *addVariableToFile( } QCString fileName = root->fileName; - if (fileName.isEmpty() && rootNav->tagInfo()) + if (fileName.isEmpty() && root->tagInfo) { - fileName = rootNav->tagInfo()->tagName; + fileName = root->tagInfo->tagName; } Debug::print(Debug::Variables,0, - " new variable, nd=%s tagInfo=%p!\n",nd?qPrint(nd->name()):"<global>",rootNav->tagInfo()); + " new variable, nd=%s tagInfo=%p!\n",nd?qPrint(nd->name()):"<global>",root->tagInfo); // new global variable, enum value or typedef MemberDef *md=new MemberDef( fileName,root->startLine,root->startColumn, root->type,name,root->args,0, root->protection, Normal,root->stat,Member, mtype,root->tArgLists ? root->tArgLists->getLast() : 0,0, root->metaData); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setMemberSpecifiers(root->spec); md->setDocumentation(root->doc,root->docFile,root->docLine); md->setBriefDescription(root->brief,root->briefFile,root->briefLine); @@ -2684,7 +2614,7 @@ static MemberDef *addVariableToFile( mn->append(md); Doxygen::functionNameSDict->append(name,mn); } - rootNav->changeSection(Entry::EMPTY_SEC); + root->changeSection(Entry::EMPTY_SEC); return md; } @@ -2725,7 +2655,7 @@ static int findFunctionPtr(const QCString &type,int lang, int *pLength=0) /*! Returns TRUE iff \a type is a class within scope \a context. * Used to detect variable declarations that look like function prototypes. */ -static bool isVarWithConstructor(EntryNav *rootNav) +static bool isVarWithConstructor(Entry *root) { static QRegExp initChars("[0-9\"'&*!^]+"); static QRegExp idChars("[a-z_A-Z][a-z_A-Z0-9]*"); @@ -2737,15 +2667,12 @@ static bool isVarWithConstructor(EntryNav *rootNav) int ti; //printf("isVarWithConstructor(%s)\n",rootNav->name().data()); - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - - if (rootNav->parent()->section() & Entry::COMPOUND_MASK) + if (root->parent()->section & Entry::COMPOUND_MASK) { // inside a class result=FALSE; goto done; } - else if ((fd = rootNav->fileDef()) && + else if ((fd = root->fileDef()) && (fd->name().right(2)==".c" || fd->name().right(2)==".h") ) { // inside a .c file @@ -2757,9 +2684,9 @@ static bool isVarWithConstructor(EntryNav *rootNav) result=FALSE; goto done; } - if (!rootNav->parent()->name().isEmpty()) + if (!root->parent()->name.isEmpty()) { - ctx=Doxygen::namespaceSDict->find(rootNav->parent()->name()); + ctx=Doxygen::namespaceSDict->find(root->parent()->name); } type = root->type; // remove qualifiers @@ -2844,17 +2771,13 @@ static bool isVarWithConstructor(EntryNav *rootNav) done: //printf("isVarWithConstructor(%s,%s)=%d\n",rootNav->parent()->name().data(), // root->type.data(),result); - rootNav->releaseEntry(); return result; } -static void addVariable(EntryNav *rootNav,int isFuncPtr=-1) +static void addVariable(Entry *root,int isFuncPtr=-1) { static bool sliceOpt = Config_getBool(OPTIMIZE_OUTPUT_SLICE); - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - Debug::print(Debug::Variables,0, "VARIABLE_SEC: \n" " type=`%s' name=`%s' args=`%s' bodyLine=`%d' mGrpId=%d relates=%s\n", @@ -2911,10 +2834,10 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1) QCString scope,name=removeRedundantWhiteSpace(root->name); // find the scope of this variable - EntryNav *p = rootNav->parent(); - while ((p->section() & Entry::SCOPE_MASK)) + Entry *p = root->parent(); + while ((p->section & Entry::SCOPE_MASK)) { - QCString scopeName = p->name(); + QCString scopeName = p->name; if (!scopeName.isEmpty()) { scope.prepend(scopeName); @@ -2941,7 +2864,7 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1) cd=getClass(scope); if (cd) { - addVariableToClass(rootNav, // entry + addVariableToClass(root, // entry cd, // class to add member to MemberType_Friend, // type of member name, // name of the member @@ -2952,8 +2875,7 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1) ); } } - goto nextMember; - /* skip this member, because it is a + return; /* skip this member, because it is a * static variable definition (always?), which will be * found in a class scope as well, but then we know the * correct protection level, so only then it will be @@ -3017,7 +2939,7 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1) { if (!pScope.isEmpty() && (pcd=getClass(pScope))) { - md=addVariableToClass(rootNav, // entry + md=addVariableToClass(root, // entry pcd, // class to add member to mtype, // member type name, // member name @@ -3032,7 +2954,7 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1) { if (mtype==MemberType_Variable) { - md=addVariableToFile(rootNav,mtype,pScope,name,TRUE,0); + md=addVariableToFile(root,mtype,pScope,name,TRUE,0); } //added=TRUE; } @@ -3042,7 +2964,7 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1) //printf("name=`%s' scope=%s scope.right=%s\n", // name.data(),scope.data(), // scope.right(scope.length()-si).data()); - addVariableToClass(rootNav, // entry + addVariableToClass(root, // entry cd, // class to add member to mtype, // member type name, // name of the member @@ -3054,33 +2976,31 @@ static void addVariable(EntryNav *rootNav,int isFuncPtr=-1) else if (!name.isEmpty()) // global variable { //printf("Inserting member in global scope %s!\n",scope.data()); - addVariableToFile(rootNav,mtype,scope,name,FALSE,/*0,*/0); + addVariableToFile(root,mtype,scope,name,FALSE,/*0,*/0); } -nextMember: - rootNav->releaseEntry(); } //---------------------------------------------------------------------- // Searches the Entry tree for typedef documentation sections. // If found they are stored in their class or in the global list. -static void buildTypedefList(EntryNav *rootNav) +static void buildTypedefList(Entry *root) { //printf("buildVarList(%s)\n",rootNav->name().data()); - if (!rootNav->name().isEmpty() && - rootNav->section()==Entry::VARIABLE_SEC && - rootNav->type().find("typedef ")!=-1 // its a typedef + if (!root->name.isEmpty() && + root->section==Entry::VARIABLE_SEC && + root->type.find("typedef ")!=-1 // its a typedef ) { - addVariable(rootNav); + addVariable(root); } - if (rootNav->children()) + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); - EntryNav *e; + EntryListIterator eli(*root->children()); + Entry *e; for (;(e=eli.current());++eli) { - if (e->section()!=Entry::ENUM_SEC) + if (e->section!=Entry::ENUM_SEC) { buildTypedefList(e); } @@ -3091,22 +3011,22 @@ static void buildTypedefList(EntryNav *rootNav) //---------------------------------------------------------------------- // Searches the Entry tree for sequence documentation sections. // If found they are stored in the global list. -static void buildSequenceList(EntryNav *rootNav) +static void buildSequenceList(Entry *root) { - if (!rootNav->name().isEmpty() && - rootNav->section()==Entry::VARIABLE_SEC && - rootNav->type().find("sequence<")!=-1 // it's a sequence + if (!root->name.isEmpty() && + root->section==Entry::VARIABLE_SEC && + root->type.find("sequence<")!=-1 // it's a sequence ) { - addVariable(rootNav); + addVariable(root); } - if (rootNav->children()) + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); - EntryNav *e; + EntryListIterator eli(*root->children()); + Entry *e; for (;(e=eli.current());++eli) { - if (e->section()!=Entry::ENUM_SEC) + if (e->section!=Entry::ENUM_SEC) { buildSequenceList(e); } @@ -3117,22 +3037,22 @@ static void buildSequenceList(EntryNav *rootNav) //---------------------------------------------------------------------- // Searches the Entry tree for dictionary documentation sections. // If found they are stored in the global list. -static void buildDictionaryList(EntryNav *rootNav) +static void buildDictionaryList(Entry *root) { - if (!rootNav->name().isEmpty() && - rootNav->section()==Entry::VARIABLE_SEC && - rootNav->type().find("dictionary<")!=-1 // it's a dictionary + if (!root->name.isEmpty() && + root->section==Entry::VARIABLE_SEC && + root->type.find("dictionary<")!=-1 // it's a dictionary ) { - addVariable(rootNav); + addVariable(root); } - if (rootNav->children()) + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); - EntryNav *e; + EntryListIterator eli(*root->children()); + Entry *e; for (;(e=eli.current());++eli) { - if (e->section()!=Entry::ENUM_SEC) + if (e->section!=Entry::ENUM_SEC) { buildDictionaryList(e); } @@ -3144,33 +3064,33 @@ static void buildDictionaryList(EntryNav *rootNav) // Searches the Entry tree for Variable documentation sections. // If found they are stored in their class or in the global list. -static void buildVarList(EntryNav *rootNav) +static void buildVarList(Entry *root) { //printf("buildVarList(%s) section=%08x\n",rootNav->name().data(),rootNav->section()); int isFuncPtr=-1; - if (!rootNav->name().isEmpty() && - (rootNav->type().isEmpty() || g_compoundKeywordDict.find(rootNav->type())==0) && + if (!root->name.isEmpty() && + (root->type.isEmpty() || g_compoundKeywordDict.find(root->type)==0) && ( - (rootNav->section()==Entry::VARIABLE_SEC // it's a variable + (root->section==Entry::VARIABLE_SEC // it's a variable ) || - (rootNav->section()==Entry::FUNCTION_SEC && // or maybe a function pointer variable - (isFuncPtr=findFunctionPtr(rootNav->type(),rootNav->lang()))!=-1 + (root->section==Entry::FUNCTION_SEC && // or maybe a function pointer variable + (isFuncPtr=findFunctionPtr(root->type,root->lang))!=-1 ) || - (rootNav->section()==Entry::FUNCTION_SEC && // class variable initialized by constructor - isVarWithConstructor(rootNav) + (root->section==Entry::FUNCTION_SEC && // class variable initialized by constructor + isVarWithConstructor(root) ) ) ) // documented variable { - addVariable(rootNav,isFuncPtr); + addVariable(root,isFuncPtr); } - if (rootNav->children()) + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); - EntryNav *e; + EntryListIterator eli(*root->children()); + Entry *e; for (;(e=eli.current());++eli) { - if (e->section()!=Entry::ENUM_SEC) + if (e->section!=Entry::ENUM_SEC) { buildVarList(e); } @@ -3184,25 +3104,24 @@ static void buildVarList(EntryNav *rootNav) // static void addInterfaceOrServiceToServiceOrSingleton( - EntryNav *const rootNav, + Entry *const root, ClassDef *const cd, QCString const& rname) { - Entry *const root = rootNav->entry(); - FileDef *const fd = rootNav->fileDef(); - enum MemberType const type = (rootNav->section()==Entry::EXPORTED_INTERFACE_SEC) + FileDef *fd = root->fileDef(); + enum MemberType type = (root->section==Entry::EXPORTED_INTERFACE_SEC) ? MemberType_Interface : MemberType_Service; QCString fileName = root->fileName; - if (fileName.isEmpty() && rootNav->tagInfo()) + if (fileName.isEmpty() && root->tagInfo) { - fileName = rootNav->tagInfo()->tagName; + fileName = root->tagInfo->tagName; } MemberDef *const md = new MemberDef( fileName, root->startLine, root->startColumn, root->type, rname, "", "", root->protection, root->virt, root->stat, Member, type, 0, root->argList, root->metaData); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setMemberClass(cd); md->setDocumentation(root->doc,root->docFile,root->docLine); md->setDocsForDefinition(false); @@ -3252,29 +3171,25 @@ static void addInterfaceOrServiceToServiceOrSingleton( // "optional" interface/service get Protected which turns into dashed line BaseInfo base(rname, (root->spec & (Entry::Optional)) ? Protected : Public,Normal); - findClassRelation(rootNav,cd,cd,&base,0,DocumentedOnly,true) - || findClassRelation(rootNav,cd,cd,&base,0,Undocumented,true); + findClassRelation(root,cd,cd,&base,0,DocumentedOnly,true) || findClassRelation(root,cd,cd,&base,0,Undocumented,true); // add file to list of used files cd->insertUsedFile(fd); addMemberToGroups(root,md); - rootNav->changeSection(Entry::EMPTY_SEC); + root->changeSection(Entry::EMPTY_SEC); md->setRefItems(root->sli); } -static void buildInterfaceAndServiceList(EntryNav *const rootNav) +static void buildInterfaceAndServiceList(Entry *root) { - if (rootNav->section()==Entry::EXPORTED_INTERFACE_SEC || - rootNav->section()==Entry::INCLUDED_SERVICE_SEC) + if (root->section==Entry::EXPORTED_INTERFACE_SEC || + root->section==Entry::INCLUDED_SERVICE_SEC) { - rootNav->loadEntry(g_storage); - Entry *const root = rootNav->entry(); - Debug::print(Debug::Functions,0, "EXPORTED_INTERFACE_SEC:\n" " `%s' `%s'::`%s' `%s' relates=`%s' relatesType=`%d' file=`%s' line=`%d' bodyLine=`%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n", qPrint(root->type), - qPrint(rootNav->parent()->name()), + qPrint(root->parent()->name), qPrint(root->name), qPrint(root->args), qPrint(root->relates), @@ -3289,18 +3204,18 @@ static void buildInterfaceAndServiceList(EntryNav *const rootNav) qPrint(root->docFile) ); - QCString const rname = removeRedundantWhiteSpace(root->name); + QCString rname = removeRedundantWhiteSpace(root->name); if (!rname.isEmpty()) { - QCString const scope = rootNav->parent()->name(); - ClassDef *const cd = getClass(scope); + QCString scope = root->parent()->name; + ClassDef *cd = getClass(scope); assert(cd); if (cd && ((ClassDef::Interface == cd->compoundType()) || (ClassDef::Service == cd->compoundType()) || (ClassDef::Singleton == cd->compoundType()))) { - addInterfaceOrServiceToServiceOrSingleton(rootNav,cd,rname); + addInterfaceOrServiceToServiceOrSingleton(root,cd,rname); } else { @@ -3312,15 +3227,13 @@ static void buildInterfaceAndServiceList(EntryNav *const rootNav) warn(root->fileName,root->startLine, "Illegal member name found."); } - - rootNav->releaseEntry(); } // can only have these in IDL anyway - switch (rootNav->lang()) + switch (root->lang) { case SrcLangExt_Unknown: // fall through (root node always is Unknown) case SrcLangExt_IDL: - RECURSE_ENTRYTREE(buildInterfaceAndServiceList,rootNav); + RECURSE_ENTRYTREE(buildInterfaceAndServiceList,root); break; default: return; // nothing to do here @@ -3332,11 +3245,10 @@ static void buildInterfaceAndServiceList(EntryNav *const rootNav) // Searches the Entry tree for Function sections. // If found they are stored in their class or in the global list. -static void addMethodToClass(EntryNav *rootNav,ClassDef *cd, +static void addMethodToClass(Entry *root,ClassDef *cd, const QCString &rname,bool isFriend) { - Entry *root = rootNav->entry(); - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); int l; static QRegExp re("([a-z_A-Z0-9: ]*[ &*]+[ ]*"); @@ -3373,9 +3285,9 @@ static void addMethodToClass(EntryNav *rootNav,ClassDef *cd, } QCString fileName = root->fileName; - if (fileName.isEmpty() && rootNav->tagInfo()) + if (fileName.isEmpty() && root->tagInfo) { - fileName = rootNav->tagInfo()->tagName; + fileName = root->tagInfo->tagName; } //printf("root->name=`%s; root->args=`%s' root->argList=`%s'\n", @@ -3391,7 +3303,7 @@ static void addMethodToClass(EntryNav *rootNav,ClassDef *cd, root->relates.isEmpty() ? Member : root->relatesType == MemberOf ? Foreign : Related, mtype,root->tArgLists ? root->tArgLists->getLast() : 0,root->argList, root->metaData); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setMemberClass(cd); md->setDocumentation(root->doc,root->docFile,root->docLine); md->setDocsForDefinition(!root->proto); @@ -3509,23 +3421,20 @@ static void addMethodToClass(EntryNav *rootNav,ClassDef *cd, cd->insertUsedFile(fd); addMemberToGroups(root,md); - rootNav->changeSection(Entry::EMPTY_SEC); + root->changeSection(Entry::EMPTY_SEC); md->setRefItems(root->sli); } -static void buildFunctionList(EntryNav *rootNav) +static void buildFunctionList(Entry *root) { - if (rootNav->section()==Entry::FUNCTION_SEC) + if (root->section==Entry::FUNCTION_SEC) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - Debug::print(Debug::Functions,0, "FUNCTION_SEC:\n" " `%s' `%s'::`%s' `%s' relates=`%s' relatesType=`%d' file=`%s' line=`%d' bodyLine=`%d' #tArgLists=%d mGrpId=%d spec=%lld proto=%d docFile=%s\n", qPrint(root->type), - qPrint(rootNav->parent()->name()), + qPrint(root->parent()->name), qPrint(root->name), qPrint(root->args), qPrint(root->relates), @@ -3544,14 +3453,14 @@ static void buildFunctionList(EntryNav *rootNav) QCString rname = removeRedundantWhiteSpace(root->name); //printf("rname=%s\n",rname.data()); - QCString scope=rootNav->parent()->name(); //stripAnonymousNamespaceScope(root->parent->name); + QCString scope=root->parent()->name; //stripAnonymousNamespaceScope(root->parent->name); if (!rname.isEmpty() && scope.find('@')==-1) { ClassDef *cd=0; // check if this function's parent is a class scope=stripTemplateSpecifiersFromScope(scope,FALSE); - FileDef *rfd=rootNav->fileDef(); + FileDef *rfd=root->fileDef(); int memIndex=rname.findRev("::"); @@ -3559,7 +3468,7 @@ static void buildFunctionList(EntryNav *rootNav) if (cd && scope+"::"==rname.left(scope.length()+2)) // found A::f inside A { // strip scope from name - rname=rname.right(rname.length()-rootNav->parent()->name().length()-2); + rname=rname.right(rname.length()-root->parent()->name.length()-2); } NamespaceDef *nd = 0; @@ -3593,8 +3502,8 @@ static void buildFunctionList(EntryNav *rootNav) int ts=root->type.find('<'); int te=root->type.findRev('>'); int ti; - if (!rootNav->parent()->name().isEmpty() && - (rootNav->parent()->section() & Entry::COMPOUND_MASK) && + if (!root->parent()->name.isEmpty() && + (root->parent()->section & Entry::COMPOUND_MASK) && cd && // do some fuzzy things to exclude function pointers (root->type.isEmpty() || @@ -3608,10 +3517,10 @@ static void buildFunctionList(EntryNav *rootNav) { Debug::print(Debug::Functions,0," --> member %s of class %s!\n", qPrint(rname),qPrint(cd->name())); - addMethodToClass(rootNav,cd,rname,isFriend); + addMethodToClass(root,cd,rname,isFriend); } - else if (!((rootNav->parent()->section() & Entry::COMPOUND_MASK) - || rootNav->parent()->section()==Entry::OBJCIMPL_SEC + else if (!((root->parent()->section & Entry::COMPOUND_MASK) + || root->parent()->section==Entry::OBJCIMPL_SEC ) && !isMember && (root->relates.isEmpty() || root->relatesType == Duplicate) && @@ -3636,7 +3545,7 @@ static void buildFunctionList(EntryNav *rootNav) NamespaceDef *rnd = 0; //printf("root namespace=%s\n",rootNav->parent()->name().data()); QCString fullScope = scope; - QCString parentScope = rootNav->parent()->name(); + QCString parentScope = root->parent()->name; if (!parentScope.isEmpty() && !leftScopeMatch(parentScope,scope)) { if (!scope.isEmpty()) fullScope.prepend("::"); @@ -3792,7 +3701,7 @@ static void buildFunctionList(EntryNav *rootNav) root->protection,root->virt,root->stat,Member, MemberType_Function,tArgList,root->argList,root->metaData); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setLanguage(root->lang); md->setId(root->id); //md->setDefFile(root->fileName); @@ -3805,7 +3714,7 @@ static void buildFunctionList(EntryNav *rootNav) md->setTypeConstraints(root->typeConstr); //md->setBody(root->body); md->setBodySegment(root->bodyLine,root->endBodyLine); - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); md->setBodyDef(fd); md->addSectionsToDefinition(root->anchors); md->setMemberSpecifiers(root->spec); @@ -3813,10 +3722,10 @@ static void buildFunctionList(EntryNav *rootNav) // see if the function is inside a namespace that was not part of // the name already (in that case nd should be non-zero already) - if (nd==0 && rootNav->parent()->section() == Entry::NAMESPACE_SEC ) + if (nd==0 && root->parent()->section == Entry::NAMESPACE_SEC ) { - //QCString nscope=removeAnonymousScopes(rootNav->parent()->name()); - QCString nscope=rootNav->parent()->name(); + //QCString nscope=removeAnonymousScopes(root->parent()->name); + QCString nscope=root->parent()->name; if (!nscope.isEmpty()) { nd = getResolvedNamespace(nscope); @@ -3861,7 +3770,7 @@ static void buildFunctionList(EntryNav *rootNav) " `%s' `%s'::`%s' `%s' proto=%d\n" " def=`%s'\n", qPrint(root->type), - qPrint(rootNav->parent()->name()), + qPrint(root->parent()->name), qPrint(rname), qPrint(root->args), root->proto, @@ -3909,14 +3818,14 @@ static void buildFunctionList(EntryNav *rootNav) if (root->relatesType == Simple) // if this is a relatesalso command, // allow find Member to pick it up { - rootNav->changeSection(Entry::EMPTY_SEC); // Otherwise we have finished - // with this entry. + root->changeSection(Entry::EMPTY_SEC); // Otherwise we have finished + // with this entry. } } else { - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); if (fd) { // add member to the file (we do this even if we have already @@ -3939,10 +3848,8 @@ static void buildFunctionList(EntryNav *rootNav) "Illegal member name found." ); } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(buildFunctionList,rootNav); + RECURSE_ENTRYTREE(buildFunctionList,root); } //---------------------------------------------------------------------- @@ -4285,7 +4192,7 @@ static ClassDef *findClassWithinClassContext(Definition *context,ClassDef *cd,co } -static void findUsedClassesForClass(EntryNav *rootNav, +static void findUsedClassesForClass(Entry *root, Definition *context, ClassDef *masterCd, ClassDef *instanceCd, @@ -4327,7 +4234,7 @@ static void findUsedClassesForClass(EntryNav *rootNav, } //printf(" template substitution gives=%s\n",type.data()); - while (!found && extractClassNameFromType(type,pos,usedClassName,templSpec,rootNav->lang())!=-1) + while (!found && extractClassNameFromType(type,pos,usedClassName,templSpec,root->lang)!=-1) { // find the type (if any) that matches usedClassName ClassDef *typeCd = getResolvedClass(masterCd, @@ -4362,7 +4269,7 @@ static void findUsedClassesForClass(EntryNav *rootNav, delTempNames=TRUE; } BaseInfo bi(usedName,Public,Normal); - findClassRelation(rootNav,context,instanceCd,&bi,templateNames,TemplateInstances,isArtificial); + findClassRelation(root,context,instanceCd,&bi,templateNames,TemplateInstances,isArtificial); if (masterCd->templateArguments()) { @@ -4455,7 +4362,7 @@ static void findUsedClassesForClass(EntryNav *rootNav, } static void findBaseClassesForClass( - EntryNav *rootNav, + Entry *root, Definition *context, ClassDef *masterCd, ClassDef *instanceCd, @@ -4465,7 +4372,6 @@ static void findBaseClassesForClass( QDict<int> *templateNames=0 ) { - Entry *root = rootNav->entry(); //if (masterCd->visited) return; masterCd->visited=TRUE; // The base class could ofcouse also be a non-nested class @@ -4492,7 +4398,7 @@ static void findBaseClassesForClass( if (mode==DocumentedOnly) { // find a documented base class in the correct scope - if (!findClassRelation(rootNav,context,instanceCd,&tbi,templateNames,DocumentedOnly,isArtificial)) + if (!findClassRelation(root,context,instanceCd,&tbi,templateNames,DocumentedOnly,isArtificial)) { // 1.8.2: decided to show inheritance relations even if not documented, // we do make them artificial, so they do not appear in the index @@ -4500,13 +4406,13 @@ static void findBaseClassesForClass( bool b = Config_getBool(HIDE_UNDOC_RELATIONS) ? TRUE : isArtificial; //{ // no documented base class -> try to find an undocumented one - findClassRelation(rootNav,context,instanceCd,&tbi,templateNames,Undocumented,b); + findClassRelation(root,context,instanceCd,&tbi,templateNames,Undocumented,b); //} } } else if (mode==TemplateInstances) { - findClassRelation(rootNav,context,instanceCd,&tbi,templateNames,TemplateInstances,isArtificial); + findClassRelation(root,context,instanceCd,&tbi,templateNames,TemplateInstances,isArtificial); } if (delTempNames) { @@ -4558,34 +4464,19 @@ static bool findTemplateInstanceRelation(Entry *root, // search for new template instances caused by base classes of // instanceClass - EntryNav *templateRootNav = g_classEntries.find(templateClass->name()); - if (templateRootNav) + Entry *templateRoot = g_classEntries.find(templateClass->name()); + if (templateRoot) { - bool unloadNeeded=FALSE; - Entry *templateRoot = templateRootNav->entry(); - if (templateRoot==0) // not yet loaded - { - templateRootNav->loadEntry(g_storage); - templateRoot = templateRootNav->entry(); - ASSERT(templateRoot!=0); // now it should really be loaded - unloadNeeded=TRUE; - } - Debug::print(Debug::Classes,0," template root found %s templSpec=%s!\n", qPrint(templateRoot->name),qPrint(templSpec)); ArgumentList *templArgs = new ArgumentList; stringToArgumentList(templSpec,templArgs); - findBaseClassesForClass(templateRootNav,context,templateClass,instanceClass, + findBaseClassesForClass(templateRoot,context,templateClass,instanceClass, TemplateInstances,isArtificial,templArgs,templateNames); - findUsedClassesForClass(templateRootNav,context,templateClass,instanceClass, + findUsedClassesForClass(templateRoot,context,templateClass,instanceClass, isArtificial,templArgs,templateNames); delete templArgs; - - if (unloadNeeded) // still cleanup to do - { - templateRootNav->releaseEntry(); - } } else { @@ -4695,7 +4586,7 @@ static int findEndOfTemplate(const QCString &s,int startPos) } static bool findClassRelation( - EntryNav *rootNav, + Entry *root, Definition *context, ClassDef *cd, BaseInfo *bi, @@ -4717,8 +4608,6 @@ static bool findClassRelation( //} //printf("\n"); - Entry *root = rootNav->entry(); - QCString biName=bi->name; bool explicitGlobalScope=FALSE; //printf("findClassRelation: biName=`%s'\n",biName.data()); @@ -4728,12 +4617,12 @@ static bool findClassRelation( explicitGlobalScope=TRUE; } - EntryNav *parentNode=rootNav->parent(); + Entry *parentNode=root->parent(); bool lastParent=FALSE; do // for each parent scope, starting with the largest scope // (in case of nested classes) { - QCString scopeName= parentNode ? parentNode->name().data() : ""; + QCString scopeName= parentNode ? parentNode->name.data() : ""; int scopeOffset=explicitGlobalScope ? 0 : scopeName.length(); do // try all parent scope prefixes, starting with the largest scope { @@ -4772,18 +4661,18 @@ static bool findClassRelation( // ) // Check for base class with the same name. // // If found then look in the outer scope for a match // // and prevent recursion. - if (!isRecursiveBaseClass(rootNav->name(),baseClassName) + if (!isRecursiveBaseClass(root->name,baseClassName) || explicitGlobalScope // sadly isRecursiveBaseClass always true for UNO IDL ifc/svc members // (i.e. this is needed for addInterfaceOrServiceToServiceOrSingleton) - || (rootNav->lang()==SrcLangExt_IDL && - (rootNav->section()==Entry::EXPORTED_INTERFACE_SEC || - rootNav->section()==Entry::INCLUDED_SERVICE_SEC))) + || (root->lang==SrcLangExt_IDL && + (root->section==Entry::EXPORTED_INTERFACE_SEC || + root->section==Entry::INCLUDED_SERVICE_SEC))) { Debug::print( Debug::Classes,0," class relation %s inherited/used by %s found (%s and %s) templSpec='%s'\n", qPrint(baseClassName), - qPrint(rootNav->name()), + qPrint(root->name), (bi->prot==Private)?"private":((bi->prot==Protected)?"protected":"public"), (bi->virt==Normal)?"normal":"virtual", qPrint(templSpec) @@ -4980,7 +4869,7 @@ static bool findClassRelation( int si = baseClassName.findRev("::"); if (si!=-1) // class is nested { - Definition *sd = findScopeFromQualifiedName(Doxygen::globalScope,baseClassName.left(si),0,rootNav->tagInfo()); + Definition *sd = findScopeFromQualifiedName(Doxygen::globalScope,baseClassName.left(si),0,root->tagInfo); if (sd==0 || sd==Doxygen::globalScope) // outer scope not found { baseClass->setArtificial(TRUE); // see bug678139 @@ -4997,7 +4886,7 @@ static bool findClassRelation( // add this class as super class to the base class baseClass->insertSubClass(cd,bi->prot,bi->virt,templSpec); // the undocumented base was found in this file - baseClass->insertUsedFile(rootNav->fileDef()); + baseClass->insertUsedFile(root->fileDef()); baseClass->setOuterScope(Doxygen::globalScope); if (baseClassName.right(2)=="-p") { @@ -5051,22 +4940,19 @@ static bool findClassRelation( //---------------------------------------------------------------------- // Computes the base and super classes for each class in the tree -static bool isClassSection(EntryNav *rootNav) +static bool isClassSection(Entry *root) { - if ( !rootNav->name().isEmpty() ) + if ( !root->name.isEmpty() ) { - if (rootNav->section() & Entry::COMPOUND_MASK) + if (root->section & Entry::COMPOUND_MASK) // is it a compound (class, struct, union, interface ...) { return TRUE; } - else if (rootNav->section() & Entry::COMPOUNDDOC_MASK) + else if (root->section & Entry::COMPOUNDDOC_MASK) // is it a documentation block with inheritance info. { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); bool extends = root->extends->count()>0; - rootNav->releaseEntry(); if (extends) return TRUE; } } @@ -5076,22 +4962,22 @@ static bool isClassSection(EntryNav *rootNav) /*! Builds a dictionary of all entry nodes in the tree starting with \a root */ -static void findClassEntries(EntryNav *rootNav) +static void findClassEntries(Entry *root) { - if (isClassSection(rootNav)) + if (isClassSection(root)) { - g_classEntries.insert(rootNav->name(),rootNav); + g_classEntries.insert(root->name,root); } - RECURSE_ENTRYTREE(findClassEntries,rootNav); + RECURSE_ENTRYTREE(findClassEntries,root); } -static QCString extractClassName(EntryNav *rootNav) +static QCString extractClassName(Entry *root) { // strip any anonymous scopes first - QCString bName=stripAnonymousNamespaceScope(rootNav->name()); + QCString bName=stripAnonymousNamespaceScope(root->name); bName=stripTemplateSpecifiersFromScope(bName); int i; - if ((rootNav->lang()==SrcLangExt_CSharp || rootNav->lang()==SrcLangExt_Java) && + if ((root->lang==SrcLangExt_CSharp || root->lang==SrcLangExt_Java) && (i=bName.find('<'))!=-1) { // a Java/C# generic class looks like a C++ specialization, so we need to strip the @@ -5110,19 +4996,17 @@ static void findInheritedTemplateInstances() { ClassSDict::Iterator cli(*Doxygen::classSDict); for (cli.toFirst();cli.current();++cli) cli.current()->visited=FALSE; - QDictIterator<EntryNav> edi(g_classEntries); - EntryNav *rootNav; - for (;(rootNav=edi.current());++edi) + QDictIterator<Entry> edi(g_classEntries); + Entry *root; + for (;(root=edi.current());++edi) { ClassDef *cd; - QCString bName = extractClassName(rootNav); + QCString bName = extractClassName(root); Debug::print(Debug::Classes,0," Inheritance: Class %s : \n",qPrint(bName)); if ((cd=getClass(bName))) { - rootNav->loadEntry(g_storage); //printf("Class %s %d\n",cd->name().data(),root->extends->count()); - findBaseClassesForClass(rootNav,cd,cd,cd,TemplateInstances,FALSE); - rootNav->releaseEntry(); + findBaseClassesForClass(root,cd,cd,cd,TemplateInstances,FALSE); } } } @@ -5131,19 +5015,17 @@ static void findUsedTemplateInstances() { ClassSDict::Iterator cli(*Doxygen::classSDict); for (cli.toFirst();cli.current();++cli) cli.current()->visited=FALSE; - QDictIterator<EntryNav> edi(g_classEntries); - EntryNav *rootNav; - for (;(rootNav=edi.current());++edi) + QDictIterator<Entry> edi(g_classEntries); + Entry *root; + for (;(root=edi.current());++edi) { ClassDef *cd; - QCString bName = extractClassName(rootNav); + QCString bName = extractClassName(root); Debug::print(Debug::Classes,0," Usage: Class %s : \n",qPrint(bName)); if ((cd=getClass(bName))) { - rootNav->loadEntry(g_storage); - findUsedClassesForClass(rootNav,cd,cd,cd,TRUE); + findUsedClassesForClass(root,cd,cd,cd,TRUE); cd->addTypeConstraints(); - rootNav->releaseEntry(); } } } @@ -5152,19 +5034,17 @@ static void computeClassRelations() { ClassSDict::Iterator cli(*Doxygen::classSDict); for (cli.toFirst();cli.current();++cli) cli.current()->visited=FALSE; - QDictIterator<EntryNav> edi(g_classEntries); - EntryNav *rootNav; - for (;(rootNav=edi.current());++edi) + QDictIterator<Entry> edi(g_classEntries); + Entry *root; + for (;(root=edi.current());++edi) { ClassDef *cd; - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - QCString bName = extractClassName(rootNav); + QCString bName = extractClassName(root); Debug::print(Debug::Classes,0," Relations: Class %s : \n",qPrint(bName)); if ((cd=getClass(bName))) { - findBaseClassesForClass(rootNav,cd,cd,cd,DocumentedOnly,FALSE); + findBaseClassesForClass(root,cd,cd,cd,DocumentedOnly,FALSE); } int numMembers = cd && cd->memberNameInfoSDict() ? cd->memberNameInfoSDict()->count() : 0; if ((cd==0 || (!cd->hasDocumentation() && !cd->isReference())) && numMembers>0 && @@ -5182,20 +5062,15 @@ static void computeClassRelations() root->name.data() ); } - - rootNav->releaseEntry(); } } static void computeTemplateClassRelations() { - QDictIterator<EntryNav> edi(g_classEntries); - EntryNav *rootNav; - for (;(rootNav=edi.current());++edi) + QDictIterator<Entry> edi(g_classEntries); + Entry *root; + for (;(root=edi.current());++edi) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - QCString bName=stripAnonymousNamespaceScope(root->name); bName=stripTemplateSpecifiersFromScope(bName); ClassDef *cd=getClass(bName); @@ -5250,10 +5125,10 @@ static void computeTemplateClassRelations() tbi.name = substituteTemplateArgumentsInString(bi->name,tl,templArgs); // find a documented base class in the correct scope - if (!findClassRelation(rootNav,cd,tcd,&tbi,actualTemplateNames,DocumentedOnly,FALSE)) + if (!findClassRelation(root,cd,tcd,&tbi,actualTemplateNames,DocumentedOnly,FALSE)) { // no documented base class -> try to find an undocumented one - findClassRelation(rootNav,cd,tcd,&tbi,actualTemplateNames,Undocumented,TRUE); + findClassRelation(root,cd,tcd,&tbi,actualTemplateNames,Undocumented,TRUE); } delete actualTemplateNames; } @@ -5261,8 +5136,6 @@ static void computeTemplateClassRelations() delete templArgs; } // class has no base classes } - - rootNav->releaseEntry(); } } @@ -5413,14 +5286,13 @@ static void generateXRefPages() // set the function declaration of the member to `funcDecl'. If the boolean // over_load is set the standard overload text is added. -static void addMemberDocs(EntryNav *rootNav, +static void addMemberDocs(Entry *root, MemberDef *md, const char *funcDecl, ArgumentList *al, bool over_load, NamespaceSDict * ) { - Entry *root = rootNav->entry(); //printf("addMemberDocs: `%s'::`%s' `%s' funcDecl=`%s' mSpec=%d\n", // root->parent->name.data(),md->name().data(),md->argsString(),funcDecl,root->spec); QCString fDecl=funcDecl; @@ -5441,7 +5313,7 @@ static void addMemberDocs(EntryNav *rootNav, if (!fullName.isEmpty()) fullName+="::"; fullName+=md->name(); - FileDef *rfd=rootNav->fileDef(); + FileDef *rfd=root->fileDef(); // TODO determine scope based on root not md Definition *rscope = md->getOuterScope(); @@ -5488,7 +5360,7 @@ static void addMemberDocs(EntryNav *rootNav, if ( (md->inbodyDocumentation().isEmpty() || - !rootNav->parent()->name().isEmpty() + !root->parent()->name.isEmpty() ) && !root->inbodyDocs.isEmpty() ) { @@ -5570,7 +5442,7 @@ static ClassDef *findClassDefinition(FileDef *fd,NamespaceDef *nd, // with name `name' and argument list `args' (for overloading) and // function declaration `decl' to the corresponding member definition. -static bool findGlobalMember(EntryNav *rootNav, +static bool findGlobalMember(Entry *root, const QCString &namespaceName, const char *type, const char *name, @@ -5578,7 +5450,6 @@ static bool findGlobalMember(EntryNav *rootNav, const char *, const char *decl) { - Entry *root = rootNav->entry(); Debug::print(Debug::FindMembers,0, "2. findGlobalMember(namespace=%s,type=%s,name=%s,tempArg=%s,decl=%s)\n", qPrint(namespaceName),qPrint(type),qPrint(name),qPrint(tempArg),qPrint(decl)); @@ -5604,7 +5475,7 @@ static bool findGlobalMember(EntryNav *rootNav, //printf("Namespace namespaceName=%s nd=%s\n", // namespaceName.data(),nd ? nd->name().data() : "<none>"); - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); //printf("File %s\n",fd ? fd->name().data() : "<none>"); NamespaceSDict *nl = fd ? fd->getUsedNamespaces() : 0; //SDict<Definition> *cl = fd ? fd->getUsedClasses() : 0; @@ -5679,7 +5550,7 @@ static bool findGlobalMember(EntryNav *rootNav, if (matching) // add docs to the member { Debug::print(Debug::FindMembers,0,"5. Match found\n"); - addMemberDocs(rootNav,md,decl,root->argList,FALSE); + addMemberDocs(root,md,decl,root->argList,FALSE); found=TRUE; } } @@ -5889,14 +5760,12 @@ static void substituteTemplatesInArgList( * The boolean \a isFunc is a hint that indicates that this is a function * instead of a variable or typedef. */ -static void findMember(EntryNav *rootNav, +static void findMember(Entry *root, QCString funcDecl, bool overloaded, bool isFunc ) { - Entry *root = rootNav->entry(); - Debug::print(Debug::FindMembers,0, "findMember(root=%p,funcDecl=`%s',related=`%s',overload=%d," "isFunc=%d mGrpId=%d tArgList=%p (#=%d) " @@ -6009,14 +5878,14 @@ static void findMember(EntryNav *rootNav, } } - if (root->relates.isEmpty() && rootNav->parent() && - ((rootNav->parent()->section()&Entry::SCOPE_MASK) || - (rootNav->parent()->section()==Entry::OBJCIMPL_SEC) + if (root->relates.isEmpty() && root->parent() && + ((root->parent()->section&Entry::SCOPE_MASK) || + (root->parent()->section==Entry::OBJCIMPL_SEC) ) && - !rootNav->parent()->name().isEmpty()) // see if we can combine scopeName + !root->parent()->name.isEmpty()) // see if we can combine scopeName // with the scope in which it was found { - QCString joinedName = rootNav->parent()->name()+"::"+scopeName; + QCString joinedName = root->parent()->name+"::"+scopeName; if (!scopeName.isEmpty() && (getClass(joinedName) || Doxygen::namespaceSDict->find(joinedName))) { @@ -6024,12 +5893,12 @@ static void findMember(EntryNav *rootNav, } else { - scopeName = mergeScopes(rootNav->parent()->name(),scopeName); + scopeName = mergeScopes(root->parent()->name,scopeName); } } else // see if we can prefix a namespace or class that is used from the file { - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); if (fd) { NamespaceSDict *fnl = fd->getUsedNamespaces(); @@ -6235,7 +6104,7 @@ static void findMember(EntryNav *rootNav, qPrint(md->argsString()), qPrint(root->fileName)); //printf("Member %s (member scopeName=%s) (this scopeName=%s) classTempList=%s\n",md->name().data(),cd->name().data(),scopeName.data(),classTempList.data()); - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); NamespaceDef *nd=0; if (!namespaceName.isEmpty()) nd=getResolvedNamespace(namespaceName); @@ -6377,7 +6246,7 @@ static void findMember(EntryNav *rootNav, // TODO: copy other aspects? root->protection=md->protection(); // copy protection level - addMethodToClass(rootNav,cd,md->name(),isFriend); + addMethodToClass(root,cd,md->name(),isFriend); return; } delete argList; @@ -6385,7 +6254,7 @@ static void findMember(EntryNav *rootNav, } if (matching) { - addMemberDocs(rootNav,md,funcDecl,0,overloaded,0/* TODO */); + addMemberDocs(root,md,funcDecl,0,overloaded,0/* TODO */); count++; memFound=TRUE; } @@ -6396,8 +6265,8 @@ static void findMember(EntryNav *rootNav, noMatchCount++; } } - if (count==0 && rootNav->parent() && - rootNav->parent()->section()==Entry::OBJCIMPL_SEC) + if (count==0 && root->parent() && + root->parent()->section==Entry::OBJCIMPL_SEC) { goto localObjCMethod; } @@ -6420,7 +6289,7 @@ static void findMember(EntryNav *rootNav, if (root->tArgLists && templAl!=0 && root->tArgLists->getLast()->count()<=templAl->count()) { - addMethodToClass(rootNav,ccd,md->name(),isFriend); + addMethodToClass(root,ccd,md->name(),isFriend); return; } if (md->argsString()==argListToString(root->argList,TRUE,FALSE)) @@ -6450,7 +6319,7 @@ static void findMember(EntryNav *rootNav, { // we didn't find an actual match on argument lists, but there is only 1 member with this // name in the same scope, so that has to be the one. - addMemberDocs(rootNav,umd,funcDecl,0,overloaded,0); + addMemberDocs(root,umd,funcDecl,0,overloaded,0); return; } else if (candidates>1 && ecd && emd) @@ -6458,7 +6327,7 @@ static void findMember(EntryNav *rootNav, // we didn't find a unique match using type resolution, // but one of the matches has the exact same signature so // we take that one. - addMemberDocs(rootNav,emd,funcDecl,0,overloaded,0); + addMemberDocs(root,emd,funcDecl,0,overloaded,0); return; } } @@ -6548,7 +6417,7 @@ static void findMember(EntryNav *rootNav, root->virt,root->stat,Member, mtype,tArgList,root->argList,root->metaData); //printf("new specialized member %s args=`%s'\n",md->name().data(),funcArgs.data()); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setLanguage(root->lang); md->setId(root->id); md->setMemberClass(cd); @@ -6566,7 +6435,7 @@ static void findMember(EntryNav *rootNav, md->setPrototype(root->proto,root->fileName,root->startLine,root->startColumn); md->addSectionsToDefinition(root->anchors); md->setBodySegment(root->bodyLine,root->endBodyLine); - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); md->setBodyDef(fd); md->setMemberSpecifiers(root->spec); md->setMemberGroupId(root->mGrpId); @@ -6616,7 +6485,7 @@ static void findMember(EntryNav *rootNav, funcType,funcName,funcArgs,exceptions, root->protection,root->virt,root->stat,Related, mtype,tArgList,root->argList,root->metaData); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setLanguage(root->lang); md->setId(root->id); md->setTypeConstraints(root->typeConstr); @@ -6636,7 +6505,7 @@ static void findMember(EntryNav *rootNav, md->setPrototype(root->proto,root->fileName,root->startLine,root->startColumn); md->addSectionsToDefinition(root->anchors); md->setBodySegment(root->bodyLine,root->endBodyLine); - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); md->setBodyDef(fd); md->setMemberSpecifiers(root->spec); md->setMemberGroupId(root->mGrpId); @@ -6648,7 +6517,7 @@ static void findMember(EntryNav *rootNav, } else // unrelated function with the same name as a member { - if (!findGlobalMember(rootNav,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl)) + if (!findGlobalMember(root,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl)) { QCString fullFuncDecl=funcDecl.copy(); if (isFunc) fullFuncDecl+=argListToString(root->argList,TRUE); @@ -6686,7 +6555,7 @@ static void findMember(EntryNav *rootNav, } } - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); if ((mn=Doxygen::memberNameSDict->find(funcName))==0) { @@ -6712,7 +6581,7 @@ static void findMember(EntryNav *rootNav, { //printf("addMemberDocs for related member %s\n",root->name.data()); //rmd->setMemberDefTemplateArguments(root->mtArgList); - addMemberDocs(rootNav,rmd,funcDecl,0,overloaded); + addMemberDocs(root,rmd,funcDecl,0,overloaded); } } @@ -6775,7 +6644,7 @@ static void findMember(EntryNav *rootNav, // md->setDefinitionTemplateParameterLists(root->tArgLists); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); @@ -6861,7 +6730,7 @@ static void findMember(EntryNav *rootNav, } if (root->relatesType == Duplicate) { - if (!findGlobalMember(rootNav,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl)) + if (!findGlobalMember(root,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl)) { QCString fullFuncDecl=funcDecl.copy(); if (isFunc) fullFuncDecl+=argListToString(root->argList,TRUE); @@ -6881,7 +6750,7 @@ static void findMember(EntryNav *rootNav, ); } } - else if (rootNav->parent() && rootNav->parent()->section()==Entry::OBJCIMPL_SEC) + else if (root->parent() && root->parent()->section==Entry::OBJCIMPL_SEC) { localObjCMethod: ClassDef *cd; @@ -6896,7 +6765,7 @@ localObjCMethod: funcType,funcName,funcArgs,exceptions, root->protection,root->virt,root->stat,Member, MemberType_Function,0,root->argList,root->metaData); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setLanguage(root->lang); md->setId(root->id); md->makeImplementationDetail(); @@ -6913,7 +6782,7 @@ localObjCMethod: md->setPrototype(root->proto,root->fileName,root->startLine,root->startColumn); md->addSectionsToDefinition(root->anchors); md->setBodySegment(root->bodyLine,root->endBodyLine); - FileDef *fd=rootNav->fileDef(); + FileDef *fd=root->fileDef(); md->setBodyDef(fd); md->setMemberSpecifiers(root->spec); md->setMemberGroupId(root->mGrpId); @@ -6938,7 +6807,7 @@ localObjCMethod: } else // unrelated not overloaded member found { - bool globMem = findGlobalMember(rootNav,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl); + bool globMem = findGlobalMember(root,namespaceName,funcType,funcName,funcTempList,funcArgs,funcDecl); if (className.isEmpty() && !globMem) { warn(root->fileName,root->startLine, @@ -6967,22 +6836,21 @@ localObjCMethod: // find the members corresponding to the different documentation blocks // that are extracted from the sources. -static void filterMemberDocumentation(EntryNav *rootNav) +static void filterMemberDocumentation(Entry *root) { - Entry *root = rootNav->entry(); int i=-1,l; Debug::print(Debug::FindMembers,0, "findMemberDocumentation(): root->type=`%s' root->inside=`%s' root->name=`%s' root->args=`%s' section=%x root->spec=%lld root->mGrpId=%d\n", qPrint(root->type),qPrint(root->inside),qPrint(root->name),qPrint(root->args),root->section,root->spec,root->mGrpId ); - //printf("rootNav->parent()->name()=%s\n",rootNav->parent()->name().data()); + //printf("root->parent()->name=%s\n",root->parent()->name.data()); bool isFunc=TRUE; if (root->relatesType == Duplicate && !root->relates.isEmpty()) { QCString tmp = root->relates; root->relates.resize(0); - filterMemberDocumentation(rootNav); + filterMemberDocumentation(root); root->relates = tmp; } @@ -7011,17 +6879,17 @@ static void filterMemberDocumentation(EntryNav *rootNav) //if (root->relates.length()) printf(" Relates %s\n",root->relates.data()); if (root->type.isEmpty()) { - findMember(rootNav,root->name+root->args+root->exception,FALSE,isFunc); + findMember(root,root->name+root->args+root->exception,FALSE,isFunc); } else { - findMember(rootNav,root->type+" "+root->name+root->args+root->exception,FALSE,isFunc); + findMember(root,root->type+" "+root->name+root->args+root->exception,FALSE,isFunc); } } else if (root->section==Entry::OVERLOADDOC_SEC) { //printf("Overloaded member %s found\n",root->name.data()); - findMember(rootNav,root->name,TRUE,isFunc); + findMember(root,root->name,TRUE,isFunc); } else if ((root->section==Entry::FUNCTION_SEC // function @@ -7041,7 +6909,7 @@ static void filterMemberDocumentation(EntryNav *rootNav) if (root->type=="friend class" || root->type=="friend struct" || root->type=="friend union") { - findMember(rootNav, + findMember(root, root->type+" "+ root->name, FALSE,FALSE); @@ -7049,7 +6917,7 @@ static void filterMemberDocumentation(EntryNav *rootNav) } else if (!root->type.isEmpty()) { - findMember(rootNav, + findMember(root, root->type+" "+ root->inside+ root->name+ @@ -7059,7 +6927,7 @@ static void filterMemberDocumentation(EntryNav *rootNav) } else { - findMember(rootNav, + findMember(root, root->inside+ root->name+ root->args+ @@ -7069,18 +6937,18 @@ static void filterMemberDocumentation(EntryNav *rootNav) } else if (root->section==Entry::DEFINE_SEC && !root->relates.isEmpty()) { - findMember(rootNav,root->name+root->args,FALSE,!root->args.isEmpty()); + findMember(root,root->name+root->args,FALSE,!root->args.isEmpty()); } else if (root->section==Entry::VARIABLEDOC_SEC) { //printf("Documentation for variable %s found\n",root->name.data()); //if (!root->relates.isEmpty()) printf(" Relates %s\n",root->relates.data()); - findMember(rootNav,root->name,FALSE,FALSE); + findMember(root,root->name,FALSE,FALSE); } else if (root->section==Entry::EXPORTED_INTERFACE_SEC || root->section==Entry::INCLUDED_SERVICE_SEC) { - findMember(rootNav,root->type + " " + root->name,FALSE,FALSE); + findMember(root,root->type + " " + root->name,FALSE,FALSE); } else { @@ -7089,62 +6957,53 @@ static void filterMemberDocumentation(EntryNav *rootNav) } } -static void findMemberDocumentation(EntryNav *rootNav) +static void findMemberDocumentation(Entry *root) { - if (rootNav->section()==Entry::MEMBERDOC_SEC || - rootNav->section()==Entry::OVERLOADDOC_SEC || - rootNav->section()==Entry::FUNCTION_SEC || - rootNav->section()==Entry::VARIABLE_SEC || - rootNav->section()==Entry::VARIABLEDOC_SEC || - rootNav->section()==Entry::DEFINE_SEC || - rootNav->section()==Entry::INCLUDED_SERVICE_SEC || - rootNav->section()==Entry::EXPORTED_INTERFACE_SEC + if (root->section==Entry::MEMBERDOC_SEC || + root->section==Entry::OVERLOADDOC_SEC || + root->section==Entry::FUNCTION_SEC || + root->section==Entry::VARIABLE_SEC || + root->section==Entry::VARIABLEDOC_SEC || + root->section==Entry::DEFINE_SEC || + root->section==Entry::INCLUDED_SERVICE_SEC || + root->section==Entry::EXPORTED_INTERFACE_SEC ) { - rootNav->loadEntry(g_storage); - - filterMemberDocumentation(rootNav); - - rootNav->releaseEntry(); + filterMemberDocumentation(root); } - if (rootNav->children()) + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); - EntryNav *e; + EntryListIterator eli(*root->children()); + Entry *e; for (;(e=eli.current());++eli) { - if (e->section()!=Entry::ENUM_SEC) findMemberDocumentation(e); + if (e->section!=Entry::ENUM_SEC) findMemberDocumentation(e); } } } //---------------------------------------------------------------------- -static void findObjCMethodDefinitions(EntryNav *rootNav) +static void findObjCMethodDefinitions(Entry *root) { - if (rootNav->children()) + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); - EntryNav *objCImplNav; - for (;(objCImplNav=eli.current());++eli) + EntryListIterator eli(*root->children()); + Entry *objCImpl; + for (;(objCImpl=eli.current());++eli) { - if (objCImplNav->section()==Entry::OBJCIMPL_SEC && objCImplNav->children()) + if (objCImpl->section==Entry::OBJCIMPL_SEC && objCImpl->children()) { - EntryNavListIterator seli(*objCImplNav->children()); - EntryNav *objCMethodNav; - for (;(objCMethodNav=seli.current());++seli) + EntryListIterator seli(*objCImpl->children()); + Entry *objCMethod; + for (;(objCMethod=seli.current());++seli) { - if (objCMethodNav->section()==Entry::FUNCTION_SEC) + if (objCMethod->section==Entry::FUNCTION_SEC) { - objCMethodNav->loadEntry(g_storage); - Entry *objCMethod = objCMethodNav->entry(); - //Printf(" Found ObjC method definition %s\n",objCMethod->name.data()); - findMember(objCMethodNav, objCMethod->type+" "+objCImplNav->name()+"::"+ + findMember(objCMethod, objCMethod->type+" "+objCImpl->name+"::"+ objCMethod->name+" "+objCMethod->args, FALSE,TRUE); objCMethod->section=Entry::EMPTY_SEC; - - objCMethodNav->releaseEntry(); } } } @@ -7155,13 +7014,10 @@ static void findObjCMethodDefinitions(EntryNav *rootNav) //---------------------------------------------------------------------- // find and add the enumeration to their classes, namespaces or files -static void findEnums(EntryNav *rootNav) +static void findEnums(Entry *root) { - if (rootNav->section()==Entry::ENUM_SEC) + if (root->section==Entry::ENUM_SEC) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - MemberDef *md=0; ClassDef *cd=0; FileDef *fd=0; @@ -7184,11 +7040,11 @@ static void findEnums(EntryNav *rootNav) } else // no scope, check the scope in which the docs where found { - if (( rootNav->parent()->section() & Entry::SCOPE_MASK ) - && !rootNav->parent()->name().isEmpty() + if (( root->parent()->section & Entry::SCOPE_MASK ) + && !root->parent()->name.isEmpty() ) // found enum docs inside a compound { - scope=rootNav->parent()->name(); + scope=root->parent()->name; if ((cd=getClass(scope))==0) nd=getResolvedNamespace(scope); } name=root->name; @@ -7219,7 +7075,7 @@ static void findEnums(EntryNav *rootNav) } else // found a global enum { - fd=rootNav->fileDef(); + fd=root->fileDef(); mnsd=Doxygen::functionNameSDict; isGlobal=TRUE; } @@ -7234,12 +7090,12 @@ static void findEnums(EntryNav *rootNav) isMemberOf ? Foreign : isRelated ? Related : Member, MemberType_Enumeration, 0,0,root->metaData); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setLanguage(root->lang); md->setId(root->id); if (!isGlobal) md->setMemberClass(cd); else md->setFileDef(fd); md->setBodySegment(root->bodyLine,root->endBodyLine); - md->setBodyDef(rootNav->fileDef()); + md->setBodyDef(root->fileDef()); md->setMemberSpecifiers(root->spec); md->setEnumBaseType(root->args); //printf("Enum %s definition at line %d of %s: protection=%d scope=%s\n", @@ -7283,9 +7139,9 @@ static void findEnums(EntryNav *rootNav) if (isGlobal) { if (!defSet) md->setDefinition(name+baseType); - if (fd==0 && rootNav->parent()) + if (fd==0 && root->parent()) { - fd=rootNav->parent()->fileDef(); + fd=root->parent()->fileDef(); } if (fd) { @@ -7328,24 +7184,20 @@ static void findEnums(EntryNav *rootNav) } addMemberToGroups(root,md); } - rootNav->releaseEntry(); } else { - RECURSE_ENTRYTREE(findEnums,rootNav); + RECURSE_ENTRYTREE(findEnums,root); } } //---------------------------------------------------------------------- -static void addEnumValuesToEnums(EntryNav *rootNav) +static void addEnumValuesToEnums(Entry *root) { - if (rootNav->section()==Entry::ENUM_SEC) + if (root->section==Entry::ENUM_SEC) // non anonymous enumeration { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - ClassDef *cd=0; FileDef *fd=0; NamespaceDef *nd=0; @@ -7366,11 +7218,11 @@ static void addEnumValuesToEnums(EntryNav *rootNav) } else // no scope, check the scope in which the docs where found { - if (( rootNav->parent()->section() & Entry::SCOPE_MASK ) - && !rootNav->parent()->name().isEmpty() + if (( root->parent()->section & Entry::SCOPE_MASK ) + && !root->parent()->name.isEmpty() ) // found enum docs inside a compound { - scope=rootNav->parent()->name(); + scope=root->parent()->name; if ((cd=getClass(scope))==0) nd=getResolvedNamespace(scope); } name=root->name; @@ -7401,7 +7253,7 @@ static void addEnumValuesToEnums(EntryNav *rootNav) } else // found a global enum { - fd=rootNav->fileDef(); + fd=root->fileDef(); //printf("Enum in file `%s': `%s'\n",fd->name().data(),name.data()); mnsd=Doxygen::functionNameSDict; isGlobal=TRUE; @@ -7417,16 +7269,16 @@ static void addEnumValuesToEnums(EntryNav *rootNav) MemberDef *md; for (mni.toFirst(); (md=mni.current()) ; ++mni) // for each enum in this list { - if (md->isEnumerate() && rootNav->children()) + if (md->isEnumerate() && root->children()) { - //printf(" enum with %d children\n",rootNav->children()->count()); - EntryNavListIterator eli(*rootNav->children()); // for each enum value - EntryNav *e; + //printf(" enum with %d children\n",root->children()->count()); + EntryListIterator eli(*root->children()); // for each enum value + Entry *e; for (;(e=eli.current());++eli) { SrcLangExt sle; if ( - (sle=rootNav->lang())==SrcLangExt_CSharp || + (sle=root->lang)==SrcLangExt_CSharp || sle==SrcLangExt_Java || sle==SrcLangExt_XML || (root->spec&Entry::Strong) @@ -7435,12 +7287,10 @@ static void addEnumValuesToEnums(EntryNav *rootNav) // Unlike classic C/C++ enums, for C++11, C# & Java enum // values are only visible inside the enum scope, so we must create // them here and only add them to the enum - e->loadEntry(g_storage); - Entry *root = e->entry(); - //printf("md->qualifiedName()=%s rootNav->name()=%s tagInfo=%p name=%s\n", - // md->qualifiedName().data(),rootNav->name().data(),rootNav->tagInfo(),root->name.data()); - QCString qualifiedName = substitute(rootNav->name(),"::","."); - if (!scope.isEmpty() && rootNav->tagInfo()) + //printf("md->qualifiedName()=%s e->name=%s tagInfo=%p name=%s\n", + // md->qualifiedName().data(),e->name.data(),e->tagInfo,e->name.data()); + QCString qualifiedName = substitute(root->name,"::","."); + if (!scope.isEmpty() && root->tagInfo) { qualifiedName=substitute(scope,"::",".")+"."+qualifiedName; } @@ -7448,54 +7298,53 @@ static void addEnumValuesToEnums(EntryNav *rootNav) qualifiedName // enum value scope matches that of the enum ) { - QCString fileName = root->fileName; - if (fileName.isEmpty() && rootNav->tagInfo()) + QCString fileName = e->fileName; + if (fileName.isEmpty() && e->tagInfo) { - fileName = rootNav->tagInfo()->tagName; + fileName = e->tagInfo->tagName; } MemberDef *fmd=new MemberDef( - fileName,root->startLine,root->startColumn, - root->type,root->name,root->args,0, - root->protection, Normal,root->stat,Member, - MemberType_EnumValue,0,0,root->metaData); + fileName,e->startLine,e->startColumn, + e->type,e->name,e->args,0, + e->protection, Normal,e->stat,Member, + MemberType_EnumValue,0,0,e->metaData); if (md->getClassDef()) fmd->setMemberClass(md->getClassDef()); else if (md->getNamespaceDef()) fmd->setNamespace(md->getNamespaceDef()); else if (md->getFileDef()) fmd->setFileDef(md->getFileDef()); fmd->setOuterScope(md->getOuterScope()); - fmd->setTagInfo(e->tagInfo()); - fmd->setLanguage(root->lang); - fmd->setId(root->id); - fmd->setDocumentation(root->doc,root->docFile,root->docLine); - fmd->setBriefDescription(root->brief,root->briefFile,root->briefLine); - fmd->addSectionsToDefinition(root->anchors); - fmd->setInitializer(root->initializer); - fmd->setMaxInitLines(root->initLines); - fmd->setMemberGroupId(root->mGrpId); - fmd->setExplicitExternal(root->explicitExternal,fileName,root->startLine,root->startColumn); - fmd->setRefItems(root->sli); + fmd->setTagInfo(e->tagInfo); + fmd->setLanguage(e->lang); + fmd->setId(e->id); + fmd->setDocumentation(e->doc,e->docFile,e->docLine); + fmd->setBriefDescription(e->brief,e->briefFile,e->briefLine); + fmd->addSectionsToDefinition(e->anchors); + fmd->setInitializer(e->initializer); + fmd->setMaxInitLines(e->initLines); + fmd->setMemberGroupId(e->mGrpId); + fmd->setExplicitExternal(e->explicitExternal,fileName,e->startLine,e->startColumn); + fmd->setRefItems(e->sli); fmd->setAnchor(); md->insertEnumField(fmd); fmd->setEnumScope(md,TRUE); - MemberName *mn=mnsd->find(root->name); + MemberName *mn=mnsd->find(e->name); if (mn) { mn->append(fmd); } else { - mn = new MemberName(root->name); + mn = new MemberName(e->name); mn->append(fmd); - mnsd->append(root->name,mn); + mnsd->append(e->name,mn); } } - e->releaseEntry(); } else { //printf("e->name=%s isRelated=%d\n",e->name().data(),isRelated); MemberName *fmn=0; MemberNameSDict *emnsd = isRelated ? Doxygen::functionNameSDict : mnsd; - if (!e->name().isEmpty() && (fmn=(*emnsd)[e->name()])) + if (!e->name.isEmpty() && (fmn=(*emnsd)[e->name])) // get list of members with the same name as the field { MemberNameIterator fmni(*fmn); @@ -7554,12 +7403,10 @@ static void addEnumValuesToEnums(EntryNav *rootNav) } } } - - rootNav->releaseEntry(); } else { - RECURSE_ENTRYTREE(addEnumValuesToEnums,rootNav); + RECURSE_ENTRYTREE(addEnumValuesToEnums,root); } } @@ -7567,16 +7414,13 @@ static void addEnumValuesToEnums(EntryNav *rootNav) //---------------------------------------------------------------------- // find the documentation blocks for the enumerations -static void findEnumDocumentation(EntryNav *rootNav) +static void findEnumDocumentation(Entry *root) { - if (rootNav->section()==Entry::ENUMDOC_SEC - && !rootNav->name().isEmpty() - && rootNav->name().at(0)!='@' // skip anonymous enums + if (root->section==Entry::ENUMDOC_SEC + && !root->name.isEmpty() + && root->name.at(0)!='@' // skip anonymous enums ) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - //printf("Found docs for enum with name `%s' in context %s\n", // root->name.data(),root->parent->name.data()); int i; @@ -7592,12 +7436,12 @@ static void findEnumDocumentation(EntryNav *rootNav) { name=root->name; } - if (( rootNav->parent()->section() & Entry::SCOPE_MASK ) - && !rootNav->parent()->name().isEmpty() + if (( root->parent()->section & Entry::SCOPE_MASK ) + && !root->parent()->name.isEmpty() ) // found enum docs inside a compound { if (!scope.isEmpty()) scope.prepend("::"); - scope.prepend(rootNav->parent()->name()); + scope.prepend(root->parent()->name); } ClassDef *cd=getClass(scope); @@ -7620,7 +7464,7 @@ static void findEnumDocumentation(EntryNav *rootNav) { // documentation outside a compound overrides the documentation inside it #if 0 - if (!md->documentation() || rootNav->parent()->name().isEmpty()) + if (!md->documentation() || root->parent()->name.isEmpty()) #endif { md->setDocumentation(root->doc,root->docFile,root->docLine); @@ -7630,13 +7474,13 @@ static void findEnumDocumentation(EntryNav *rootNav) // brief descriptions inside a compound override the documentation // outside it #if 0 - if (!md->briefDescription() || !rootNav->parent()->name().isEmpty()) + if (!md->briefDescription() || !root->parent()->name.isEmpty()) #endif { md->setBriefDescription(root->brief,root->briefFile,root->briefLine); } - if (!md->inbodyDocumentation() || !rootNav->parent()->name().isEmpty()) + if (!md->inbodyDocumentation() || !root->parent()->name.isEmpty()) { md->setInbodyDocumentation(root->inbodyDocs,root->inbodyFile,root->inbodyLine); } @@ -7702,10 +7546,8 @@ static void findEnumDocumentation(EntryNav *rootNav) ); } } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(findEnumDocumentation,rootNav); + RECURSE_ENTRYTREE(findEnumDocumentation,root); } // search for each enum (member or function) in mnl if it has documented @@ -8572,27 +8414,24 @@ static void flushUnresolvedRelations() //---------------------------------------------------------------------------- -static void findDefineDocumentation(EntryNav *rootNav) +static void findDefineDocumentation(Entry *root) { - if ((rootNav->section()==Entry::DEFINEDOC_SEC || - rootNav->section()==Entry::DEFINE_SEC) && !rootNav->name().isEmpty() + if ((root->section==Entry::DEFINEDOC_SEC || + root->section==Entry::DEFINE_SEC) && !root->name.isEmpty() ) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - //printf("found define `%s' `%s' brief=`%s' doc=`%s'\n", // root->name.data(),root->args.data(),root->brief.data(),root->doc.data()); - if (rootNav->tagInfo() && !root->name.isEmpty()) // define read from a tag file + if (root->tagInfo && !root->name.isEmpty()) // define read from a tag file { - MemberDef *md=new MemberDef(rootNav->tagInfo()->tagName,1,1, + MemberDef *md=new MemberDef(root->tagInfo->tagName,1,1, "#define",root->name,root->args,0, Public,Normal,FALSE,Member,MemberType_Define,0,0,""); - md->setTagInfo(rootNav->tagInfo()); + md->setTagInfo(root->tagInfo); md->setLanguage(root->lang); //printf("Searching for `%s' fd=%p\n",filePathName.data(),fd); - md->setFileDef(rootNav->parent()->fileDef()); + md->setFileDef(root->parent()->fileDef()); //printf("Adding member=%s\n",md->name().data()); MemberName *mn; if ((mn=Doxygen::functionNameSDict->find(root->name))) @@ -8630,7 +8469,7 @@ static void findDefineDocumentation(EntryNav *rootNav) md->setInbodyDocumentation(root->inbodyDocs,root->inbodyFile,root->inbodyLine); } md->setBodySegment(root->bodyLine,root->endBodyLine); - md->setBodyDef(rootNav->fileDef()); + md->setBodyDef(root->fileDef()); md->addSectionsToDefinition(root->anchors); md->setMaxInitLines(root->initLines); md->setRefItems(root->sli); @@ -8674,7 +8513,7 @@ static void findDefineDocumentation(EntryNav *rootNav) md->setInbodyDocumentation(root->inbodyDocs,root->inbodyFile,root->inbodyLine); } md->setBodySegment(root->bodyLine,root->endBodyLine); - md->setBodyDef(rootNav->fileDef()); + md->setBodyDef(root->fileDef()); md->addSectionsToDefinition(root->anchors); md->setRefItems(root->sli); md->setLanguage(root->lang); @@ -8708,21 +8547,16 @@ static void findDefineDocumentation(EntryNav *rootNav) ); } } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(findDefineDocumentation,rootNav); + RECURSE_ENTRYTREE(findDefineDocumentation,root); } //---------------------------------------------------------------------------- -static void findDirDocumentation(EntryNav *rootNav) +static void findDirDocumentation(Entry *root) { - if (rootNav->section() == Entry::DIRDOC_SEC) + if (root->section == Entry::DIRDOC_SEC) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - QCString normalizedName = root->name; normalizedName = substitute(normalizedName,"\\","/"); //printf("root->docFile=%s normalizedName=%s\n", @@ -8774,34 +8608,25 @@ static void findDirDocumentation(EntryNav *rootNav) warn(root->fileName,root->startLine,"No matching " "directory found for command \\dir %s\n",normalizedName.data()); } - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(findDirDocumentation,rootNav); + RECURSE_ENTRYTREE(findDirDocumentation,root); } //---------------------------------------------------------------------------- // create a (sorted) list of separate documentation pages -static void buildPageList(EntryNav *rootNav) +static void buildPageList(Entry *root) { - if (rootNav->section() == Entry::PAGEDOC_SEC) + if (root->section == Entry::PAGEDOC_SEC) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - if (!root->name.isEmpty()) { - addRelatedPage(rootNav); + addRelatedPage(root); } - - rootNav->releaseEntry(); } - else if (rootNav->section() == Entry::MAINPAGEDOC_SEC) + else if (root->section == Entry::MAINPAGEDOC_SEC) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - QCString title=root->args.stripWhiteSpace(); if (title.isEmpty()) title=theTranslator->trMainPage(); //QCString name = Config_getBool(GENERATE_TREEVIEW)?"main":"index"; @@ -8813,22 +8638,17 @@ static void buildPageList(EntryNav *rootNav) title, 0,0 ); - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(buildPageList,rootNav); + RECURSE_ENTRYTREE(buildPageList,root); } // search for the main page defined in this project -static void findMainPage(EntryNav *rootNav) +static void findMainPage(Entry *root) { - if (rootNav->section() == Entry::MAINPAGEDOC_SEC) + if (root->section == Entry::MAINPAGEDOC_SEC) { - rootNav->loadEntry(g_storage); - - if (Doxygen::mainPage==0 && rootNav->tagInfo()==0) + if (Doxygen::mainPage==0 && root->tagInfo==0) { - Entry *root = rootNav->entry(); //printf("Found main page! \n======\n%s\n=======\n",root->doc.data()); QCString title=root->args.stripWhiteSpace(); //QCString indexName=Config_getBool(GENERATE_TREEVIEW)?"main":"index"; @@ -8839,7 +8659,7 @@ static void findMainPage(EntryNav *rootNav) Doxygen::mainPage->setBriefDescription(root->brief,root->briefFile,root->briefLine); Doxygen::mainPage->setFileName(indexName); Doxygen::mainPage->setLocalToc(root->localToc); - addPageToContext(Doxygen::mainPage,rootNav); + addPageToContext(Doxygen::mainPage,root); SectionInfo *si = Doxygen::sectionDict->find(Doxygen::mainPage->name()); if (si) @@ -8866,46 +8686,37 @@ static void findMainPage(EntryNav *rootNav) Doxygen::mainPage->addSectionsToDefinition(root->anchors); } } - else if (rootNav->tagInfo()==0) + else if (root->tagInfo==0) { - Entry *root = rootNav->entry(); warn(root->fileName,root->startLine, "found more than one \\mainpage comment block! (first occurrence: %s, line %d), Skipping current block!", Doxygen::mainPage->docFile().data(),Doxygen::mainPage->docLine()); } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(findMainPage,rootNav); + RECURSE_ENTRYTREE(findMainPage,root); } // search for the main page imported via tag files and add only the section labels -static void findMainPageTagFiles(EntryNav *rootNav) +static void findMainPageTagFiles(Entry *root) { - if (rootNav->section() == Entry::MAINPAGEDOC_SEC) + if (root->section == Entry::MAINPAGEDOC_SEC) { - rootNav->loadEntry(g_storage); - - if (Doxygen::mainPage && rootNav->tagInfo()) + if (Doxygen::mainPage && root->tagInfo) { - Entry *root = rootNav->entry(); Doxygen::mainPage->addSectionsToDefinition(root->anchors); } } - RECURSE_ENTRYTREE(findMainPageTagFiles,rootNav); + RECURSE_ENTRYTREE(findMainPageTagFiles,root); } -static void computePageRelations(EntryNav *rootNav) +static void computePageRelations(Entry *root) { - if ((rootNav->section()==Entry::PAGEDOC_SEC || - rootNav->section()==Entry::MAINPAGEDOC_SEC + if ((root->section==Entry::PAGEDOC_SEC || + root->section==Entry::MAINPAGEDOC_SEC ) - && !rootNav->name().isEmpty() + && !root->name.isEmpty() ) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - PageDef *pd = root->section==Entry::PAGEDOC_SEC ? Doxygen::pageSDict->find(root->name) : Doxygen::mainPage; @@ -8924,10 +8735,8 @@ static void computePageRelations(EntryNav *rootNav) } } } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(computePageRelations,rootNav); + RECURSE_ENTRYTREE(computePageRelations,root); } static void checkPageRelations() @@ -9046,13 +8855,10 @@ static void generatePageDocs() //---------------------------------------------------------------------------- // create a (sorted) list & dictionary of example pages -static void buildExampleList(EntryNav *rootNav) +static void buildExampleList(Entry *root) { - if ((rootNav->section()==Entry::EXAMPLE_SEC || rootNav->section()==Entry::EXAMPLE_LINENO_SEC) && !rootNav->name().isEmpty()) + if ((root->section==Entry::EXAMPLE_SEC || root->section==Entry::EXAMPLE_LINENO_SEC) && !root->name.isEmpty()) { - rootNav->loadEntry(g_storage); - Entry *root = rootNav->entry(); - if (Doxygen::exampleSDict->find(root->name)) { warn(root->fileName,root->startLine, @@ -9069,32 +8875,30 @@ static void buildExampleList(EntryNav *rootNav) pd->setFileName(convertNameToFile(pd->name()+"-example",FALSE,TRUE)); pd->addSectionsToDefinition(root->anchors); pd->setLanguage(root->lang); - pd->setShowLineNo(rootNav->section()==Entry::EXAMPLE_LINENO_SEC); + pd->setShowLineNo(root->section==Entry::EXAMPLE_LINENO_SEC); Doxygen::exampleSDict->inSort(root->name,pd); //we don't add example to groups //addExampleToGroups(root,pd); } - - rootNav->releaseEntry(); } - RECURSE_ENTRYTREE(buildExampleList,rootNav); + RECURSE_ENTRYTREE(buildExampleList,root); } //---------------------------------------------------------------------------- // prints the Entry tree (for debugging) -void printNavTree(EntryNav *rootNav,int indent) +void printNavTree(Entry *root,int indent) { QCString indentStr; indentStr.fill(' ',indent); msg("%s%s (sec=0x%x)\n", indentStr.isEmpty()?"":indentStr.data(), - rootNav->name().isEmpty()?"<empty>":rootNav->name().data(), - rootNav->section()); - if (rootNav->children()) + root->name.isEmpty()?"<empty>":root->name.data(), + root->section); + if (root->children()) { - EntryNavListIterator eli(*rootNav->children()); + EntryListIterator eli(*root->children()); for (;eli.current();++eli) printNavTree(eli.current(),indent+2); } } @@ -9486,7 +9290,7 @@ static ParserInterface *getParserForFile(const char *fn) } static void parseFile(ParserInterface *parser, - Entry *root,EntryNav *rootNav,FileDef *fd,const char *fn, + Entry *root,FileDef *fd,const char *fn, bool sameTu,QStrList &filesInSameTu) { #if USE_LIBCLANG @@ -9539,17 +9343,15 @@ static void parseFile(ParserInterface *parser, fd->getAllIncludeFilesRecursively(filesInSameTu); } + Entry *fileRoot = new Entry; // use language parse to parse the file - parser->parseInput(fileName,convBuf.data(),root,sameTu,filesInSameTu); - - // store the Entry tree in a file and create an index to - // navigate/load entries - //printf("root->createNavigationIndex for %s\n",fd->name().data()); - root->createNavigationIndex(rootNav,g_storage,fd); + parser->parseInput(fileName,convBuf.data(),fileRoot,sameTu,filesInSameTu); + fileRoot->setFileDef(fd); + root->addSubEntry(fileRoot); } //! parse the list of input files -static void parseFiles(Entry *root,EntryNav *rootNav) +static void parseFiles(Entry *root) { #if USE_LIBCLANG static bool clangAssistedParsing = Config_getBool(CLANG_ASSISTED_PARSING); @@ -9577,7 +9379,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav) QStrList filesInSameTu; ParserInterface * parser = getParserForFile(s->data()); parser->startTranslationUnit(s->data()); - parseFile(parser,root,rootNav,fd,s->data(),FALSE,filesInSameTu); + parseFile(parser,root,fd,s->data(),FALSE,filesInSameTu); //printf(" got %d extra files in tu\n",filesInSameTu.count()); // Now process any include files in the same translation unit @@ -9592,7 +9394,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav) { QStrList moreFiles; //printf(" Processing %s in same translation unit as %s\n",incFile,s->data()); - parseFile(parser,root,rootNav,ifd,incFile,TRUE,moreFiles); + parseFile(parser,root,ifd,incFile,TRUE,moreFiles); g_processedFiles.insert(incFile,(void*)0x8); } } @@ -9613,7 +9415,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav) ASSERT(fd!=0); ParserInterface * parser = getParserForFile(s->data()); parser->startTranslationUnit(s->data()); - parseFile(parser,root,rootNav,fd,s->data(),FALSE,filesInSameTu); + parseFile(parser,root,fd,s->data(),FALSE,filesInSameTu); parser->finishTranslationUnit(); g_processedFiles.insert(*s,(void*)0x8); } @@ -9632,7 +9434,7 @@ static void parseFiles(Entry *root,EntryNav *rootNav) ASSERT(fd!=0); ParserInterface * parser = getParserForFile(s->data()); parser->startTranslationUnit(s->data()); - parseFile(parser,root,rootNav,fd,s->data(),FALSE,filesInSameTu); + parseFile(parser,root,fd,s->data(),FALSE,filesInSameTu); } } } @@ -11178,7 +10980,7 @@ void parseInput() * Initialize global lists and dictionaries **************************************************************************/ - Doxygen::symbolStorage = new Store; + //Doxygen::symbolStorage = new Store; // also scale lookup cache with SYMBOL_CACHE_SIZE int cacheSize = Config_getInt(LOOKUP_CACHE_SIZE); @@ -11200,11 +11002,11 @@ void parseInput() Doxygen::filterDBFileName.sprintf("doxygen_filterdb_%d.tmp",pid); Doxygen::filterDBFileName.prepend(outputDirectory+"/"); - if (Doxygen::symbolStorage->open(Doxygen::objDBFileName)==-1) - { - err("Failed to open temporary file %s\n",Doxygen::objDBFileName.data()); - exit(1); - } +// if (Doxygen::symbolStorage->open(Doxygen::objDBFileName)==-1) +// { +// err("Failed to open temporary file %s\n",Doxygen::objDBFileName.data()); +// exit(1); +// } @@ -11332,17 +11134,7 @@ void parseInput() * Handle Tag Files * **************************************************************************/ - g_storage = new FileStorage; - g_storage->setName(Doxygen::entryDBFileName); - if (!g_storage->open(IO_WriteOnly)) - { - err("Failed to create temporary storage file %s\n", - Doxygen::entryDBFileName.data()); - exit(1); - } Entry *root=new Entry; - EntryNav *rootNav = new EntryNav(0,root); - rootNav->setEntry(root); msg("Reading and parsing tag files\n"); QStrList &tagFileList = Config_getList(TAGFILES); @@ -11350,7 +11142,6 @@ void parseInput() while (s) { readTagFile(root,s); - root->createNavigationIndex(rootNav,g_storage,0); s=tagFileList.next(); } @@ -11360,12 +11151,11 @@ void parseInput() if (Config_getBool(BUILTIN_STL_SUPPORT)) { - addSTLClasses(rootNav); + addSTLClasses(root); } g_s.begin("Parsing files\n"); - parseFiles(root,rootNav); - g_storage->close(); + parseFiles(root); g_s.end(); // we are done with input scanning now, so free up the buffers used by flex @@ -11374,46 +11164,39 @@ void parseInput() scanFreeScanner(); pyscanFreeScanner(); - if (!g_storage->open(IO_ReadOnly)) - { - err("Failed to open temporary storage file %s for reading", - Doxygen::entryDBFileName.data()); - exit(1); - } - /************************************************************************** * Gather information * **************************************************************************/ g_s.begin("Building group list...\n"); - buildGroupList(rootNav); - organizeSubGroups(rootNav); + buildGroupList(root); + organizeSubGroups(root); g_s.end(); g_s.begin("Building directory list...\n"); buildDirectories(); - findDirDocumentation(rootNav); + findDirDocumentation(root); g_s.end(); g_s.begin("Building namespace list...\n"); - buildNamespaceList(rootNav); - findUsingDirectives(rootNav); + buildNamespaceList(root); + findUsingDirectives(root); g_s.end(); g_s.begin("Building file list...\n"); - buildFileList(rootNav); + buildFileList(root); g_s.end(); //generateFileTree(); g_s.begin("Building class list...\n"); - buildClassList(rootNav); + buildClassList(root); g_s.end(); g_s.begin("Associating documentation with classes...\n"); - buildClassDocList(rootNav); + buildClassDocList(root); // build list of using declarations here (global list) - buildListOfUsingDecls(rootNav); + buildListOfUsingDecls(root); g_s.end(); g_s.begin("Computing nesting relations for classes...\n"); @@ -11430,11 +11213,11 @@ void parseInput() g_usingDeclarations.clear(); g_s.begin("Building example list...\n"); - buildExampleList(rootNav); + buildExampleList(root); g_s.end(); g_s.begin("Searching for enumerations...\n"); - findEnums(rootNav); + findEnums(root); g_s.end(); // Since buildVarList calls isVarWithConstructor @@ -11442,24 +11225,24 @@ void parseInput() // typedefs first so the relations between classes via typedefs // are properly resolved. See bug 536385 for an example. g_s.begin("Searching for documented typedefs...\n"); - buildTypedefList(rootNav); + buildTypedefList(root); g_s.end(); if (Config_getBool(OPTIMIZE_OUTPUT_SLICE)) { g_s.begin("Searching for documented sequences...\n"); - buildSequenceList(rootNav); + buildSequenceList(root); g_s.end(); g_s.begin("Searching for documented dictionaries...\n"); - buildDictionaryList(rootNav); + buildDictionaryList(root); g_s.end(); } g_s.begin("Searching for members imported via using declarations...\n"); // this should be after buildTypedefList in order to properly import // used typedefs - findUsingDeclarations(rootNav); + findUsingDeclarations(root); g_s.end(); g_s.begin("Searching for included using directives...\n"); @@ -11467,14 +11250,14 @@ void parseInput() g_s.end(); g_s.begin("Searching for documented variables...\n"); - buildVarList(rootNav); + buildVarList(root); g_s.end(); g_s.begin("Building interface member list...\n"); - buildInterfaceAndServiceList(rootNav); // UNO IDL + buildInterfaceAndServiceList(root); // UNO IDL g_s.begin("Building member list...\n"); // using class info only ! - buildFunctionList(rootNav); + buildFunctionList(root); g_s.end(); g_s.begin("Searching for friends...\n"); @@ -11482,11 +11265,11 @@ void parseInput() g_s.end(); g_s.begin("Searching for documented defines...\n"); - findDefineDocumentation(rootNav); + findDefineDocumentation(root); g_s.end(); g_s.begin("Computing class inheritance relations...\n"); - findClassEntries(rootNav); + findClassEntries(root); findInheritedTemplateInstances(); g_s.end(); @@ -11517,14 +11300,14 @@ void parseInput() g_s.end(); g_s.begin("Add enum values to enums...\n"); - addEnumValuesToEnums(rootNav); - findEnumDocumentation(rootNav); + addEnumValuesToEnums(root); + findEnumDocumentation(root); g_s.end(); g_s.begin("Searching for member function documentation...\n"); - findObjCMethodDefinitions(rootNav); - findMemberDocumentation(rootNav); // may introduce new members ! - findUsingDeclImports(rootNav); // may introduce new members ! + findObjCMethodDefinitions(root); + findMemberDocumentation(root); // may introduce new members ! + findUsingDeclImports(root); // may introduce new members ! transferRelatedFunctionDocumentation(); transferFunctionDocumentation(); @@ -11537,21 +11320,21 @@ void parseInput() g_s.end(); g_s.begin("Building page list...\n"); - buildPageList(rootNav); + buildPageList(root); g_s.end(); g_s.begin("Search for main page...\n"); - findMainPage(rootNav); - findMainPageTagFiles(rootNav); + findMainPage(root); + findMainPageTagFiles(root); g_s.end(); g_s.begin("Computing page relations...\n"); - computePageRelations(rootNav); + computePageRelations(root); checkPageRelations(); g_s.end(); g_s.begin("Determining the scope of groups...\n"); - findGroupScope(rootNav); + findGroupScope(root); g_s.end(); g_s.begin("Sorting lists...\n"); @@ -11561,12 +11344,6 @@ void parseInput() Doxygen::classSDict->sort(); g_s.end(); - msg("Freeing entry tree\n"); - delete rootNav; - g_storage->close(); - delete g_storage; - g_storage=0; - QDir thisDir; thisDir.remove(Doxygen::entryDBFileName); @@ -11742,11 +11519,6 @@ void generateOutput() * Generate documentation * **************************************************************************/ - if (generateHtml) writeDoxFont(Config_getString(HTML_OUTPUT)); - if (generateLatex) writeDoxFont(Config_getString(LATEX_OUTPUT)); - if (generateDocbook) writeDoxFont(Config_getString(DOCBOOK_OUTPUT)); - if (generateRtf) writeDoxFont(Config_getString(RTF_OUTPUT)); - g_s.begin("Generating style sheet...\n"); //printf("writing style info\n"); g_outputList->writeStyleInfo(0); // write first part @@ -11869,18 +11641,6 @@ void generateOutput() writeTagFile(); g_s.end(); - if (Config_getBool(DOT_CLEANUP)) - { - if (generateHtml) - removeDoxFont(Config_getString(HTML_OUTPUT)); - if (generateRtf) - removeDoxFont(Config_getString(RTF_OUTPUT)); - if (generateLatex) - removeDoxFont(Config_getString(LATEX_OUTPUT)); - if (generateDocbook) - removeDoxFont(Config_getString(DOCBOOK_OUTPUT)); - } - if (Config_getBool(GENERATE_XML)) { g_s.begin("Generating XML output...\n"); @@ -12049,7 +11809,7 @@ void generateOutput() cleanUpDoxygen(); finializeSearchIndexer(); - Doxygen::symbolStorage->close(); +// Doxygen::symbolStorage->close(); QDir thisDir; thisDir.remove(Doxygen::objDBFileName); thisDir.remove(Doxygen::filterDBFileName); @@ -12057,7 +11817,7 @@ void generateOutput() QTextCodec::deleteAllCodecs(); delete Doxygen::symbolMap; delete Doxygen::clangUsrMap; - delete Doxygen::symbolStorage; +// delete Doxygen::symbolStorage; g_successfulRun=TRUE; } diff --git a/src/doxygen.md b/src/doxygen.md index 17144ec..7680a94 100644 --- a/src/doxygen.md +++ b/src/doxygen.md @@ -2,17 +2,17 @@ Doxygen Internals {#mainpage} ================= Introduction ------------- +============ This page provides a high-level overview of the internals of doxygen, with links to the relevant parts of the code. This document is intended for developers who want to work on doxygen. Users of doxygen are referred to the -[User Manual](http://www.doxygen.org/manual.html). +[User Manual](http://www.doxygen.nl/manual/index.html). The generic starting point of the application is of course the main() function. Configuration options ---------------------- +===================== Configuration file data is stored in singleton class Config and can be accessed using wrapper macros @@ -22,20 +22,20 @@ option. The format of the configuration file (options and types) is defined by the file `config.xml`. As part of the build process, -the python script `configgen.py` will create a file configoptions.cpp +the python script `configgen.py` will create a file `configoptions.cpp` from this, which serves as the input for the configuration file parser that is invoked using Config::parse(). The script `configgen.py` will also create the documentation for the configuration items, creating the file `config.doc`. Gathering Input files ---------------------- +===================== After the configuration is known, the input files are searched using searchInputFiles() and any tag files are read using readTagFile() Parsing Input files -------------------- +=================== The function parseFiles() takes care of parsing all files. It uses the ParserManager singleton factory to create a suitable parser object @@ -71,7 +71,7 @@ extracted like section labels, xref items, and formulas. Also Markdown markup is processed using processMarkdown() during this pass. Resolving relations -------------------- +=================== The Entry objects created and filled during parsing are stored on disk (to keep memory needs low). The name, parent/child relation, and @@ -98,7 +98,7 @@ Finally the data for members of classes, namespaces, and files is stored in the subclass MemberDef. Producing debug output ----------------------- +====================== Within doxygen there are a number of ways to obtain debug output. Besides the invasive method of putting print statements in the code there are a number of @@ -174,12 +174,12 @@ easy ways to get debug information. problem occurs. This makes it easier to select the file to be compiled in `lex` debug mode. Producing output ----------------- +================ TODO Topics TODO ------------ +=========== - Grouping of files in Model / Parser / Generator categories - Index files based on IndexIntf - HTML navigation diff --git a/src/emoji.cpp b/src/emoji.cpp index c332083..311f748 100644 --- a/src/emoji.cpp +++ b/src/emoji.cpp @@ -1578,7 +1578,7 @@ void EmojiEntityMapper::writeEmojiFile(QFile &file) /*! @brief Access routine to the unicode sequence for the Emoji entity * - * @param symb code of the requested Emoji entity returned by symbol2index() + * @param index code of the requested Emoji entity returned by symbol2index() * @return the unicode sequence of the Emoji entity, */ const char *EmojiEntityMapper::unicode(int index) const @@ -1588,7 +1588,7 @@ const char *EmojiEntityMapper::unicode(int index) const /*! @brief Access routine to the name of the Emoji entity * - * @param symb code of the requested Emoji entity returned by symbol2index() + * @param index code of the requested Emoji entity returned by symbol2index() * @return the name of the Emoji entity in GitHub format (i.e. :smile:) */ const char *EmojiEntityMapper::name(int index) const diff --git a/src/entry.cpp b/src/entry.cpp index b3693cd..e2a21c6 100644 --- a/src/entry.cpp +++ b/src/entry.cpp @@ -18,11 +18,9 @@ #include <stdlib.h> #include <qfile.h> #include "entry.h" -#include "marshal.h" #include "util.h" #include "section.h" #include "doxygen.h" -#include "filestorage.h" #include "arguments.h" #include "config.h" //------------------------------------------------------------------ @@ -185,6 +183,8 @@ Entry::Entry(const Entry &e) tArgLists = copyArgumentLists(e.tArgLists); } + m_fileDef = e.m_fileDef; + } Entry::~Entry() @@ -281,6 +281,7 @@ void Entry::reset() if (sli) { delete sli; sli=0; } if (typeConstr) { delete typeConstr; typeConstr=0; } //if (mtArgList) { delete mtArgList; mtArgList=0; } + m_fileDef = 0; } @@ -289,31 +290,20 @@ int Entry::getSize() return sizeof(Entry); } -void Entry::createSubtreeIndex(EntryNav *nav,FileStorage *storage,FileDef *fd) +void Entry::setFileDef(FileDef *fd) { - EntryNav *childNav = new EntryNav(nav,this); - nav->addChild(childNav); - childNav->setFileDef(fd); - childNav->saveEntry(this,storage); + m_fileDef = fd; if (m_sublist) { - //printf("saveEntry: %d children\n",node->sublist->count()); QListIterator<Entry> eli(*m_sublist); Entry *childNode; for (eli.toFirst();(childNode=eli.current());++eli) { - childNode->createSubtreeIndex(childNav,storage,fd); + childNode->setFileDef(fd); } - //m_sublist->setAutoDelete(FALSE); - m_sublist->clear(); } } -void Entry::createNavigationIndex(EntryNav *rootNav,FileStorage *storage,FileDef *fd) -{ - createSubtreeIndex(rootNav,storage,fd); -} - void Entry::addSpecialListItem(const char *listName,int itemId) { if (sli==0) @@ -334,107 +324,3 @@ Entry *Entry::removeSubEntry(Entry *e) } //------------------------------------------------------------------ - - -EntryNav::EntryNav(EntryNav *parent, Entry *e) - : m_parent(parent), m_subList(0), m_section(e->section), m_type(e->type), - m_name(e->name), m_fileDef(0), m_lang(e->lang), - m_info(0), m_offset(-1), m_noLoad(FALSE) -{ - if (e->tagInfo) - { - m_tagInfo = new TagInfo; - m_tagInfo->tagName = e->tagInfo->tagName; - m_tagInfo->fileName = e->tagInfo->fileName; - m_tagInfo->anchor = e->tagInfo->anchor; - if (e->tagInfo) - { - //printf("tagInfo %p: tagName=%s fileName=%s anchor=%s\n", - // e->tagInfo, - // e->tagInfo->tagName.data(), - // e->tagInfo->fileName.data(), - // e->tagInfo->anchor.data()); - } - } - else - { - m_tagInfo = 0; - } -} - -EntryNav::~EntryNav() -{ - delete m_subList; - delete m_info; - delete m_tagInfo; -} - -void EntryNav::addChild(EntryNav *e) -{ - if (m_subList==0) - { - m_subList = new QList<EntryNav>; - m_subList->setAutoDelete(TRUE); - } - m_subList->append(e); -} - -bool EntryNav::loadEntry(FileStorage *storage) -{ - if (m_noLoad) - { - return TRUE; - } - if (m_offset==-1) - { - //printf("offset not set!\n"); - return FALSE; - } - //delete m_info; - //printf("EntryNav::loadEntry: new entry %p: %s\n",m_info,m_name.data()); - //m_info->tagInfo = m_tagInfo; - //if (m_parent) - //{ - // m_info->parent = m_parent->m_info; - //} - //m_info->parent = 0; - //printf("load entry: seek to %llx\n",m_offset); - if (!storage->seek(m_offset)) - { - //printf("seek failed!\n"); - return FALSE; - } - if (m_info) delete m_info; - m_info = unmarshalEntry(storage); - m_info->name = m_name; - m_info->type = m_type; - m_info->section = m_section; - return TRUE; -} - -bool EntryNav::saveEntry(Entry *e,FileStorage *storage) -{ - m_offset = storage->pos(); - //printf("EntryNav::saveEntry offset=%llx\n",m_offset); - marshalEntry(storage,e); - return TRUE; -} - -void EntryNav::releaseEntry() -{ - if (!m_noLoad) - { - //printf("EntryNav::releaseEntry %p\n",m_info); - delete m_info; - m_info=0; - } -} - -void EntryNav::setEntry(Entry *e) -{ - delete m_info; - m_info = e; - //printf("EntryNav::setEntry %p\n",e); - m_noLoad=TRUE; -} - diff --git a/src/entry.h b/src/entry.h index ad91d0d..8810c18 100644 --- a/src/entry.h +++ b/src/entry.h @@ -25,7 +25,6 @@ struct SectionInfo; class QFile; -class EntryNav; class FileDef; class FileStorage; class StorageIntf; @@ -199,7 +198,6 @@ class Entry int getSize(); void addSpecialListItem(const char *listName,int index); - void createNavigationIndex(EntryNav *rootNav,FileStorage *storage,FileDef *fd); // while parsing a file these function can be used to navigate/build the tree void setParent(Entry *parent) { m_parent = parent; } @@ -226,11 +224,9 @@ class Entry */ void reset(); - /*! Serialize this entry to a persistent storage stream. */ - void marshall(StorageIntf *); - - /*! Reinitialize this entry from a persistent storage stream. */ - void unmarshall(StorageIntf *); + void changeSection(int sec) { section = sec; } + void setFileDef(FileDef *fd); + FileDef *fileDef() const { return m_fileDef; } public: @@ -326,64 +322,13 @@ class Entry } private: - void createSubtreeIndex(EntryNav *nav,FileStorage *storage,FileDef *fd); Entry *m_parent; //!< parent node in the tree QList<Entry> *m_sublist; //!< entries that are children of this one Entry &operator=(const Entry &); + FileDef *m_fileDef; }; -/** Wrapper for a node in the Entry tree. - * - * Allows navigating through the Entry tree and load and storing Entry - * objects persistently to disk. - */ -class EntryNav -{ - public: - EntryNav(EntryNav *parent,Entry *e); - ~EntryNav(); - void addChild(EntryNav *); - bool loadEntry(FileStorage *storage); - bool saveEntry(Entry *e,FileStorage *storage); - void setEntry(Entry *e); - void releaseEntry(); - void changeSection(int section) { m_section = section; } - void setFileDef(FileDef *fd) { m_fileDef = fd; } - - Entry *entry() const { return m_info; } - int section() const { return m_section; } - SrcLangExt lang() const { return m_lang; } - const QCString &type() const { return m_type; } - const QCString &name() const { return m_name; } - TagInfo *tagInfo() const { return m_tagInfo; } - const QList<EntryNav> *children() const { return m_subList; } - EntryNav *parent() const { return m_parent; } - FileDef *fileDef() const { return m_fileDef; } - - private: - - // navigation - EntryNav *m_parent; //!< parent node in the tree - QList<EntryNav> *m_subList; //!< entries that are children of this one - - // identification - int m_section; //!< entry type (see Sections); - QCString m_type; //!< member type - QCString m_name; //!< member name - TagInfo *m_tagInfo; //!< tag file info - FileDef *m_fileDef; - SrcLangExt m_lang; //!< programming language in which this entry was found - - Entry *m_info; - int64 m_offset; - bool m_noLoad; -}; - - typedef QList<Entry> EntryList; typedef QListIterator<Entry> EntryListIterator; -typedef QList<EntryNav> EntryNavList; -typedef QListIterator<EntryNav> EntryNavListIterator; - #endif diff --git a/src/filedef.cpp b/src/filedef.cpp index f9f68d1..187b665 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -1966,6 +1966,18 @@ void FileDef::sortMemberLists() { if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(FALSE); } } + + if (m_memberGroupSDict) + { + MemberGroupSDict::Iterator mgli(*m_memberGroupSDict); + MemberGroup *mg; + for (;(mg=mgli.current());++mgli) + { + MemberList *mlg = mg->members(); + if (mlg->needsSorting()) { mlg->sort(); mlg->setNeedsSorting(FALSE); } + } + } + } MemberList *FileDef::getMemberList(MemberListType lt) const diff --git a/src/filestorage.h b/src/filestorage.h deleted file mode 100644 index 5c2a92d..0000000 --- a/src/filestorage.h +++ /dev/null @@ -1,135 +0,0 @@ -/****************************************************************************** - * - * Copyright (C) 1997-2015 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * - * Documents produced by Doxygen are derivative works derived from the - * input used in their production; they are not affected by this license. - * - */ - -#include <qfile.h> -#include <assert.h> -#include "store.h" - - -#ifndef FILESTORAGE_H -#define FILESTORAGE_H - -/** @brief Store implementation based on a file. - Writing is linear, after that the file is re-opened for reading. - Reading is random (seek+read). - */ -class FileStorage : public StorageIntf -{ - public: - FileStorage() : m_readOnly(FALSE) {} - FileStorage( const QString &name) : - m_readOnly(FALSE) { m_file.setName(name); } - int read(char *buf,uint size) { return m_file.readBlock(buf,size); } - int write(const char *buf,uint size) { assert(m_readOnly==FALSE); return m_file.writeBlock(buf,size); } - bool open( int m ) { m_readOnly = m==IO_ReadOnly; return m_file.open(m); } - bool seek(int64 pos) { return m_file.seek(pos); } - int64 pos() const { return m_file.pos(); } - void close() { m_file.close(); } - void setName( const char *name ) { m_file.setName(name); } - private: - bool m_readOnly; - QFile m_file; -}; - -#if 0 // experimental version using mmap after opening the file as read only. -#include <sys/mman.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <string.h> -#include <unistd.h> -#include <stdio.h> - -class FileStorage : public StorageIntf -{ - public: - FileStorage() : m_readOnly(FALSE), m_map(0), m_off(0), m_size(0) {} - FileStorage( const QString &name) : - m_readOnly(FALSE) { m_file.setName(name); } - void setName( const char *name ) { m_file.setName(name); } - bool open( int m ) - { - if (m==IO_ReadOnly) - { - m_readOnly=TRUE; - QString name = m_file.name(); - m_file.close(); - m_fd = ::open(name.data(),O_RDONLY); - struct stat stat; - fstat(m_fd,&stat); - m_size = stat.st_size; - m_map = mmap(NULL,m_size,PROT_READ,MAP_SHARED,m_fd,0); - if (m_map==MAP_FAILED) perror("mmap failed"); - assert(m_map!=MAP_FAILED); - m_off = 0; - return TRUE; - } - else - { - m_readOnly = FALSE; - return m_file.open(m); - } - } - int write(const char *buf,uint size) - { - assert(m_map==0); - return m_file.writeBlock(buf,size); - } - int read(char *buf,uint size) - { - assert(m_map!=0); - memcpy(buf,((char *)m_map)+m_off,size); - m_off+=size; - return size; - } - bool seek(int64 pos) - { - m_off=pos; - return TRUE; - } - int64 pos() const - { - if (m_readOnly) - { - return m_off; - } - else - { - return m_file.pos(); - } - } - void close() - { - if (m_readOnly) - { - munmap(m_map,m_size); - ::close(m_fd); - exit(1); - } - else - { - m_file.close(); - } - } - private: - bool m_readOnly; - QFile m_file; - int m_fd; - void *m_map; - off_t m_off; - off_t m_size; -}; -#endif - -#endif diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp index 5899bea..9e58591 100644 --- a/src/ftvhelp.cpp +++ b/src/ftvhelp.cpp @@ -286,7 +286,7 @@ void FTVHelp::generateLink(FTextStream &t,FTVNode *n) t << "<a class=\"elRef\" "; QCString result = externalLinkTarget(); if (result != "") setTarget = TRUE; - t << result << externalRef("",n->ref,FALSE); + t << result; } else // local link { diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp index 25166bc..ee8aab3 100644 --- a/src/htmldocvisitor.cpp +++ b/src/htmldocvisitor.cpp @@ -350,17 +350,17 @@ void HtmlDocVisitor::visit(DocURL *u) } } -void HtmlDocVisitor::visit(DocLineBreak *) +void HtmlDocVisitor::visit(DocLineBreak *br) { if (m_hide) return; - m_t << "<br />\n"; + m_t << "<br "<< htmlAttribsToString(br->attribs()) << " />\n"; } void HtmlDocVisitor::visit(DocHorRuler *hr) { if (m_hide) return; forceEndParagraph(hr); - m_t << "<hr/>\n"; + m_t << "<hr "<< htmlAttribsToString(hr->attribs()) << " />\n"; forceStartParagraph(hr); } @@ -614,7 +614,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s) void HtmlDocVisitor::visit(DocAnchor *anc) { if (m_hide) return; - m_t << "<a class=\"anchor\" id=\"" << anc->anchor() << "\"></a>"; + m_t << "<a class=\"anchor\" id=\"" << anc->anchor() << "\"" << htmlAttribsToString(anc->attribs()) << "></a>"; } void HtmlDocVisitor::visit(DocInclude *inc) @@ -1206,9 +1206,9 @@ void HtmlDocVisitor::visitPre(DocPara *p) //printf(" needsTag=%d\n",needsTag); // write the paragraph tag (if needed) if (needsTag) - m_t << "<p" << getDirHtmlClassOfNode(getTextDirByConfig(p), contexts[t]) << ">"; + m_t << "<p" << getDirHtmlClassOfNode(getTextDirByConfig(p), contexts[t]) << htmlAttribsToString(p->attribs()) << ">"; else if(!paragraphAlreadyStarted) - m_t << getHtmlDirEmbedingChar(getTextDirByConfig(p)); + m_t << getHtmlDirEmbedingChar(getTextDirByConfig(p)) << htmlAttribsToString(p->attribs()); } void HtmlDocVisitor::visitPost(DocPara *p) @@ -1492,7 +1492,11 @@ void HtmlDocVisitor::visitPre(DocHtmlTable *t) if (t->hasCaption()) { - m_t << "<a class=\"anchor\" id=\"" << t->caption()->anchor() << "\"></a>\n"; + QCString anc = t->caption()->anchor(); + if (!anc.isEmpty()) + { + m_t << "<a class=\"anchor\" id=\"" << anc << "\"></a>\n"; + } } QString attrs = htmlAttribsToString(t->attribs()); @@ -2195,7 +2199,7 @@ void HtmlDocVisitor::startLink(const QCString &ref,const QCString &file, if (!ref.isEmpty()) // link to entity imported via tag file { m_t << "<a class=\"elRef\" "; - m_t << externalLinkTarget() << externalRef(relPath,ref,FALSE); + m_t << externalLinkTarget(); } else // local link { diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 2be7c5f..d89bb49 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -25,7 +25,6 @@ #include "config.h" #include "util.h" #include "doxygen.h" -#include "logos.h" #include "diagram.h" #include "version.h" #include "dot.h" @@ -556,7 +555,7 @@ void HtmlCodeGenerator::_writeCodeLink(const char *className, if (ref) { m_t << "<a class=\"" << className << "Ref\" "; - m_t << externalLinkTarget() << externalRef(m_relPath,ref,FALSE); + m_t << externalLinkTarget(); } else { @@ -1122,7 +1121,7 @@ void HtmlGenerator::startIndexItem(const char *ref,const char *f) if (ref) { t << "<a class=\"elRef\" "; - t << externalLinkTarget() << externalRef(relPath,ref,FALSE); + t << externalLinkTarget(); } else { @@ -1168,7 +1167,7 @@ void HtmlGenerator::writeObjectLink(const char *ref,const char *f, if (ref) { t << "<a class=\"elRef\" "; - t << externalLinkTarget() << externalRef(relPath,ref,FALSE); + t << externalLinkTarget(); } else { diff --git a/src/index.cpp b/src/index.cpp index 5126255..913f31b 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -2222,6 +2222,7 @@ static void writeAlphabeticalClassList(OutputList &ol, ClassDef::CompoundType ct // the last column may contain less items then the others //int colsInRow = (i<rows-1) ? columns : itemsInLastRow; //printf("row [%d]\n",i); + bool cellCont = false; for (j=0;j<columns;j++) // foreach table column { if (colIterators[j]) @@ -2233,6 +2234,7 @@ static void writeAlphabeticalClassList(OutputList &ol, ClassDef::CompoundType ct { if (cell->letter()!=0) { + cellCont = true; QCString s = letterToLabel(cell->letter()); ol.writeString("<td rowspan=\"2\" valign=\"bottom\">"); ol.writeString("<a name=\"letter_"); @@ -2249,6 +2251,7 @@ static void writeAlphabeticalClassList(OutputList &ol, ClassDef::CompoundType ct } else if (cell->classDef()!=(ClassDef*)0x8) { + cellCont = true; cd = cell->classDef(); ol.writeString("<td valign=\"top\">"); QCString namesp,cname; @@ -2287,20 +2290,21 @@ static void writeAlphabeticalClassList(OutputList &ol, ClassDef::CompoundType ct } ol.writeNonBreakableSpace(3); } - else + ++(*colIterators[j]); + if (cell->letter()!=0 || cell->classDef()!=(ClassDef*)0x8) { - ol.writeString("<td>"); + ol.writeString("</td>\n"); } - ++(*colIterators[j]); - ol.writeString("</td>"); } } else { + cellCont = true; ol.writeString("<td></td>"); } } } + if (!cellCont) ol.writeString("<td></td>"); // we need at least one cell in case of xhtml ol.writeString("</tr>\n"); } ol.writeString("</table>\n"); diff --git a/src/logos.cpp b/src/logos.cpp deleted file mode 100644 index e9e0905..0000000 --- a/src/logos.cpp +++ /dev/null @@ -1,1985 +0,0 @@ -/****************************************************************************** - * - * - * - * Copyright (C) 1997-2015 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * - * Documents produced by Doxygen are derivative works derived from the - * input used in their production; they are not affected by this license. - * - */ - -#include <stdio.h> - -#include <qfile.h> -#include <qdir.h> - -// Stripped version of FreeSans.ttf part of FreeFonts package, -// see http://www.nongnu.org/freefont for more info -unsigned char FreeSans_ttf[] = { - 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x80, 0x00, 0x03, 0x00, 0x70, - 0x47, 0x44, 0x45, 0x46, 0x01, 0x0a, 0x00, 0xe3, 0x00, 0x00, 0x48, 0x28, - 0x00, 0x00, 0x00, 0x2a, 0x47, 0x50, 0x4f, 0x53, 0x9d, 0x1a, 0x99, 0x8a, - 0x00, 0x00, 0x49, 0x50, 0x00, 0x00, 0x10, 0x42, 0x47, 0x53, 0x55, 0x42, - 0xa8, 0x85, 0x92, 0x0c, 0x00, 0x00, 0x48, 0x54, 0x00, 0x00, 0x00, 0xfc, - 0x4f, 0x53, 0x2f, 0x32, 0x67, 0x3f, 0xcf, 0x10, 0x00, 0x00, 0x01, 0x78, - 0x00, 0x00, 0x00, 0x56, 0x63, 0x6d, 0x61, 0x70, 0xe6, 0xd7, 0x91, 0x3d, - 0x00, 0x00, 0x04, 0xec, 0x00, 0x00, 0x01, 0x8a, 0x63, 0x76, 0x74, 0x20, - 0x00, 0x21, 0x02, 0x79, 0x00, 0x00, 0x06, 0x78, 0x00, 0x00, 0x00, 0x04, - 0x67, 0x61, 0x73, 0x70, 0xff, 0xff, 0x00, 0x03, 0x00, 0x00, 0x48, 0x20, - 0x00, 0x00, 0x00, 0x08, 0x67, 0x6c, 0x79, 0x66, 0xb3, 0x58, 0xaf, 0x41, - 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x37, 0xca, 0x68, 0x65, 0x61, 0x64, - 0xe7, 0x18, 0xbe, 0xac, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x36, - 0x68, 0x68, 0x65, 0x61, 0x10, 0xbb, 0x06, 0xf2, 0x00, 0x00, 0x01, 0x34, - 0x00, 0x00, 0x00, 0x24, 0x68, 0x6d, 0x74, 0x78, 0x55, 0x0d, 0x49, 0xe2, - 0x00, 0x00, 0x01, 0xd0, 0x00, 0x00, 0x03, 0x1a, 0x6c, 0x6f, 0x63, 0x61, - 0x1f, 0xdd, 0x2c, 0xb6, 0x00, 0x00, 0x06, 0x7c, 0x00, 0x00, 0x01, 0x94, - 0x6d, 0x61, 0x78, 0x70, 0x01, 0x16, 0x00, 0xb3, 0x00, 0x00, 0x01, 0x58, - 0x00, 0x00, 0x00, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x85, 0x1f, 0xf3, 0x73, - 0x00, 0x00, 0x3f, 0xdc, 0x00, 0x00, 0x06, 0x69, 0x70, 0x6f, 0x73, 0x74, - 0x46, 0xf5, 0x10, 0xd8, 0x00, 0x00, 0x46, 0x48, 0x00, 0x00, 0x01, 0xd6, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0xc2, 0x8f, 0x00, 0x8a, 0xba, 0xad, - 0x5f, 0x0f, 0x3c, 0xf5, 0x00, 0x0b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc0, 0x44, 0xd8, 0x89, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x44, 0xd8, 0x89, - 0xff, 0xd3, 0xfe, 0x3d, 0x07, 0x9c, 0x07, 0xd1, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x07, 0xd1, 0xfe, 0x3d, 0x01, 0x78, 0x08, 0x1e, 0xff, 0xd3, 0xff, 0xd2, - 0x07, 0x9c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x01, 0x00, 0x00, - 0x00, 0xc9, 0x00, 0x66, 0x00, 0x05, 0x00, 0x49, 0x00, 0x04, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x03, 0x87, 0x01, 0x90, 0x00, 0x05, - 0x00, 0x00, 0x05, 0x33, 0x05, 0x99, 0x00, 0x00, 0x03, 0xd7, 0x05, 0x33, - 0x05, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x02, 0x12, 0x00, 0x00, - 0x02, 0x0b, 0x05, 0x04, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x00, 0x00, - 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0x66, 0x45, 0x64, 0x00, 0x40, 0x00, 0x0d, 0x02, 0xdc, - 0x06, 0x66, 0xfe, 0x66, 0x00, 0x00, 0x07, 0xd1, 0x01, 0xc3, 0x80, 0x02, - 0x00, 0xbf, 0xdf, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x89, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0xb2, 0x00, 0x00, - 0x02, 0x39, 0x00, 0x00, 0x02, 0x39, 0x00, 0xfe, 0x02, 0xd7, 0x00, 0x6a, - 0x04, 0x72, 0x00, 0x1d, 0x04, 0x72, 0x00, 0x44, 0x07, 0x1c, 0x00, 0x3b, - 0x05, 0x56, 0x00, 0x6a, 0x01, 0x87, 0x00, 0x62, 0x02, 0xa9, 0x00, 0x96, - 0x02, 0xa9, 0x00, 0x4e, 0x03, 0x1c, 0x00, 0x52, 0x04, 0xac, 0x00, 0x66, - 0x02, 0x39, 0x00, 0xb2, 0x02, 0xa9, 0x00, 0x5e, 0x02, 0x39, 0x00, 0xb2, - 0x02, 0x39, 0xff, 0xf0, 0x04, 0x72, 0x00, 0x58, 0x04, 0x72, 0x00, 0xd1, - 0x04, 0x72, 0x00, 0x46, 0x04, 0x72, 0x00, 0x42, 0x04, 0x72, 0x00, 0x39, - 0x04, 0x72, 0x00, 0x48, 0x04, 0x72, 0x00, 0x58, 0x04, 0x72, 0x00, 0x5e, - 0x04, 0x72, 0x00, 0x4c, 0x04, 0x72, 0x00, 0x4e, 0x02, 0x39, 0x00, 0xe1, - 0x02, 0x39, 0x00, 0xe1, 0x04, 0xac, 0x00, 0x5c, 0x04, 0xac, 0x00, 0x66, - 0x04, 0xac, 0x00, 0x66, 0x04, 0x72, 0x00, 0x9e, 0x08, 0x1e, 0x00, 0x46, - 0x05, 0x56, 0x00, 0x23, 0x05, 0x56, 0x00, 0xa2, 0x05, 0xc6, 0x00, 0x62, - 0x05, 0xc6, 0x00, 0xb6, 0x05, 0x56, 0x00, 0xb8, 0x04, 0xe3, 0x00, 0xb8, - 0x06, 0x39, 0x00, 0x5a, 0x05, 0xc6, 0x00, 0xaa, 0x02, 0x39, 0x00, 0xcd, - 0x04, 0x00, 0x00, 0x23, 0x05, 0x56, 0x00, 0xa2, 0x04, 0x72, 0x00, 0xa4, - 0x06, 0xa9, 0x00, 0x9a, 0x05, 0xc6, 0x00, 0x9c, 0x06, 0x39, 0x00, 0x4e, - 0x05, 0x56, 0x00, 0xba, 0x06, 0x39, 0x00, 0x4e, 0x05, 0xc6, 0x00, 0xbe, - 0x05, 0x56, 0x00, 0x62, 0x04, 0xe3, 0x00, 0x2b, 0x05, 0xc6, 0x00, 0xae, - 0x05, 0x56, 0x00, 0x3d, 0x07, 0x8d, 0x00, 0x2d, 0x05, 0x56, 0x00, 0x2d, - 0x05, 0x56, 0x00, 0x1b, 0x04, 0xe3, 0x00, 0x39, 0x02, 0x39, 0x00, 0x83, - 0x02, 0x39, 0xff, 0xf0, 0x02, 0x39, 0x00, 0x2f, 0x03, 0xc0, 0x00, 0x5a, - 0x04, 0x72, 0xff, 0xd3, 0x02, 0xa9, 0x00, 0x2d, 0x04, 0x72, 0x00, 0x56, - 0x04, 0x72, 0x00, 0x6f, 0x04, 0x00, 0x00, 0x3f, 0x04, 0x72, 0x00, 0x35, - 0x04, 0x72, 0x00, 0x52, 0x02, 0x39, 0x00, 0x25, 0x04, 0x72, 0x00, 0x3b, - 0x04, 0x72, 0x00, 0x8f, 0x01, 0xc6, 0x00, 0x87, 0x01, 0xc6, 0xff, 0xdb, - 0x04, 0x00, 0x00, 0x77, 0x01, 0xc6, 0x00, 0x8b, 0x06, 0xa9, 0x00, 0x8f, - 0x04, 0x72, 0x00, 0x8f, 0x04, 0x72, 0x00, 0x4a, 0x04, 0x72, 0x00, 0x6f, - 0x04, 0x72, 0x00, 0x35, 0x02, 0xa9, 0x00, 0x8d, 0x04, 0x00, 0x00, 0x46, - 0x02, 0x39, 0x00, 0x1d, 0x04, 0x72, 0x00, 0x85, 0x04, 0x00, 0x00, 0x14, - 0x05, 0xc6, 0x00, 0x0c, 0x04, 0x00, 0x00, 0x23, 0x04, 0x00, 0x00, 0x29, - 0x04, 0x00, 0x00, 0x3f, 0x02, 0xac, 0x00, 0x58, 0x02, 0x14, 0x00, 0xcd, - 0x02, 0xac, 0x00, 0x3b, 0x04, 0xac, 0x00, 0x9a, 0x02, 0x39, 0x00, 0x00, - 0x02, 0x39, 0x00, 0xfa, 0x04, 0x72, 0x00, 0x6a, 0x04, 0x72, 0x00, 0x35, - 0x04, 0x72, 0x00, 0x89, 0x04, 0x72, 0x00, 0x17, 0x02, 0x14, 0x00, 0xcd, - 0x04, 0x72, 0x00, 0x58, 0x02, 0xa9, 0x00, 0x3d, 0x05, 0xe5, 0xff, 0xe5, - 0x02, 0xf5, 0x00, 0x4c, 0x04, 0x72, 0x00, 0xc9, 0x04, 0xac, 0x00, 0x52, - 0x02, 0xa9, 0x00, 0x5e, 0x05, 0xe5, 0xff, 0xe5, 0x02, 0xa9, 0x00, 0x39, - 0x04, 0xd9, 0x01, 0x35, 0x04, 0xac, 0x00, 0x66, 0x02, 0xce, 0x00, 0x27, - 0x02, 0xce, 0x00, 0x21, 0x02, 0xa9, 0x00, 0xbc, 0x04, 0x72, 0x00, 0x85, - 0x04, 0x4b, 0x00, 0x62, 0x02, 0x39, 0x00, 0xb2, 0x02, 0xa9, 0x00, 0x50, - 0x02, 0xce, 0x00, 0x7d, 0x02, 0xeb, 0x00, 0x52, 0x04, 0x72, 0x00, 0xc9, - 0x06, 0xf3, 0x00, 0x7d, 0x06, 0xf3, 0x00, 0x7d, 0x06, 0xf3, 0x00, 0x21, - 0x04, 0x72, 0x00, 0xc5, 0x05, 0x56, 0x00, 0x23, 0x05, 0x56, 0x00, 0x23, - 0x05, 0x56, 0x00, 0x23, 0x05, 0x56, 0x00, 0x23, 0x05, 0x56, 0x00, 0x23, - 0x05, 0x56, 0x00, 0x23, 0x08, 0x00, 0x00, 0x17, 0x05, 0xc6, 0x00, 0x62, - 0x05, 0x56, 0x00, 0xb8, 0x05, 0x56, 0x00, 0xb8, 0x05, 0x56, 0x00, 0xb8, - 0x05, 0x56, 0x00, 0xb8, 0x02, 0x39, 0x00, 0xcd, 0x02, 0x39, 0x00, 0xcd, - 0x02, 0x39, 0x00, 0xcd, 0x02, 0x39, 0x00, 0x1c, 0x05, 0xc6, 0x00, 0x29, - 0x05, 0xc6, 0x00, 0x9c, 0x06, 0x39, 0x00, 0x4e, 0x06, 0x39, 0x00, 0x4e, - 0x06, 0x39, 0x00, 0x4e, 0x06, 0x39, 0x00, 0x4e, 0x06, 0x39, 0x00, 0x4e, - 0x04, 0xac, 0x00, 0xc3, 0x06, 0x39, 0x00, 0x3d, 0x05, 0xc6, 0x00, 0xae, - 0x05, 0xc6, 0x00, 0xae, 0x05, 0xc6, 0x00, 0xae, 0x05, 0xc6, 0x00, 0xae, - 0x05, 0x56, 0x00, 0x1b, 0x05, 0x53, 0x00, 0xba, 0x04, 0xe3, 0x00, 0x89, - 0x04, 0x72, 0x00, 0x56, 0x04, 0x72, 0x00, 0x56, 0x04, 0x72, 0x00, 0x56, - 0x04, 0x72, 0x00, 0x56, 0x04, 0x72, 0x00, 0x56, 0x04, 0x72, 0x00, 0x56, - 0x07, 0x1c, 0x00, 0x46, 0x04, 0x00, 0x00, 0x3f, 0x04, 0x72, 0x00, 0x52, - 0x04, 0x72, 0x00, 0x52, 0x04, 0x72, 0x00, 0x52, 0x04, 0x72, 0x00, 0x52, - 0x02, 0x39, 0x00, 0x00, 0x02, 0x39, 0x00, 0x00, 0x02, 0x39, 0x00, 0x00, - 0x02, 0x39, 0x00, 0x06, 0x04, 0x72, 0x00, 0x4a, 0x04, 0x72, 0x00, 0x8f, - 0x04, 0x72, 0x00, 0x4a, 0x04, 0x72, 0x00, 0x4a, 0x04, 0x72, 0x00, 0x4a, - 0x04, 0x72, 0x00, 0x4a, 0x04, 0x72, 0x00, 0x4a, 0x04, 0xac, 0x00, 0x66, - 0x04, 0xe3, 0x00, 0x25, 0x04, 0x72, 0x00, 0x85, 0x04, 0x72, 0x00, 0x85, - 0x04, 0x72, 0x00, 0x85, 0x04, 0x72, 0x00, 0x85, 0x04, 0x00, 0x00, 0x29, - 0x04, 0x70, 0x00, 0x6f, 0x04, 0x00, 0x00, 0x29, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x03, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x16, - 0x00, 0x10, 0x00, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0e, - 0x00, 0x7e, 0x00, 0xff, 0x01, 0x31, 0x02, 0xc6, 0x02, 0xcb, 0x02, 0xda, - 0x02, 0xdc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0e, - 0x00, 0x20, 0x00, 0xa0, 0x01, 0x31, 0x02, 0xc6, 0x02, 0xca, 0x02, 0xda, - 0x02, 0xdc, 0xff, 0xff, 0x00, 0x01, 0xff, 0xf6, 0xff, 0xf5, 0xff, 0xe4, - 0xff, 0xc3, 0xff, 0x92, 0xfd, 0xfe, 0xfd, 0xfb, 0xfd, 0xed, 0xfd, 0xec, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x93, 0xb3, 0x00, 0x00, 0x00, - 0x00, 0xa0, 0xc0, 0x02, 0x00, 0xa1, 0xc1, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x7f, 0x7c, 0x81, 0x76, 0x75, 0x69, 0x70, 0x9a, - 0x00, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x00, 0x87, 0x88, 0x8a, 0x8c, 0x94, 0x99, 0x9f, 0xa4, 0xa3, 0xa5, - 0xa7, 0xa6, 0xa8, 0xaa, 0xac, 0xab, 0xad, 0xae, 0xb0, 0xaf, 0xb1, 0xb2, - 0xb4, 0xb6, 0xb5, 0xb7, 0xb9, 0xb8, 0xbd, 0xbc, 0xbe, 0xbf, 0x00, 0x73, - 0x65, 0x66, 0x6a, 0x00, 0x79, 0xa2, 0x71, 0x6c, 0x00, 0x77, 0x6b, 0x00, - 0x89, 0x9b, 0x00, 0x74, 0x00, 0x00, 0x68, 0x78, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x6d, 0x7d, 0x00, 0xa9, 0xbb, 0x82, 0x64, 0x6f, 0x00, 0x00, 0x00, - 0x00, 0x6e, 0x7e, 0x00, 0x63, 0x83, 0x86, 0x98, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x85, 0x8d, 0x84, 0x8e, 0x8b, - 0x90, 0x91, 0x92, 0x8f, 0x96, 0x97, 0x00, 0x95, 0x9d, 0x9e, 0x9c, 0x00, - 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x21, 0x02, 0x79, 0x00, 0x00, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, - 0x00, 0x16, 0x00, 0x16, 0x00, 0x2e, 0x00, 0x48, 0x00, 0x7f, 0x00, 0xe5, - 0x01, 0x5d, 0x01, 0xc9, 0x01, 0xd9, 0x01, 0xfd, 0x02, 0x20, 0x02, 0x3e, - 0x02, 0x56, 0x02, 0x6c, 0x02, 0x79, 0x02, 0x85, 0x02, 0x93, 0x02, 0xc3, - 0x02, 0xda, 0x03, 0x16, 0x03, 0x63, 0x03, 0x80, 0x03, 0xbe, 0x04, 0x0c, - 0x04, 0x2a, 0x04, 0x84, 0x04, 0xd4, 0x04, 0xe6, 0x05, 0x03, 0x05, 0x17, - 0x05, 0x2b, 0x05, 0x3f, 0x05, 0x7d, 0x06, 0x10, 0x06, 0x2c, 0x06, 0x6d, - 0x06, 0xaa, 0x06, 0xd3, 0x06, 0xec, 0x07, 0x02, 0x07, 0x50, 0x07, 0x68, - 0x07, 0x76, 0x07, 0x99, 0x07, 0xb5, 0x07, 0xc6, 0x07, 0xe2, 0x07, 0xfa, - 0x08, 0x47, 0x08, 0x72, 0x08, 0xc7, 0x09, 0x08, 0x09, 0x57, 0x09, 0x6a, - 0x09, 0x8f, 0x09, 0xa2, 0x09, 0xc1, 0x09, 0xe0, 0x09, 0xf7, 0x0a, 0x0e, - 0x0a, 0x20, 0x0a, 0x2f, 0x0a, 0x41, 0x0a, 0x54, 0x0a, 0x61, 0x0a, 0x70, - 0x0a, 0xd1, 0x0b, 0x0b, 0x0b, 0x3e, 0x0b, 0x79, 0x0b, 0xba, 0x0b, 0xdc, - 0x0c, 0x34, 0x0c, 0x5b, 0x0c, 0x6f, 0x0c, 0x91, 0x0c, 0xae, 0x0c, 0xbc, - 0x0c, 0xfb, 0x0d, 0x21, 0x0d, 0x55, 0x0d, 0x8c, 0x0d, 0xc6, 0x0d, 0xe3, - 0x0e, 0x2f, 0x0e, 0x55, 0x0e, 0x7b, 0x0e, 0x8e, 0x0e, 0xaa, 0x0e, 0xc9, - 0x0e, 0xec, 0x0f, 0x03, 0x0f, 0x43, 0x0f, 0x50, 0x0f, 0x8f, 0x0f, 0xc0, - 0x0f, 0xc8, 0x0f, 0xd2, 0x10, 0x13, 0x10, 0x73, 0x10, 0xbe, 0x10, 0xe8, - 0x10, 0xfb, 0x11, 0x77, 0x11, 0x89, 0x12, 0x03, 0x12, 0x5c, 0x12, 0x78, - 0x12, 0x88, 0x12, 0x95, 0x13, 0x17, 0x13, 0x24, 0x13, 0x55, 0x13, 0x74, - 0x13, 0xb1, 0x13, 0xf8, 0x14, 0x06, 0x14, 0x38, 0x14, 0x5a, 0x14, 0x68, - 0x14, 0x99, 0x14, 0xb1, 0x14, 0xea, 0x15, 0x07, 0x15, 0x3d, 0x15, 0x94, - 0x15, 0xf9, 0x16, 0x03, 0x16, 0x0f, 0x16, 0x1b, 0x16, 0x27, 0x16, 0x33, - 0x16, 0x3f, 0x16, 0x4b, 0x16, 0x72, 0x16, 0xdc, 0x16, 0xe8, 0x16, 0xf4, - 0x17, 0x00, 0x17, 0x0c, 0x17, 0x18, 0x17, 0x24, 0x17, 0x30, 0x17, 0x3c, - 0x17, 0x70, 0x17, 0x7c, 0x17, 0x88, 0x17, 0x94, 0x17, 0xa0, 0x17, 0xac, - 0x17, 0xb8, 0x17, 0xd9, 0x18, 0x2e, 0x18, 0x3a, 0x18, 0x46, 0x18, 0x52, - 0x18, 0x5e, 0x18, 0x6a, 0x18, 0x95, 0x18, 0xdf, 0x18, 0xeb, 0x18, 0xf7, - 0x19, 0x03, 0x19, 0x0f, 0x19, 0x1b, 0x19, 0x27, 0x19, 0xa9, 0x1a, 0x05, - 0x1a, 0x11, 0x1a, 0x1d, 0x1a, 0x29, 0x1a, 0x35, 0x1a, 0x40, 0x1a, 0x4b, - 0x1a, 0x56, 0x1a, 0x61, 0x1a, 0xb5, 0x1a, 0xc1, 0x1a, 0xcd, 0x1a, 0xd9, - 0x1a, 0xe5, 0x1a, 0xf1, 0x1a, 0xfd, 0x1b, 0x17, 0x1b, 0x60, 0x1b, 0x6c, - 0x1b, 0x78, 0x1b, 0x84, 0x1b, 0x90, 0x1b, 0x9c, 0x1b, 0xd7, 0x1b, 0xe3, - 0x1b, 0xe3, 0x1b, 0xe3, 0x1b, 0xe3, 0x1b, 0xe3, 0x1b, 0xe3, 0x1b, 0xe3, - 0x00, 0x02, 0x00, 0x89, 0x00, 0x00, 0x03, 0xbe, 0x07, 0xd1, 0x00, 0x03, - 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x21, 0x11, 0x05, 0x21, 0x11, 0x21, - 0x03, 0xbe, 0xfc, 0xcb, 0x02, 0xac, 0xfd, 0xdd, 0x02, 0x23, 0x07, 0xd1, - 0xf8, 0x2f, 0x07, 0xd1, 0x89, 0xf9, 0x41, 0x00, 0x00, 0x02, 0x00, 0xfe, - 0x00, 0x00, 0x01, 0xaa, 0x05, 0xd5, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, - 0x01, 0x11, 0x03, 0x23, 0x03, 0x11, 0x13, 0x15, 0x23, 0x35, 0x01, 0xaa, - 0x2d, 0x50, 0x2d, 0xaa, 0xac, 0x05, 0xd5, 0xfd, 0x4c, 0xfe, 0x37, 0x01, - 0xc9, 0x02, 0xb4, 0xfb, 0x00, 0xd5, 0xd5, 0x00, 0x00, 0x02, 0x00, 0x6a, - 0x03, 0xb6, 0x02, 0x71, 0x05, 0xac, 0x00, 0x05, 0x00, 0x0b, 0x00, 0x00, - 0x13, 0x33, 0x15, 0x03, 0x23, 0x03, 0x25, 0x33, 0x15, 0x03, 0x23, 0x03, - 0x6a, 0xbf, 0x37, 0x50, 0x38, 0x01, 0x48, 0xbf, 0x38, 0x50, 0x37, 0x05, - 0xac, 0xe3, 0xfe, 0xed, 0x01, 0x13, 0xe3, 0xe3, 0xfe, 0xed, 0x01, 0x13, - 0x00, 0x02, 0x00, 0x1d, 0xff, 0xd7, 0x04, 0x56, 0x05, 0x93, 0x00, 0x1b, - 0x00, 0x1f, 0x00, 0x00, 0x01, 0x03, 0x33, 0x15, 0x23, 0x03, 0x33, 0x15, - 0x23, 0x03, 0x23, 0x13, 0x23, 0x03, 0x23, 0x13, 0x23, 0x35, 0x33, 0x13, - 0x23, 0x35, 0x33, 0x13, 0x33, 0x03, 0x21, 0x13, 0x03, 0x23, 0x03, 0x21, - 0x03, 0xe1, 0x49, 0xbe, 0xd9, 0x40, 0xd7, 0xef, 0x50, 0x9c, 0x4e, 0xfe, - 0x50, 0x9b, 0x4e, 0xcf, 0xe9, 0x40, 0xde, 0xf8, 0x4a, 0x9c, 0x4a, 0x01, - 0x00, 0x48, 0x63, 0xfe, 0x41, 0x01, 0x00, 0x05, 0x93, 0xfe, 0x6f, 0x8b, - 0xfe, 0x9b, 0x8b, 0xfe, 0x50, 0x01, 0xb0, 0xfe, 0x50, 0x01, 0xb0, 0x8b, - 0x01, 0x65, 0x8b, 0x01, 0x91, 0xfe, 0x6f, 0x01, 0x91, 0xfd, 0xe4, 0xfe, - 0x9b, 0x00, 0x00, 0x03, 0x00, 0x44, 0xfe, 0xfe, 0x04, 0x25, 0x06, 0x29, - 0x00, 0x2f, 0x00, 0x38, 0x00, 0x41, 0x00, 0x00, 0x01, 0x14, 0x07, 0x06, - 0x07, 0x15, 0x23, 0x35, 0x24, 0x27, 0x26, 0x3d, 0x01, 0x33, 0x16, 0x17, - 0x16, 0x17, 0x16, 0x17, 0x11, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, - 0x37, 0x36, 0x37, 0x35, 0x33, 0x15, 0x16, 0x17, 0x16, 0x15, 0x23, 0x26, - 0x27, 0x26, 0x27, 0x11, 0x17, 0x16, 0x17, 0x16, 0x01, 0x11, 0x06, 0x07, - 0x06, 0x15, 0x14, 0x17, 0x16, 0x13, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, - 0x26, 0x27, 0x04, 0x25, 0xb0, 0x6a, 0xa1, 0x78, 0xfe, 0xec, 0x66, 0x34, - 0xa1, 0x0b, 0x12, 0x2e, 0x9b, 0x13, 0x14, 0xab, 0x3e, 0x0c, 0x0d, 0x92, - 0xcc, 0x54, 0x74, 0x78, 0xdb, 0x69, 0x4a, 0xa2, 0x02, 0x59, 0x3c, 0x55, - 0x8a, 0xde, 0x3c, 0x17, 0xfd, 0xcd, 0xa9, 0x33, 0x12, 0xbe, 0x16, 0x92, - 0xbd, 0x3e, 0x18, 0x41, 0x3c, 0x96, 0x01, 0x8f, 0xf9, 0x74, 0x46, 0x0b, - 0xd3, 0xd3, 0x12, 0xbd, 0x61, 0x86, 0x23, 0x77, 0x31, 0x7d, 0x20, 0x04, - 0x03, 0x02, 0x2d, 0x33, 0x27, 0x08, 0x09, 0x68, 0xc3, 0xf8, 0x68, 0x2b, - 0x0e, 0x6f, 0x6f, 0x10, 0x8f, 0x64, 0x90, 0x85, 0x49, 0x32, 0x04, 0xfe, - 0x02, 0x27, 0x49, 0xa1, 0x3f, 0x01, 0x60, 0x01, 0xec, 0x17, 0x7a, 0x2d, - 0x36, 0xa6, 0x43, 0x08, 0xfd, 0x1a, 0x17, 0x89, 0x36, 0x43, 0x69, 0x39, - 0x33, 0x2d, 0x00, 0x05, 0x00, 0x3b, 0xff, 0xd7, 0x06, 0xdf, 0x05, 0xac, - 0x00, 0x15, 0x00, 0x25, 0x00, 0x29, 0x00, 0x3f, 0x00, 0x4f, 0x00, 0x00, - 0x01, 0x32, 0x17, 0x16, 0x17, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, - 0x27, 0x26, 0x27, 0x34, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x17, 0x22, - 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, - 0x27, 0x26, 0x25, 0x33, 0x01, 0x23, 0x01, 0x32, 0x17, 0x16, 0x17, 0x14, - 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x34, 0x35, 0x34, - 0x37, 0x36, 0x37, 0x36, 0x17, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, - 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x01, 0x98, 0x91, 0x65, - 0x65, 0x03, 0x60, 0x60, 0x87, 0x0b, 0x0a, 0x8d, 0x66, 0x65, 0x07, 0x62, - 0x60, 0x88, 0x0a, 0x09, 0x5e, 0x3e, 0x33, 0x48, 0x3b, 0x4e, 0x5c, 0x3f, - 0x33, 0x48, 0x3a, 0x02, 0xf9, 0x87, 0xfc, 0xd7, 0x87, 0x03, 0xcb, 0x93, - 0x65, 0x64, 0x02, 0x61, 0x5f, 0x85, 0x0b, 0x0c, 0x8c, 0x65, 0x65, 0x08, - 0x61, 0x60, 0x88, 0x0a, 0x09, 0x5e, 0x3e, 0x33, 0x48, 0x3b, 0x4e, 0x5d, - 0x3f, 0x33, 0x4a, 0x39, 0x05, 0x7b, 0x65, 0x6b, 0x92, 0x89, 0x65, 0x64, - 0x08, 0x01, 0x62, 0x61, 0x8a, 0x09, 0x09, 0x8b, 0x66, 0x65, 0x07, 0x01, - 0x8f, 0x47, 0x3b, 0x4d, 0x5d, 0x3f, 0x33, 0x46, 0x3a, 0x4d, 0x61, 0x3e, - 0x32, 0xc0, 0xfa, 0x2b, 0x02, 0xbc, 0x65, 0x69, 0x92, 0x88, 0x65, 0x63, - 0x09, 0x01, 0x62, 0x60, 0x89, 0x0a, 0x09, 0x8b, 0x65, 0x64, 0x07, 0x01, - 0x8f, 0x47, 0x3a, 0x4c, 0x5e, 0x3e, 0x33, 0x47, 0x39, 0x4b, 0x62, 0x3e, - 0x31, 0x00, 0x00, 0x03, 0x00, 0x6a, 0xff, 0xd1, 0x05, 0x19, 0x05, 0xac, - 0x00, 0x29, 0x00, 0x39, 0x00, 0x46, 0x00, 0x00, 0x25, 0x06, 0x07, 0x06, - 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, - 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, - 0x07, 0x01, 0x36, 0x37, 0x34, 0x3d, 0x01, 0x33, 0x14, 0x07, 0x06, 0x07, - 0x13, 0x23, 0x01, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, - 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x09, 0x01, 0x06, 0x07, 0x06, 0x15, - 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x03, 0xba, 0x4a, 0x27, 0x8e, - 0xad, 0xc8, 0x74, 0x68, 0x49, 0x46, 0xbd, 0x7c, 0x1c, 0x0e, 0x65, 0x66, - 0x94, 0x9c, 0x5e, 0x53, 0x4b, 0x3f, 0x90, 0x01, 0x10, 0x3a, 0x06, 0xa4, - 0x6d, 0x05, 0x05, 0xfa, 0xe0, 0xfe, 0x0f, 0x8f, 0x29, 0x1b, 0x46, 0x2f, - 0x3e, 0x67, 0x2f, 0x1a, 0x1f, 0x1b, 0x01, 0x66, 0xfe, 0xb8, 0xa9, 0x31, - 0x1f, 0x53, 0x4e, 0x6b, 0x75, 0x6e, 0x27, 0xa0, 0x49, 0x1d, 0x69, 0x7b, - 0x6e, 0xae, 0x8e, 0x5d, 0x5c, 0x6e, 0x9c, 0x56, 0x2b, 0x30, 0x86, 0x5d, - 0x5f, 0x65, 0x59, 0x84, 0x79, 0x53, 0x46, 0x52, 0xfe, 0xb2, 0x68, 0x73, - 0x09, 0x08, 0x08, 0xb4, 0xb3, 0x08, 0x08, 0xfe, 0xcb, 0x03, 0x73, 0x5a, - 0x40, 0x2b, 0x37, 0x5a, 0x32, 0x22, 0x4c, 0x2b, 0x39, 0x3a, 0x32, 0x2c, - 0xfd, 0x44, 0x01, 0x99, 0x6c, 0x57, 0x36, 0x42, 0x70, 0x4d, 0x49, 0x5b, - 0x1f, 0x00, 0x00, 0x01, 0x00, 0x62, 0x03, 0xb6, 0x01, 0x23, 0x05, 0xac, - 0x00, 0x05, 0x00, 0x00, 0x13, 0x33, 0x15, 0x03, 0x23, 0x03, 0x62, 0xc1, - 0x37, 0x52, 0x38, 0x05, 0xac, 0xe3, 0xfe, 0xed, 0x01, 0x13, 0x00, 0x01, - 0x00, 0x96, 0xfe, 0x4e, 0x02, 0x54, 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, - 0x01, 0x33, 0x02, 0x03, 0x06, 0x15, 0x10, 0x13, 0x16, 0x17, 0x23, 0x26, - 0x03, 0x26, 0x35, 0x10, 0x13, 0x36, 0x01, 0xe3, 0x71, 0xd3, 0x36, 0x10, - 0xb3, 0x2e, 0x38, 0x71, 0xbe, 0x58, 0x37, 0x89, 0x51, 0x05, 0xd5, 0xfe, - 0xab, 0xfe, 0x77, 0x74, 0x71, 0xfe, 0x76, 0xfe, 0x82, 0x61, 0x5b, 0xfa, - 0x01, 0x47, 0xc9, 0xba, 0x01, 0x31, 0x01, 0x3f, 0xbd, 0x00, 0x00, 0x01, - 0x00, 0x4e, 0xfe, 0x4e, 0x02, 0x0c, 0x05, 0xd5, 0x00, 0x11, 0x00, 0x00, - 0x13, 0x23, 0x12, 0x13, 0x36, 0x35, 0x10, 0x03, 0x26, 0x27, 0x33, 0x16, - 0x13, 0x16, 0x15, 0x10, 0x03, 0x06, 0xbe, 0x70, 0xd2, 0x36, 0x10, 0xb4, - 0x2d, 0x37, 0x70, 0xbf, 0x59, 0x36, 0x89, 0x52, 0xfe, 0x4e, 0x01, 0x53, - 0x01, 0x8a, 0x74, 0x71, 0x01, 0x8e, 0x01, 0x7e, 0x60, 0x59, 0xfa, 0xfe, - 0xb9, 0xca, 0xba, 0xfe, 0xd1, 0xfe, 0xc2, 0xbe, 0x00, 0x01, 0x00, 0x52, - 0x03, 0x87, 0x02, 0xbe, 0x05, 0xd5, 0x00, 0x0e, 0x00, 0x00, 0x01, 0x33, - 0x07, 0x37, 0x17, 0x07, 0x17, 0x07, 0x27, 0x07, 0x27, 0x37, 0x27, 0x37, - 0x17, 0x01, 0x48, 0x81, 0x0b, 0xda, 0x26, 0xdd, 0x90, 0x69, 0x7f, 0x81, - 0x66, 0x8d, 0xdd, 0x27, 0xd9, 0x05, 0xd5, 0xe5, 0x4d, 0x78, 0x3e, 0xb6, - 0x4a, 0xbf, 0xbf, 0x4a, 0xb6, 0x3e, 0x78, 0x4d, 0x00, 0x01, 0x00, 0x66, - 0xff, 0xec, 0x04, 0x46, 0x03, 0xcb, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x15, - 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x04, 0x46, - 0xfe, 0x58, 0x90, 0xfe, 0x58, 0x01, 0xa8, 0x90, 0x02, 0x23, 0x90, 0xfe, - 0x59, 0x01, 0xa7, 0x90, 0x01, 0xa8, 0xfe, 0x58, 0x00, 0x01, 0x00, 0xb2, - 0xfe, 0xd3, 0x01, 0x89, 0x00, 0xd5, 0x00, 0x0b, 0x00, 0x00, 0x37, 0x33, - 0x15, 0x10, 0x23, 0x35, 0x36, 0x37, 0x36, 0x3d, 0x01, 0x23, 0xb2, 0xd7, - 0xd7, 0x4c, 0x19, 0x16, 0x7b, 0xd5, 0xf6, 0xfe, 0xf4, 0x4e, 0x03, 0x2c, - 0x27, 0x64, 0x25, 0x00, 0x00, 0x01, 0x00, 0x5e, 0x01, 0xec, 0x02, 0x46, - 0x02, 0x7f, 0x00, 0x03, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35, 0x02, 0x46, - 0xfe, 0x18, 0x02, 0x7f, 0x93, 0x93, 0x00, 0x01, 0x00, 0xb2, 0x00, 0x00, - 0x01, 0x87, 0x00, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x25, 0x15, 0x23, 0x35, - 0x01, 0x87, 0xd5, 0xd5, 0xd5, 0xd5, 0x00, 0x01, 0xff, 0xf0, 0xff, 0xd7, - 0x02, 0x46, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x00, 0x01, 0x33, 0x01, 0x23, - 0x01, 0xd5, 0x71, 0xfe, 0x1a, 0x70, 0x05, 0xd5, 0xfa, 0x02, 0x00, 0x02, - 0x00, 0x58, 0xff, 0xd1, 0x04, 0x0e, 0x05, 0xac, 0x00, 0x0f, 0x00, 0x19, - 0x00, 0x00, 0x13, 0x10, 0x25, 0x36, 0x33, 0x20, 0x13, 0x16, 0x15, 0x10, - 0x07, 0x06, 0x23, 0x20, 0x03, 0x26, 0x01, 0x20, 0x11, 0x10, 0x21, 0x32, - 0x13, 0x36, 0x35, 0x10, 0x58, 0x01, 0x24, 0x52, 0x65, 0x01, 0x7d, 0x4c, - 0x12, 0xd1, 0x6c, 0x9e, 0xfe, 0xcf, 0x6f, 0x3b, 0x01, 0xdb, 0xfe, 0xdd, - 0x01, 0x1f, 0xc7, 0x3f, 0x21, 0x02, 0xbe, 0x02, 0x43, 0x86, 0x25, 0xfe, - 0x10, 0x77, 0x93, 0xfe, 0x27, 0xae, 0x5a, 0x01, 0x44, 0xab, 0x03, 0x4c, - 0xfd, 0xb0, 0xfd, 0xaa, 0x01, 0x06, 0x86, 0xd1, 0x02, 0x49, 0x00, 0x01, - 0x00, 0xd1, 0x00, 0x00, 0x02, 0xc7, 0x05, 0xac, 0x00, 0x0a, 0x00, 0x00, - 0x01, 0x21, 0x35, 0x3e, 0x01, 0x37, 0x36, 0x37, 0x33, 0x11, 0x23, 0x02, - 0x12, 0xfe, 0xbf, 0xb3, 0x7f, 0x24, 0x12, 0x17, 0x77, 0xb5, 0x04, 0x0a, - 0x81, 0x16, 0x43, 0x50, 0x29, 0x4f, 0xfa, 0x54, 0x00, 0x01, 0x00, 0x46, - 0x00, 0x00, 0x04, 0x17, 0x05, 0xac, 0x00, 0x23, 0x00, 0x00, 0x13, 0x12, - 0x21, 0x32, 0x17, 0x16, 0x15, 0x10, 0x05, 0x06, 0x0f, 0x01, 0x06, 0x07, - 0x06, 0x07, 0x21, 0x15, 0x21, 0x36, 0x37, 0x36, 0x37, 0x36, 0x3f, 0x01, - 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x20, 0x03, 0x06, 0x07, 0x66, 0x0f, - 0x01, 0xd1, 0xd0, 0x82, 0x7f, 0xfe, 0xec, 0x0f, 0x11, 0xcc, 0xa8, 0x37, - 0x1d, 0x0b, 0x02, 0xfc, 0xfc, 0x3a, 0x0b, 0x48, 0x45, 0xa7, 0x28, 0x30, - 0xbd, 0xc4, 0x5b, 0x51, 0x73, 0xfe, 0xfe, 0x1f, 0x02, 0x01, 0x03, 0xb4, - 0x01, 0xf8, 0x79, 0x76, 0xbb, 0xff, 0x00, 0xa4, 0x09, 0x09, 0x6f, 0x5a, - 0x5e, 0x31, 0x42, 0xb2, 0xe0, 0x7d, 0x78, 0x6b, 0x1a, 0x1b, 0x6a, 0x70, - 0xaf, 0x7c, 0x4f, 0x45, 0xfe, 0xcd, 0x12, 0x15, 0x00, 0x01, 0x00, 0x42, - 0xff, 0xd1, 0x04, 0x0c, 0x05, 0xac, 0x00, 0x32, 0x00, 0x00, 0x01, 0x22, - 0x07, 0x06, 0x07, 0x23, 0x12, 0x25, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, - 0x14, 0x07, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x20, 0x03, - 0x26, 0x27, 0x33, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, - 0x27, 0x26, 0x23, 0x07, 0x23, 0x35, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, - 0x26, 0x02, 0x29, 0xd2, 0x32, 0x0f, 0x02, 0xb4, 0x07, 0x01, 0x1a, 0x4a, - 0x5c, 0xf3, 0x75, 0x52, 0xca, 0xa3, 0x34, 0x1e, 0x8e, 0x85, 0xd8, 0xfe, - 0xa3, 0x5f, 0x1c, 0x07, 0xb4, 0x0d, 0xa0, 0x38, 0x4c, 0xb3, 0x4d, 0x2d, - 0xff, 0x16, 0x18, 0x4c, 0x16, 0xc4, 0x4b, 0x55, 0x6b, 0x3e, 0x05, 0x0e, - 0xb3, 0x36, 0x4e, 0x01, 0x70, 0x50, 0x15, 0x8f, 0x65, 0x9b, 0xde, 0x4f, - 0x38, 0x77, 0x45, 0x66, 0xd6, 0x7c, 0x73, 0x01, 0x18, 0x52, 0x6b, 0xea, - 0x38, 0x13, 0x77, 0x46, 0x65, 0xf3, 0x14, 0x02, 0x02, 0x99, 0x03, 0x2b, - 0x32, 0x84, 0x93, 0x40, 0x24, 0x00, 0x00, 0x02, 0x00, 0x39, 0x00, 0x00, - 0x04, 0x29, 0x05, 0xac, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x21, - 0x35, 0x01, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x19, 0x01, 0x01, - 0x02, 0x9e, 0xfd, 0x9b, 0x02, 0x94, 0x85, 0xd7, 0xd7, 0xb4, 0xfe, 0x39, - 0x01, 0x5c, 0xbf, 0x03, 0x91, 0xfc, 0x52, 0xa2, 0xfe, 0xa4, 0x01, 0xfe, - 0x02, 0x7b, 0xfd, 0x85, 0x00, 0x01, 0x00, 0x48, 0xff, 0xd1, 0x04, 0x1b, - 0x05, 0xac, 0x00, 0x26, 0x00, 0x00, 0x01, 0x15, 0x21, 0x03, 0x36, 0x37, - 0x32, 0x17, 0x16, 0x17, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x20, 0x03, - 0x26, 0x27, 0x33, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, - 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x23, 0x13, 0x03, 0xcf, 0xfd, - 0xa4, 0x3a, 0x7c, 0x91, 0xcf, 0x82, 0x83, 0x01, 0x85, 0x82, 0xce, 0x0e, - 0x0f, 0xfe, 0x71, 0x4d, 0x02, 0x03, 0xb4, 0x3d, 0xd5, 0x0b, 0x0c, 0xb0, - 0x54, 0x39, 0x74, 0x51, 0x78, 0x71, 0x4d, 0x24, 0x28, 0xa6, 0x6c, 0x05, - 0xac, 0xb2, 0xfe, 0x6a, 0x56, 0x02, 0x84, 0x86, 0xd9, 0xe0, 0x91, 0x8c, - 0x0a, 0x01, 0x01, 0x7b, 0x06, 0x12, 0xe7, 0x0b, 0x01, 0x7c, 0x55, 0x7f, - 0xbe, 0x5d, 0x41, 0x3b, 0x1d, 0x2f, 0x03, 0x16, 0x00, 0x02, 0x00, 0x58, - 0xff, 0xd1, 0x04, 0x1b, 0x05, 0xac, 0x00, 0x22, 0x00, 0x32, 0x00, 0x00, - 0x13, 0x10, 0x25, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x23, 0x26, 0x27, - 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, - 0x14, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x20, 0x03, 0x26, 0x25, - 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, - 0x34, 0x27, 0x26, 0x58, 0x01, 0x17, 0x69, 0x88, 0xc8, 0x72, 0x4d, 0x15, - 0xb4, 0x20, 0x76, 0x2b, 0x33, 0xc2, 0x51, 0x30, 0x01, 0x76, 0xd8, 0xbf, - 0x7c, 0x7e, 0x04, 0x7d, 0x7b, 0xc1, 0x11, 0x12, 0xfe, 0x42, 0x26, 0x03, - 0x01, 0xf0, 0x93, 0x55, 0x45, 0x5d, 0x53, 0x77, 0x81, 0x53, 0x4c, 0x6f, - 0x46, 0x02, 0x96, 0x02, 0x33, 0xa5, 0x3e, 0x8d, 0x5f, 0x8f, 0x9b, 0x2f, - 0x11, 0xdb, 0x84, 0xc8, 0xa2, 0x7c, 0x7e, 0xc7, 0x06, 0x06, 0xcd, 0x89, - 0x86, 0x0c, 0x01, 0x02, 0x56, 0x35, 0x8b, 0x65, 0x52, 0x7a, 0x93, 0x5e, - 0x54, 0x60, 0x59, 0x82, 0xb4, 0x53, 0x34, 0x00, 0x00, 0x01, 0x00, 0x5e, - 0x00, 0x00, 0x04, 0x29, 0x05, 0xac, 0x00, 0x0c, 0x00, 0x00, 0x01, 0x15, - 0x00, 0x03, 0x06, 0x07, 0x23, 0x12, 0x13, 0x12, 0x13, 0x21, 0x35, 0x04, - 0x29, 0xfe, 0xa5, 0x94, 0x3c, 0x23, 0xc0, 0x56, 0x8b, 0x7e, 0xf5, 0xfc, - 0xef, 0x05, 0xac, 0x98, 0xfe, 0x33, 0xfe, 0x3c, 0xba, 0xc9, 0x01, 0x7a, - 0x01, 0x20, 0x01, 0x03, 0x01, 0x5d, 0xb2, 0x00, 0x00, 0x03, 0x00, 0x4c, - 0xff, 0xd1, 0x04, 0x1b, 0x05, 0xac, 0x00, 0x1c, 0x00, 0x2c, 0x00, 0x3c, - 0x00, 0x00, 0x01, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x22, 0x23, 0x22, - 0x27, 0x26, 0x27, 0x34, 0x37, 0x26, 0x27, 0x26, 0x35, 0x34, 0x36, 0x33, - 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x01, 0x22, 0x07, 0x06, 0x15, - 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x03, - 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, - 0x34, 0x27, 0x26, 0x03, 0x21, 0xfa, 0x83, 0x85, 0xd5, 0x05, 0x06, 0xd7, - 0x88, 0x85, 0x03, 0xf8, 0x7e, 0x29, 0x1e, 0xf4, 0xc0, 0xc8, 0x7a, 0x72, - 0x3e, 0x2c, 0xfe, 0xb6, 0x8b, 0x44, 0x2d, 0x5e, 0x41, 0x5d, 0x8b, 0x45, - 0x2c, 0x63, 0x3f, 0x5a, 0x99, 0x54, 0x42, 0x63, 0x51, 0x77, 0x9f, 0x55, - 0x3f, 0x66, 0x51, 0x02, 0xfc, 0x77, 0xf4, 0xc2, 0x7c, 0x7e, 0x04, 0x7d, - 0x83, 0xc2, 0xf1, 0x78, 0x4f, 0x4d, 0x3a, 0x57, 0xaa, 0xd9, 0x73, 0x6b, - 0xa5, 0x78, 0x49, 0x34, 0x01, 0xd8, 0x59, 0x3a, 0x52, 0x7a, 0x3e, 0x2b, - 0x58, 0x39, 0x50, 0x82, 0x3e, 0x27, 0xfd, 0xa0, 0x62, 0x4c, 0x6f, 0x8c, - 0x51, 0x41, 0x65, 0x4b, 0x6e, 0x8e, 0x50, 0x3f, 0x00, 0x02, 0x00, 0x4e, - 0xff, 0xd1, 0x04, 0x12, 0x05, 0xac, 0x00, 0x22, 0x00, 0x32, 0x00, 0x00, - 0x01, 0x10, 0x05, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x33, 0x16, 0x17, - 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, - 0x26, 0x27, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x20, 0x13, 0x16, 0x01, - 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, - 0x34, 0x27, 0x26, 0x04, 0x12, 0xfe, 0xea, 0x6a, 0x8a, 0xc7, 0x72, 0x4d, - 0x15, 0xb4, 0x1e, 0x72, 0x2d, 0x36, 0xc2, 0x51, 0x30, 0x01, 0x6e, 0x8e, - 0x25, 0x2b, 0xc2, 0x7d, 0x7d, 0x02, 0x7d, 0x7a, 0xc1, 0x11, 0x12, 0x01, - 0x9e, 0x40, 0x0b, 0xfe, 0x15, 0x83, 0x53, 0x4b, 0x6e, 0x47, 0x66, 0x8f, - 0x55, 0x49, 0x5d, 0x53, 0x02, 0xe7, 0xfd, 0xd0, 0xa6, 0x40, 0x8c, 0x5f, - 0x90, 0x97, 0x31, 0x13, 0xdb, 0x84, 0xc8, 0x84, 0x18, 0x06, 0x7e, 0x86, - 0xc9, 0xcd, 0x89, 0x86, 0x0c, 0x01, 0xfe, 0x01, 0x5b, 0x01, 0xbc, 0x62, - 0x58, 0x83, 0xb3, 0x53, 0x35, 0x62, 0x53, 0x7c, 0x95, 0x5e, 0x54, 0x00, - 0x00, 0x02, 0x00, 0xe1, 0x00, 0x00, 0x01, 0xb6, 0x04, 0x31, 0x00, 0x03, - 0x00, 0x07, 0x00, 0x00, 0x25, 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, - 0x01, 0xb6, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0x03, 0x5c, 0xd5, 0xd5, - 0x00, 0x02, 0x00, 0xe1, 0xfe, 0xd3, 0x01, 0xb8, 0x04, 0x31, 0x00, 0x03, - 0x00, 0x0f, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x03, 0x33, 0x15, 0x10, - 0x23, 0x35, 0x36, 0x37, 0x36, 0x3d, 0x01, 0x23, 0x01, 0xb8, 0xd5, 0x02, - 0xd7, 0xd7, 0x4d, 0x18, 0x16, 0x7b, 0x04, 0x31, 0xd5, 0xd5, 0xfc, 0xa4, - 0xf6, 0xfe, 0xf4, 0x4e, 0x03, 0x2c, 0x27, 0x64, 0x25, 0x00, 0x00, 0x01, - 0x00, 0x5c, 0xff, 0xee, 0x04, 0x46, 0x03, 0xcb, 0x00, 0x06, 0x00, 0x00, - 0x13, 0x35, 0x01, 0x15, 0x09, 0x01, 0x15, 0x5c, 0x03, 0xea, 0xfc, 0xd9, - 0x03, 0x27, 0x01, 0x96, 0x8d, 0x01, 0xa8, 0xa2, 0xfe, 0xb6, 0xfe, 0xb0, - 0xa1, 0x00, 0x00, 0x02, 0x00, 0x66, 0x00, 0xe3, 0x04, 0x46, 0x02, 0xd3, - 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35, 0x01, 0x15, - 0x21, 0x35, 0x04, 0x46, 0xfc, 0x20, 0x03, 0xe0, 0xfc, 0x20, 0x02, 0xd3, - 0x8f, 0x8f, 0xfe, 0xa0, 0x90, 0x90, 0x00, 0x01, 0x00, 0x66, 0xff, 0xee, - 0x04, 0x50, 0x03, 0xcb, 0x00, 0x06, 0x00, 0x00, 0x01, 0x15, 0x01, 0x35, - 0x09, 0x01, 0x35, 0x04, 0x50, 0xfc, 0x16, 0x03, 0x27, 0xfc, 0xd9, 0x02, - 0x23, 0x8d, 0xfe, 0x58, 0xa1, 0x01, 0x4a, 0x01, 0x50, 0xa2, 0x00, 0x02, - 0x00, 0x9e, 0x00, 0x00, 0x04, 0x12, 0x05, 0xee, 0x00, 0x23, 0x00, 0x27, - 0x00, 0x00, 0x01, 0x14, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x1d, 0x01, - 0x23, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, - 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x23, 0x10, 0x25, 0x36, 0x33, 0x32, - 0x17, 0x16, 0x01, 0x15, 0x23, 0x35, 0x04, 0x12, 0x6e, 0x1a, 0x5b, 0x58, - 0x1c, 0x17, 0xb8, 0x66, 0x14, 0x5d, 0x61, 0x1f, 0x17, 0x5f, 0x44, 0x63, - 0xc4, 0x31, 0x13, 0xae, 0x01, 0x1f, 0x48, 0x59, 0xdc, 0x77, 0x61, 0xfe, - 0x92, 0xb8, 0x04, 0x64, 0x99, 0x7a, 0x1c, 0x51, 0x50, 0x3a, 0x2e, 0x34, - 0x60, 0x70, 0x78, 0x6f, 0x15, 0x58, 0x5a, 0x43, 0x33, 0x38, 0x7b, 0x41, - 0x2e, 0xa2, 0x3f, 0x5f, 0x01, 0x7c, 0x50, 0x14, 0x80, 0x68, 0xfb, 0xcf, - 0xd5, 0xd5, 0x00, 0x02, 0x00, 0x46, 0xfe, 0xdd, 0x07, 0x9c, 0x05, 0xee, - 0x00, 0x51, 0x00, 0x65, 0x00, 0x00, 0x01, 0x33, 0x03, 0x06, 0x15, 0x14, - 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, - 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, - 0x17, 0x16, 0x33, 0x32, 0x37, 0x17, 0x06, 0x23, 0x20, 0x27, 0x26, 0x27, - 0x26, 0x35, 0x10, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x33, 0x20, 0x17, - 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, - 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, - 0x36, 0x33, 0x32, 0x17, 0x01, 0x32, 0x37, 0x36, 0x37, 0x36, 0x35, 0x34, - 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, - 0x05, 0x52, 0xaa, 0xb8, 0x19, 0x2e, 0x1a, 0x1e, 0x6f, 0x62, 0x65, 0x1b, - 0x07, 0x92, 0x8c, 0xd9, 0x6a, 0x6f, 0xfd, 0xd4, 0xc1, 0x59, 0x3a, 0x9e, - 0x97, 0xf1, 0x69, 0x71, 0xa3, 0xe8, 0x39, 0xe6, 0xe9, 0xfe, 0xc9, 0xf6, - 0xd9, 0x60, 0x3d, 0x8d, 0x4c, 0x6a, 0xb6, 0xfc, 0x7e, 0x7a, 0x01, 0x1e, - 0xe9, 0xcd, 0x5b, 0x3a, 0x7b, 0x18, 0x1d, 0x9b, 0xe2, 0xc5, 0x1d, 0x75, - 0x7f, 0x17, 0x18, 0x8d, 0x5f, 0x61, 0x78, 0x6d, 0x9e, 0x45, 0x46, 0xac, - 0x4e, 0xfe, 0x7b, 0x79, 0x5f, 0x4e, 0x14, 0x05, 0x47, 0x33, 0x46, 0x72, - 0x5f, 0x61, 0x14, 0x04, 0x48, 0x39, 0x04, 0x02, 0xfd, 0xc3, 0x45, 0x22, - 0x2f, 0x1c, 0x0f, 0x6e, 0x72, 0x9f, 0x2c, 0x2c, 0xcf, 0xa9, 0xa1, 0x3e, - 0x1e, 0x9a, 0x8d, 0xd8, 0x8d, 0x95, 0xf3, 0xb9, 0xb0, 0x3d, 0x1b, 0x41, - 0x89, 0x56, 0xa1, 0x8e, 0xdf, 0x8c, 0x99, 0x01, 0x07, 0xee, 0x80, 0x60, - 0xa6, 0x42, 0x21, 0x99, 0x86, 0xce, 0x82, 0x8b, 0xcc, 0xb7, 0x25, 0x21, - 0xb6, 0x9d, 0x7f, 0x11, 0x03, 0x6a, 0x6c, 0xa1, 0xbc, 0x9f, 0x90, 0x35, - 0x17, 0xb2, 0xfd, 0x87, 0x99, 0x7e, 0x98, 0x23, 0x1e, 0x5b, 0x36, 0x27, - 0x6c, 0x6f, 0x9c, 0x20, 0x1f, 0x72, 0x48, 0x38, 0x00, 0x02, 0x00, 0x23, - 0x00, 0x00, 0x05, 0x39, 0x05, 0xd5, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x00, - 0x01, 0x21, 0x03, 0x23, 0x01, 0x33, 0x01, 0x23, 0x0b, 0x02, 0x03, 0xcb, - 0xfd, 0xc0, 0x9d, 0xcb, 0x02, 0x14, 0xf6, 0x02, 0x0c, 0xd5, 0xce, 0xe6, - 0xf6, 0x01, 0xc1, 0xfe, 0x3f, 0x05, 0xd5, 0xfa, 0x2b, 0x02, 0x60, 0x02, - 0xa8, 0xfd, 0x58, 0x00, 0x00, 0x03, 0x00, 0xa2, 0x00, 0x00, 0x04, 0xfc, - 0x05, 0xd5, 0x00, 0x10, 0x00, 0x1b, 0x00, 0x26, 0x00, 0x00, 0x01, 0x14, - 0x07, 0x06, 0x23, 0x21, 0x11, 0x21, 0x20, 0x17, 0x16, 0x15, 0x14, 0x07, - 0x16, 0x17, 0x16, 0x01, 0x34, 0x27, 0x26, 0x23, 0x21, 0x11, 0x21, 0x32, - 0x37, 0x36, 0x03, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x21, - 0x11, 0x04, 0xfc, 0x82, 0x77, 0xbf, 0xfd, 0x5e, 0x02, 0x5e, 0x01, 0x17, - 0x6d, 0x36, 0xce, 0xbd, 0x37, 0x1c, 0xff, 0x00, 0xd0, 0x29, 0x32, 0xfe, - 0x8f, 0x01, 0x71, 0xf7, 0x2b, 0x09, 0xcb, 0xb8, 0x3d, 0x17, 0x67, 0x42, - 0x63, 0xfe, 0x2f, 0x01, 0xaa, 0xc7, 0x76, 0x6d, 0x05, 0xd5, 0xb4, 0x59, - 0x6e, 0xe4, 0x62, 0x48, 0x85, 0x43, 0x02, 0x3b, 0xc9, 0x1f, 0x06, 0xfe, - 0x25, 0x9f, 0x23, 0xfc, 0x94, 0x8c, 0x35, 0x3f, 0x92, 0x44, 0x2c, 0xfd, - 0xfe, 0x00, 0x00, 0x01, 0x00, 0x62, 0xff, 0xd1, 0x05, 0x6a, 0x05, 0xee, - 0x00, 0x23, 0x00, 0x00, 0x13, 0x34, 0x37, 0x12, 0x25, 0x36, 0x33, 0x20, - 0x13, 0x16, 0x17, 0x23, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x11, - 0x10, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x33, 0x02, 0x21, 0x20, - 0x03, 0x26, 0x03, 0x26, 0x62, 0x65, 0x92, 0x01, 0x3a, 0x3a, 0x3f, 0x01, - 0xa2, 0x7c, 0x15, 0x0d, 0xc3, 0x2f, 0xb2, 0x4c, 0x66, 0xde, 0x7e, 0x79, - 0x91, 0x81, 0xd3, 0xec, 0x66, 0x36, 0x18, 0xc4, 0x43, 0xfd, 0xdd, 0xfe, - 0x8f, 0xb1, 0x76, 0x09, 0x01, 0x02, 0xd9, 0xfc, 0xc5, 0x01, 0x1d, 0x2e, - 0x09, 0xfe, 0x9b, 0x3c, 0x47, 0xe6, 0x3f, 0x1b, 0xad, 0xa5, 0xfe, 0xe7, - 0xfe, 0xd9, 0xa6, 0x95, 0xb2, 0x5e, 0x98, 0xfd, 0xb0, 0x01, 0x1d, 0xbc, - 0x01, 0x08, 0x14, 0x00, 0x00, 0x02, 0x00, 0xb6, 0x00, 0x00, 0x05, 0x56, - 0x05, 0xd5, 0x00, 0x09, 0x00, 0x14, 0x00, 0x00, 0x33, 0x11, 0x21, 0x20, - 0x00, 0x11, 0x10, 0x07, 0x06, 0x21, 0x25, 0x21, 0x20, 0x13, 0x36, 0x35, - 0x10, 0x25, 0x26, 0x23, 0x21, 0xb6, 0x02, 0x40, 0x01, 0x1b, 0x01, 0x45, - 0xaf, 0xa2, 0xfe, 0xf1, 0xfe, 0x7f, 0x01, 0x60, 0x01, 0x2f, 0x65, 0x2f, - 0xff, 0x00, 0x55, 0x6e, 0xfe, 0xa0, 0x05, 0xd5, 0xfe, 0x72, 0xfe, 0xa5, - 0xfe, 0x95, 0xc9, 0xb8, 0xa8, 0x01, 0x10, 0x7d, 0xb4, 0x01, 0xaf, 0x70, - 0x25, 0x00, 0x00, 0x01, 0x00, 0xb8, 0x00, 0x00, 0x04, 0xe7, 0x05, 0xd5, - 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, - 0x21, 0x11, 0x21, 0x15, 0x01, 0x77, 0x03, 0x70, 0xfb, 0xd1, 0x04, 0x0b, - 0xfc, 0xb4, 0x03, 0x2d, 0x02, 0xa8, 0xfe, 0x00, 0xa8, 0x05, 0xd5, 0xa8, - 0xfe, 0x23, 0xa8, 0x00, 0x00, 0x01, 0x00, 0xb8, 0x00, 0x00, 0x04, 0xa2, - 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x21, 0x15, - 0x21, 0x11, 0x21, 0x15, 0x01, 0x77, 0xbf, 0x03, 0xea, 0xfc, 0xd5, 0x02, - 0xc8, 0x02, 0xa8, 0xfd, 0x58, 0x05, 0xd5, 0xa8, 0xfe, 0x23, 0xa8, 0x00, - 0x00, 0x01, 0x00, 0x5a, 0xff, 0xd1, 0x05, 0xac, 0x05, 0xee, 0x00, 0x31, - 0x00, 0x00, 0x01, 0x14, 0x17, 0x16, 0x05, 0x32, 0x33, 0x32, 0x37, 0x36, - 0x37, 0x36, 0x3d, 0x01, 0x21, 0x35, 0x21, 0x11, 0x23, 0x27, 0x06, 0x07, - 0x06, 0x23, 0x20, 0x27, 0x26, 0x03, 0x26, 0x35, 0x34, 0x37, 0x12, 0x25, - 0x36, 0x33, 0x20, 0x17, 0x16, 0x17, 0x23, 0x26, 0x27, 0x26, 0x23, 0x22, - 0x07, 0x06, 0x03, 0x14, 0x01, 0x19, 0x58, 0x88, 0x01, 0x28, 0x07, 0x07, - 0xc6, 0x84, 0x81, 0x09, 0x01, 0xfe, 0x39, 0x02, 0x6f, 0x79, 0x2f, 0xbe, - 0xfb, 0x22, 0x23, 0xfe, 0xf7, 0xb7, 0xb4, 0x2c, 0x0c, 0x61, 0x8d, 0x01, - 0x30, 0x52, 0x5d, 0x01, 0x35, 0xaa, 0x72, 0x20, 0xc3, 0x24, 0x95, 0x6a, - 0x8d, 0xe5, 0x8f, 0x93, 0x05, 0x02, 0xe5, 0xd1, 0xa0, 0xf5, 0x06, 0x7b, - 0x79, 0xbc, 0x0e, 0x0d, 0x29, 0xa7, 0xfc, 0xe4, 0xc6, 0xd3, 0x17, 0x03, - 0xab, 0xa7, 0x01, 0x17, 0x4e, 0x53, 0xea, 0xc0, 0x01, 0x19, 0x3f, 0x11, - 0xb2, 0x76, 0xb6, 0xaa, 0x52, 0x3a, 0x9d, 0xa2, 0xfe, 0xef, 0x08, 0x00, - 0x00, 0x01, 0x00, 0xaa, 0x00, 0x00, 0x05, 0x27, 0x05, 0xd5, 0x00, 0x0b, - 0x00, 0x00, 0x01, 0x21, 0x11, 0x23, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, - 0x11, 0x23, 0x04, 0x68, 0xfd, 0x00, 0xbe, 0xbe, 0x03, 0x00, 0xbf, 0xbf, - 0x02, 0xa8, 0xfd, 0x58, 0x05, 0xd5, 0xfd, 0x7b, 0x02, 0x85, 0xfa, 0x2b, - 0x00, 0x01, 0x00, 0xcd, 0x00, 0x00, 0x01, 0x8d, 0x05, 0xd5, 0x00, 0x03, - 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x01, 0x8d, 0xc0, 0x05, 0xd5, 0xfa, - 0x2b, 0x05, 0xd5, 0x00, 0x00, 0x01, 0x00, 0x23, 0xff, 0xd1, 0x03, 0x68, - 0x05, 0xd5, 0x00, 0x15, 0x00, 0x00, 0x25, 0x32, 0x37, 0x36, 0x35, 0x11, - 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x3d, 0x01, 0x33, - 0x15, 0x14, 0x17, 0x16, 0x01, 0xc5, 0xa7, 0x2c, 0x12, 0xbe, 0x88, 0x6f, - 0xae, 0xd6, 0x71, 0x59, 0xc2, 0x80, 0x2a, 0x71, 0xa0, 0x42, 0x67, 0x04, - 0x1b, 0xfb, 0xa0, 0xd6, 0x72, 0x5c, 0x83, 0x67, 0xa1, 0x83, 0x60, 0xc6, - 0x36, 0x12, 0x00, 0x01, 0x00, 0xa2, 0x00, 0x00, 0x05, 0x44, 0x05, 0xd5, - 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x33, 0x11, 0x01, 0x33, - 0x09, 0x01, 0x23, 0x01, 0x01, 0x60, 0xbe, 0xbe, 0x02, 0xe8, 0xf5, 0xfd, - 0xa0, 0x02, 0x67, 0xe2, 0xfd, 0xf2, 0x02, 0x0a, 0xfd, 0xf6, 0x05, 0xd5, - 0xfd, 0x0c, 0x02, 0xf4, 0xfd, 0xa0, 0xfc, 0x8b, 0x02, 0xfe, 0x00, 0x01, - 0x00, 0xa4, 0x00, 0x00, 0x04, 0x44, 0x05, 0xd5, 0x00, 0x05, 0x00, 0x00, - 0x01, 0x11, 0x21, 0x15, 0x21, 0x11, 0x01, 0x62, 0x02, 0xe2, 0xfc, 0x60, - 0x05, 0xd5, 0xfa, 0xd3, 0xa8, 0x05, 0xd5, 0x00, 0x00, 0x01, 0x00, 0x9a, - 0x00, 0x00, 0x06, 0x17, 0x05, 0xd5, 0x00, 0x0c, 0x00, 0x00, 0x21, 0x23, - 0x01, 0x11, 0x23, 0x11, 0x21, 0x09, 0x01, 0x21, 0x11, 0x23, 0x11, 0x03, - 0xbe, 0xc8, 0xfe, 0x58, 0xb4, 0x01, 0x08, 0x01, 0xba, 0x01, 0xb2, 0x01, - 0x09, 0xb5, 0x04, 0xe3, 0xfb, 0x1d, 0x05, 0xd5, 0xfa, 0xec, 0x05, 0x14, - 0xfa, 0x2b, 0x04, 0xe3, 0x00, 0x01, 0x00, 0x9c, 0x00, 0x00, 0x05, 0x2b, - 0x05, 0xd5, 0x00, 0x09, 0x00, 0x00, 0x01, 0x11, 0x23, 0x01, 0x11, 0x23, - 0x11, 0x33, 0x01, 0x11, 0x05, 0x2b, 0xd7, 0xfc, 0xfc, 0xb4, 0xce, 0x03, - 0x0d, 0x05, 0xd5, 0xfa, 0x2b, 0x04, 0xba, 0xfb, 0x46, 0x05, 0xd5, 0xfb, - 0x3b, 0x04, 0xc5, 0x00, 0x00, 0x02, 0x00, 0x4e, 0xff, 0xd1, 0x05, 0xf0, - 0x05, 0xee, 0x00, 0x16, 0x00, 0x2c, 0x00, 0x00, 0x01, 0x10, 0x00, 0x07, - 0x06, 0x23, 0x20, 0x27, 0x26, 0x03, 0x26, 0x35, 0x10, 0x37, 0x36, 0x25, - 0x36, 0x33, 0x20, 0x17, 0x16, 0x13, 0x16, 0x01, 0x22, 0x07, 0x06, 0x03, - 0x06, 0x15, 0x10, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, - 0x36, 0x35, 0x10, 0x27, 0x26, 0x05, 0xf0, 0xfe, 0xd4, 0xfc, 0x51, 0x58, - 0xfe, 0xe0, 0xc1, 0xbd, 0x29, 0x0a, 0xa8, 0x9d, 0x01, 0x03, 0x41, 0x46, - 0x01, 0x2d, 0xc2, 0xbf, 0x20, 0x05, 0xfd, 0x2d, 0xe2, 0x90, 0x94, 0x0a, - 0x01, 0x8f, 0x88, 0xdd, 0x0f, 0x10, 0xde, 0x91, 0x93, 0x0f, 0x01, 0x94, - 0x96, 0x02, 0xd3, 0xfe, 0xe0, 0xfe, 0x66, 0x36, 0x12, 0xb0, 0xac, 0x01, - 0x20, 0x47, 0x4b, 0x01, 0x3f, 0xd3, 0xc6, 0x2c, 0x0b, 0xb9, 0xb8, 0xfe, - 0xc7, 0x37, 0x02, 0x39, 0x9a, 0x9f, 0xfe, 0xf7, 0x12, 0x13, 0xfe, 0xf0, - 0xa9, 0xa1, 0x0b, 0x01, 0x97, 0x98, 0xfc, 0x19, 0x1a, 0x01, 0x1e, 0xab, - 0xa3, 0x00, 0x00, 0x02, 0x00, 0xba, 0x00, 0x00, 0x04, 0xf0, 0x05, 0xd5, - 0x00, 0x0c, 0x00, 0x17, 0x00, 0x00, 0x01, 0x14, 0x07, 0x06, 0x23, 0x21, - 0x11, 0x23, 0x11, 0x21, 0x20, 0x17, 0x16, 0x01, 0x21, 0x32, 0x37, 0x36, - 0x35, 0x34, 0x27, 0x26, 0x23, 0x21, 0x04, 0xf0, 0x7e, 0x72, 0xb2, 0xfe, - 0x2b, 0xbf, 0x02, 0x69, 0x01, 0x17, 0x73, 0x43, 0xfc, 0x89, 0x01, 0x8d, - 0xb1, 0x4a, 0x28, 0x77, 0x46, 0x66, 0xfe, 0x73, 0x04, 0x1f, 0xc7, 0x75, - 0x6a, 0xfd, 0x87, 0x05, 0xd5, 0xb1, 0x69, 0xfe, 0x66, 0x71, 0x3e, 0x57, - 0x9b, 0x43, 0x28, 0x00, 0x00, 0x02, 0x00, 0x4e, 0xff, 0x87, 0x05, 0xf0, - 0x05, 0xee, 0x00, 0x18, 0x00, 0x33, 0x00, 0x00, 0x05, 0x07, 0x27, 0x06, - 0x23, 0x20, 0x27, 0x26, 0x03, 0x26, 0x35, 0x10, 0x37, 0x36, 0x25, 0x36, - 0x33, 0x20, 0x17, 0x16, 0x13, 0x16, 0x15, 0x10, 0x07, 0x01, 0x17, 0x36, - 0x11, 0x10, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x03, 0x06, - 0x15, 0x10, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x27, - 0x05, 0xdd, 0x60, 0xd7, 0xb1, 0xd6, 0xfe, 0xe0, 0xc1, 0xbd, 0x29, 0x0a, - 0xa8, 0x9e, 0x01, 0x04, 0x41, 0x46, 0x01, 0x1f, 0xc2, 0xbb, 0x2a, 0x0b, - 0xd3, 0xfe, 0xbc, 0xb6, 0xa2, 0x8e, 0x87, 0xdc, 0x10, 0x11, 0xe4, 0x90, - 0x94, 0x0a, 0x01, 0x8f, 0x89, 0xdf, 0x0d, 0x0d, 0x75, 0x6f, 0x08, 0x09, - 0x97, 0x02, 0x77, 0xb2, 0x68, 0xb0, 0xac, 0x01, 0x20, 0x47, 0x4b, 0x01, - 0x3f, 0xd3, 0xc6, 0x2c, 0x0b, 0xaf, 0xaa, 0xfe, 0xe3, 0x48, 0x4d, 0xfe, - 0xa1, 0xe8, 0x01, 0x08, 0x96, 0xb6, 0x01, 0x1d, 0x01, 0x0f, 0xa8, 0xa1, - 0x0c, 0x01, 0x9b, 0x9f, 0xfe, 0xf6, 0x11, 0x12, 0xfe, 0xee, 0xa9, 0xa1, - 0x09, 0x01, 0x31, 0x04, 0x04, 0x7f, 0x00, 0x02, 0x00, 0xbe, 0x00, 0x00, - 0x05, 0x6f, 0x05, 0xd5, 0x00, 0x1d, 0x00, 0x28, 0x00, 0x00, 0x01, 0x16, - 0x17, 0x16, 0x07, 0x06, 0x17, 0x16, 0x17, 0x15, 0x23, 0x26, 0x3d, 0x01, - 0x34, 0x27, 0x26, 0x23, 0x21, 0x11, 0x23, 0x11, 0x21, 0x20, 0x17, 0x16, - 0x15, 0x14, 0x07, 0x06, 0x03, 0x34, 0x27, 0x26, 0x23, 0x21, 0x11, 0x21, - 0x32, 0x37, 0x36, 0x04, 0x4a, 0x9d, 0x23, 0x0e, 0x02, 0x02, 0x14, 0x15, - 0x32, 0xe8, 0x29, 0x7b, 0x32, 0x49, 0xfe, 0x15, 0xbf, 0x02, 0xb1, 0x01, - 0x28, 0x6a, 0x34, 0x67, 0x32, 0x2d, 0xa6, 0x35, 0x4a, 0xfe, 0x33, 0x01, - 0xcd, 0xdb, 0x36, 0x14, 0x02, 0xe1, 0x44, 0x91, 0x3d, 0x89, 0x81, 0x39, - 0x3a, 0x23, 0x2f, 0x60, 0x94, 0x85, 0xc3, 0x32, 0x15, 0xfd, 0x7d, 0x05, - 0xd5, 0xb6, 0x5a, 0x7f, 0xab, 0x62, 0x30, 0x01, 0x22, 0xc9, 0x2b, 0x0e, - 0xfd, 0xfe, 0x86, 0x32, 0x00, 0x01, 0x00, 0x62, 0xff, 0xd1, 0x04, 0xf8, - 0x05, 0xee, 0x00, 0x32, 0x00, 0x00, 0x25, 0x20, 0x37, 0x36, 0x35, 0x34, - 0x27, 0x26, 0x27, 0x25, 0x24, 0x11, 0x34, 0x37, 0x36, 0x33, 0x20, 0x17, - 0x16, 0x17, 0x23, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, - 0x17, 0x16, 0x17, 0x05, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x21, - 0x20, 0x27, 0x26, 0x27, 0x33, 0x15, 0x14, 0x17, 0x16, 0x02, 0xbc, 0x01, - 0x22, 0x47, 0x14, 0xa5, 0x2f, 0x3e, 0xfe, 0x8d, 0xfe, 0xdb, 0x9e, 0x8d, - 0xe8, 0x01, 0x31, 0x8e, 0x63, 0x01, 0xb5, 0x02, 0xa5, 0x54, 0x79, 0xb2, - 0x5c, 0x40, 0x4b, 0x37, 0x74, 0x01, 0x76, 0xd2, 0x4a, 0x22, 0x62, 0x97, - 0xfe, 0xb1, 0xfe, 0xe4, 0x9c, 0x93, 0x03, 0xb5, 0x74, 0x6c, 0x79, 0xa8, - 0x2f, 0x37, 0x87, 0x47, 0x14, 0x10, 0x62, 0x4c, 0x01, 0x10, 0xd7, 0x76, - 0x6a, 0xa7, 0x74, 0xb4, 0xc1, 0x49, 0x25, 0x5e, 0x41, 0x5d, 0x62, 0x35, - 0x27, 0x1f, 0x65, 0x39, 0x9d, 0x49, 0x57, 0x9f, 0x75, 0xb5, 0x8d, 0x86, - 0xf7, 0x0a, 0xa7, 0x5c, 0x55, 0x00, 0x00, 0x01, 0x00, 0x2b, 0x00, 0x00, - 0x04, 0xbe, 0x05, 0xd5, 0x00, 0x07, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, - 0x21, 0x35, 0x21, 0x15, 0x02, 0xd5, 0xbe, 0xfe, 0x14, 0x04, 0x93, 0x05, - 0x2d, 0xfa, 0xd3, 0x05, 0x2d, 0xa8, 0xa8, 0x00, 0x00, 0x01, 0x00, 0xae, - 0xff, 0xd1, 0x05, 0x29, 0x05, 0xd5, 0x00, 0x15, 0x00, 0x00, 0x01, 0x33, - 0x11, 0x14, 0x07, 0x06, 0x21, 0x20, 0x27, 0x26, 0x35, 0x11, 0x33, 0x11, - 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x04, 0x6a, 0xbf, 0x9d, - 0x9d, 0xfe, 0xfa, 0xfe, 0xe0, 0x9a, 0x81, 0xbf, 0xae, 0x56, 0x78, 0xd9, - 0x66, 0x42, 0x05, 0xd5, 0xfb, 0xe7, 0xe1, 0x86, 0x84, 0x9a, 0x81, 0xd0, - 0x04, 0x19, 0xfb, 0xe7, 0xd0, 0x4d, 0x26, 0x7b, 0x50, 0x78, 0x00, 0x01, - 0x00, 0x3d, 0x00, 0x00, 0x05, 0x29, 0x05, 0xd5, 0x00, 0x06, 0x00, 0x00, - 0x21, 0x23, 0x01, 0x33, 0x09, 0x01, 0x33, 0x03, 0x23, 0xcd, 0xfd, 0xe7, - 0xcd, 0x01, 0xb7, 0x01, 0x9d, 0xcb, 0x05, 0xd5, 0xfb, 0x10, 0x04, 0xf0, - 0x00, 0x01, 0x00, 0x2d, 0x00, 0x00, 0x07, 0x6f, 0x05, 0xd5, 0x00, 0x0c, - 0x00, 0x00, 0x21, 0x23, 0x09, 0x01, 0x23, 0x01, 0x33, 0x09, 0x01, 0x33, - 0x09, 0x01, 0x33, 0x05, 0xf4, 0xd1, 0xfe, 0xa8, 0xfe, 0xb2, 0xd1, 0xfe, - 0x81, 0xd5, 0x01, 0x19, 0x01, 0x4b, 0xcd, 0x01, 0x54, 0x01, 0x13, 0xd5, - 0x04, 0xcb, 0xfb, 0x35, 0x05, 0xd5, 0xfb, 0x44, 0x04, 0xbc, 0xfb, 0x44, - 0x04, 0xbc, 0x00, 0x01, 0x00, 0x2d, 0x00, 0x00, 0x05, 0x31, 0x05, 0xd5, - 0x00, 0x0b, 0x00, 0x00, 0x09, 0x01, 0x23, 0x09, 0x01, 0x23, 0x09, 0x01, - 0x33, 0x09, 0x01, 0x33, 0x03, 0x21, 0x02, 0x10, 0xeb, 0xfe, 0x68, 0xfe, - 0x66, 0xe7, 0x02, 0x10, 0xfe, 0x11, 0xe7, 0x01, 0x7f, 0x01, 0x81, 0xe4, - 0x02, 0xfe, 0xfd, 0x02, 0x02, 0x6f, 0xfd, 0x91, 0x02, 0xfe, 0x02, 0xd7, - 0xfd, 0xb6, 0x02, 0x4a, 0x00, 0x01, 0x00, 0x1b, 0x00, 0x00, 0x05, 0x4a, - 0x05, 0xd5, 0x00, 0x08, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x01, 0x33, - 0x09, 0x01, 0x33, 0x03, 0x19, 0xbf, 0xfd, 0xc1, 0xeb, 0x01, 0xb6, 0x01, - 0xaa, 0xe4, 0x02, 0x4a, 0xfd, 0xb6, 0x02, 0x4a, 0x03, 0x8b, 0xfd, 0x29, - 0x02, 0xd7, 0x00, 0x01, 0x00, 0x39, 0x00, 0x00, 0x04, 0xaa, 0x05, 0xd5, - 0x00, 0x09, 0x00, 0x00, 0x01, 0x15, 0x01, 0x21, 0x15, 0x21, 0x35, 0x01, - 0x21, 0x35, 0x04, 0xa6, 0xfc, 0x83, 0x03, 0x81, 0xfb, 0x8f, 0x03, 0x81, - 0xfc, 0xb9, 0x05, 0xd5, 0xac, 0xfb, 0x7f, 0xa8, 0xa8, 0x04, 0x85, 0xa8, - 0x00, 0x01, 0x00, 0x83, 0xfe, 0x4e, 0x02, 0x00, 0x05, 0xd5, 0x00, 0x07, - 0x00, 0x00, 0x01, 0x15, 0x23, 0x11, 0x33, 0x15, 0x21, 0x11, 0x02, 0x00, - 0xd3, 0xd3, 0xfe, 0x83, 0x05, 0xd5, 0x93, 0xf9, 0x9f, 0x93, 0x07, 0x87, - 0x00, 0x01, 0xff, 0xf0, 0xff, 0xd7, 0x02, 0x46, 0x05, 0xd5, 0x00, 0x03, - 0x00, 0x00, 0x13, 0x01, 0x23, 0x01, 0x60, 0x01, 0xe6, 0x71, 0xfe, 0x1b, - 0x05, 0xd5, 0xfa, 0x02, 0x05, 0xfe, 0x00, 0x01, 0x00, 0x2f, 0xfe, 0x4e, - 0x01, 0xac, 0x05, 0xd5, 0x00, 0x07, 0x00, 0x00, 0x13, 0x35, 0x33, 0x11, - 0x23, 0x35, 0x21, 0x11, 0x2f, 0xd3, 0xd3, 0x01, 0x7d, 0xfe, 0x4e, 0x93, - 0x06, 0x61, 0x93, 0xf8, 0x79, 0x00, 0x00, 0x01, 0x00, 0x5a, 0x02, 0xa2, - 0x03, 0x66, 0x05, 0xac, 0x00, 0x06, 0x00, 0x00, 0x01, 0x33, 0x01, 0x23, - 0x0b, 0x01, 0x23, 0x01, 0x93, 0x96, 0x01, 0x3d, 0x8d, 0xfa, 0xf8, 0x8d, - 0x05, 0xac, 0xfc, 0xf6, 0x02, 0x66, 0xfd, 0x9a, 0x00, 0x01, 0xff, 0xd3, - 0xfe, 0x98, 0x04, 0xa0, 0xfe, 0xfe, 0x00, 0x03, 0x00, 0x00, 0x01, 0x15, - 0x21, 0x35, 0x04, 0xa0, 0xfb, 0x33, 0xfe, 0xfe, 0x66, 0x66, 0x00, 0x01, - 0x00, 0x2d, 0x04, 0xbc, 0x01, 0xd9, 0x05, 0xec, 0x00, 0x03, 0x00, 0x00, - 0x01, 0x13, 0x23, 0x01, 0x01, 0x14, 0xc5, 0x7b, 0xfe, 0xcf, 0x05, 0xec, - 0xfe, 0xd0, 0x01, 0x30, 0x00, 0x02, 0x00, 0x56, 0xff, 0xd1, 0x04, 0x48, - 0x04, 0x50, 0x00, 0x31, 0x00, 0x40, 0x00, 0x00, 0x13, 0x12, 0x25, 0x36, - 0x33, 0x20, 0x17, 0x16, 0x15, 0x11, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, - 0x15, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x06, 0x07, 0x06, 0x23, 0x22, - 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, 0x37, 0x36, - 0x3d, 0x01, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x13, 0x32, - 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, - 0x16, 0x85, 0x0a, 0x01, 0x43, 0x2e, 0x33, 0x01, 0x31, 0x4c, 0x17, 0x46, - 0x0a, 0x0c, 0x12, 0x13, 0x48, 0x2d, 0x7f, 0x23, 0x0a, 0x04, 0x90, 0x94, - 0x23, 0x26, 0xc0, 0x5e, 0x42, 0x77, 0x54, 0xc6, 0x25, 0x5e, 0x84, 0x20, - 0x0f, 0x82, 0x30, 0x3e, 0xb7, 0x31, 0x0f, 0x05, 0xaa, 0x9b, 0x61, 0x46, - 0x38, 0x98, 0x9c, 0x3c, 0x6d, 0x66, 0x2e, 0x02, 0xf4, 0x01, 0x30, 0x27, - 0x05, 0xae, 0x34, 0x43, 0xfd, 0x89, 0x48, 0x0a, 0x02, 0x04, 0x81, 0x12, - 0x5e, 0x1c, 0x24, 0x84, 0x15, 0x05, 0x74, 0x51, 0x78, 0xb0, 0x4c, 0x36, - 0x1d, 0x06, 0x0c, 0x10, 0x2d, 0x16, 0x23, 0x2d, 0x72, 0x22, 0x0c, 0x70, - 0x21, 0x2d, 0xfd, 0x72, 0x5d, 0x43, 0x4c, 0xc0, 0x19, 0x17, 0x17, 0x1b, - 0x31, 0x6d, 0x70, 0x29, 0x13, 0x00, 0x00, 0x02, 0x00, 0x6f, 0xff, 0xd1, - 0x04, 0x2f, 0x05, 0xd5, 0x00, 0x14, 0x00, 0x24, 0x00, 0x00, 0x13, 0x33, - 0x11, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x10, 0x07, 0x06, - 0x23, 0x22, 0x27, 0x26, 0x27, 0x15, 0x23, 0x01, 0x22, 0x07, 0x06, 0x15, - 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x6f, - 0xaa, 0x68, 0xb6, 0x16, 0x17, 0xdd, 0x7c, 0x72, 0x8a, 0x7e, 0xcb, 0xd5, - 0x77, 0x04, 0x04, 0x99, 0x01, 0xd5, 0x91, 0x53, 0x47, 0x6b, 0x4d, 0x73, - 0x90, 0x57, 0x52, 0x6e, 0x51, 0x05, 0xd5, 0xfd, 0xcb, 0x9f, 0x0f, 0x02, - 0xa3, 0x96, 0xfa, 0xfe, 0xe8, 0xa1, 0x93, 0xac, 0x06, 0x06, 0x89, 0x03, - 0xb0, 0x81, 0x6f, 0xb0, 0xdb, 0x72, 0x52, 0x78, 0x71, 0xb0, 0xdd, 0x73, - 0x56, 0x00, 0x00, 0x01, 0x00, 0x3f, 0xff, 0xd1, 0x03, 0xd1, 0x04, 0x50, - 0x00, 0x1f, 0x00, 0x00, 0x01, 0x23, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, - 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x13, 0x33, 0x06, 0x07, 0x06, - 0x23, 0x22, 0x27, 0x26, 0x11, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, - 0x03, 0xc5, 0xac, 0x18, 0x83, 0x2c, 0x37, 0xa5, 0x4d, 0x37, 0x7a, 0x49, - 0x6a, 0xdb, 0x2b, 0xac, 0x13, 0xa3, 0x69, 0x97, 0xde, 0x81, 0x7d, 0x8b, - 0x82, 0xd1, 0xf3, 0x6d, 0x3d, 0x02, 0xc9, 0xa9, 0x30, 0x10, 0x99, 0x6c, - 0xa7, 0xf0, 0x69, 0x3e, 0x01, 0x02, 0xf0, 0x6b, 0x45, 0x9d, 0x99, 0x00, - 0xff, 0x01, 0x14, 0xa1, 0x95, 0xa5, 0x5c, 0x00, 0x00, 0x02, 0x00, 0x35, - 0xff, 0xd1, 0x03, 0xf6, 0x05, 0xd5, 0x00, 0x14, 0x00, 0x24, 0x00, 0x00, - 0x01, 0x11, 0x23, 0x35, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x11, - 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x11, 0x01, 0x22, 0x07, - 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, - 0x26, 0x03, 0xf6, 0x98, 0x62, 0x85, 0x32, 0x3d, 0xe2, 0x7e, 0x73, 0x87, - 0x7d, 0xc9, 0xd4, 0x6e, 0x04, 0x04, 0xfe, 0xd3, 0x93, 0x57, 0x4e, 0x6b, - 0x53, 0x7c, 0x8f, 0x53, 0x49, 0x6e, 0x4d, 0x05, 0xd5, 0xfa, 0x2b, 0x8d, - 0x8e, 0x21, 0x0d, 0xaa, 0x9b, 0x01, 0x05, 0x01, 0x0a, 0x9c, 0x8f, 0x9a, - 0x06, 0x06, 0x02, 0x2b, 0xfd, 0xdb, 0x7d, 0x71, 0xb2, 0xd2, 0x73, 0x5a, - 0x7d, 0x6f, 0xaf, 0xe2, 0x72, 0x50, 0x00, 0x02, 0x00, 0x52, 0xff, 0xd1, - 0x04, 0x1b, 0x04, 0x50, 0x00, 0x1d, 0x00, 0x28, 0x00, 0x00, 0x01, 0x21, - 0x16, 0x17, 0x16, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x33, 0x06, - 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x10, 0x37, 0x36, 0x33, 0x32, - 0x17, 0x16, 0x17, 0x16, 0x05, 0x21, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, - 0x22, 0x07, 0x06, 0x04, 0x1b, 0xfc, 0xe9, 0x02, 0x28, 0x07, 0x08, 0x4f, - 0x90, 0x11, 0x12, 0xd2, 0x47, 0xac, 0x27, 0xa3, 0x6d, 0x94, 0xec, 0x83, - 0x78, 0x8d, 0x85, 0xd9, 0xc5, 0x83, 0x46, 0x25, 0x2b, 0xfc, 0xed, 0x02, - 0x5a, 0x02, 0x5a, 0x55, 0x7a, 0x95, 0x56, 0x3e, 0x01, 0xdf, 0x84, 0x48, - 0x0d, 0x0c, 0x7b, 0x0e, 0x02, 0xd7, 0xd3, 0x61, 0x41, 0xa6, 0x97, 0xfc, - 0x01, 0x11, 0x9f, 0x96, 0x7c, 0x42, 0x5d, 0x73, 0x58, 0x05, 0x08, 0x88, - 0x5c, 0x57, 0x74, 0x55, 0x00, 0x01, 0x00, 0x25, 0x00, 0x00, 0x02, 0x10, - 0x05, 0xdb, 0x00, 0x15, 0x00, 0x00, 0x01, 0x15, 0x23, 0x11, 0x23, 0x11, - 0x23, 0x35, 0x33, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x15, 0x26, - 0x23, 0x22, 0x1d, 0x01, 0x02, 0x10, 0xb2, 0xaa, 0x8f, 0x8f, 0x72, 0x3a, - 0x50, 0x2f, 0x31, 0x27, 0x14, 0x77, 0x04, 0x31, 0x8b, 0xfc, 0x5a, 0x03, - 0xa6, 0x8b, 0xb6, 0x9a, 0x3c, 0x1e, 0x0a, 0x8d, 0x02, 0x6d, 0xa8, 0x00, - 0x00, 0x02, 0x00, 0x3b, 0xfe, 0x42, 0x03, 0xe9, 0x04, 0x50, 0x00, 0x2a, - 0x00, 0x3a, 0x00, 0x00, 0x05, 0x22, 0x27, 0x26, 0x27, 0x26, 0x35, 0x10, - 0x37, 0x36, 0x37, 0x32, 0x33, 0x32, 0x17, 0x16, 0x17, 0x35, 0x33, 0x11, - 0x10, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x33, 0x16, - 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x03, - 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, - 0x10, 0x27, 0x26, 0x01, 0xf6, 0xac, 0x79, 0x89, 0x0c, 0x01, 0x80, 0x78, - 0xbf, 0x09, 0x09, 0xc4, 0x7e, 0x03, 0x03, 0x9d, 0x45, 0x5a, 0xf0, 0x26, - 0x2a, 0xf3, 0x70, 0x3f, 0x0a, 0xae, 0x18, 0xa2, 0x22, 0x28, 0xbe, 0x41, - 0x2c, 0x64, 0x73, 0x32, 0x1b, 0x99, 0x50, 0x40, 0x78, 0x49, 0x6a, 0x9b, - 0x4d, 0x3a, 0x80, 0x44, 0x2f, 0x81, 0x91, 0xf8, 0x15, 0x16, 0x01, 0x07, - 0xa3, 0x98, 0x08, 0xb1, 0x04, 0x05, 0x9b, 0xfc, 0x7f, 0xfe, 0xe3, 0x87, - 0xb0, 0x16, 0x04, 0x89, 0x4c, 0x6e, 0x92, 0x1c, 0x06, 0x82, 0x58, 0xaf, - 0x37, 0x8d, 0x24, 0x0f, 0x03, 0xe1, 0x89, 0x6d, 0xac, 0xf4, 0x6c, 0x41, - 0x8d, 0x69, 0xa5, 0x01, 0x09, 0x68, 0x37, 0x00, 0x00, 0x01, 0x00, 0x8f, - 0x00, 0x00, 0x03, 0xe3, 0x05, 0xd5, 0x00, 0x17, 0x00, 0x00, 0x01, 0x34, - 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x11, - 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, 0x23, 0x03, 0x39, - 0x79, 0x2f, 0x35, 0x91, 0x50, 0x42, 0xaa, 0xaa, 0x5e, 0x67, 0x3e, 0x55, - 0xbe, 0x59, 0x3b, 0xaa, 0x02, 0xe7, 0x90, 0x30, 0x13, 0x75, 0x61, 0x94, - 0xfd, 0xb0, 0x05, 0xd5, 0xfd, 0xc9, 0x7a, 0x23, 0x15, 0x70, 0x4a, 0x6b, - 0xfc, 0xd5, 0x00, 0x02, 0x00, 0x87, 0x00, 0x00, 0x01, 0x33, 0x05, 0xd5, - 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x13, 0x11, - 0x23, 0x11, 0x01, 0x33, 0xac, 0xac, 0xa9, 0x05, 0xd5, 0xd7, 0xd7, 0xfe, - 0x5c, 0xfb, 0xcf, 0x04, 0x31, 0x00, 0x00, 0x02, 0xff, 0xdb, 0xfe, 0x42, - 0x01, 0x39, 0x05, 0xd5, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x01, 0x15, - 0x23, 0x35, 0x11, 0x33, 0x11, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x35, - 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x01, 0x39, 0xaa, 0xaa, 0xce, 0x28, - 0x2f, 0x1a, 0x1f, 0x23, 0x06, 0x5d, 0x1c, 0x12, 0x05, 0xd5, 0xd7, 0xd7, - 0xfe, 0x5c, 0xfa, 0xf0, 0xb9, 0x20, 0x06, 0x06, 0x91, 0x02, 0x2e, 0x1f, - 0x40, 0x00, 0x00, 0x01, 0x00, 0x77, 0x00, 0x00, 0x04, 0x04, 0x05, 0xd5, - 0x00, 0x0b, 0x00, 0x00, 0x01, 0x11, 0x01, 0x33, 0x09, 0x01, 0x23, 0x01, - 0x07, 0x11, 0x23, 0x11, 0x01, 0x21, 0x01, 0xc6, 0xdc, 0xfe, 0x8b, 0x01, - 0xb6, 0xd3, 0xfe, 0x96, 0xa6, 0xaa, 0x05, 0xd5, 0xfc, 0x95, 0x01, 0xc7, - 0xfe, 0x8d, 0xfd, 0x42, 0x02, 0x46, 0xa4, 0xfe, 0x5e, 0x05, 0xd5, 0x00, - 0x00, 0x01, 0x00, 0x8b, 0x00, 0x00, 0x01, 0x37, 0x05, 0xd5, 0x00, 0x03, - 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x01, 0x37, 0xac, 0x05, 0xd5, 0xfa, - 0x2b, 0x05, 0xd5, 0x00, 0x00, 0x01, 0x00, 0x8f, 0x00, 0x00, 0x06, 0x19, - 0x04, 0x50, 0x00, 0x2a, 0x00, 0x00, 0x13, 0x33, 0x15, 0x36, 0x37, 0x36, - 0x33, 0x32, 0x17, 0x16, 0x17, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, - 0x15, 0x11, 0x23, 0x11, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, - 0x11, 0x23, 0x11, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11, - 0x23, 0x8f, 0x9e, 0x5d, 0x72, 0x36, 0x45, 0x9d, 0x54, 0x1a, 0x16, 0x5e, - 0x62, 0x3a, 0x4f, 0xd4, 0x46, 0x1e, 0xac, 0x62, 0x2b, 0x3a, 0x6c, 0x4a, - 0x46, 0xac, 0x71, 0x25, 0x31, 0x6c, 0x4a, 0x46, 0xac, 0x04, 0x31, 0x97, - 0x83, 0x22, 0x11, 0x5e, 0x1e, 0x28, 0x71, 0x20, 0x13, 0x95, 0x40, 0x56, - 0xfc, 0xdb, 0x02, 0xe3, 0x8e, 0x32, 0x17, 0x56, 0x51, 0x71, 0xfd, 0x5e, - 0x02, 0xe3, 0x9c, 0x2c, 0x0f, 0x56, 0x51, 0x71, 0xfd, 0x5e, 0x00, 0x01, - 0x00, 0x8f, 0x00, 0x00, 0x03, 0xe5, 0x04, 0x50, 0x00, 0x17, 0x00, 0x00, - 0x13, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, - 0x23, 0x11, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x11, 0x23, - 0x8f, 0x9e, 0x5d, 0x7a, 0x3d, 0x50, 0xb6, 0x5d, 0x41, 0xaa, 0x5c, 0x35, - 0x4c, 0x91, 0x50, 0x42, 0xac, 0x04, 0x31, 0xb4, 0x94, 0x2a, 0x15, 0x6b, - 0x4b, 0x6f, 0xfc, 0xd5, 0x02, 0xe7, 0x7a, 0x38, 0x21, 0x75, 0x61, 0x94, - 0xfd, 0xb0, 0x00, 0x02, 0x00, 0x4a, 0xff, 0xd1, 0x04, 0x14, 0x04, 0x50, - 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x20, 0x17, 0x16, 0x15, 0x10, - 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x10, 0x37, 0x36, 0x17, 0x22, - 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, - 0x27, 0x26, 0x02, 0x2d, 0x01, 0x08, 0x7f, 0x60, 0x9a, 0x7f, 0xcc, 0xf9, - 0x81, 0x6b, 0xa0, 0x7c, 0xc9, 0x9f, 0x53, 0x41, 0x77, 0x4c, 0x70, 0x9d, - 0x53, 0x43, 0x7e, 0x4a, 0x04, 0x50, 0xc3, 0x95, 0xf0, 0xfe, 0xde, 0x98, - 0x7d, 0xb4, 0x95, 0xf6, 0x01, 0x2f, 0x99, 0x78, 0x9e, 0x8a, 0x6d, 0xab, - 0xee, 0x6d, 0x46, 0x86, 0x6c, 0xa9, 0xfd, 0x6c, 0x3f, 0x00, 0x00, 0x02, - 0x00, 0x6f, 0xfe, 0x42, 0x04, 0x2f, 0x04, 0x50, 0x00, 0x11, 0x00, 0x21, - 0x00, 0x00, 0x13, 0x11, 0x33, 0x15, 0x36, 0x20, 0x17, 0x16, 0x11, 0x10, - 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x11, 0x01, 0x22, 0x07, 0x06, - 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, - 0x6f, 0x9d, 0x7a, 0x01, 0xb8, 0x7d, 0x74, 0x88, 0x7c, 0xc7, 0xa9, 0x72, - 0x17, 0x17, 0x01, 0x2b, 0x91, 0x53, 0x47, 0x6b, 0x4d, 0x73, 0x91, 0x57, - 0x4f, 0x6d, 0x51, 0xfe, 0x42, 0x05, 0xef, 0xa2, 0xc1, 0xa7, 0x9d, 0xfe, - 0xfa, 0xfe, 0xf5, 0x9c, 0x8e, 0x6d, 0x17, 0x1c, 0xfd, 0xd1, 0x05, 0x6e, - 0x81, 0x6f, 0xb0, 0xdb, 0x72, 0x52, 0x7a, 0x70, 0xaf, 0xdc, 0x73, 0x57, - 0x00, 0x02, 0x00, 0x35, 0xfe, 0x42, 0x03, 0xf6, 0x04, 0x50, 0x00, 0x14, - 0x00, 0x24, 0x00, 0x00, 0x01, 0x23, 0x11, 0x06, 0x07, 0x06, 0x23, 0x22, - 0x27, 0x26, 0x35, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x35, - 0x33, 0x05, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, - 0x36, 0x35, 0x34, 0x27, 0x26, 0x03, 0xf6, 0xaa, 0x60, 0x9d, 0x25, 0x2a, - 0xdd, 0x7c, 0x72, 0x89, 0x7f, 0xcb, 0xc3, 0x7a, 0x0d, 0x0c, 0x98, 0xfe, - 0x2b, 0x94, 0x57, 0x4f, 0x6b, 0x53, 0x7c, 0x8f, 0x53, 0x49, 0x6d, 0x4d, - 0xfe, 0x42, 0x02, 0x39, 0x8d, 0x17, 0x06, 0xa3, 0x96, 0xfa, 0x01, 0x15, - 0xa2, 0x95, 0x8e, 0x0f, 0x11, 0x8f, 0x81, 0x7d, 0x71, 0xb2, 0xd2, 0x73, - 0x5a, 0x7d, 0x6e, 0xae, 0xe3, 0x73, 0x50, 0x00, 0x00, 0x01, 0x00, 0x8d, - 0x00, 0x00, 0x02, 0x91, 0x04, 0x50, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x06, - 0x07, 0x06, 0x15, 0x11, 0x23, 0x11, 0x33, 0x15, 0x36, 0x37, 0x36, 0x33, - 0x32, 0x17, 0x02, 0x91, 0xb0, 0x4e, 0x5a, 0xac, 0x9e, 0x64, 0x5f, 0x2d, - 0x35, 0x17, 0x2a, 0x03, 0x9c, 0x03, 0x49, 0x55, 0xce, 0xfd, 0xd3, 0x04, - 0x31, 0xc2, 0xa2, 0x2b, 0x14, 0x06, 0x00, 0x01, 0x00, 0x46, 0xff, 0xd1, - 0x03, 0xac, 0x04, 0x50, 0x00, 0x32, 0x00, 0x00, 0x13, 0x1e, 0x01, 0x33, - 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x2f, 0x01, 0x26, 0x27, 0x26, - 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x23, 0x26, 0x27, - 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x1f, 0x01, 0x16, - 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x20, 0x27, 0x26, 0x27, 0xfa, - 0x0f, 0x7e, 0x79, 0x93, 0x42, 0x25, 0x4f, 0x22, 0x35, 0xa0, 0xd4, 0x48, - 0x38, 0x80, 0x6f, 0xad, 0xfc, 0x5c, 0x2c, 0x01, 0xb4, 0x05, 0xa3, 0x16, - 0x19, 0x8f, 0x3a, 0x1b, 0x65, 0x28, 0x3a, 0xa4, 0xd1, 0x3e, 0x20, 0x88, - 0x76, 0xbc, 0xfe, 0xa4, 0x41, 0x0d, 0x02, 0x01, 0x3f, 0x72, 0x5e, 0x4a, - 0x28, 0x36, 0x50, 0x27, 0x11, 0x0d, 0x27, 0x33, 0x52, 0x41, 0x6f, 0xa1, - 0x5a, 0x4d, 0x9a, 0x49, 0x67, 0x96, 0x13, 0x03, 0x4d, 0x25, 0x30, 0x50, - 0x2b, 0x10, 0x0e, 0x27, 0x32, 0x6d, 0x3a, 0x52, 0xa6, 0x5d, 0x51, 0xfc, - 0x34, 0x3e, 0x00, 0x01, 0x00, 0x1d, 0xff, 0xd1, 0x02, 0x08, 0x05, 0x58, - 0x00, 0x17, 0x00, 0x00, 0x01, 0x15, 0x23, 0x11, 0x14, 0x17, 0x16, 0x33, - 0x32, 0x37, 0x15, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x23, 0x35, - 0x33, 0x11, 0x33, 0x11, 0x02, 0x08, 0xb0, 0x1f, 0x14, 0x2b, 0x36, 0x1c, - 0x50, 0x3b, 0x9e, 0x26, 0x0b, 0x91, 0x91, 0xaa, 0x04, 0x31, 0x8b, 0xfd, - 0x21, 0x45, 0x11, 0x0b, 0x09, 0x90, 0x0e, 0x69, 0x1d, 0x24, 0x03, 0x2b, - 0x8b, 0x01, 0x27, 0xfe, 0xd9, 0x00, 0x00, 0x01, 0x00, 0x85, 0xff, 0xd1, - 0x03, 0xdb, 0x04, 0x31, 0x00, 0x17, 0x00, 0x00, 0x21, 0x23, 0x35, 0x06, - 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, - 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x03, 0xdb, 0x99, 0x60, - 0x71, 0x41, 0x55, 0xb9, 0x5c, 0x41, 0xaa, 0x5c, 0x35, 0x4c, 0x93, 0x50, - 0x42, 0xaa, 0x96, 0x87, 0x28, 0x16, 0x6c, 0x4b, 0x6e, 0x03, 0x3b, 0xfd, - 0x08, 0x7a, 0x38, 0x21, 0x76, 0x61, 0x94, 0x02, 0x60, 0x00, 0x00, 0x01, - 0x00, 0x14, 0x00, 0x00, 0x03, 0xe3, 0x04, 0x31, 0x00, 0x06, 0x00, 0x00, - 0x21, 0x23, 0x01, 0x33, 0x09, 0x01, 0x33, 0x02, 0x48, 0xbb, 0xfe, 0x87, - 0xc1, 0x01, 0x1f, 0x01, 0x2f, 0xc0, 0x04, 0x31, 0xfc, 0x9a, 0x03, 0x66, - 0x00, 0x01, 0x00, 0x0c, 0x00, 0x00, 0x05, 0xaa, 0x04, 0x31, 0x00, 0x0c, - 0x00, 0x00, 0x21, 0x23, 0x0b, 0x01, 0x23, 0x01, 0x33, 0x1b, 0x01, 0x33, - 0x1b, 0x01, 0x33, 0x04, 0x6f, 0xc3, 0xd9, 0xcf, 0xc0, 0xfe, 0xc8, 0xbd, - 0xdb, 0xcd, 0xd1, 0xd2, 0xd5, 0xc1, 0x03, 0x4a, 0xfc, 0xb6, 0x04, 0x31, - 0xfc, 0xbd, 0x03, 0x43, 0xfc, 0xbd, 0x03, 0x43, 0x00, 0x01, 0x00, 0x23, - 0x00, 0x00, 0x03, 0xc9, 0x04, 0x31, 0x00, 0x0b, 0x00, 0x00, 0x09, 0x01, - 0x23, 0x09, 0x01, 0x23, 0x09, 0x01, 0x33, 0x09, 0x01, 0x33, 0x02, 0x56, - 0x01, 0x73, 0xc7, 0xfe, 0xf4, 0xfe, 0xef, 0xc2, 0x01, 0x7b, 0xfe, 0x99, - 0xc3, 0x01, 0x02, 0x01, 0x02, 0xc0, 0x02, 0x2b, 0xfd, 0xd5, 0x01, 0x9c, - 0xfe, 0x64, 0x02, 0x23, 0x02, 0x0e, 0xfe, 0x7b, 0x01, 0x85, 0x00, 0x01, - 0x00, 0x29, 0xfe, 0x42, 0x03, 0xd3, 0x04, 0x31, 0x00, 0x11, 0x00, 0x00, - 0x01, 0x33, 0x01, 0x06, 0x23, 0x22, 0x27, 0x35, 0x16, 0x33, 0x32, 0x37, - 0x36, 0x3f, 0x01, 0x01, 0x33, 0x01, 0x03, 0x1b, 0xb8, 0xfe, 0x23, 0x54, - 0xc1, 0x41, 0x31, 0x3b, 0x1f, 0x4c, 0x24, 0x0d, 0x0c, 0x41, 0xfe, 0x96, - 0xb6, 0x01, 0x13, 0x04, 0x31, 0xfa, 0xee, 0xdd, 0x1a, 0x9a, 0x0d, 0x36, - 0x15, 0x1e, 0xaa, 0x04, 0x35, 0xfc, 0xbd, 0x00, 0x00, 0x01, 0x00, 0x3f, - 0x00, 0x00, 0x03, 0xa8, 0x04, 0x31, 0x00, 0x09, 0x00, 0x00, 0x01, 0x15, - 0x01, 0x21, 0x15, 0x21, 0x35, 0x01, 0x21, 0x35, 0x03, 0x8b, 0xfd, 0x83, - 0x02, 0x9a, 0xfc, 0x97, 0x02, 0x82, 0xfd, 0xa9, 0x04, 0x31, 0x97, 0xfc, - 0xfc, 0x96, 0x9a, 0x03, 0x02, 0x95, 0x00, 0x01, 0x00, 0x58, 0xfe, 0x4e, - 0x02, 0x35, 0x05, 0xd5, 0x00, 0x2a, 0x00, 0x00, 0x01, 0x15, 0x23, 0x22, - 0x07, 0x06, 0x15, 0x11, 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, - 0x11, 0x14, 0x17, 0x16, 0x3b, 0x01, 0x15, 0x23, 0x22, 0x27, 0x26, 0x35, - 0x11, 0x34, 0x27, 0x26, 0x27, 0x35, 0x36, 0x37, 0x36, 0x35, 0x11, 0x34, - 0x37, 0x36, 0x33, 0x02, 0x35, 0x1e, 0x55, 0x19, 0x13, 0x3d, 0x25, 0x46, - 0x8b, 0x18, 0x05, 0x25, 0x1b, 0x41, 0x1e, 0x5e, 0x8e, 0x36, 0x1b, 0x32, - 0x23, 0x4b, 0x5e, 0x22, 0x20, 0x6f, 0x30, 0x40, 0x05, 0xd5, 0x85, 0x26, - 0x1e, 0x45, 0xfe, 0x8d, 0xae, 0x4a, 0x2e, 0x1c, 0x41, 0xad, 0x27, 0x2e, - 0xfe, 0x8d, 0x5b, 0x1a, 0x14, 0x85, 0x7a, 0x3d, 0x55, 0x01, 0x56, 0xa6, - 0x3c, 0x2a, 0x0f, 0x8d, 0x13, 0x41, 0x3d, 0x8a, 0x01, 0x56, 0xb3, 0x3e, - 0x1b, 0x00, 0x00, 0x01, 0x00, 0xcd, 0xfe, 0x4e, 0x01, 0x48, 0x05, 0xd5, - 0x00, 0x03, 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, 0xcd, 0x7b, 0x7b, 0x05, - 0xd5, 0xf8, 0x79, 0x00, 0x00, 0x01, 0x00, 0x3b, 0xfe, 0x4e, 0x02, 0x19, - 0x05, 0xd5, 0x00, 0x2a, 0x00, 0x00, 0x13, 0x35, 0x33, 0x32, 0x37, 0x36, - 0x35, 0x11, 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, 0x11, 0x34, - 0x27, 0x26, 0x2b, 0x01, 0x35, 0x33, 0x32, 0x17, 0x16, 0x15, 0x11, 0x14, - 0x17, 0x16, 0x17, 0x15, 0x06, 0x07, 0x06, 0x15, 0x11, 0x14, 0x07, 0x06, - 0x23, 0x3b, 0x21, 0x56, 0x1a, 0x13, 0x79, 0x15, 0x1a, 0x8f, 0x15, 0x04, - 0x25, 0x1c, 0x42, 0x21, 0x61, 0x92, 0x35, 0x1a, 0x33, 0x22, 0x47, 0x5d, - 0x21, 0x1e, 0x71, 0x30, 0x40, 0xfe, 0x4e, 0x85, 0x26, 0x1d, 0x46, 0x01, - 0x73, 0xd4, 0x53, 0x0f, 0x0b, 0x43, 0xb7, 0x22, 0x28, 0x01, 0x73, 0x5b, - 0x1a, 0x14, 0x85, 0x7d, 0x3c, 0x53, 0xfe, 0xaa, 0xa7, 0x3c, 0x29, 0x0f, - 0x8d, 0x14, 0x44, 0x3e, 0x85, 0xfe, 0xaa, 0xb4, 0x3e, 0x1a, 0x00, 0x01, - 0x00, 0x9a, 0x02, 0x25, 0x04, 0x10, 0x03, 0x81, 0x00, 0x1f, 0x00, 0x00, - 0x01, 0x22, 0x07, 0x06, 0x15, 0x23, 0x36, 0x37, 0x36, 0x33, 0x32, 0x1f, - 0x01, 0x16, 0x33, 0x32, 0x37, 0x36, 0x3d, 0x01, 0x33, 0x15, 0x14, 0x07, - 0x06, 0x23, 0x22, 0x2f, 0x01, 0x26, 0x27, 0x26, 0x01, 0x73, 0x5e, 0x0e, - 0x01, 0x6c, 0x0c, 0x87, 0x22, 0x28, 0x39, 0x35, 0xf0, 0x39, 0x2d, 0x51, - 0x12, 0x06, 0x6c, 0x59, 0x35, 0x49, 0x4f, 0x57, 0xc8, 0x28, 0x28, 0x05, - 0x02, 0xf8, 0x95, 0x05, 0x06, 0xea, 0x32, 0x0d, 0x21, 0x8d, 0x23, 0x4d, - 0x1b, 0x27, 0x0b, 0x21, 0x96, 0x45, 0x29, 0x35, 0x81, 0x17, 0x05, 0x01, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x06, - 0x00, 0x04, 0x00, 0x00, 0xff, 0xff, 0x00, 0xfa, 0xfe, 0x5c, 0x01, 0xa6, - 0x04, 0x31, 0x10, 0x0f, 0x00, 0x05, 0x02, 0xa4, 0x04, 0x31, 0xc0, 0x00, - 0x00, 0x02, 0x00, 0x6a, 0xff, 0x0a, 0x04, 0x14, 0x05, 0x06, 0x00, 0x1e, - 0x00, 0x27, 0x00, 0x00, 0x01, 0x11, 0x36, 0x37, 0x33, 0x06, 0x07, 0x06, - 0x07, 0x15, 0x23, 0x35, 0x26, 0x27, 0x26, 0x35, 0x10, 0x37, 0x36, 0x37, - 0x35, 0x33, 0x15, 0x16, 0x17, 0x16, 0x17, 0x23, 0x26, 0x27, 0x26, 0x03, - 0x11, 0x06, 0x03, 0x06, 0x15, 0x14, 0x17, 0x16, 0x02, 0x7f, 0xc6, 0x23, - 0xac, 0x0c, 0x8f, 0x65, 0x95, 0x56, 0xe0, 0x78, 0x67, 0x96, 0x73, 0xb6, - 0x56, 0xef, 0x62, 0x32, 0x06, 0xac, 0x0f, 0x6b, 0x2c, 0x8d, 0xe7, 0x20, - 0x05, 0x80, 0x3b, 0x03, 0xb2, 0xfc, 0xbb, 0x15, 0xef, 0xd8, 0x71, 0x50, - 0x07, 0xc7, 0xc9, 0x14, 0xac, 0x93, 0xe0, 0x01, 0x1a, 0xa0, 0x7b, 0x13, - 0xb8, 0xb6, 0x11, 0xa9, 0x56, 0x77, 0x93, 0x3a, 0x18, 0xfc, 0xc3, 0x03, - 0x3f, 0x2b, 0xfe, 0xdf, 0x2c, 0x32, 0xef, 0x69, 0x31, 0x00, 0x00, 0x01, - 0x00, 0x35, 0xff, 0xd1, 0x04, 0x48, 0x05, 0xd5, 0x00, 0x41, 0x00, 0x00, - 0x01, 0x14, 0x1f, 0x01, 0x16, 0x17, 0x21, 0x15, 0x21, 0x16, 0x15, 0x14, - 0x07, 0x06, 0x07, 0x36, 0x33, 0x32, 0x17, 0x16, 0x33, 0x32, 0x37, 0x17, - 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, - 0x27, 0x36, 0x37, 0x36, 0x35, 0x34, 0x27, 0x23, 0x35, 0x33, 0x26, 0x27, - 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, - 0x23, 0x02, 0x21, 0x22, 0x07, 0x06, 0x01, 0x2d, 0x34, 0x3e, 0x04, 0x03, - 0x01, 0x48, 0xfe, 0xe9, 0x1f, 0x4f, 0x35, 0x6e, 0x79, 0x81, 0x45, 0x72, - 0x60, 0x33, 0x4f, 0x5b, 0x56, 0x67, 0x7b, 0x15, 0x16, 0x58, 0x82, 0x75, - 0x36, 0x17, 0x16, 0x6d, 0x72, 0x62, 0xb3, 0x31, 0x1c, 0x31, 0xe2, 0xa6, - 0x54, 0x0f, 0x09, 0x7a, 0x7a, 0xba, 0x1c, 0x1d, 0xf8, 0x74, 0x54, 0x03, - 0xb5, 0x09, 0xfe, 0xf3, 0x9a, 0x50, 0x37, 0x04, 0x2f, 0x56, 0x5d, 0x6d, - 0x06, 0x07, 0x71, 0x57, 0x3a, 0x5f, 0x6c, 0x49, 0x6f, 0x50, 0x23, 0x1d, - 0x3e, 0x87, 0x65, 0x0c, 0x02, 0x2c, 0x29, 0x06, 0x03, 0x4c, 0x87, 0x9a, - 0x6e, 0x3d, 0x43, 0x4c, 0x53, 0x71, 0x8b, 0x3a, 0x24, 0x34, 0xac, 0x7b, - 0x7a, 0x12, 0x03, 0xa1, 0x76, 0xc4, 0x01, 0x3b, 0x61, 0x43, 0x00, 0x02, - 0x00, 0x89, 0x01, 0x10, 0x03, 0xe9, 0x04, 0x68, 0x00, 0x1f, 0x00, 0x2f, - 0x00, 0x00, 0x01, 0x07, 0x27, 0x06, 0x23, 0x22, 0x27, 0x07, 0x27, 0x37, - 0x26, 0x27, 0x34, 0x35, 0x34, 0x37, 0x36, 0x37, 0x27, 0x37, 0x17, 0x36, - 0x33, 0x32, 0x17, 0x37, 0x17, 0x07, 0x16, 0x17, 0x14, 0x07, 0x01, 0x22, - 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, - 0x27, 0x26, 0x03, 0xe1, 0x77, 0x6c, 0x52, 0x7b, 0x6e, 0x52, 0x69, 0x72, - 0x62, 0x3c, 0x06, 0x3f, 0x01, 0x02, 0x6f, 0x73, 0x71, 0x59, 0x6d, 0x77, - 0x52, 0x79, 0x74, 0x70, 0x32, 0x03, 0x3b, 0xfe, 0xbe, 0x62, 0x41, 0x36, - 0x4a, 0x3e, 0x53, 0x5e, 0x42, 0x39, 0x4b, 0x3d, 0x01, 0x85, 0x6e, 0x6c, - 0x3d, 0x33, 0x69, 0x75, 0x64, 0x52, 0x6e, 0x09, 0x08, 0x71, 0x5b, 0x03, - 0x02, 0x71, 0x6c, 0x70, 0x35, 0x39, 0x6c, 0x77, 0x70, 0x57, 0x68, 0x67, - 0x5f, 0x01, 0x9b, 0x49, 0x3d, 0x51, 0x5f, 0x40, 0x36, 0x47, 0x3d, 0x4f, - 0x64, 0x41, 0x34, 0x00, 0x00, 0x01, 0x00, 0x17, 0x00, 0x00, 0x04, 0x5c, - 0x05, 0xac, 0x00, 0x16, 0x00, 0x00, 0x01, 0x15, 0x21, 0x15, 0x21, 0x15, - 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x01, - 0x33, 0x09, 0x01, 0x33, 0x01, 0x03, 0xf6, 0xfe, 0xa4, 0x01, 0x5c, 0xfe, - 0xa4, 0xb5, 0xfe, 0xa0, 0x01, 0x60, 0xfe, 0xa0, 0x01, 0x35, 0xfe, 0x5d, - 0xae, 0x01, 0x7a, 0x01, 0x6f, 0xae, 0xfe, 0x65, 0x02, 0xd5, 0x68, 0x9e, - 0x69, 0xfe, 0x9a, 0x01, 0x66, 0x69, 0x9e, 0x68, 0x02, 0xd7, 0xfd, 0x6d, - 0x02, 0x93, 0xfd, 0x29, 0x00, 0x02, 0x00, 0xcd, 0xfe, 0x4e, 0x01, 0x48, - 0x05, 0xd5, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x13, 0x33, 0x11, 0x23, - 0x11, 0x33, 0x11, 0x23, 0xcd, 0x7b, 0x7b, 0x7b, 0x7b, 0x05, 0xd5, 0xfc, - 0xcb, 0xfe, 0xe3, 0xfc, 0xcb, 0x00, 0x00, 0x02, 0x00, 0x58, 0xfe, 0x4c, - 0x04, 0x0c, 0x05, 0xd5, 0x00, 0x45, 0x00, 0x55, 0x00, 0x00, 0x05, 0x14, - 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x25, - 0x26, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x26, 0x27, 0x26, 0x35, - 0x34, 0x37, 0x36, 0x37, 0x32, 0x33, 0x32, 0x17, 0x16, 0x1d, 0x01, 0x23, - 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, - 0x17, 0x05, 0x16, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16, 0x17, 0x16, 0x15, - 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x13, 0x05, 0x36, 0x37, - 0x36, 0x35, 0x34, 0x27, 0x25, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, - 0x01, 0x4c, 0x92, 0x1d, 0x22, 0x6d, 0x36, 0x21, 0x54, 0x0d, 0x0f, 0xfe, - 0xa3, 0x91, 0x20, 0x0b, 0x71, 0x2a, 0x3c, 0x4d, 0x0a, 0x03, 0x68, 0x6b, - 0x9d, 0x06, 0x05, 0xac, 0x63, 0x57, 0xac, 0x54, 0x30, 0x42, 0x60, 0x34, - 0x23, 0x3b, 0x17, 0x23, 0x01, 0x2b, 0x90, 0x2e, 0x21, 0xdf, 0x56, 0x11, - 0x06, 0x6c, 0x6d, 0xa6, 0xc0, 0x64, 0x59, 0xe3, 0x01, 0x54, 0x7b, 0x16, - 0x04, 0x95, 0xfe, 0xb6, 0x6b, 0x1a, 0x0c, 0x27, 0x1c, 0x1d, 0xcc, 0x26, - 0x08, 0x49, 0x2c, 0x3c, 0x5b, 0x44, 0x0a, 0x0b, 0xef, 0x65, 0x7d, 0x2c, - 0x34, 0x93, 0x5e, 0x22, 0x20, 0x5a, 0x4f, 0x13, 0x15, 0x89, 0x61, 0x64, - 0x04, 0x71, 0x63, 0x97, 0x39, 0x35, 0x7a, 0x37, 0x20, 0x44, 0x2d, 0x3d, - 0x3e, 0x34, 0x14, 0x17, 0xc1, 0x5c, 0x5c, 0x41, 0x5d, 0xec, 0x53, 0x62, - 0x4e, 0x1e, 0x24, 0x92, 0x62, 0x64, 0x75, 0x68, 0xba, 0x01, 0xf2, 0xfc, - 0x41, 0x69, 0x13, 0x14, 0x7e, 0x67, 0xe0, 0x47, 0x42, 0x20, 0x26, 0x48, - 0x2f, 0x22, 0x00, 0x02, 0x00, 0x3d, 0x04, 0xe5, 0x02, 0x5e, 0x05, 0xb8, - 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x15, 0x23, 0x35, 0x21, 0x15, - 0x23, 0x35, 0x01, 0x12, 0xd5, 0x02, 0x21, 0xd5, 0x05, 0xb8, 0xd3, 0xd3, - 0xd3, 0xd3, 0x00, 0x03, 0xff, 0xe5, 0xff, 0xd3, 0x06, 0x02, 0x05, 0xf0, - 0x00, 0x21, 0x00, 0x39, 0x00, 0x51, 0x00, 0x00, 0x01, 0x06, 0x07, 0x06, - 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, - 0x17, 0x23, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, - 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x03, 0x20, 0x17, 0x16, 0x17, 0x16, - 0x15, 0x10, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x26, - 0x35, 0x10, 0x37, 0x36, 0x37, 0x36, 0x17, 0x22, 0x07, 0x06, 0x07, 0x06, - 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x37, 0x36, - 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x04, 0x6a, 0x1c, 0x28, 0x5e, 0xc8, - 0xaf, 0x6f, 0x6f, 0x79, 0x6e, 0xac, 0xd7, 0x56, 0x18, 0x0f, 0x91, 0x24, - 0x4d, 0x24, 0x34, 0x84, 0x46, 0x36, 0x51, 0x46, 0x69, 0x96, 0x35, 0x08, - 0x06, 0xe5, 0x01, 0x04, 0xd0, 0xbf, 0x4f, 0x2c, 0x9f, 0x92, 0xe8, 0x7b, - 0x85, 0xf8, 0xcd, 0xbc, 0x52, 0x31, 0x9c, 0x8e, 0xe0, 0x7e, 0x87, 0xde, - 0xaf, 0xa4, 0x39, 0x19, 0x88, 0x7e, 0xc0, 0x58, 0x5d, 0xe7, 0xb1, 0xa6, - 0x37, 0x16, 0x8b, 0x80, 0xc5, 0x58, 0x02, 0x7f, 0x8a, 0x49, 0xaa, 0x83, - 0x84, 0xd2, 0xe2, 0x86, 0x79, 0xc4, 0x35, 0x44, 0x89, 0x24, 0x11, 0x78, - 0x5c, 0x8c, 0xa2, 0x64, 0x56, 0xbc, 0x1f, 0x23, 0x03, 0x71, 0x9c, 0x8e, - 0xdf, 0x7e, 0x86, 0xfe, 0xf6, 0xd1, 0xc0, 0x4c, 0x29, 0x99, 0x8c, 0xdb, - 0x83, 0x8b, 0x01, 0x04, 0xd0, 0xbf, 0x4f, 0x2d, 0x7f, 0x8d, 0x83, 0xcb, - 0x58, 0x5d, 0xdf, 0xb3, 0xa5, 0x3c, 0x1c, 0x8f, 0x86, 0xcf, 0x54, 0x59, - 0xe2, 0xb2, 0xa6, 0x3a, 0x1a, 0x00, 0x00, 0x03, 0x00, 0x4c, 0x02, 0x6d, - 0x02, 0xaa, 0x05, 0xf0, 0x00, 0x03, 0x00, 0x2d, 0x00, 0x3c, 0x00, 0x00, - 0x01, 0x15, 0x21, 0x35, 0x25, 0x15, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, - 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x37, - 0x36, 0x3d, 0x01, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x07, 0x23, - 0x36, 0x37, 0x36, 0x33, 0x32, 0x15, 0x11, 0x14, 0x33, 0x32, 0x27, 0x06, - 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, - 0x35, 0x02, 0x8f, 0xfd, 0xc9, 0x02, 0x52, 0x20, 0x22, 0x50, 0x17, 0x06, - 0x03, 0x65, 0x72, 0x81, 0x37, 0x1d, 0x4b, 0x4a, 0xac, 0x4f, 0x10, 0x06, - 0x54, 0x18, 0x1e, 0x53, 0x1d, 0x12, 0x09, 0x79, 0x05, 0xab, 0x29, 0x30, - 0xf9, 0x30, 0x09, 0xad, 0x25, 0x6a, 0x63, 0x20, 0x1d, 0x4e, 0x11, 0x15, - 0x5b, 0x39, 0x27, 0x02, 0xd5, 0x68, 0x68, 0xc3, 0x5b, 0x0c, 0x38, 0x0e, - 0x12, 0x58, 0x57, 0x2f, 0x3f, 0x6b, 0x30, 0x2f, 0x0d, 0x06, 0x1d, 0x0c, - 0x14, 0x1b, 0x44, 0x11, 0x05, 0x27, 0x19, 0x33, 0xb2, 0x24, 0x08, 0xc1, - 0xfe, 0x92, 0x30, 0xfa, 0x10, 0x0f, 0x0e, 0x1b, 0x1a, 0x2d, 0x4c, 0x10, - 0x04, 0x36, 0x25, 0x2c, 0x00, 0x02, 0x00, 0xc9, 0x00, 0xd9, 0x03, 0xa4, - 0x03, 0x81, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00, 0x13, 0x35, 0x25, 0x15, - 0x07, 0x17, 0x15, 0x37, 0x35, 0x25, 0x15, 0x07, 0x17, 0x15, 0xc9, 0x01, - 0x37, 0xd9, 0xd9, 0x6d, 0x01, 0x37, 0xd9, 0xd9, 0x01, 0xd1, 0xb6, 0xfa, - 0xaa, 0xaa, 0xaa, 0xaa, 0xf8, 0xb6, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, - 0x00, 0x01, 0x00, 0x52, 0x00, 0xb0, 0x04, 0x5a, 0x03, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x13, 0x21, 0x11, 0x23, 0x11, 0x21, 0x52, 0x04, 0x08, 0x8f, - 0xfc, 0x87, 0x03, 0x00, 0xfd, 0xb0, 0x01, 0xc1, 0x00, 0x01, 0x00, 0x5e, - 0x01, 0xec, 0x02, 0x46, 0x02, 0x7f, 0x00, 0x03, 0x00, 0x00, 0x01, 0x15, - 0x21, 0x35, 0x02, 0x46, 0xfe, 0x18, 0x02, 0x7f, 0x93, 0x93, 0x00, 0x04, - 0xff, 0xe5, 0xff, 0xd3, 0x06, 0x02, 0x05, 0xf0, 0x00, 0x1a, 0x00, 0x25, - 0x00, 0x3d, 0x00, 0x55, 0x00, 0x00, 0x01, 0x16, 0x1f, 0x01, 0x16, 0x17, - 0x15, 0x23, 0x26, 0x3f, 0x01, 0x34, 0x27, 0x26, 0x23, 0x21, 0x11, 0x23, - 0x11, 0x21, 0x20, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x25, 0x21, 0x32, - 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x21, 0x13, 0x20, 0x17, 0x16, - 0x17, 0x16, 0x15, 0x10, 0x07, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, - 0x27, 0x26, 0x35, 0x10, 0x37, 0x36, 0x37, 0x36, 0x17, 0x22, 0x07, 0x06, - 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, - 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x03, 0xf6, 0x55, 0x07, - 0x01, 0x05, 0x29, 0xa2, 0x22, 0x04, 0x02, 0x45, 0x1a, 0x25, 0xfe, 0xee, - 0x8f, 0x01, 0xa6, 0x01, 0x07, 0x17, 0x02, 0x2b, 0x17, 0xfe, 0x0b, 0x01, - 0x08, 0x7f, 0x16, 0x05, 0x4d, 0x1f, 0x2e, 0xfe, 0xf8, 0xc7, 0x01, 0x04, - 0xd0, 0xbf, 0x4f, 0x2c, 0x9f, 0x92, 0xe8, 0x7b, 0x85, 0xf8, 0xcd, 0xbc, - 0x52, 0x31, 0x9c, 0x8e, 0xe0, 0x7e, 0x87, 0xde, 0xaf, 0xa4, 0x39, 0x19, - 0x88, 0x7e, 0xc0, 0x58, 0x5d, 0xe7, 0xb1, 0xa6, 0x37, 0x16, 0x8b, 0x80, - 0xc5, 0x58, 0x02, 0xe1, 0x37, 0x6c, 0x8d, 0x41, 0x1e, 0x33, 0x51, 0x4c, - 0x52, 0x6b, 0x18, 0x09, 0xfe, 0x85, 0x03, 0x8f, 0xd5, 0x15, 0x18, 0x5a, - 0x35, 0x1c, 0x1a, 0x59, 0x15, 0x1b, 0x66, 0x19, 0x0a, 0x01, 0xc3, 0x9c, - 0x8e, 0xdf, 0x7e, 0x86, 0xfe, 0xf6, 0xd1, 0xc0, 0x4c, 0x29, 0x99, 0x8c, - 0xdb, 0x83, 0x8b, 0x01, 0x04, 0xd0, 0xbf, 0x4f, 0x2d, 0x7f, 0x8d, 0x83, - 0xcb, 0x58, 0x5d, 0xdf, 0xb3, 0xa5, 0x3c, 0x1c, 0x8f, 0x86, 0xcf, 0x54, - 0x59, 0xe2, 0xb2, 0xa6, 0x3a, 0x1a, 0x00, 0x01, 0x00, 0x39, 0x05, 0x0c, - 0x02, 0x6a, 0x05, 0x9c, 0x00, 0x03, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35, - 0x02, 0x6a, 0xfd, 0xcf, 0x05, 0x9c, 0x90, 0x90, 0x00, 0x02, 0x01, 0x35, - 0x03, 0x10, 0x03, 0xa2, 0x05, 0x7d, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x00, - 0x01, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, - 0x27, 0x34, 0x36, 0x17, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, - 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x02, 0x6d, 0x80, 0x5b, 0x5a, - 0x5e, 0x5b, 0x81, 0x7c, 0x5a, 0x5b, 0x02, 0xb7, 0x81, 0x59, 0x3c, 0x2e, - 0x44, 0x36, 0x44, 0x5f, 0x3a, 0x2c, 0x45, 0x35, 0x05, 0x7d, 0x5b, 0x5b, - 0x7f, 0x84, 0x5b, 0x59, 0x5a, 0x60, 0x7e, 0x80, 0xb5, 0x75, 0x45, 0x36, - 0x45, 0x59, 0x3c, 0x2e, 0x47, 0x35, 0x47, 0x5a, 0x39, 0x2d, 0x00, 0x02, - 0x00, 0x66, 0xff, 0xe9, 0x04, 0x46, 0x04, 0xfc, 0x00, 0x0b, 0x00, 0x0f, - 0x00, 0x00, 0x01, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, 0x21, 0x11, - 0x33, 0x11, 0x01, 0x15, 0x21, 0x35, 0x04, 0x46, 0xfe, 0x58, 0x90, 0xfe, - 0x58, 0x01, 0xa8, 0x90, 0x01, 0xa8, 0xfc, 0x20, 0x03, 0x54, 0x8f, 0xfe, - 0x58, 0x01, 0xa8, 0x8f, 0x01, 0xa8, 0xfe, 0x58, 0xfd, 0x25, 0x90, 0x90, - 0x00, 0x01, 0x00, 0x27, 0x02, 0x46, 0x02, 0x9c, 0x05, 0xac, 0x00, 0x25, - 0x00, 0x00, 0x01, 0x22, 0x07, 0x06, 0x07, 0x23, 0x36, 0x37, 0x36, 0x33, - 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x0f, 0x01, 0x06, 0x07, 0x06, - 0x07, 0x21, 0x15, 0x21, 0x36, 0x37, 0x36, 0x37, 0x36, 0x3f, 0x01, 0x36, - 0x35, 0x34, 0x27, 0x26, 0x01, 0x6d, 0x8b, 0x1e, 0x07, 0x03, 0x7f, 0x08, - 0xc6, 0x2e, 0x3a, 0x96, 0x55, 0x40, 0xaa, 0x0d, 0x0e, 0x81, 0x59, 0x21, - 0x10, 0x0b, 0x01, 0xd5, 0xfd, 0x91, 0x08, 0x35, 0x34, 0x8f, 0x02, 0x02, - 0x77, 0x79, 0x43, 0x2f, 0x05, 0x3f, 0x85, 0x1c, 0x29, 0xfe, 0x2e, 0x0b, - 0x5b, 0x44, 0x63, 0x9b, 0x5f, 0x07, 0x07, 0x42, 0x2f, 0x36, 0x1a, 0x25, - 0x76, 0x96, 0x4e, 0x4c, 0x4d, 0x01, 0x01, 0x3f, 0x41, 0x61, 0x4e, 0x2d, - 0x1e, 0x00, 0x00, 0x01, 0x00, 0x21, 0x02, 0x29, 0x02, 0x93, 0x05, 0xac, - 0x00, 0x30, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06, 0x15, 0x23, 0x12, 0x37, - 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16, 0x15, 0x14, 0x07, - 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x33, 0x16, 0x17, 0x16, 0x33, 0x32, - 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23, 0x35, 0x32, 0x37, - 0x36, 0x35, 0x34, 0x27, 0x26, 0x01, 0x5a, 0x7e, 0x1d, 0x0b, 0x81, 0x06, - 0xf4, 0x16, 0x17, 0xa7, 0x4a, 0x2c, 0x75, 0x91, 0x6d, 0x53, 0x7d, 0xc8, - 0x49, 0x24, 0x7f, 0x07, 0x61, 0x22, 0x30, 0x7d, 0x2a, 0x11, 0x3f, 0x18, - 0x1f, 0x1f, 0x69, 0x99, 0x2b, 0x1e, 0x4d, 0x22, 0x05, 0x3f, 0x5d, 0x23, - 0x36, 0x01, 0x0b, 0x16, 0x02, 0x65, 0x3c, 0x55, 0x78, 0x36, 0x31, 0x9c, - 0x8d, 0x4b, 0x3a, 0x87, 0x41, 0x5b, 0x8b, 0x20, 0x0b, 0x56, 0x22, 0x2d, - 0x51, 0x29, 0x10, 0x06, 0x04, 0x68, 0x26, 0x1b, 0x3c, 0x5a, 0x22, 0x0f, - 0x00, 0x01, 0x00, 0xbc, 0x04, 0xbc, 0x02, 0x68, 0x05, 0xec, 0x00, 0x03, - 0x00, 0x00, 0x01, 0x33, 0x01, 0x23, 0x01, 0x81, 0xe7, 0xfe, 0xcf, 0x7b, - 0x05, 0xec, 0xfe, 0xd0, 0x00, 0x01, 0x00, 0x85, 0xfe, 0x3d, 0x04, 0x5a, - 0x04, 0x31, 0x00, 0x20, 0x00, 0x00, 0x25, 0x15, 0x06, 0x23, 0x22, 0x27, - 0x26, 0x27, 0x06, 0x23, 0x22, 0x27, 0x11, 0x23, 0x11, 0x33, 0x11, 0x14, - 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x11, 0x33, 0x11, 0x14, 0x17, - 0x16, 0x33, 0x32, 0x04, 0x5a, 0x44, 0x31, 0x8f, 0x1a, 0x06, 0x01, 0x78, - 0xd6, 0x6f, 0x49, 0xaa, 0xaa, 0x5a, 0x36, 0x4b, 0x93, 0x50, 0x42, 0xaa, - 0x4f, 0x06, 0x07, 0x11, 0x64, 0x81, 0x12, 0x74, 0x18, 0x1e, 0xaa, 0x35, - 0xfe, 0x37, 0x05, 0xf4, 0xfd, 0x08, 0x79, 0x39, 0x21, 0x76, 0x61, 0x94, - 0x02, 0x60, 0xfc, 0x83, 0x4d, 0x06, 0x01, 0x00, 0x00, 0x01, 0x00, 0x62, - 0xfe, 0x96, 0x04, 0x2d, 0x05, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x01, 0x26, - 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, 0x37, 0x36, 0x33, 0x21, 0x15, 0x23, - 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x02, 0x0a, 0xd1, 0x75, 0x62, 0x75, - 0x6f, 0xa8, 0x1f, 0x20, 0x02, 0x00, 0x75, 0x83, 0xa8, 0x83, 0x02, 0x12, - 0x0b, 0x98, 0x7f, 0xb5, 0xc1, 0x8b, 0x84, 0x18, 0x04, 0x83, 0xf9, 0x44, - 0x06, 0xbc, 0xf9, 0x44, 0x00, 0x01, 0x00, 0xb2, 0x02, 0x6a, 0x01, 0xb0, - 0x03, 0x6a, 0x00, 0x03, 0x00, 0x00, 0x01, 0x11, 0x23, 0x11, 0x01, 0xb0, - 0xfe, 0x03, 0x6a, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, - 0xfe, 0x4a, 0x02, 0x4c, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x13, 0x17, - 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, - 0x27, 0x37, 0x33, 0x07, 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, - 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x7b, 0x6e, 0x2e, 0x2d, 0x43, 0x1e, - 0x0d, 0x3c, 0x0f, 0x13, 0x1f, 0x21, 0x18, 0x56, 0x4e, 0x2f, 0x1a, 0x1f, - 0x7a, 0x1f, 0x09, 0x67, 0x3d, 0x58, 0x50, 0x58, 0x22, 0x36, 0xfe, 0xe1, - 0x32, 0x11, 0x2e, 0x15, 0x19, 0x3a, 0x0e, 0x04, 0x11, 0x0f, 0xbc, 0x73, - 0x04, 0x54, 0x18, 0x1d, 0x6f, 0x31, 0x1e, 0x21, 0x0d, 0x17, 0x00, 0x01, - 0x00, 0x7d, 0x02, 0x46, 0x01, 0xc7, 0x05, 0xac, 0x00, 0x0b, 0x00, 0x00, - 0x01, 0x23, 0x35, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x37, 0x33, 0x11, 0x23, - 0x01, 0x48, 0xcb, 0x1f, 0x6c, 0x4a, 0x18, 0x03, 0x02, 0x58, 0x7f, 0x04, - 0xa4, 0x5e, 0x02, 0x0a, 0x38, 0x56, 0x07, 0x09, 0xfc, 0x9a, 0x00, 0x03, - 0x00, 0x52, 0x02, 0x6d, 0x02, 0x98, 0x05, 0xf0, 0x00, 0x03, 0x00, 0x13, - 0x00, 0x23, 0x00, 0x00, 0x01, 0x15, 0x21, 0x35, 0x01, 0x32, 0x17, 0x16, - 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, - 0x17, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, - 0x35, 0x34, 0x27, 0x26, 0x02, 0x83, 0xfd, 0xe5, 0x01, 0x0d, 0xbb, 0x45, - 0x23, 0x79, 0x46, 0x64, 0xb1, 0x49, 0x29, 0x82, 0x43, 0x5e, 0x68, 0x2c, - 0x18, 0x56, 0x25, 0x31, 0x65, 0x2d, 0x1a, 0x5b, 0x23, 0x02, 0xd5, 0x68, - 0x68, 0x03, 0x1b, 0xa1, 0x51, 0x73, 0xcf, 0x58, 0x33, 0x92, 0x54, 0x7a, - 0xde, 0x55, 0x2c, 0x6b, 0x68, 0x3a, 0x52, 0xa2, 0x3a, 0x19, 0x64, 0x3a, - 0x53, 0xaa, 0x38, 0x16, 0x00, 0x02, 0x00, 0xc9, 0x00, 0xd9, 0x03, 0x9c, - 0x03, 0x81, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x00, 0x01, 0x15, 0x05, 0x35, - 0x37, 0x27, 0x35, 0x05, 0x15, 0x05, 0x35, 0x37, 0x27, 0x35, 0x02, 0x04, - 0xfe, 0xc5, 0xdd, 0xdd, 0x02, 0xd3, 0xfe, 0xc4, 0xdd, 0xdd, 0x02, 0x89, - 0xb6, 0xfa, 0xaa, 0xaa, 0xaa, 0xaa, 0xf8, 0xb6, 0xfa, 0xaa, 0xaa, 0xaa, - 0xaa, 0x00, 0x00, 0x04, 0x00, 0x7d, 0xff, 0xd7, 0x06, 0xcb, 0x05, 0xac, - 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x1a, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x23, - 0x35, 0x37, 0x3e, 0x01, 0x37, 0x36, 0x37, 0x33, 0x11, 0x23, 0x01, 0x33, - 0x01, 0x23, 0x25, 0x21, 0x35, 0x01, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, - 0x23, 0x19, 0x01, 0x01, 0x01, 0x48, 0xcb, 0x1f, 0x6c, 0x4a, 0x18, 0x03, - 0x02, 0x58, 0x7f, 0x03, 0xdd, 0x77, 0xfc, 0x62, 0x77, 0x04, 0x3c, 0xfe, - 0x7f, 0x01, 0xa1, 0x5f, 0x89, 0x89, 0x7f, 0xfe, 0xf7, 0x04, 0xa4, 0x5e, - 0x02, 0x0a, 0x38, 0x56, 0x07, 0x09, 0xfc, 0x9a, 0x03, 0x66, 0xfa, 0x2b, - 0xf6, 0x79, 0x02, 0x20, 0xfd, 0xd3, 0x6c, 0xcd, 0x01, 0x39, 0x01, 0x5d, - 0xfe, 0xa3, 0x00, 0x03, 0x00, 0x7d, 0xff, 0xd7, 0x06, 0xc1, 0x05, 0xac, - 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x35, 0x00, 0x00, 0x01, 0x23, 0x35, 0x37, - 0x3e, 0x01, 0x37, 0x36, 0x37, 0x33, 0x11, 0x23, 0x01, 0x33, 0x01, 0x23, - 0x01, 0x22, 0x07, 0x06, 0x07, 0x23, 0x12, 0x37, 0x36, 0x33, 0x32, 0x17, - 0x16, 0x15, 0x14, 0x07, 0x06, 0x0f, 0x01, 0x06, 0x07, 0x06, 0x07, 0x21, - 0x15, 0x21, 0x36, 0x37, 0x36, 0x37, 0x36, 0x3f, 0x01, 0x36, 0x35, 0x34, - 0x27, 0x26, 0x01, 0x48, 0xcb, 0x1f, 0x6c, 0x4a, 0x18, 0x03, 0x02, 0x58, - 0x7f, 0x03, 0xac, 0x76, 0xfc, 0x63, 0x77, 0x04, 0x3b, 0x8f, 0x1c, 0x05, - 0x02, 0x7f, 0x07, 0xd3, 0x2a, 0x32, 0x96, 0x55, 0x40, 0xaa, 0x0d, 0x0e, - 0x81, 0x59, 0x21, 0x10, 0x0c, 0x01, 0xd5, 0xfd, 0x92, 0x08, 0x35, 0x34, - 0x8d, 0x03, 0x03, 0x77, 0x78, 0x43, 0x2e, 0x04, 0xa4, 0x5e, 0x02, 0x0a, - 0x38, 0x56, 0x07, 0x09, 0xfc, 0x9a, 0x03, 0x66, 0xfa, 0x2b, 0x03, 0x23, - 0x8e, 0x1a, 0x23, 0x01, 0x06, 0x29, 0x08, 0x5b, 0x44, 0x63, 0x9a, 0x60, - 0x07, 0x07, 0x41, 0x2f, 0x36, 0x1a, 0x25, 0x77, 0x97, 0x4d, 0x4d, 0x4b, - 0x01, 0x02, 0x3f, 0x40, 0x62, 0x4e, 0x2d, 0x1f, 0x00, 0x04, 0x00, 0x21, - 0xff, 0xd7, 0x06, 0xcb, 0x05, 0xac, 0x00, 0x30, 0x00, 0x34, 0x00, 0x3f, - 0x00, 0x42, 0x00, 0x00, 0x01, 0x22, 0x07, 0x06, 0x15, 0x23, 0x12, 0x37, - 0x36, 0x33, 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x16, 0x15, 0x14, 0x07, - 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x33, 0x16, 0x17, 0x16, 0x33, 0x32, - 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x27, 0x26, 0x23, 0x35, 0x32, 0x37, - 0x36, 0x35, 0x34, 0x27, 0x26, 0x25, 0x33, 0x01, 0x23, 0x25, 0x21, 0x35, - 0x01, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x19, 0x01, 0x01, 0x01, - 0x5a, 0x7e, 0x1d, 0x0b, 0x81, 0x06, 0xf4, 0x16, 0x17, 0xa7, 0x4a, 0x2c, - 0x75, 0x91, 0x6d, 0x53, 0x7d, 0xc8, 0x49, 0x24, 0x7f, 0x07, 0x61, 0x22, - 0x30, 0x7d, 0x2a, 0x11, 0x3f, 0x18, 0x1f, 0x1f, 0x69, 0x99, 0x2b, 0x1e, - 0x4d, 0x22, 0x03, 0xb2, 0x77, 0xfc, 0x62, 0x76, 0x04, 0x27, 0xfe, 0x7f, - 0x01, 0xa1, 0x5f, 0x89, 0x89, 0x7f, 0xfe, 0xf7, 0x05, 0x3f, 0x5d, 0x23, - 0x36, 0x01, 0x0b, 0x16, 0x02, 0x65, 0x3c, 0x55, 0x78, 0x36, 0x31, 0x9c, - 0x8d, 0x4b, 0x3a, 0x87, 0x41, 0x5b, 0x8b, 0x20, 0x0b, 0x56, 0x22, 0x2d, - 0x51, 0x29, 0x10, 0x06, 0x04, 0x68, 0x26, 0x1b, 0x3c, 0x5a, 0x22, 0x0f, - 0x6d, 0xfa, 0x2b, 0xf6, 0x79, 0x02, 0x20, 0xfd, 0xd3, 0x6c, 0xcd, 0x01, - 0x39, 0x01, 0x5d, 0xfe, 0xa3, 0x00, 0xff, 0xff, 0x00, 0xc5, 0xfe, 0x43, - 0x04, 0x39, 0x04, 0x31, 0x10, 0x0f, 0x00, 0x23, 0x04, 0xd7, 0x04, 0x31, - 0xc0, 0x00, 0xff, 0xff, 0x00, 0x23, 0x00, 0x00, 0x05, 0x39, 0x05, 0xd5, - 0x10, 0x27, 0x00, 0xc6, 0x01, 0x58, 0x01, 0x98, 0x10, 0x06, 0x00, 0x25, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x23, 0x00, 0x00, 0x05, 0x39, 0x05, 0xd5, - 0x10, 0x27, 0x00, 0xc5, 0x01, 0x75, 0x01, 0x98, 0x10, 0x06, 0x00, 0x25, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x23, 0x00, 0x00, 0x05, 0x39, 0x05, 0xd5, - 0x10, 0x27, 0x00, 0xc4, 0x01, 0x60, 0x01, 0x98, 0x10, 0x06, 0x00, 0x25, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x23, 0x00, 0x00, 0x05, 0x39, 0x05, 0xd5, - 0x10, 0x27, 0x00, 0xc8, 0x01, 0x66, 0x01, 0x81, 0x10, 0x06, 0x00, 0x25, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x23, 0x00, 0x00, 0x05, 0x39, 0x07, 0x3b, - 0x10, 0x27, 0x00, 0x6b, 0x01, 0x64, 0x01, 0x83, 0x10, 0x06, 0x00, 0x25, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x23, 0x00, 0x00, 0x05, 0x39, 0x05, 0xd5, - 0x10, 0x27, 0x00, 0xc7, 0x01, 0x58, 0x01, 0x98, 0x10, 0x06, 0x00, 0x25, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x07, 0x9a, 0x05, 0xd5, - 0x00, 0x0f, 0x00, 0x13, 0x00, 0x00, 0x01, 0x21, 0x03, 0x23, 0x01, 0x21, - 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x19, 0x01, - 0x23, 0x01, 0x03, 0xbe, 0xfd, 0xda, 0xaf, 0xd2, 0x02, 0x64, 0x04, 0xfa, - 0xfd, 0x08, 0x02, 0xd1, 0xfd, 0x2f, 0x03, 0x1d, 0xfc, 0x24, 0xcc, 0xfe, - 0xe5, 0x01, 0xb6, 0xfe, 0x4a, 0x05, 0xd5, 0xa8, 0xfe, 0x23, 0xa8, 0xfe, - 0x00, 0xa8, 0x02, 0x5e, 0x02, 0xcf, 0xfd, 0x31, 0x00, 0x01, 0x00, 0x62, - 0xfe, 0x4a, 0x05, 0x6a, 0x05, 0xee, 0x00, 0x46, 0x00, 0x00, 0x25, 0x32, - 0x37, 0x36, 0x37, 0x33, 0x02, 0x05, 0x06, 0x23, 0x07, 0x36, 0x33, 0x32, - 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x37, - 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, - 0x07, 0x27, 0x37, 0x26, 0x27, 0x26, 0x27, 0x26, 0x27, 0x26, 0x35, 0x34, - 0x37, 0x12, 0x25, 0x36, 0x33, 0x20, 0x13, 0x16, 0x17, 0x23, 0x26, 0x27, - 0x26, 0x23, 0x22, 0x07, 0x06, 0x11, 0x10, 0x17, 0x16, 0x03, 0x06, 0xdf, - 0x66, 0x3f, 0x1c, 0xc4, 0x3f, 0xfe, 0x31, 0x29, 0x2b, 0x1a, 0x1a, 0x1f, - 0x7a, 0x1f, 0x09, 0x65, 0x3e, 0x59, 0x53, 0x5d, 0x21, 0x2f, 0x2b, 0x68, - 0x32, 0x2f, 0x43, 0x1e, 0x0d, 0x3c, 0x0f, 0x13, 0x1f, 0x21, 0x16, 0x3f, - 0x9a, 0x4f, 0x21, 0x27, 0xb7, 0x49, 0x27, 0x65, 0x92, 0x01, 0x3a, 0x3a, - 0x3f, 0x01, 0xa2, 0x7c, 0x15, 0x0d, 0xc3, 0x2d, 0xa3, 0x50, 0x71, 0xe0, - 0x7e, 0x79, 0x91, 0x82, 0x77, 0x9d, 0x61, 0xac, 0xfd, 0xe0, 0x2c, 0x04, - 0x44, 0x04, 0x54, 0x18, 0x1d, 0x6d, 0x32, 0x1f, 0x24, 0x0c, 0x15, 0x52, - 0x30, 0x13, 0x2e, 0x15, 0x19, 0x3a, 0x0e, 0x04, 0x11, 0x0f, 0x8d, 0x16, - 0x28, 0x11, 0x1b, 0x84, 0xfc, 0x86, 0x98, 0xfc, 0xc5, 0x01, 0x1d, 0x2e, - 0x09, 0xfe, 0x9b, 0x3c, 0x47, 0xdd, 0x42, 0x21, 0xae, 0xa5, 0xfe, 0xe8, - 0xfe, 0xd6, 0xa6, 0x94, 0xff, 0xff, 0x00, 0xb8, 0x00, 0x00, 0x04, 0xe7, - 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc6, 0x01, 0x7b, 0x01, 0x98, 0x10, 0x06, - 0x00, 0x29, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb8, 0x00, 0x00, 0x04, 0xe7, - 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc5, 0x01, 0x6d, 0x01, 0x98, 0x10, 0x06, - 0x00, 0x29, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb8, 0x00, 0x00, 0x04, 0xe7, - 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc4, 0x01, 0x73, 0x01, 0x96, 0x10, 0x06, - 0x00, 0x29, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb8, 0x00, 0x00, 0x04, 0xe7, - 0x07, 0x3b, 0x10, 0x27, 0x00, 0x6b, 0x01, 0x71, 0x01, 0x83, 0x10, 0x06, - 0x00, 0x29, 0x00, 0x00, 0xff, 0xff, 0x00, 0xcd, 0x00, 0x00, 0x01, 0x8d, - 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc6, 0xff, 0xd3, 0x01, 0x98, 0x10, 0x06, - 0x00, 0x2d, 0x00, 0x00, 0xff, 0xff, 0x00, 0xcd, 0x00, 0x00, 0x01, 0x8d, - 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc5, 0xff, 0xd5, 0x01, 0x98, 0x10, 0x06, - 0x00, 0x2d, 0x00, 0x00, 0xff, 0xff, 0x00, 0xcd, 0x00, 0x00, 0x01, 0x8d, - 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc4, 0xff, 0xd5, 0x01, 0x98, 0x10, 0x06, - 0x00, 0x2d, 0x00, 0x00, 0xff, 0xff, 0x00, 0x1c, 0x00, 0x00, 0x02, 0x3d, - 0x07, 0x3b, 0x10, 0x27, 0x00, 0x6b, 0xff, 0xdf, 0x01, 0x83, 0x10, 0x06, - 0x00, 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x29, 0x00, 0x00, 0x05, 0x56, - 0x05, 0xd5, 0x00, 0x0e, 0x00, 0x1d, 0x00, 0x00, 0x13, 0x23, 0x35, 0x33, - 0x11, 0x21, 0x20, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x29, 0x01, 0x13, - 0x11, 0x21, 0x20, 0x13, 0x36, 0x35, 0x10, 0x27, 0x26, 0x23, 0x21, 0x11, - 0x21, 0x15, 0xb6, 0x8d, 0x8d, 0x02, 0x42, 0x01, 0x19, 0xa2, 0xa3, 0xb0, - 0xa1, 0xfe, 0xf3, 0xfd, 0xbe, 0xbf, 0x01, 0x62, 0x01, 0x37, 0x61, 0x29, - 0xf2, 0x58, 0x77, 0xfe, 0x9e, 0x01, 0x5e, 0x02, 0xb6, 0x89, 0x02, 0x96, - 0xc6, 0xc7, 0xfe, 0xa4, 0xfe, 0x93, 0xc9, 0xb6, 0x02, 0xb6, 0xfd, 0xf2, - 0x01, 0x20, 0x7a, 0xaa, 0x01, 0xa0, 0x76, 0x2b, 0xfe, 0x12, 0x89, 0x00, - 0xff, 0xff, 0x00, 0x9c, 0x00, 0x00, 0x05, 0x2b, 0x05, 0xd5, 0x10, 0x27, - 0x00, 0xc8, 0x01, 0x98, 0x01, 0x81, 0x10, 0x06, 0x00, 0x32, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x4e, 0xff, 0xd1, 0x05, 0xf0, 0x05, 0xee, 0x10, 0x27, - 0x00, 0xc6, 0x01, 0xcb, 0x01, 0x98, 0x10, 0x06, 0x00, 0x33, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x4e, 0xff, 0xd1, 0x05, 0xf0, 0x05, 0xee, 0x10, 0x27, - 0x00, 0xc5, 0x01, 0xd5, 0x01, 0x98, 0x10, 0x06, 0x00, 0x33, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x4e, 0xff, 0xd1, 0x05, 0xf0, 0x05, 0xee, 0x10, 0x27, - 0x00, 0xc4, 0x01, 0xd1, 0x01, 0x98, 0x10, 0x06, 0x00, 0x33, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x4e, 0xff, 0xd1, 0x05, 0xf0, 0x05, 0xee, 0x10, 0x27, - 0x00, 0xc8, 0x01, 0xd1, 0x01, 0x81, 0x10, 0x06, 0x00, 0x33, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x4e, 0xff, 0xd1, 0x05, 0xf0, 0x07, 0x3b, 0x10, 0x27, - 0x00, 0x6b, 0x01, 0xcf, 0x01, 0x83, 0x10, 0x06, 0x00, 0x33, 0x00, 0x00, - 0x00, 0x01, 0x00, 0xc3, 0x00, 0x46, 0x03, 0xe7, 0x03, 0x6a, 0x00, 0x0b, - 0x00, 0x00, 0x01, 0x17, 0x09, 0x01, 0x07, 0x09, 0x01, 0x27, 0x09, 0x01, - 0x37, 0x01, 0x03, 0x81, 0x64, 0xfe, 0xd5, 0x01, 0x2d, 0x66, 0xfe, 0xd3, - 0xfe, 0xd5, 0x66, 0x01, 0x2d, 0xfe, 0xd5, 0x64, 0x01, 0x2b, 0x03, 0x6a, - 0x66, 0xfe, 0xd5, 0xfe, 0xd3, 0x66, 0x01, 0x2d, 0xfe, 0xd5, 0x64, 0x01, - 0x2d, 0x01, 0x2b, 0x64, 0xfe, 0xd7, 0x00, 0x03, 0x00, 0x3d, 0xff, 0xd1, - 0x05, 0xf4, 0x06, 0x0a, 0x00, 0x1b, 0x00, 0x26, 0x00, 0x31, 0x00, 0x00, - 0x3f, 0x01, 0x26, 0x11, 0x10, 0x37, 0x36, 0x25, 0x36, 0x33, 0x20, 0x17, - 0x37, 0x17, 0x07, 0x16, 0x13, 0x16, 0x15, 0x10, 0x07, 0x06, 0x05, 0x06, - 0x23, 0x20, 0x27, 0x07, 0x13, 0x01, 0x26, 0x23, 0x22, 0x07, 0x06, 0x03, - 0x06, 0x15, 0x14, 0x09, 0x01, 0x16, 0x33, 0x32, 0x37, 0x36, 0x13, 0x36, - 0x35, 0x34, 0x3d, 0xa6, 0x9b, 0xa8, 0x9e, 0x01, 0x05, 0x41, 0x45, 0x01, - 0x17, 0xc0, 0xb2, 0x52, 0xb7, 0x92, 0x16, 0x04, 0xa8, 0x9e, 0xfe, 0xfb, - 0x40, 0x45, 0xfe, 0xd9, 0xc7, 0x9e, 0xd7, 0x03, 0x13, 0x97, 0xc7, 0xe4, - 0x90, 0x94, 0x0a, 0x01, 0x03, 0xb8, 0xfc, 0xe8, 0x97, 0xdc, 0xe2, 0x91, - 0x93, 0x0b, 0x01, 0x27, 0xb6, 0xdb, 0x01, 0x29, 0x01, 0x3e, 0xd2, 0xc7, - 0x2b, 0x0b, 0xa6, 0xc2, 0x49, 0xc7, 0xb7, 0xfe, 0xf1, 0x2b, 0x2c, 0xfe, - 0xc2, 0xd2, 0xc6, 0x2b, 0x0b, 0xb8, 0xac, 0x01, 0x8b, 0x03, 0x5b, 0x83, - 0x9b, 0x9e, 0xfe, 0xf8, 0x12, 0x12, 0xd4, 0x02, 0x62, 0xfc, 0xa1, 0x97, - 0x9a, 0x9e, 0x01, 0x06, 0x13, 0x13, 0xea, 0x00, 0xff, 0xff, 0x00, 0xae, - 0xff, 0xd1, 0x05, 0x29, 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc6, 0x01, 0x98, - 0x01, 0x98, 0x10, 0x06, 0x00, 0x39, 0x00, 0x00, 0xff, 0xff, 0x00, 0xae, - 0xff, 0xd1, 0x05, 0x29, 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc5, 0x01, 0x98, - 0x01, 0x98, 0x10, 0x06, 0x00, 0x39, 0x00, 0x00, 0xff, 0xff, 0x00, 0xae, - 0xff, 0xd1, 0x05, 0x29, 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc4, 0x01, 0x9e, - 0x01, 0x96, 0x10, 0x06, 0x00, 0x39, 0x00, 0x00, 0xff, 0xff, 0x00, 0xae, - 0xff, 0xd1, 0x05, 0x29, 0x07, 0x3b, 0x10, 0x27, 0x00, 0x6b, 0x01, 0x9e, - 0x01, 0x83, 0x10, 0x06, 0x00, 0x39, 0x00, 0x00, 0xff, 0xff, 0x00, 0x1b, - 0x00, 0x00, 0x05, 0x4a, 0x05, 0xd5, 0x10, 0x27, 0x00, 0xc5, 0x01, 0x6a, - 0x01, 0x98, 0x10, 0x06, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0xba, - 0x00, 0x00, 0x04, 0xee, 0x05, 0xd5, 0x00, 0x0e, 0x00, 0x19, 0x00, 0x00, - 0x01, 0x11, 0x23, 0x11, 0x33, 0x15, 0x21, 0x32, 0x17, 0x16, 0x15, 0x14, - 0x07, 0x06, 0x23, 0x25, 0x21, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, - 0x23, 0x21, 0x01, 0x79, 0xbf, 0xbf, 0x01, 0xaa, 0xf0, 0x7b, 0x60, 0x77, - 0x74, 0xb5, 0xfe, 0x2b, 0x01, 0x8d, 0xae, 0x47, 0x26, 0x77, 0x43, 0x61, - 0xfe, 0x73, 0x01, 0x83, 0xfe, 0x7d, 0x05, 0xd5, 0xf6, 0x90, 0x71, 0xb1, - 0xbd, 0x78, 0x75, 0xa8, 0x72, 0x3e, 0x56, 0x9e, 0x43, 0x25, 0x00, 0x01, - 0x00, 0x89, 0xff, 0xe1, 0x04, 0x91, 0x05, 0xd3, 0x00, 0x31, 0x00, 0x00, - 0x01, 0x20, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, - 0x15, 0x11, 0x23, 0x11, 0x34, 0x37, 0x36, 0x33, 0x20, 0x17, 0x16, 0x15, - 0x14, 0x07, 0x06, 0x07, 0x16, 0x17, 0x16, 0x15, 0x10, 0x07, 0x06, 0x23, - 0x22, 0x27, 0x35, 0x16, 0x33, 0x20, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, - 0x2b, 0x01, 0x02, 0x5a, 0x01, 0x0e, 0x29, 0x07, 0x71, 0x4e, 0x79, 0xd1, - 0x39, 0x19, 0xb4, 0x8b, 0x7d, 0xd1, 0x01, 0x00, 0x85, 0x65, 0x97, 0x03, - 0x0e, 0x71, 0x46, 0x36, 0xdf, 0x79, 0xac, 0x31, 0x3b, 0x2d, 0x2d, 0x01, - 0x23, 0x30, 0x09, 0xec, 0x32, 0x3e, 0x21, 0x03, 0x6a, 0xac, 0x1c, 0x20, - 0x7e, 0x3d, 0x2a, 0x87, 0x3c, 0x60, 0xfb, 0xec, 0x04, 0x42, 0xc2, 0x6d, - 0x62, 0x7e, 0x60, 0x93, 0xbe, 0x66, 0x02, 0x09, 0x1f, 0x7a, 0x5e, 0x5d, - 0xfe, 0xbf, 0x7b, 0x42, 0x0f, 0x99, 0x06, 0xda, 0x29, 0x30, 0xef, 0x27, - 0x09, 0x00, 0xff, 0xff, 0x00, 0x56, 0xff, 0xd1, 0x04, 0x48, 0x04, 0x50, - 0x10, 0x27, 0x00, 0xc6, 0x00, 0xec, 0x00, 0x00, 0x10, 0x06, 0x00, 0x45, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x56, 0xff, 0xd1, 0x04, 0x48, 0x04, 0x50, - 0x10, 0x27, 0x00, 0xc5, 0x00, 0xec, 0xff, 0xfe, 0x10, 0x06, 0x00, 0x45, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x56, 0xff, 0xd1, 0x04, 0x48, 0x04, 0x50, - 0x10, 0x27, 0x00, 0xc4, 0x00, 0xe5, 0x00, 0x00, 0x10, 0x06, 0x00, 0x45, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x56, 0xff, 0xd1, 0x04, 0x48, 0x04, 0x50, - 0x10, 0x27, 0x00, 0xc8, 0x00, 0xe7, 0xff, 0xe3, 0x10, 0x06, 0x00, 0x45, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x56, 0xff, 0xd1, 0x04, 0x48, 0x05, 0x9d, - 0x10, 0x27, 0x00, 0x6b, 0x00, 0xe5, 0xff, 0xe5, 0x10, 0x06, 0x00, 0x45, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x56, 0xff, 0xd1, 0x04, 0x48, 0x04, 0x50, - 0x10, 0x27, 0x00, 0xc7, 0x00, 0xdd, 0x00, 0x00, 0x10, 0x06, 0x00, 0x45, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x46, 0xff, 0xd1, 0x06, 0xc3, 0x04, 0x50, - 0x00, 0x3c, 0x00, 0x4d, 0x00, 0x56, 0x00, 0x00, 0x01, 0x16, 0x17, 0x16, - 0x33, 0x32, 0x37, 0x33, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x2f, - 0x01, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x35, 0x34, 0x37, 0x36, - 0x25, 0x36, 0x33, 0x36, 0x37, 0x36, 0x3d, 0x01, 0x34, 0x27, 0x26, 0x23, - 0x22, 0x07, 0x06, 0x07, 0x23, 0x12, 0x25, 0x36, 0x33, 0x20, 0x17, 0x36, - 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, 0x17, 0x16, 0x15, 0x01, 0x32, 0x37, - 0x36, 0x37, 0x36, 0x3d, 0x01, 0x06, 0x07, 0x06, 0x07, 0x06, 0x15, 0x14, - 0x17, 0x16, 0x01, 0x21, 0x34, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x03, - 0xac, 0x05, 0xa7, 0x41, 0x4e, 0xd1, 0x4a, 0xac, 0x26, 0x9f, 0x6e, 0x96, - 0xb7, 0x77, 0x24, 0x1a, 0x21, 0xa2, 0x97, 0x3d, 0x44, 0xb3, 0x5e, 0x47, - 0x98, 0x70, 0x01, 0x02, 0x05, 0x05, 0x7e, 0x20, 0x14, 0xa4, 0x23, 0x2a, - 0xb7, 0x31, 0x0d, 0x05, 0xac, 0x0a, 0x01, 0x20, 0x3a, 0x46, 0x01, 0x07, - 0x5f, 0x51, 0x96, 0x3c, 0x3f, 0xc0, 0x83, 0x48, 0x26, 0x2b, 0xfb, 0x02, - 0x9e, 0x6a, 0x36, 0x08, 0x01, 0x43, 0x9f, 0x94, 0x37, 0x67, 0x5b, 0x30, - 0x02, 0x2d, 0x02, 0x5a, 0x63, 0x4f, 0x75, 0x93, 0x56, 0x41, 0x01, 0xdf, - 0xfe, 0x52, 0x20, 0xd7, 0xcf, 0x62, 0x44, 0x65, 0x1f, 0x26, 0x37, 0xa8, - 0x29, 0x10, 0x6e, 0x53, 0x7c, 0xbc, 0x50, 0x3b, 0x17, 0x01, 0x0b, 0x27, - 0x18, 0x2e, 0x2d, 0x82, 0x19, 0x05, 0x73, 0x20, 0x2b, 0x01, 0x1e, 0x34, - 0x0a, 0xa8, 0x72, 0x27, 0x0f, 0x79, 0x44, 0x5e, 0x73, 0xe3, 0xfe, 0x87, - 0x6f, 0x38, 0x2d, 0x05, 0x03, 0xce, 0x1d, 0x17, 0x16, 0x18, 0x2e, 0x6e, - 0x69, 0x2c, 0x17, 0x02, 0x04, 0xa2, 0x5c, 0x4a, 0x72, 0x55, 0x00, 0x01, - 0x00, 0x3f, 0xfe, 0x4a, 0x03, 0xd1, 0x04, 0x50, 0x00, 0x3e, 0x00, 0x00, - 0x05, 0x24, 0x03, 0x26, 0x35, 0x10, 0x37, 0x36, 0x33, 0x32, 0x17, 0x16, - 0x17, 0x23, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, - 0x16, 0x33, 0x32, 0x13, 0x33, 0x06, 0x07, 0x06, 0x23, 0x07, 0x36, 0x33, - 0x32, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, - 0x37, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, 0x34, 0x27, 0x26, 0x23, - 0x22, 0x07, 0x27, 0x01, 0xcd, 0xfe, 0xf2, 0x59, 0x27, 0x8b, 0x82, 0xd1, - 0xf3, 0x6d, 0x3d, 0x0b, 0xac, 0x18, 0x83, 0x2c, 0x37, 0xa5, 0x4e, 0x36, - 0x7a, 0x49, 0x6a, 0xda, 0x2c, 0xac, 0x0c, 0x8b, 0x72, 0xab, 0x1b, 0x1d, - 0x1c, 0x77, 0x21, 0x0a, 0x67, 0x3d, 0x58, 0x4f, 0x53, 0x24, 0x3a, 0x2b, - 0x69, 0x31, 0x2f, 0x42, 0x1f, 0x0e, 0x3d, 0x0f, 0x13, 0x20, 0x1f, 0x19, - 0x2b, 0x32, 0x01, 0x05, 0x70, 0x8a, 0x01, 0x14, 0xa1, 0x95, 0xa5, 0x5c, - 0x86, 0xa9, 0x30, 0x10, 0x9b, 0x6c, 0xa7, 0xf0, 0x69, 0x3e, 0x01, 0x04, - 0xd3, 0x71, 0x5c, 0x44, 0x04, 0x51, 0x19, 0x1f, 0x6f, 0x31, 0x1e, 0x1e, - 0x0c, 0x19, 0x54, 0x30, 0x13, 0x2e, 0x15, 0x19, 0x3a, 0x0e, 0x04, 0x11, - 0x0f, 0x00, 0xff, 0xff, 0x00, 0x52, 0xff, 0xd1, 0x04, 0x1b, 0x04, 0x50, - 0x10, 0x27, 0x00, 0xc6, 0x00, 0xf2, 0x00, 0x00, 0x10, 0x06, 0x00, 0x49, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x52, 0xff, 0xd1, 0x04, 0x1b, 0x04, 0x50, - 0x10, 0x27, 0x00, 0xc5, 0x00, 0xf6, 0xff, 0xfe, 0x10, 0x06, 0x00, 0x49, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x52, 0xff, 0xd1, 0x04, 0x1b, 0x04, 0x50, - 0x10, 0x27, 0x00, 0xc4, 0x00, 0xfc, 0x00, 0x02, 0x10, 0x06, 0x00, 0x49, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x52, 0xff, 0xd1, 0x04, 0x1b, 0x05, 0x9d, - 0x10, 0x27, 0x00, 0x6b, 0x00, 0xf0, 0xff, 0xe5, 0x10, 0x06, 0x00, 0x49, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x26, 0x00, 0xc6, 0xcb, 0xfc, 0x10, 0x06, 0x00, 0xc3, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x26, - 0x00, 0xc5, 0xc9, 0xfe, 0x10, 0x06, 0x00, 0xc3, 0x00, 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x26, 0x00, 0xc4, - 0xc9, 0x00, 0x10, 0x06, 0x00, 0xc3, 0x00, 0x00, 0xff, 0xff, 0x00, 0x06, - 0x04, 0xca, 0x02, 0x27, 0x05, 0x9d, 0x10, 0x26, 0x00, 0x6b, 0xc9, 0xe5, - 0x10, 0x06, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x4a, 0xff, 0xd1, - 0x04, 0x14, 0x05, 0xf2, 0x00, 0x24, 0x00, 0x34, 0x00, 0x00, 0x13, 0x10, - 0x37, 0x36, 0x33, 0x32, 0x17, 0x26, 0x27, 0x26, 0x27, 0x07, 0x27, 0x37, - 0x26, 0x27, 0x26, 0x27, 0x37, 0x16, 0x17, 0x16, 0x17, 0x37, 0x17, 0x07, - 0x16, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23, 0x20, 0x27, 0x26, 0x01, - 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, - 0x34, 0x27, 0x26, 0x4a, 0xc7, 0x6d, 0x8a, 0x33, 0x4e, 0x48, 0x64, 0x0b, - 0x11, 0xc7, 0x4a, 0xae, 0x38, 0x64, 0x05, 0x07, 0x5a, 0x45, 0x5f, 0x19, - 0x27, 0xc6, 0x52, 0xb8, 0x99, 0x57, 0xd0, 0xb7, 0x77, 0xb7, 0xfe, 0xf3, - 0x7d, 0x5b, 0x01, 0xe5, 0x9f, 0x53, 0x41, 0x75, 0x4c, 0x72, 0x9d, 0x53, - 0x43, 0x7e, 0x4a, 0x02, 0x10, 0x01, 0x5d, 0x90, 0x4f, 0x1b, 0x4a, 0x54, - 0x09, 0x0f, 0x5c, 0x50, 0x52, 0x2b, 0x39, 0x03, 0x04, 0x5a, 0x1d, 0x3b, - 0x10, 0x19, 0x5c, 0x4c, 0x54, 0x75, 0x6a, 0xfb, 0xfe, 0xbf, 0xfe, 0xb1, - 0x92, 0x60, 0xc7, 0x91, 0x02, 0x89, 0x8a, 0x6d, 0xab, 0xea, 0x6e, 0x49, - 0x86, 0x6c, 0xa9, 0xfd, 0x6c, 0x3f, 0xff, 0xff, 0x00, 0x8f, 0x00, 0x00, - 0x03, 0xe5, 0x04, 0x50, 0x10, 0x27, 0x00, 0xc8, 0x00, 0xee, 0xff, 0xe3, - 0x10, 0x06, 0x00, 0x52, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4a, 0xff, 0xd1, - 0x04, 0x14, 0x04, 0x50, 0x10, 0x27, 0x00, 0xc6, 0x00, 0xdf, 0x00, 0x02, - 0x10, 0x06, 0x00, 0x53, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4a, 0xff, 0xd1, - 0x04, 0x14, 0x04, 0x50, 0x10, 0x27, 0x00, 0xc5, 0x00, 0xe1, 0x00, 0x00, - 0x10, 0x06, 0x00, 0x53, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4a, 0xff, 0xd1, - 0x04, 0x14, 0x04, 0x50, 0x10, 0x27, 0x00, 0xc4, 0x00, 0xe1, 0x00, 0x02, - 0x10, 0x06, 0x00, 0x53, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4a, 0xff, 0xd1, - 0x04, 0x14, 0x04, 0x50, 0x10, 0x27, 0x00, 0xc8, 0x00, 0xe1, 0xff, 0xe3, - 0x10, 0x06, 0x00, 0x53, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4a, 0xff, 0xd1, - 0x04, 0x14, 0x05, 0x9d, 0x10, 0x27, 0x00, 0x6b, 0x00, 0xdf, 0xff, 0xe5, - 0x10, 0x06, 0x00, 0x53, 0x00, 0x00, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, - 0x04, 0x46, 0x03, 0xc7, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, - 0x01, 0x15, 0x21, 0x35, 0x01, 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, - 0x04, 0x46, 0xfc, 0x20, 0x02, 0x5b, 0xd5, 0xd5, 0xd5, 0x02, 0x2b, 0x8f, - 0x8f, 0xfe, 0xaa, 0xd5, 0xd5, 0x02, 0xf2, 0xd5, 0xd5, 0x00, 0x00, 0x03, - 0x00, 0x25, 0xff, 0xc3, 0x04, 0x3b, 0x04, 0x50, 0x00, 0x17, 0x00, 0x20, - 0x00, 0x2b, 0x00, 0x00, 0x01, 0x07, 0x16, 0x15, 0x10, 0x07, 0x06, 0x23, - 0x22, 0x27, 0x07, 0x27, 0x37, 0x26, 0x35, 0x10, 0x37, 0x36, 0x33, 0x32, - 0x17, 0x16, 0x17, 0x37, 0x03, 0x01, 0x16, 0x33, 0x32, 0x37, 0x36, 0x35, - 0x34, 0x09, 0x01, 0x26, 0x27, 0x26, 0x23, 0x22, 0x07, 0x06, 0x15, 0x14, - 0x04, 0x3b, 0x81, 0x5a, 0xa1, 0x7c, 0xc6, 0xd2, 0x7c, 0x7d, 0x41, 0x87, - 0x62, 0xa1, 0x7d, 0xc7, 0xc6, 0x81, 0x07, 0x06, 0x77, 0xbd, 0xfe, 0x19, - 0x58, 0x81, 0xa3, 0x52, 0x3e, 0xfd, 0xc5, 0x01, 0xe9, 0x49, 0x79, 0x0f, - 0x10, 0x9f, 0x53, 0x41, 0x04, 0x17, 0x92, 0x94, 0xe1, 0xfe, 0xce, 0x98, - 0x75, 0x7f, 0x8d, 0x39, 0x97, 0x92, 0xeb, 0x01, 0x31, 0x98, 0x77, 0x78, - 0x07, 0x06, 0x85, 0xfe, 0xa8, 0xfd, 0xd9, 0x62, 0x8e, 0x6b, 0xa8, 0x89, - 0xfe, 0x88, 0x02, 0x27, 0x5c, 0x0c, 0x02, 0x8a, 0x6d, 0xab, 0x8c, 0x00, - 0xff, 0xff, 0x00, 0x85, 0xff, 0xd1, 0x03, 0xdb, 0x04, 0x31, 0x10, 0x27, - 0x00, 0xc6, 0x00, 0xdd, 0xff, 0xfe, 0x10, 0x06, 0x00, 0x59, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x85, 0xff, 0xd1, 0x03, 0xdb, 0x04, 0x31, 0x10, 0x27, - 0x00, 0xc5, 0x00, 0xdd, 0x00, 0x00, 0x10, 0x06, 0x00, 0x59, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x85, 0xff, 0xd1, 0x03, 0xdb, 0x04, 0x31, 0x10, 0x27, - 0x00, 0xc4, 0x00, 0xe3, 0x00, 0x02, 0x10, 0x06, 0x00, 0x59, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x85, 0xff, 0xd1, 0x03, 0xdb, 0x05, 0x9d, 0x10, 0x27, - 0x00, 0x6b, 0x00, 0xe1, 0xff, 0xe5, 0x10, 0x06, 0x00, 0x59, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x29, 0xfe, 0x42, 0x03, 0xd3, 0x04, 0x31, 0x10, 0x27, - 0x00, 0xc5, 0x00, 0xa6, 0xff, 0xfe, 0x10, 0x06, 0x00, 0x5d, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x6f, 0xfe, 0x42, 0x04, 0x2d, 0x05, 0xb6, 0x00, 0x14, - 0x00, 0x24, 0x00, 0x00, 0x13, 0x11, 0x33, 0x11, 0x36, 0x37, 0x36, 0x33, - 0x32, 0x17, 0x16, 0x11, 0x10, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, - 0x11, 0x01, 0x22, 0x07, 0x06, 0x15, 0x14, 0x17, 0x16, 0x33, 0x32, 0x37, - 0x36, 0x35, 0x34, 0x27, 0x26, 0x6f, 0xaa, 0x59, 0x9f, 0x27, 0x2a, 0xd0, - 0x7c, 0x7f, 0x88, 0x7c, 0xc7, 0xa9, 0x72, 0x17, 0x17, 0x01, 0x2b, 0x91, - 0x53, 0x47, 0x6b, 0x4d, 0x73, 0x91, 0x57, 0x4f, 0x6d, 0x51, 0xfe, 0x42, - 0x07, 0x74, 0xfd, 0xf6, 0x7f, 0x1e, 0x07, 0x9d, 0xa0, 0xfe, 0xf3, 0xfe, - 0xf5, 0x9c, 0x8e, 0x6d, 0x17, 0x1c, 0xfd, 0xd1, 0x05, 0x6e, 0x81, 0x6f, - 0xb0, 0xdb, 0x72, 0x52, 0x7a, 0x70, 0xaf, 0xdc, 0x73, 0x57, 0xff, 0xff, - 0x00, 0x29, 0xfe, 0x42, 0x03, 0xd3, 0x05, 0x9d, 0x10, 0x27, 0x00, 0x6b, - 0x00, 0xb0, 0xff, 0xe5, 0x10, 0x06, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x01, 0x9e, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x9c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0c, 0x00, 0xb7, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x4a, 0x00, 0xcc, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x12, 0x01, 0x3e, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x34, 0x01, 0x5c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x01, 0xad, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x8c, 0x01, 0xc8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x48, 0x02, 0x9d, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x58, 0x03, 0x0c, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x68, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0xae, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0xc5, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x25, 0x01, 0x18, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x09, 0x01, 0x52, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x1a, 0x01, 0x92, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x01, 0xbf, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x46, 0x02, 0x56, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x24, 0x02, 0xe7, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x2c, 0x03, 0x66, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x01, 0x00, 0x10, 0x00, 0x9c, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x02, 0x00, 0x0c, 0x00, 0xb7, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x03, 0x00, 0x4a, 0x00, 0xcc, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x04, 0x00, 0x12, 0x01, 0x3e, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x34, 0x01, 0x5c, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, 0x00, 0x10, 0x01, 0xad, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x0d, 0x00, 0x8c, 0x01, 0xc8, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x0e, 0x00, 0x48, 0x02, 0x9d, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x09, 0x00, 0x13, 0x00, 0x58, 0x03, 0x0c, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x24, 0x00, 0x02, 0x00, 0x0e, 0x03, 0x93, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x24, 0x00, 0x0d, 0x00, 0x86, 0x03, 0xa3, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x24, 0x00, 0x0e, 0x00, 0x48, 0x04, 0x2b, 0x00, 0x03, - 0x00, 0x01, 0x04, 0x24, 0x00, 0x13, 0x00, 0x54, 0x04, 0x75, 0x00, 0x43, - 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x66, - 0x00, 0x74, 0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x32, - 0x00, 0x2c, 0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x33, - 0x00, 0x2c, 0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x35, - 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x20, - 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x77, 0x00, 0x61, - 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x75, - 0x00, 0x6e, 0x00, 0x64, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, - 0x00, 0x6e, 0x00, 0x2e, 0x00, 0x00, 0x43, 0x6f, 0x70, 0x79, 0x6c, 0x65, - 0x66, 0x74, 0x20, 0x32, 0x30, 0x30, 0x32, 0x2c, 0x20, 0x32, 0x30, 0x30, - 0x33, 0x2c, 0x20, 0x32, 0x30, 0x30, 0x35, 0x20, 0x46, 0x72, 0x65, 0x65, - 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x00, 0x00, 0x46, - 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, 0x00, 0x53, 0x00, 0x61, 0x00, 0x6e, - 0x00, 0x73, 0x00, 0x00, 0x46, 0x72, 0x65, 0x65, 0x53, 0x61, 0x6e, 0x73, - 0x00, 0x00, 0x4d, 0x00, 0x65, 0x00, 0x64, 0x00, 0x69, 0x00, 0x75, 0x00, - 0x6d, 0x00, 0x00, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x00, 0x00, 0x46, - 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x72, - 0x00, 0x67, 0x00, 0x65, 0x00, 0x20, 0x00, 0x31, 0x00, 0x2e, 0x00, 0x30, - 0x00, 0x20, 0x00, 0x3a, 0x00, 0x20, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, - 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x73, - 0x00, 0x20, 0x00, 0x3a, 0x00, 0x20, 0x00, 0x32, 0x00, 0x36, 0x00, 0x2d, - 0x00, 0x31, 0x00, 0x2d, 0x00, 0x32, 0x00, 0x30, 0x00, 0x30, 0x00, 0x36, - 0x00, 0x00, 0x46, 0x6f, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x20, - 0x31, 0x2e, 0x30, 0x20, 0x3a, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, 0x53, - 0x61, 0x6e, 0x73, 0x20, 0x3a, 0x20, 0x32, 0x36, 0x2d, 0x31, 0x2d, 0x32, - 0x30, 0x30, 0x36, 0x00, 0x00, 0x46, 0x00, 0x72, 0x00, 0x65, 0x00, 0x65, - 0x00, 0x20, 0x00, 0x53, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x00, - 0x46, 0x72, 0x65, 0x65, 0x20, 0x53, 0x61, 0x6e, 0x73, 0x00, 0x00, 0x56, - 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, - 0x00, 0x20, 0x00, 0x24, 0x00, 0x52, 0x00, 0x65, 0x00, 0x76, 0x00, 0x69, - 0x00, 0x73, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x3a, 0x00, 0x20, - 0x00, 0x31, 0x00, 0x2e, 0x00, 0x37, 0x00, 0x36, 0x00, 0x20, 0x00, 0x24, - 0x00, 0x20, 0x00, 0x00, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x24, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x31, - 0x2e, 0x37, 0x36, 0x20, 0x24, 0x20, 0x00, 0x00, 0x46, 0x00, 0x72, 0x00, - 0x65, 0x00, 0x65, 0x00, 0x53, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x73, 0x00, - 0x00, 0x46, 0x72, 0x65, 0x65, 0x53, 0x61, 0x6e, 0x73, 0x00, 0x00, 0x54, - 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x65, - 0x00, 0x20, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x20, 0x00, 0x74, 0x00, 0x68, - 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6e, - 0x00, 0x74, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00, 0x67, - 0x00, 0x72, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, - 0x00, 0x20, 0x00, 0x73, 0x00, 0x75, 0x00, 0x62, 0x00, 0x6a, 0x00, 0x65, - 0x00, 0x63, 0x00, 0x74, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, - 0x00, 0x47, 0x00, 0x4e, 0x00, 0x55, 0x00, 0x20, 0x00, 0x47, 0x00, 0x65, - 0x00, 0x6e, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20, - 0x00, 0x50, 0x00, 0x75, 0x00, 0x62, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x63, - 0x00, 0x20, 0x00, 0x4c, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e, - 0x00, 0x73, 0x00, 0x65, 0x00, 0x2e, 0x00, 0x00, 0x54, 0x68, 0x65, 0x20, - 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, - 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x65, 0x64, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, - 0x74, 0x6f, 0x20, 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x00, 0x00, 0x68, 0x00, 0x74, 0x00, - 0x74, 0x00, 0x70, 0x00, 0x3a, 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x77, 0x00, - 0x77, 0x00, 0x77, 0x00, 0x2e, 0x00, 0x67, 0x00, 0x6e, 0x00, 0x75, 0x00, - 0x2e, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67, 0x00, 0x2f, 0x00, 0x63, 0x00, - 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x66, 0x00, - 0x74, 0x00, 0x2f, 0x00, 0x67, 0x00, 0x70, 0x00, 0x6c, 0x00, 0x2e, 0x00, - 0x68, 0x00, 0x74, 0x00, 0x6d, 0x00, 0x6c, 0x00, 0x00, 0x68, 0x74, 0x74, - 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6e, 0x75, 0x2e, - 0x6f, 0x72, 0x67, 0x2f, 0x63, 0x6f, 0x70, 0x79, 0x6c, 0x65, 0x66, 0x74, - 0x2f, 0x67, 0x70, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00, 0x00, 0x54, - 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x71, 0x00, 0x75, 0x00, 0x69, - 0x00, 0x63, 0x00, 0x6b, 0x00, 0x20, 0x00, 0x62, 0x00, 0x72, 0x00, 0x6f, - 0x00, 0x77, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x78, - 0x00, 0x20, 0x00, 0x6a, 0x00, 0x75, 0x00, 0x6d, 0x00, 0x70, 0x00, 0x73, - 0x00, 0x20, 0x00, 0x6f, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, - 0x00, 0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x6c, 0x00, 0x61, - 0x00, 0x7a, 0x00, 0x79, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6f, 0x00, 0x67, - 0x00, 0x2e, 0x00, 0x00, 0x54, 0x68, 0x65, 0x20, 0x71, 0x75, 0x69, 0x63, - 0x6b, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x6e, 0x20, 0x66, 0x6f, 0x78, 0x20, - 0x6a, 0x75, 0x6d, 0x70, 0x73, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x6c, 0x61, 0x7a, 0x79, 0x20, 0x64, 0x6f, 0x67, 0x2e, - 0x00, 0x00, 0x6e, 0x00, 0x61, 0x00, 0x76, 0x00, 0x61, 0x00, 0x64, 0x00, - 0x6e, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x44, 0x00, 0x6f, 0x00, 0x76, 0x00, - 0x6f, 0x00, 0x6c, 0x00, 0x6a, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x61, 0x00, - 0x20, 0x00, 0x6a, 0x00, 0x65, 0x00, 0x20, 0x00, 0x75, 0x00, 0x70, 0x00, - 0x6f, 0x00, 0x72, 0x00, 0x61, 0x00, 0x62, 0x00, 0x61, 0x00, 0x20, 0x00, - 0x76, 0x00, 0x20, 0x00, 0x73, 0x00, 0x6b, 0x00, 0x6c, 0x00, 0x61, 0x00, - 0x64, 0x00, 0x75, 0x00, 0x20, 0x00, 0x7a, 0x00, 0x20, 0x00, 0x6c, 0x00, - 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x6f, 0x00, - 0x20, 0x00, 0x47, 0x00, 0x4e, 0x00, 0x55, 0x00, 0x20, 0x00, 0x47, 0x00, - 0x65, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x6c, 0x00, - 0x20, 0x00, 0x50, 0x00, 0x75, 0x00, 0x62, 0x00, 0x6c, 0x00, 0x69, 0x00, - 0x63, 0x00, 0x20, 0x00, 0x4c, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, - 0x6e, 0x00, 0x73, 0x00, 0x65, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x68, 0x00, - 0x74, 0x00, 0x74, 0x00, 0x70, 0x00, 0x3a, 0x00, 0x2f, 0x00, 0x2f, 0x00, - 0x77, 0x00, 0x77, 0x00, 0x77, 0x00, 0x2e, 0x00, 0x67, 0x00, 0x6e, 0x00, - 0x75, 0x00, 0x2e, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67, 0x00, 0x2f, 0x00, - 0x63, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x6c, 0x00, 0x65, 0x00, - 0x66, 0x00, 0x74, 0x00, 0x2f, 0x00, 0x67, 0x00, 0x70, 0x00, 0x6c, 0x00, - 0x2e, 0x00, 0x68, 0x00, 0x74, 0x00, 0x6d, 0x00, 0x6c, 0x00, 0x00, 0x01, - 0x60, 0x00, 0x65, 0x00, 0x72, 0x00, 0x69, 0x00, 0x66, 0x00, 0x20, 0x00, - 0x62, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x7a, 0x00, 0x61, 0x00, 0x20, 0x00, - 0x76, 0x00, 0x61, 0x00, 0x6a, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x73, 0x00, - 0x70, 0x00, 0x65, 0x00, 0x74, 0x00, 0x20, 0x00, 0x6b, 0x00, 0x75, 0x00, - 0x68, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x64, 0x00, 0x6f, 0x00, - 0x6d, 0x00, 0x61, 0x01, 0x0d, 0x00, 0x65, 0x00, 0x20, 0x01, 0x7e, 0x00, - 0x67, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x63, 0x00, 0x65, 0x00, 0x2e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfe, 0xcb, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x01, 0x02, 0x00, 0x03, - 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, - 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x0c, 0x00, 0x0d, 0x00, 0x0e, 0x00, 0x0f, - 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, 0x00, 0x13, 0x00, 0x14, 0x00, 0x15, - 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1a, 0x00, 0x1b, - 0x00, 0x1c, 0x00, 0x1d, 0x00, 0x1e, 0x00, 0x1f, 0x00, 0x20, 0x00, 0x21, - 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, - 0x00, 0x28, 0x00, 0x29, 0x00, 0x2a, 0x00, 0x2b, 0x00, 0x2c, 0x00, 0x2d, - 0x00, 0x2e, 0x00, 0x2f, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, - 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, - 0x00, 0x3a, 0x00, 0x3b, 0x00, 0x3c, 0x00, 0x3d, 0x00, 0x3e, 0x00, 0x3f, - 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00, 0x44, 0x00, 0x45, - 0x00, 0x46, 0x00, 0x47, 0x00, 0x48, 0x00, 0x49, 0x00, 0x4a, 0x00, 0x4b, - 0x00, 0x4c, 0x00, 0x4d, 0x00, 0x4e, 0x00, 0x4f, 0x00, 0x50, 0x00, 0x51, - 0x00, 0x52, 0x00, 0x53, 0x00, 0x54, 0x00, 0x55, 0x00, 0x56, 0x00, 0x57, - 0x00, 0x58, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x5b, 0x00, 0x5c, 0x00, 0x5d, - 0x00, 0x5e, 0x00, 0x5f, 0x00, 0x60, 0x00, 0x61, 0x00, 0xac, 0x00, 0xa3, - 0x00, 0x84, 0x00, 0x85, 0x00, 0xbd, 0x00, 0x96, 0x00, 0xe8, 0x00, 0x86, - 0x00, 0x8e, 0x00, 0x8b, 0x00, 0x9d, 0x00, 0xa9, 0x00, 0xa4, 0x01, 0x03, - 0x00, 0x8a, 0x00, 0xda, 0x00, 0x83, 0x00, 0x93, 0x00, 0xf2, 0x00, 0xf3, - 0x00, 0x8d, 0x00, 0x97, 0x00, 0x88, 0x00, 0xc3, 0x00, 0xde, 0x00, 0xf1, - 0x00, 0x9e, 0x00, 0xaa, 0x00, 0xf5, 0x00, 0xf4, 0x00, 0xf6, 0x00, 0xa2, - 0x00, 0xad, 0x00, 0xc9, 0x00, 0xc7, 0x00, 0xae, 0x00, 0x62, 0x00, 0x63, - 0x00, 0x90, 0x00, 0x64, 0x00, 0xcb, 0x00, 0x65, 0x00, 0xc8, 0x00, 0xca, - 0x00, 0xcf, 0x00, 0xcc, 0x00, 0xcd, 0x00, 0xce, 0x00, 0xe9, 0x00, 0x66, - 0x00, 0xd3, 0x00, 0xd0, 0x00, 0xd1, 0x00, 0xaf, 0x00, 0x67, 0x00, 0xf0, - 0x00, 0x91, 0x00, 0xd6, 0x00, 0xd4, 0x00, 0xd5, 0x00, 0x68, 0x00, 0xeb, - 0x00, 0xed, 0x00, 0x89, 0x00, 0x6a, 0x00, 0x69, 0x00, 0x6b, 0x00, 0x6d, - 0x00, 0x6c, 0x00, 0x6e, 0x00, 0xa0, 0x00, 0x6f, 0x00, 0x71, 0x00, 0x70, - 0x00, 0x72, 0x00, 0x73, 0x00, 0x75, 0x00, 0x74, 0x00, 0x76, 0x00, 0x77, - 0x00, 0xea, 0x00, 0x78, 0x00, 0x7a, 0x00, 0x79, 0x00, 0x7b, 0x00, 0x7d, - 0x00, 0x7c, 0x00, 0xb8, 0x00, 0xa1, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0x80, - 0x00, 0x81, 0x00, 0xec, 0x00, 0xee, 0x00, 0xba, 0x00, 0xd7, 0x00, 0xd8, - 0x01, 0x04, 0x01, 0x05, 0x00, 0xdd, 0x00, 0xd9, 0x06, 0x67, 0x6c, 0x79, - 0x70, 0x68, 0x33, 0x0a, 0x73, 0x6f, 0x66, 0x74, 0x68, 0x79, 0x70, 0x68, - 0x65, 0x6e, 0x07, 0x75, 0x6e, 0x69, 0x30, 0x32, 0x43, 0x41, 0x07, 0x75, - 0x6e, 0x69, 0x30, 0x32, 0x43, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0xff, 0xff, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, - 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x6a, - 0x00, 0x01, 0x00, 0x6b, 0x00, 0x6b, 0x00, 0x03, 0x00, 0x6c, 0x00, 0x02, - 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x8e, 0x00, 0x9c, 0x00, 0x08, - 0x44, 0x46, 0x4c, 0x54, 0x00, 0x32, 0x61, 0x72, 0x6d, 0x6e, 0x00, 0x3c, - 0x62, 0x65, 0x6e, 0x67, 0x00, 0x46, 0x64, 0x65, 0x76, 0x61, 0x00, 0x50, - 0x67, 0x75, 0x6a, 0x72, 0x00, 0x5a, 0x67, 0x75, 0x72, 0x75, 0x00, 0x64, - 0x68, 0x65, 0x62, 0x72, 0x00, 0x6e, 0x6c, 0x61, 0x74, 0x6e, 0x00, 0x78, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, - 0x63, 0x63, 0x6d, 0x70, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x46, 0x00, 0x02, - 0x00, 0x12, 0x00, 0x1a, 0x00, 0x22, 0x00, 0x22, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x4d, 0x00, 0x4e, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, - 0x00, 0x4d, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x06, 0x00, 0x76, 0x00, 0x01, 0x00, 0x01, 0x00, 0x4d, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x90, 0x00, 0xaa, 0x00, 0x08, - 0x44, 0x46, 0x4c, 0x54, 0x00, 0x32, 0x61, 0x72, 0x6d, 0x6e, 0x00, 0x3e, - 0x62, 0x65, 0x6e, 0x67, 0x00, 0x48, 0x64, 0x65, 0x76, 0x61, 0x00, 0x52, - 0x67, 0x75, 0x6a, 0x72, 0x00, 0x5c, 0x67, 0x75, 0x72, 0x75, 0x00, 0x66, - 0x68, 0x65, 0x62, 0x72, 0x00, 0x70, 0x6c, 0x61, 0x74, 0x6e, 0x00, 0x7a, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x01, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x02, 0x6b, 0x65, 0x72, 0x6e, 0x00, 0x0e, 0x6b, 0x65, 0x72, 0x6e, - 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x8e, - 0x00, 0x01, 0x00, 0x7a, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x12, - 0x00, 0x20, 0x00, 0x46, 0x00, 0x54, 0x00, 0x03, 0xff, 0xff, 0xff, 0x33, - 0xff, 0xff, 0xff, 0xac, 0xff, 0xff, 0xff, 0x9a, 0x00, 0x09, 0x00, 0x25, - 0xff, 0xf2, 0x00, 0x38, 0xff, 0x5c, 0x00, 0x3a, 0xff, 0xa2, 0x00, 0x3b, - 0xff, 0xd9, 0x00, 0x3d, 0xff, 0x44, 0x00, 0x84, 0xff, 0xf2, 0x00, 0x87, - 0xff, 0xf2, 0x00, 0x88, 0xff, 0xf2, 0x00, 0x89, 0xff, 0xe9, 0x00, 0x03, - 0xff, 0xff, 0xff, 0x31, 0xff, 0xff, 0xff, 0xac, 0xff, 0xff, 0xff, 0x98, - 0x00, 0x09, 0x00, 0x25, 0xff, 0x9a, 0x00, 0x38, 0xfe, 0xfe, 0x00, 0x3a, - 0xff, 0x42, 0x00, 0x3b, 0xff, 0x79, 0x00, 0x3d, 0xfe, 0xf0, 0x00, 0x84, - 0xff, 0x9a, 0x00, 0x87, 0xff, 0x9a, 0x00, 0x88, 0xff, 0x9a, 0x00, 0x89, - 0xff, 0x91, 0x00, 0x01, 0x00, 0x04, 0x00, 0x10, 0x00, 0x11, 0x00, 0x12, - 0x00, 0x7e, 0x00, 0x01, 0x0e, 0x92, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, - 0x00, 0x9a, 0x01, 0x34, 0x01, 0x7a, 0x01, 0xa4, 0x01, 0xda, 0x02, 0x50, - 0x02, 0x82, 0x02, 0x94, 0x02, 0xe6, 0x03, 0x5c, 0x03, 0xae, 0x03, 0xd8, - 0x04, 0x2e, 0x04, 0xa4, 0x04, 0xce, 0x05, 0x8c, 0x05, 0xc2, 0x06, 0x5c, - 0x06, 0xee, 0x07, 0x18, 0x07, 0xaa, 0x07, 0xb4, 0x07, 0xca, 0x07, 0xd8, - 0x07, 0xe2, 0x07, 0xfc, 0x08, 0x42, 0x08, 0x5c, 0x08, 0x66, 0x08, 0x70, - 0x08, 0xae, 0x08, 0xb4, 0x08, 0xc6, 0x08, 0xe0, 0x08, 0xfe, 0x09, 0x08, - 0x09, 0x12, 0x09, 0xc0, 0x09, 0xca, 0x0a, 0x08, 0x0a, 0x0e, 0x0a, 0x78, - 0x0a, 0xde, 0x0a, 0xf8, 0x0b, 0x62, 0x0b, 0x90, 0x0c, 0x02, 0x0c, 0x30, - 0x0c, 0x5e, 0x0c, 0xd0, 0x0d, 0x46, 0x0d, 0x4c, 0x0d, 0x5a, 0x0d, 0x70, - 0x0d, 0x7e, 0x0d, 0x8c, 0x0d, 0xa6, 0x0d, 0xac, 0x0d, 0xb2, 0x0d, 0xd0, - 0x0d, 0xd6, 0x0d, 0xf8, 0x0e, 0x06, 0x0e, 0x14, 0x0e, 0x22, 0x0e, 0x30, - 0x0e, 0x3e, 0x0e, 0x4c, 0x0e, 0x5a, 0x0e, 0x68, 0x0e, 0x76, 0x0e, 0x7c, - 0x00, 0x26, 0xff, 0xff, 0xff, 0xae, 0xff, 0xff, 0xff, 0x8d, 0xff, 0xff, - 0xff, 0x7b, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xb6, 0x00, 0x10, - 0x00, 0x0a, 0x00, 0x11, 0xff, 0xfa, 0x00, 0x12, 0x00, 0x0a, 0x00, 0x27, - 0xff, 0xb6, 0x00, 0x2b, 0xff, 0xb8, 0x00, 0x33, 0xff, 0xbc, 0x00, 0x35, - 0xff, 0xbe, 0x00, 0x38, 0xff, 0x42, 0x00, 0x39, 0xff, 0xb4, 0x00, 0x3a, - 0xff, 0x66, 0x00, 0x3b, 0xff, 0x98, 0x00, 0x3d, 0xff, 0x35, 0x00, 0x45, - 0xff, 0xf8, 0x00, 0x46, 0x00, 0x08, 0x00, 0x47, 0xff, 0xe9, 0x00, 0x48, - 0xff, 0xf0, 0x00, 0x49, 0xff, 0xdf, 0x00, 0x4b, 0xff, 0xec, 0x00, 0x53, - 0xff, 0xe5, 0x00, 0x55, 0xff, 0xf0, 0x00, 0x58, 0xff, 0xdf, 0x00, 0x59, - 0xff, 0xe7, 0x00, 0x5a, 0xff, 0xc1, 0x00, 0x5b, 0xff, 0xd5, 0x00, 0x5d, - 0xff, 0xba, 0x00, 0x6e, 0xff, 0xa6, 0x00, 0x8a, 0xff, 0xb6, 0x00, 0x99, - 0xff, 0xbc, 0x00, 0x9c, 0xff, 0xb4, 0x00, 0x9d, 0xff, 0xb4, 0x00, 0x9e, - 0xff, 0xb4, 0x00, 0x9f, 0xff, 0xb4, 0x00, 0xaa, 0xff, 0xec, 0x00, 0x11, - 0xff, 0xff, 0xff, 0xf6, 0x00, 0x25, 0xff, 0xd5, 0x00, 0x33, 0xff, 0xf2, - 0x00, 0x3a, 0xff, 0xac, 0x00, 0x3b, 0xff, 0xcd, 0x00, 0x3d, 0xff, 0xa6, - 0x00, 0x84, 0xff, 0xd5, 0x00, 0x85, 0xff, 0xd5, 0x00, 0x86, 0xff, 0xd5, - 0x00, 0x87, 0xff, 0xd5, 0x00, 0x88, 0xff, 0xd5, 0x00, 0x89, 0xff, 0xd5, - 0x00, 0x95, 0xff, 0xf2, 0x00, 0x96, 0xff, 0xf2, 0x00, 0x97, 0xff, 0xf2, - 0x00, 0x99, 0xff, 0xf2, 0x00, 0x9b, 0xff, 0xfe, 0x00, 0x0a, 0x00, 0x25, - 0xff, 0xbe, 0x00, 0x2c, 0xff, 0xe7, 0x00, 0x2f, 0xff, 0xec, 0x00, 0x33, - 0xff, 0xf0, 0x00, 0x84, 0xff, 0xbe, 0x00, 0x87, 0xff, 0xbe, 0x00, 0x88, - 0xff, 0xbe, 0x00, 0x89, 0xff, 0xbc, 0x00, 0x96, 0xff, 0xf0, 0x00, 0x99, - 0xff, 0xf0, 0x00, 0x0d, 0x00, 0x25, 0xff, 0xaa, 0x00, 0x2e, 0xff, 0xf6, - 0x00, 0x38, 0xff, 0xa4, 0x00, 0x3a, 0xff, 0x98, 0x00, 0x3b, 0xff, 0xc5, - 0x00, 0x3c, 0xff, 0x93, 0x00, 0x3d, 0xff, 0x7f, 0x00, 0x83, 0xff, 0xaa, - 0x00, 0x84, 0xff, 0xaa, 0x00, 0x85, 0xff, 0xaa, 0x00, 0x86, 0xff, 0xaa, - 0x00, 0x87, 0xff, 0xaa, 0x00, 0x88, 0xff, 0xaa, 0x00, 0x1d, 0xff, 0xff, - 0xff, 0xd1, 0x00, 0x10, 0xff, 0x23, 0x00, 0x11, 0xff, 0xe3, 0x00, 0x12, - 0xff, 0x23, 0x00, 0x25, 0xff, 0x73, 0x00, 0x2e, 0xff, 0x98, 0x00, 0x33, - 0xff, 0xd3, 0x00, 0x45, 0xff, 0xbc, 0x00, 0x49, 0xff, 0xcf, 0x00, 0x4d, - 0xff, 0xec, 0x00, 0x4e, 0xff, 0xe7, 0x00, 0x53, 0xff, 0xd5, 0x00, 0x56, - 0xff, 0xb8, 0x00, 0x59, 0xff, 0xbc, 0x00, 0x83, 0xff, 0x73, 0x00, 0x84, - 0xff, 0x73, 0x00, 0x85, 0xff, 0x73, 0x00, 0x86, 0xff, 0x73, 0x00, 0x87, - 0xff, 0x73, 0x00, 0x88, 0xff, 0x73, 0x00, 0x99, 0xff, 0xd3, 0x00, 0xa4, - 0xff, 0xbc, 0x00, 0xa7, 0xff, 0xbc, 0x00, 0xa8, 0xff, 0xbc, 0x00, 0xa9, - 0xff, 0xc5, 0x00, 0xac, 0xff, 0xcf, 0x00, 0xb6, 0xff, 0xd5, 0x00, 0xb9, - 0xff, 0xd5, 0x00, 0xbb, 0xff, 0xd5, 0x00, 0x0c, 0x00, 0x25, 0xff, 0xf4, - 0x00, 0x38, 0xff, 0xa6, 0x00, 0x3a, 0xff, 0x9a, 0x00, 0x3b, 0xff, 0xc7, - 0x00, 0x3d, 0xff, 0x81, 0x00, 0x83, 0xff, 0xf4, 0x00, 0x84, 0xff, 0xf4, - 0x00, 0x85, 0xff, 0xf4, 0x00, 0x86, 0xff, 0xf4, 0x00, 0x87, 0xff, 0xf4, - 0x00, 0x88, 0xff, 0xf4, 0x00, 0x89, 0xff, 0xfa, 0x00, 0x04, 0x00, 0x25, - 0xff, 0xbe, 0x00, 0x87, 0xff, 0xbe, 0x00, 0x88, 0xff, 0xbe, 0x00, 0x89, - 0xff, 0xc1, 0x00, 0x14, 0xff, 0xff, 0xff, 0xa4, 0x00, 0x11, 0xff, 0xa0, - 0x00, 0x27, 0xff, 0x98, 0x00, 0x2b, 0xff, 0x98, 0x00, 0x33, 0xff, 0x9e, - 0x00, 0x37, 0xff, 0xb2, 0x00, 0x38, 0x00, 0x29, 0x00, 0x45, 0xff, 0xe9, - 0x00, 0x49, 0xff, 0xbe, 0x00, 0x53, 0xff, 0xc5, 0x00, 0x59, 0xff, 0xd9, - 0x00, 0x5d, 0xff, 0x81, 0x00, 0x96, 0xff, 0x9e, 0x00, 0x99, 0xff, 0x9e, - 0x00, 0xa7, 0xff, 0xe9, 0x00, 0xa8, 0xff, 0xe9, 0x00, 0xa9, 0xff, 0xf2, - 0x00, 0xb6, 0xff, 0xc5, 0x00, 0xb9, 0xff, 0xc5, 0x00, 0xbf, 0xff, 0xd9, - 0x00, 0x1d, 0xff, 0xff, 0xfe, 0xdf, 0xff, 0xff, 0xfe, 0xcf, 0xff, 0xff, - 0xff, 0xd9, 0xff, 0xff, 0xff, 0xac, 0x00, 0x11, 0xff, 0x00, 0x00, 0x25, - 0x00, 0x23, 0x00, 0x27, 0xff, 0xac, 0x00, 0x2b, 0xff, 0xaa, 0x00, 0x33, - 0xff, 0xac, 0x00, 0x37, 0xff, 0xd9, 0x00, 0x38, 0xff, 0x29, 0x00, 0x39, - 0xff, 0xb8, 0x00, 0x3a, 0xff, 0x29, 0x00, 0x3b, 0xff, 0x75, 0x00, 0x3d, - 0xff, 0x08, 0x00, 0x59, 0xff, 0xf2, 0x00, 0x5d, 0xff, 0x8d, 0x00, 0x84, - 0x00, 0x23, 0x00, 0x87, 0x00, 0x23, 0x00, 0x88, 0x00, 0x23, 0x00, 0x89, - 0x00, 0x29, 0x00, 0x8a, 0xff, 0xb4, 0x00, 0x95, 0xff, 0xac, 0x00, 0x96, - 0xff, 0xac, 0x00, 0x97, 0xff, 0xac, 0x00, 0x98, 0xff, 0xac, 0x00, 0x99, - 0xff, 0xac, 0x00, 0x9f, 0xff, 0xb8, 0x00, 0xbf, 0xff, 0xf2, 0x00, 0x14, - 0xff, 0xff, 0xff, 0xfa, 0x00, 0x10, 0xff, 0xf2, 0x00, 0x12, 0xff, 0xf2, - 0x00, 0x25, 0xff, 0xee, 0x00, 0x27, 0xff, 0xfa, 0x00, 0x2b, 0xff, 0xfc, - 0x00, 0x45, 0xff, 0xf6, 0x00, 0x53, 0x00, 0x04, 0x00, 0x84, 0xff, 0xee, - 0x00, 0x87, 0xff, 0xee, 0x00, 0x88, 0xff, 0xee, 0x00, 0x89, 0xff, 0xf4, - 0x00, 0x8a, 0xff, 0xfa, 0x00, 0xa4, 0xff, 0xf6, 0x00, 0xa7, 0xff, 0xf6, - 0x00, 0xa8, 0xff, 0xf6, 0x00, 0xa9, 0xff, 0xfc, 0x00, 0xb6, 0x00, 0x04, - 0x00, 0xb9, 0x00, 0x04, 0x00, 0xbb, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x25, - 0xff, 0xb8, 0x00, 0x38, 0xff, 0xaa, 0x00, 0x3a, 0xff, 0xa4, 0x00, 0x3b, - 0xff, 0xd1, 0x00, 0x3c, 0xff, 0xa2, 0x00, 0x3d, 0xff, 0x87, 0x00, 0x84, - 0xff, 0xb8, 0x00, 0x87, 0xff, 0xb8, 0x00, 0x88, 0xff, 0xb8, 0x00, 0x89, - 0xff, 0xb0, 0x00, 0x15, 0xff, 0xff, 0xff, 0xc7, 0x00, 0x10, 0xfe, 0xec, - 0x00, 0x11, 0xff, 0xae, 0x00, 0x12, 0xfe, 0xec, 0x00, 0x25, 0xff, 0x60, - 0x00, 0x2e, 0xff, 0x60, 0x00, 0x45, 0xff, 0xc7, 0x00, 0x49, 0xff, 0xc1, - 0x00, 0x53, 0xff, 0xc9, 0x00, 0x84, 0xff, 0x60, 0x00, 0x87, 0xff, 0x60, - 0x00, 0x88, 0xff, 0x60, 0x00, 0x89, 0xff, 0x50, 0x00, 0xa4, 0xff, 0xc7, - 0x00, 0xa7, 0xff, 0xc7, 0x00, 0xa8, 0xff, 0xc7, 0x00, 0xa9, 0xff, 0xcf, - 0x00, 0xac, 0xff, 0xc1, 0x00, 0xb6, 0xff, 0xc9, 0x00, 0xb9, 0xff, 0xc9, - 0x00, 0xbb, 0xff, 0xc9, 0x00, 0x1d, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xff, - 0xff, 0xe9, 0x00, 0x11, 0xff, 0xfc, 0x00, 0x27, 0xff, 0xdf, 0x00, 0x2b, - 0xff, 0xe1, 0x00, 0x33, 0xff, 0xe5, 0x00, 0x38, 0xff, 0xd1, 0x00, 0x39, - 0xff, 0xdd, 0x00, 0x3a, 0xff, 0xb0, 0x00, 0x3b, 0xff, 0xc9, 0x00, 0x3d, - 0xff, 0xa8, 0x00, 0x45, 0xff, 0xe1, 0x00, 0x49, 0xff, 0xe7, 0x00, 0x53, - 0xff, 0xee, 0x00, 0x59, 0xff, 0xee, 0x00, 0x5d, 0xff, 0xf0, 0x00, 0x8a, - 0xff, 0xdf, 0x00, 0x96, 0xff, 0xe5, 0x00, 0x99, 0xff, 0xe5, 0x00, 0x9f, - 0xff, 0xdd, 0x00, 0xa4, 0xff, 0xe1, 0x00, 0xa7, 0xff, 0xe1, 0x00, 0xa8, - 0xff, 0xe1, 0x00, 0xa9, 0xff, 0xe7, 0x00, 0xac, 0xff, 0xe7, 0x00, 0xb6, - 0xff, 0xee, 0x00, 0xb9, 0xff, 0xee, 0x00, 0xbd, 0xff, 0xee, 0x00, 0xbf, - 0xff, 0xee, 0x00, 0x0a, 0x00, 0x25, 0xff, 0xd3, 0x00, 0x38, 0xff, 0xc7, - 0x00, 0x3a, 0xff, 0xaa, 0x00, 0x3b, 0xff, 0xc7, 0x00, 0x3d, 0xff, 0x9e, - 0x00, 0x58, 0xff, 0xfa, 0x00, 0x84, 0xff, 0xd3, 0x00, 0x87, 0xff, 0xd3, - 0x00, 0x88, 0xff, 0xd3, 0x00, 0x89, 0xff, 0xd3, 0x00, 0x2f, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x85, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, - 0xff, 0xb8, 0x00, 0x10, 0xff, 0x33, 0x00, 0x11, 0xff, 0x62, 0x00, 0x12, - 0xff, 0x33, 0x00, 0x1e, 0xfe, 0xf0, 0x00, 0x1f, 0xfe, 0xf8, 0x00, 0x25, - 0xff, 0x3d, 0x00, 0x27, 0xff, 0xa6, 0x00, 0x2b, 0xff, 0xa4, 0x00, 0x2e, - 0xff, 0x33, 0x00, 0x33, 0xff, 0xaa, 0x00, 0x37, 0xff, 0xcf, 0x00, 0x3a, - 0x00, 0x19, 0x00, 0x3b, 0x00, 0x21, 0x00, 0x3d, 0x00, 0x29, 0x00, 0x45, - 0xff, 0x33, 0x00, 0x47, 0xff, 0x48, 0x00, 0x49, 0xff, 0x3d, 0x00, 0x4b, - 0xff, 0x4a, 0x00, 0x4d, 0xff, 0xfa, 0x00, 0x4e, 0xff, 0xf6, 0x00, 0x53, - 0xff, 0x44, 0x00, 0x56, 0xff, 0x44, 0x00, 0x57, 0xff, 0x44, 0x00, 0x59, - 0xff, 0x46, 0x00, 0x5a, 0xff, 0x3d, 0x00, 0x5b, 0xff, 0x42, 0x00, 0x5d, - 0xff, 0x33, 0x00, 0x6e, 0xff, 0x08, 0x00, 0x83, 0xff, 0x3d, 0x00, 0x84, - 0xff, 0x3d, 0x00, 0x85, 0xff, 0x3d, 0x00, 0x86, 0xff, 0x3d, 0x00, 0x87, - 0xff, 0x3d, 0x00, 0x88, 0xff, 0x3d, 0x00, 0x89, 0xff, 0x39, 0x00, 0x95, - 0xff, 0xaa, 0x00, 0x96, 0xff, 0xaa, 0x00, 0x97, 0xff, 0xaa, 0x00, 0x98, - 0xff, 0xaa, 0x00, 0x99, 0xff, 0xaa, 0x00, 0x9b, 0xff, 0xac, 0x00, 0xa9, - 0xff, 0x39, 0x00, 0xbb, 0xff, 0x4e, 0x00, 0x0d, 0x00, 0x10, 0xff, 0xc9, - 0x00, 0x12, 0xff, 0xcd, 0x00, 0x25, 0xff, 0xb6, 0x00, 0x51, 0xff, 0xf8, - 0x00, 0x52, 0xff, 0xf8, 0x00, 0x54, 0x00, 0x06, 0x00, 0x56, 0xff, 0xf8, - 0x00, 0x84, 0xff, 0xb6, 0x00, 0x85, 0xff, 0xb6, 0x00, 0x86, 0xff, 0xb6, - 0x00, 0x87, 0xff, 0xb6, 0x00, 0x88, 0xff, 0xb6, 0x00, 0x89, 0xff, 0xb0, - 0x00, 0x26, 0xff, 0xff, 0xff, 0x5c, 0xff, 0xff, 0xff, 0xb8, 0xff, 0xff, - 0xff, 0xa8, 0x00, 0x10, 0xff, 0x4a, 0x00, 0x11, 0xff, 0xb2, 0x00, 0x12, - 0xff, 0x4a, 0x00, 0x1e, 0xff, 0x79, 0x00, 0x1f, 0xff, 0x79, 0x00, 0x25, - 0xff, 0x6f, 0x00, 0x27, 0xff, 0xa8, 0x00, 0x2b, 0xff, 0xaa, 0x00, 0x33, - 0xff, 0xae, 0x00, 0x37, 0xff, 0xb8, 0x00, 0x38, 0x00, 0x1f, 0x00, 0x45, - 0xff, 0x87, 0x00, 0x49, 0xff, 0x8b, 0x00, 0x4b, 0xff, 0x9a, 0x00, 0x4d, - 0xff, 0xf6, 0x00, 0x53, 0xff, 0x91, 0x00, 0x56, 0xff, 0xaa, 0x00, 0x59, - 0xff, 0xac, 0x00, 0x5d, 0xff, 0xd7, 0x00, 0x6e, 0xff, 0x56, 0x00, 0x83, - 0xff, 0x6f, 0x00, 0x84, 0xff, 0x6f, 0x00, 0x85, 0xff, 0x6f, 0x00, 0x86, - 0xff, 0x6f, 0x00, 0x87, 0xff, 0x6f, 0x00, 0x88, 0xff, 0x6f, 0x00, 0x89, - 0xff, 0x60, 0x00, 0x95, 0xff, 0xae, 0x00, 0x96, 0xff, 0xae, 0x00, 0x97, - 0xff, 0xae, 0x00, 0x98, 0xff, 0xae, 0x00, 0x99, 0xff, 0xae, 0x00, 0x9b, - 0xff, 0xbc, 0x00, 0xa9, 0xff, 0x8f, 0x00, 0xbb, 0xff, 0x9a, 0x00, 0x24, - 0xff, 0xff, 0xff, 0x91, 0x00, 0x10, 0xff, 0x8d, 0x00, 0x11, 0xff, 0xe5, - 0x00, 0x12, 0xff, 0x8d, 0x00, 0x1e, 0xff, 0x96, 0x00, 0x1f, 0xff, 0x93, - 0x00, 0x25, 0xff, 0x9a, 0x00, 0x27, 0xff, 0xd1, 0x00, 0x2b, 0xff, 0xd3, - 0x00, 0x33, 0xff, 0xd7, 0x00, 0x37, 0xff, 0xcf, 0x00, 0x38, 0x00, 0x27, - 0x00, 0x45, 0xff, 0xb2, 0x00, 0x49, 0xff, 0xbe, 0x00, 0x4b, 0xff, 0xcd, - 0x00, 0x4d, 0xff, 0xfe, 0x00, 0x53, 0xff, 0xc5, 0x00, 0x56, 0xff, 0xc7, - 0x00, 0x59, 0xff, 0xc7, 0x00, 0x5d, 0xff, 0xf4, 0x00, 0x6e, 0xff, 0x89, - 0x00, 0x83, 0xff, 0x9a, 0x00, 0x84, 0xff, 0x9a, 0x00, 0x85, 0xff, 0x9a, - 0x00, 0x86, 0xff, 0x9a, 0x00, 0x87, 0xff, 0x9a, 0x00, 0x88, 0xff, 0x9a, - 0x00, 0x89, 0xff, 0x8d, 0x00, 0x95, 0xff, 0xd7, 0x00, 0x96, 0xff, 0xd7, - 0x00, 0x97, 0xff, 0xd7, 0x00, 0x98, 0xff, 0xd7, 0x00, 0x99, 0xff, 0xd7, - 0x00, 0x9b, 0xff, 0xe5, 0x00, 0xa9, 0xff, 0xba, 0x00, 0xbb, 0xff, 0xcd, - 0x00, 0x0a, 0x00, 0x11, 0xff, 0x98, 0x00, 0x27, 0xff, 0x9e, 0x00, 0x33, - 0xff, 0xa4, 0x00, 0x35, 0xff, 0xa6, 0x00, 0x45, 0xff, 0xe1, 0x00, 0x49, - 0xff, 0xb6, 0x00, 0x53, 0xff, 0xbc, 0x00, 0x59, 0xff, 0xcf, 0x00, 0x5d, - 0xff, 0x83, 0x00, 0x99, 0xff, 0xa4, 0x00, 0x24, 0xff, 0xff, 0xff, 0x0c, - 0x00, 0x10, 0xff, 0x1d, 0x00, 0x11, 0xff, 0x54, 0x00, 0x12, 0xff, 0x1d, - 0x00, 0x1e, 0xff, 0x4e, 0x00, 0x1f, 0xff, 0x4c, 0x00, 0x25, 0xff, 0x3b, - 0x00, 0x27, 0xff, 0x89, 0x00, 0x2b, 0xff, 0x89, 0x00, 0x33, 0xff, 0x8d, - 0x00, 0x37, 0xff, 0xac, 0x00, 0x38, 0x00, 0x2f, 0x00, 0x45, 0xff, 0x4c, - 0x00, 0x49, 0xff, 0x4a, 0x00, 0x4b, 0xff, 0x56, 0x00, 0x4d, 0x00, 0x06, - 0x00, 0x53, 0xff, 0x50, 0x00, 0x54, 0xff, 0x91, 0x00, 0x59, 0xff, 0x7f, - 0x00, 0x5a, 0xff, 0xb6, 0x00, 0x6e, 0xff, 0x04, 0x00, 0x83, 0xff, 0x3b, - 0x00, 0x84, 0xff, 0x3b, 0x00, 0x85, 0xff, 0x3b, 0x00, 0x86, 0xff, 0x3b, - 0x00, 0x87, 0xff, 0x3b, 0x00, 0x88, 0xff, 0x3b, 0x00, 0x89, 0xff, 0x2d, - 0x00, 0x95, 0xff, 0x8d, 0x00, 0x96, 0xff, 0x8d, 0x00, 0x97, 0xff, 0x8d, - 0x00, 0x98, 0xff, 0x8d, 0x00, 0x99, 0xff, 0x8d, 0x00, 0x9b, 0xff, 0x91, - 0x00, 0xa9, 0xff, 0x54, 0x00, 0xbb, 0xff, 0x58, 0x00, 0x02, 0x00, 0x5a, - 0xff, 0xbc, 0x00, 0x5d, 0xff, 0xb2, 0x00, 0x05, 0xff, 0xff, 0xff, 0xd1, - 0x00, 0x4e, 0xff, 0xf8, 0x00, 0x5a, 0xff, 0xd5, 0x00, 0x5b, 0xff, 0xe5, - 0x00, 0x5d, 0xff, 0xcb, 0x00, 0x03, 0x00, 0x5a, 0xff, 0xe9, 0x00, 0x5b, - 0xff, 0xfa, 0x00, 0x5d, 0xff, 0xe1, 0x00, 0x02, 0x00, 0x4c, 0x00, 0x02, - 0x00, 0x4f, 0x00, 0x0e, 0x00, 0x06, 0xff, 0xff, 0xff, 0xdb, 0x00, 0x58, - 0xff, 0xec, 0x00, 0x5a, 0xff, 0xe1, 0x00, 0x5b, 0xff, 0xee, 0x00, 0x5c, - 0xff, 0xc9, 0x00, 0x5d, 0xff, 0xd9, 0x00, 0x11, 0xff, 0xff, 0xff, 0xe7, - 0x00, 0x45, 0xff, 0xee, 0x00, 0x49, 0xff, 0xe1, 0x00, 0x4a, 0x00, 0x2d, - 0x00, 0x4d, 0xff, 0xfc, 0x00, 0x4e, 0xff, 0xf8, 0x00, 0x50, 0xff, 0xfa, - 0x00, 0x53, 0xff, 0xec, 0x00, 0x58, 0x00, 0x31, 0x00, 0xa4, 0xff, 0xee, - 0x00, 0xa7, 0xff, 0xee, 0x00, 0xa8, 0xff, 0xee, 0x00, 0xa9, 0xff, 0xf6, - 0x00, 0xac, 0xff, 0xe1, 0x00, 0xb6, 0xff, 0xec, 0x00, 0xb9, 0xff, 0xec, - 0x00, 0xbb, 0xff, 0xee, 0x00, 0x06, 0x00, 0x45, 0xff, 0xf6, 0x00, 0xa7, - 0xff, 0xf6, 0x00, 0xa8, 0xff, 0xf6, 0x00, 0xa9, 0xff, 0xfe, 0x00, 0xb6, - 0x00, 0x06, 0x00, 0xb9, 0x00, 0x06, 0x00, 0x02, 0xff, 0xff, 0xff, 0xe1, - 0x00, 0x5d, 0xff, 0xdb, 0x00, 0x02, 0x00, 0x38, 0xff, 0xf2, 0x00, 0x4e, - 0xff, 0xfa, 0x00, 0x0f, 0x00, 0x11, 0xff, 0xac, 0x00, 0x45, 0xff, 0xfc, - 0x00, 0x49, 0xff, 0xd5, 0x00, 0x4b, 0xff, 0xdf, 0x00, 0x53, 0xff, 0xd9, - 0x00, 0x57, 0xff, 0xfa, 0x00, 0x59, 0xff, 0xe9, 0x00, 0xa4, 0xff, 0xfc, - 0x00, 0xa7, 0xff, 0xfc, 0x00, 0xa8, 0xff, 0xfc, 0x00, 0xa9, 0x00, 0x04, - 0x00, 0xac, 0xff, 0xd5, 0x00, 0xb6, 0xff, 0xd9, 0x00, 0xb9, 0xff, 0xd9, - 0x00, 0xbf, 0xff, 0xf4, 0x00, 0x01, 0x00, 0x5d, 0xff, 0xf6, 0x00, 0x04, - 0x00, 0x54, 0x00, 0x0a, 0x00, 0x5a, 0xff, 0xe5, 0x00, 0x5b, 0xff, 0xf2, - 0x00, 0x5d, 0xff, 0xdb, 0x00, 0x06, 0xff, 0xff, 0xff, 0xe3, 0x00, 0x38, - 0xff, 0x3b, 0x00, 0x54, 0x00, 0x0a, 0x00, 0x5a, 0xff, 0xe5, 0x00, 0x5b, - 0xff, 0xf2, 0x00, 0x5d, 0xff, 0xdb, 0x00, 0x07, 0xff, 0xff, 0xff, 0xd5, - 0x00, 0x38, 0xff, 0x35, 0x00, 0x58, 0xff, 0xec, 0x00, 0x5a, 0xff, 0xdb, - 0x00, 0x5b, 0xff, 0xec, 0x00, 0x5c, 0xff, 0xc9, 0x00, 0x5d, 0xff, 0xd3, - 0x00, 0x02, 0x00, 0x58, 0xff, 0xf8, 0x00, 0x5d, 0xff, 0xdf, 0x00, 0x02, - 0x00, 0x47, 0x00, 0x10, 0x00, 0x59, 0x00, 0x08, 0x00, 0x2b, 0xff, 0xff, - 0x00, 0x02, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x10, - 0xff, 0x73, 0x00, 0x11, 0xff, 0xa0, 0x00, 0x12, 0xff, 0x73, 0x00, 0x1e, - 0xff, 0xd3, 0x00, 0x1f, 0xff, 0xd3, 0x00, 0x45, 0xff, 0xf6, 0x00, 0x47, - 0xff, 0xf4, 0x00, 0x48, 0xff, 0xfe, 0x00, 0x49, 0xff, 0xe9, 0x00, 0x4a, - 0x00, 0x35, 0x00, 0x4b, 0xff, 0xf8, 0x00, 0x4d, 0x00, 0x02, 0x00, 0x4f, - 0x00, 0x0c, 0x00, 0x50, 0x00, 0x02, 0x00, 0x53, 0xff, 0xf4, 0x00, 0x54, - 0x00, 0x10, 0x00, 0x55, 0xff, 0xfa, 0x00, 0x57, 0x00, 0x08, 0x00, 0x58, - 0x00, 0x39, 0x00, 0x59, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x3b, 0x00, 0x5b, - 0x00, 0x3f, 0x00, 0x5c, 0x00, 0x29, 0x00, 0x5d, 0x00, 0x31, 0x00, 0x5e, - 0x00, 0x12, 0x00, 0xa3, 0xff, 0xf6, 0x00, 0xa4, 0xff, 0xf6, 0x00, 0xa5, - 0xff, 0xf6, 0x00, 0xa7, 0xff, 0xf6, 0x00, 0xa8, 0xff, 0xf6, 0x00, 0xa9, - 0xff, 0xfe, 0x00, 0xaa, 0xff, 0xee, 0x00, 0xab, 0xff, 0xe9, 0x00, 0xac, - 0xff, 0xe9, 0x00, 0xad, 0xff, 0xe9, 0x00, 0xb5, 0xff, 0xf4, 0x00, 0xb6, - 0xff, 0xf4, 0x00, 0xb7, 0xff, 0xf4, 0x00, 0xb9, 0xff, 0xf4, 0x00, 0xbb, - 0xff, 0xf4, 0x00, 0x02, 0xff, 0xff, 0xff, 0xd3, 0x00, 0x58, 0xff, 0xfa, - 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x1e, 0xff, 0xc7, 0x00, 0x1f, - 0xff, 0xc7, 0x00, 0x37, 0xff, 0xf0, 0x00, 0x45, 0xff, 0xfe, 0x00, 0x49, - 0xff, 0xe3, 0x00, 0x4c, 0xff, 0xfa, 0x00, 0x53, 0xff, 0xe7, 0x00, 0xa4, - 0xff, 0xfe, 0x00, 0xa7, 0xff, 0xfe, 0x00, 0xa8, 0xff, 0xfe, 0x00, 0xa9, - 0x00, 0x04, 0x00, 0xac, 0xff, 0xe3, 0x00, 0xb6, 0xff, 0xe7, 0x00, 0xb9, - 0xff, 0xe7, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1a, 0xff, 0xff, - 0xff, 0xdf, 0x00, 0x10, 0xff, 0x73, 0x00, 0x11, 0xff, 0xe7, 0x00, 0x12, - 0xff, 0x73, 0x00, 0x1e, 0xff, 0xd1, 0x00, 0x1f, 0xff, 0xd1, 0x00, 0x45, - 0xff, 0xdb, 0x00, 0x47, 0xff, 0xdf, 0x00, 0x49, 0xff, 0xd5, 0x00, 0x4b, - 0xff, 0xe3, 0x00, 0x53, 0xff, 0xdd, 0x00, 0x57, 0xff, 0xee, 0x00, 0xa3, - 0xff, 0xdb, 0x00, 0xa4, 0xff, 0xdb, 0x00, 0xa5, 0xff, 0xdb, 0x00, 0xa6, - 0xff, 0xdb, 0x00, 0xa7, 0xff, 0xdb, 0x00, 0xa8, 0xff, 0xdb, 0x00, 0xa9, - 0xff, 0xe3, 0x00, 0xab, 0xff, 0xd5, 0x00, 0xac, 0xff, 0xd5, 0x00, 0xad, - 0xff, 0xd5, 0x00, 0xb5, 0xff, 0xdd, 0x00, 0xb6, 0xff, 0xdd, 0x00, 0xb9, - 0xff, 0xdd, 0x00, 0xbb, 0xff, 0xdd, 0x00, 0x19, 0x00, 0x10, 0xff, 0x9a, - 0x00, 0x11, 0xff, 0xfe, 0x00, 0x12, 0xff, 0x9a, 0x00, 0x1e, 0xff, 0xd1, - 0x00, 0x1f, 0xff, 0xd1, 0x00, 0x45, 0xff, 0xe1, 0x00, 0x47, 0xff, 0xf2, - 0x00, 0x49, 0xff, 0xe7, 0x00, 0x4b, 0xff, 0xf4, 0x00, 0x53, 0xff, 0xee, - 0x00, 0x57, 0xff, 0xf6, 0x00, 0xa3, 0xff, 0xe1, 0x00, 0xa4, 0xff, 0xe1, - 0x00, 0xa5, 0xff, 0xe1, 0x00, 0xa6, 0xff, 0xe1, 0x00, 0xa7, 0xff, 0xe1, - 0x00, 0xa8, 0xff, 0xe1, 0x00, 0xa9, 0xff, 0xe9, 0x00, 0xab, 0xff, 0xe7, - 0x00, 0xac, 0xff, 0xe7, 0x00, 0xad, 0xff, 0xe7, 0x00, 0xb5, 0xff, 0xee, - 0x00, 0xb6, 0xff, 0xee, 0x00, 0xb9, 0xff, 0xee, 0x00, 0xbb, 0xff, 0xf4, - 0x00, 0x06, 0x00, 0x45, 0xff, 0xdd, 0x00, 0x47, 0xff, 0xd1, 0x00, 0x49, - 0xff, 0xc7, 0x00, 0x53, 0xff, 0xcd, 0x00, 0x55, 0xff, 0xd7, 0x00, 0xac, - 0xff, 0xc7, 0x00, 0x1a, 0x00, 0x10, 0xff, 0x71, 0x00, 0x11, 0xff, 0xe3, - 0x00, 0x12, 0xff, 0x71, 0x00, 0x1e, 0xff, 0xc9, 0x00, 0x1f, 0xff, 0xc9, - 0x00, 0x45, 0xff, 0xd3, 0x00, 0x47, 0xff, 0xd9, 0x00, 0x49, 0xff, 0xcf, - 0x00, 0x4b, 0xff, 0xdd, 0x00, 0x50, 0xff, 0xf8, 0x00, 0x53, 0xff, 0xd7, - 0x00, 0x57, 0xff, 0xe7, 0x00, 0xa3, 0xff, 0xd3, 0x00, 0xa4, 0xff, 0xd3, - 0x00, 0xa5, 0xff, 0xd3, 0x00, 0xa6, 0xff, 0xd3, 0x00, 0xa7, 0xff, 0xd3, - 0x00, 0xa8, 0xff, 0xd3, 0x00, 0xa9, 0xff, 0xdb, 0x00, 0xab, 0xff, 0xcf, - 0x00, 0xac, 0xff, 0xcf, 0x00, 0xad, 0xff, 0xcf, 0x00, 0xb5, 0xff, 0xd7, - 0x00, 0xb6, 0xff, 0xd7, 0x00, 0xb9, 0xff, 0xd7, 0x00, 0xbb, 0xff, 0xd9, - 0x00, 0x0b, 0x00, 0x10, 0x00, 0x0a, 0x00, 0x12, 0x00, 0x0a, 0x00, 0x27, - 0xff, 0xb6, 0x00, 0x2b, 0xff, 0xb8, 0x00, 0x33, 0xff, 0xbc, 0x00, 0x35, - 0xff, 0xbe, 0x00, 0x38, 0xff, 0x42, 0x00, 0x39, 0xff, 0xb4, 0x00, 0x3a, - 0xff, 0x66, 0x00, 0x3b, 0xff, 0x98, 0x00, 0x3d, 0xff, 0x35, 0x00, 0x1c, - 0xff, 0xff, 0xff, 0xae, 0xff, 0xff, 0xff, 0x7b, 0x00, 0x10, 0x00, 0x0a, - 0x00, 0x11, 0xff, 0xfa, 0x00, 0x12, 0x00, 0x0a, 0x00, 0x27, 0xff, 0xb6, - 0x00, 0x2b, 0xff, 0xb8, 0x00, 0x33, 0xff, 0xbc, 0x00, 0x35, 0xff, 0xbe, - 0x00, 0x38, 0xff, 0x42, 0x00, 0x39, 0xff, 0xb4, 0x00, 0x3a, 0xff, 0x66, - 0x00, 0x3b, 0xff, 0x98, 0x00, 0x3d, 0xff, 0x35, 0x00, 0x45, 0xff, 0xf8, - 0x00, 0x46, 0x00, 0x08, 0x00, 0x47, 0xff, 0xe9, 0x00, 0x48, 0xff, 0xf0, - 0x00, 0x49, 0xff, 0xdf, 0x00, 0x4b, 0xff, 0xec, 0x00, 0x53, 0xff, 0xe5, - 0x00, 0x55, 0xff, 0xf0, 0x00, 0x58, 0xff, 0xdf, 0x00, 0x59, 0xff, 0xe7, - 0x00, 0x5a, 0xff, 0xc1, 0x00, 0x5b, 0xff, 0xd5, 0x00, 0x5d, 0xff, 0xba, - 0x00, 0x6e, 0xff, 0xa6, 0x00, 0x0b, 0x00, 0x10, 0x00, 0x0a, 0x00, 0x12, - 0x00, 0x0a, 0x00, 0x27, 0xff, 0xb6, 0x00, 0x2b, 0xff, 0xb8, 0x00, 0x33, - 0xff, 0xbc, 0x00, 0x35, 0xff, 0xbe, 0x00, 0x38, 0xff, 0x42, 0x00, 0x39, - 0xff, 0xb4, 0x00, 0x3a, 0xff, 0x66, 0x00, 0x3b, 0xff, 0x98, 0x00, 0x3d, - 0xff, 0x35, 0x00, 0x0b, 0x00, 0x10, 0x00, 0x0a, 0x00, 0x12, 0x00, 0x0a, - 0x00, 0x27, 0xff, 0xb6, 0x00, 0x2b, 0xff, 0xb8, 0x00, 0x33, 0xff, 0xbc, - 0x00, 0x35, 0xff, 0xbe, 0x00, 0x38, 0xff, 0x42, 0x00, 0x39, 0xff, 0xb4, - 0x00, 0x3a, 0xff, 0x66, 0x00, 0x3b, 0xff, 0x98, 0x00, 0x3d, 0xff, 0x35, - 0x00, 0x1c, 0xff, 0xff, 0xff, 0xae, 0xff, 0xff, 0xff, 0x8d, 0xff, 0xff, - 0xff, 0x7b, 0x00, 0x10, 0x00, 0x0a, 0x00, 0x11, 0xff, 0xfa, 0x00, 0x12, - 0x00, 0x0a, 0x00, 0x27, 0xff, 0xb6, 0x00, 0x2b, 0xff, 0xb8, 0x00, 0x33, - 0xff, 0xbc, 0x00, 0x35, 0xff, 0xbe, 0x00, 0x38, 0xff, 0x42, 0x00, 0x39, - 0xff, 0xb4, 0x00, 0x3a, 0xff, 0x66, 0x00, 0x3b, 0xff, 0x98, 0x00, 0x3d, - 0xff, 0x35, 0x00, 0x45, 0xff, 0xf8, 0x00, 0x46, 0x00, 0x08, 0x00, 0x47, - 0xff, 0xe9, 0x00, 0x48, 0xff, 0xf0, 0x00, 0x4b, 0xff, 0xec, 0x00, 0x53, - 0xff, 0xe5, 0x00, 0x55, 0xff, 0xf0, 0x00, 0x58, 0xff, 0xdf, 0x00, 0x59, - 0xff, 0xe7, 0x00, 0x5a, 0xff, 0xc1, 0x00, 0x5b, 0xff, 0xd5, 0x00, 0x5d, - 0xff, 0xba, 0x00, 0x6e, 0xff, 0xa6, 0x00, 0x1d, 0xff, 0xff, 0xff, 0xae, - 0xff, 0xff, 0xff, 0x8d, 0xff, 0xff, 0xff, 0x7b, 0x00, 0x10, 0x00, 0x0a, - 0x00, 0x11, 0xff, 0xfa, 0x00, 0x12, 0x00, 0x0a, 0x00, 0x27, 0xff, 0xb6, - 0x00, 0x2b, 0xff, 0xb8, 0x00, 0x33, 0xff, 0xbc, 0x00, 0x35, 0xff, 0xbe, - 0x00, 0x38, 0xff, 0x42, 0x00, 0x39, 0xff, 0xb4, 0x00, 0x3a, 0xff, 0x66, - 0x00, 0x3b, 0xff, 0x98, 0x00, 0x3d, 0xff, 0x35, 0x00, 0x45, 0xff, 0xf8, - 0x00, 0x46, 0x00, 0x08, 0x00, 0x47, 0xff, 0xe9, 0x00, 0x48, 0xff, 0xf0, - 0x00, 0x49, 0xff, 0xdf, 0x00, 0x4b, 0xff, 0xec, 0x00, 0x53, 0xff, 0xe5, - 0x00, 0x55, 0xff, 0xf0, 0x00, 0x58, 0xff, 0xdf, 0x00, 0x59, 0xff, 0xe7, - 0x00, 0x5a, 0xff, 0xc1, 0x00, 0x5b, 0xff, 0xd5, 0x00, 0x5d, 0xff, 0xba, - 0x00, 0x6e, 0xff, 0xa6, 0x00, 0x01, 0x00, 0x25, 0xff, 0xc1, 0x00, 0x03, - 0x00, 0x38, 0xff, 0xaa, 0x00, 0x3a, 0xff, 0xa4, 0x00, 0x3d, 0xff, 0x87, - 0x00, 0x05, 0x00, 0x25, 0xff, 0xb8, 0x00, 0x38, 0xff, 0xaa, 0x00, 0x3a, - 0xff, 0xa4, 0x00, 0x3b, 0xff, 0xd1, 0x00, 0x3d, 0xff, 0x87, 0x00, 0x03, - 0x00, 0x38, 0xff, 0xaa, 0x00, 0x3a, 0xff, 0xa4, 0x00, 0x3d, 0xff, 0x87, - 0x00, 0x03, 0x00, 0x38, 0xff, 0xaa, 0x00, 0x3a, 0xff, 0xa4, 0x00, 0x3d, - 0xff, 0x87, 0x00, 0x06, 0x00, 0x25, 0xff, 0xb8, 0x00, 0x38, 0xff, 0xaa, - 0x00, 0x3a, 0xff, 0xa4, 0x00, 0x3b, 0xff, 0xd1, 0x00, 0x3c, 0xff, 0xa2, - 0x00, 0x3d, 0xff, 0x87, 0x00, 0x01, 0x00, 0x25, 0xff, 0xbc, 0x00, 0x01, - 0x00, 0x25, 0xff, 0xb6, 0x00, 0x07, 0x00, 0x10, 0xff, 0xc9, 0x00, 0x12, - 0xff, 0xcd, 0x00, 0x25, 0xff, 0xb6, 0x00, 0x51, 0xff, 0xf8, 0x00, 0x52, - 0xff, 0xf8, 0x00, 0x54, 0x00, 0x06, 0x00, 0x56, 0xff, 0xf8, 0x00, 0x01, - 0x00, 0x25, 0xff, 0xb6, 0x00, 0x08, 0x00, 0x10, 0xff, 0xc9, 0x00, 0x12, - 0xff, 0xcd, 0x00, 0x25, 0xff, 0xb6, 0x00, 0x46, 0x00, 0x06, 0x00, 0x51, - 0xff, 0xf8, 0x00, 0x52, 0xff, 0xf8, 0x00, 0x54, 0x00, 0x06, 0x00, 0x56, - 0xff, 0xf8, 0x00, 0x03, 0x00, 0x5a, 0xff, 0xd5, 0x00, 0x5b, 0xff, 0xe5, - 0x00, 0x5d, 0xff, 0xcb, 0x00, 0x03, 0x00, 0x5a, 0xff, 0xd5, 0x00, 0x5b, - 0xff, 0xe5, 0x00, 0x5d, 0xff, 0xcb, 0x00, 0x03, 0x00, 0x5a, 0xff, 0xd5, - 0x00, 0x5b, 0xff, 0xe5, 0x00, 0x5d, 0xff, 0xcb, 0x00, 0x03, 0x00, 0x5a, - 0xff, 0xd5, 0x00, 0x5b, 0xff, 0xe5, 0x00, 0x5d, 0xff, 0xcb, 0x00, 0x03, - 0x00, 0x5a, 0xff, 0xdf, 0x00, 0x5b, 0xff, 0xec, 0x00, 0x5d, 0xff, 0xd7, - 0x00, 0x03, 0x00, 0x5a, 0xff, 0xe1, 0x00, 0x5b, 0xff, 0xee, 0x00, 0x5d, - 0xff, 0xd9, 0x00, 0x03, 0x00, 0x5a, 0xff, 0xe1, 0x00, 0x5b, 0xff, 0xee, - 0x00, 0x5d, 0xff, 0xd9, 0x00, 0x03, 0x00, 0x5a, 0xff, 0xdb, 0x00, 0x5b, - 0xff, 0xec, 0x00, 0x5d, 0xff, 0xd3, 0x00, 0x03, 0x00, 0x5a, 0xff, 0xdb, - 0x00, 0x5b, 0xff, 0xec, 0x00, 0x5d, 0xff, 0xd3, 0x00, 0x01, 0x00, 0x58, - 0xff, 0xec, 0x00, 0x05, 0x00, 0x58, 0xff, 0xec, 0x00, 0x5a, 0xff, 0xdb, - 0x00, 0x5b, 0xff, 0xec, 0x00, 0x5c, 0xff, 0xc9, 0x00, 0x5d, 0xff, 0xd3, - 0x00, 0x02, 0x00, 0x11, 0x00, 0x25, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2a, - 0x00, 0x2b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x06, 0x00, 0x32, - 0x00, 0x34, 0x00, 0x09, 0x00, 0x36, 0x00, 0x3e, 0x00, 0x0c, 0x00, 0x45, - 0x00, 0x47, 0x00, 0x15, 0x00, 0x49, 0x00, 0x4d, 0x00, 0x18, 0x00, 0x4f, - 0x00, 0x5d, 0x00, 0x1d, 0x00, 0x83, 0x00, 0x88, 0x00, 0x2c, 0x00, 0x8a, - 0x00, 0x8a, 0x00, 0x32, 0x00, 0x95, 0x00, 0x99, 0x00, 0x33, 0x00, 0x9b, - 0x00, 0x9f, 0x00, 0x38, 0x00, 0xa3, 0x00, 0xa4, 0x00, 0x3d, 0x00, 0xa7, - 0x00, 0xa9, 0x00, 0x3f, 0x00, 0xac, 0x00, 0xad, 0x00, 0x42, 0x00, 0xb5, - 0x00, 0xb7, 0x00, 0x44, 0x00, 0xb9, 0x00, 0xb9, 0x00, 0x47, 0x00, 0x00 -}; -unsigned int FreeSans_ttf_len = 22932; - -#if 0 -void writeLogo(const char *dir) -{ - QCString fileName=(QCString)dir+"/doxygen.png"; - QFile f(fileName); - if (f.open(IO_WriteOnly)) - f.writeBlock((char *)doxygen_png_data,doxygen_png_len); - else - { - fprintf(stderr,"warning: Cannot open file %s for writing\n",fileName.data()); - } - f.close(); -} - -void writeSearchButton(const char *dir) -{ - QCString fileName=(QCString)dir+"/search.png"; - QFile f(fileName); - if (f.open(IO_WriteOnly)) - f.writeBlock((char *)search_png,search_png_len); - else - { - fprintf(stderr,"warning: Cannot open file %s for writing\n",fileName.data()); - } - f.close(); -} -#endif - -void writeDoxFont(const char *dir) -{ - QCString fileName=(QCString)dir+"/FreeSans.ttf"; - QFile f(fileName); - if (f.open(IO_WriteOnly)) - f.writeBlock((char *)FreeSans_ttf,FreeSans_ttf_len); - else - { - fprintf(stderr,"error: Cannot open file %s for writing\n",fileName.data()); - } - f.close(); -} - -void removeDoxFont(const char *dir) -{ - QDir d(dir); - d.remove("FreeSans.ttf"); -} diff --git a/src/logos.h b/src/logos.h deleted file mode 100644 index 95a8a39..0000000 --- a/src/logos.h +++ /dev/null @@ -1,27 +0,0 @@ -/****************************************************************************** - * - * - * - * Copyright (C) 1997-2015 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * - * Documents produced by Doxygen are derivative works derived from the - * input used in their production; they are not affected by this license. - * - */ - -#ifndef LOGOS_H -#define LOGOS_H - -extern void writeLogo(const char *dir); -//extern void writeNullImage(const char *dir); -extern void writeSearchButton(const char *dir); -extern void writeDoxFont(const char *dir); -extern void removeDoxFont(const char *dir); - -#endif diff --git a/src/markdown.cpp b/src/markdown.cpp index 93a4c91..56d160b 100644 --- a/src/markdown.cpp +++ b/src/markdown.cpp @@ -138,6 +138,7 @@ static QCString escapeSpecialChars(const QCString &s) case '>': if (!insideQuote) { growBuf.addChar('\\'); } growBuf.addChar('>'); break; case '\\': if (!insideQuote) { growBuf.addChar('\\'); } growBuf.addChar('\\'); break; case '@': if (!insideQuote) { growBuf.addChar('\\'); } growBuf.addChar('@'); break; + case '#': if (!insideQuote) { growBuf.addChar('\\'); } growBuf.addChar('#'); break; default: growBuf.addChar(c); break; } pc=c; diff --git a/src/marshal.cpp b/src/marshal.cpp deleted file mode 100644 index c68718a..0000000 --- a/src/marshal.cpp +++ /dev/null @@ -1,857 +0,0 @@ -#include <qfile.h> -#include <assert.h> - -#include "sortdict.h" -#include "marshal.h" -#include "entry.h" -#include "section.h" -#include "memberlist.h" -#include "definition.h" -#include "groupdef.h" -#include "example.h" -#include "arguments.h" -#include "doxygen.h" - -#define HEADER ('D'<<24)+('O'<<16)+('X'<<8)+'!' - -void marshalInt(StorageIntf *s,int v) -{ - uchar b[4]; - b[0]=((uint)v)>>24; - b[1]=(((uint)v)>>16)&0xff; - b[2]=(((uint)v)>>8)&0xff; - b[3]=v&0xff; - s->write((const char *)b,4); -} - -void marshalUInt(StorageIntf *s,uint v) -{ - uchar b[4]; - b[0]=v>>24; - b[1]=(v>>16)&0xff; - b[2]=(v>>8)&0xff; - b[3]=v&0xff; - s->write((const char *)b,4); -} - -void marshalUInt64(StorageIntf *s,uint64 v) -{ - marshalUInt(s, uint(v>>32)); - marshalUInt(s, uint(v&0xFFFFFFFF)); -} - -void marshalBool(StorageIntf *s,bool b) -{ - char c = b; - s->write(&c,sizeof(char)); -} - -void marshalQCString(StorageIntf *s,const QCString &str) -{ - uint l=str.length(); - marshalUInt(s,l); - if (l>0) s->write(str.data(),l); -} - -void marshalQGString(StorageIntf *s,const QGString &str) -{ - uint l=str.length(); - marshalUInt(s,l); - if (l>0) s->write(str.data(),l); -} - -void marshalArgumentList(StorageIntf *s,ArgumentList *argList) -{ - ArgumentList::marshal(s,argList); -} - -void marshalArgumentLists(StorageIntf *s,QList<ArgumentList> *argLists) -{ - if (argLists==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,argLists->count()); - QListIterator<ArgumentList> ali(*argLists); - ArgumentList *al; - for (ali.toFirst();(al=ali.current());++ali) - { - marshalArgumentList(s,al); - } - } -} - -void marshalBaseInfoList(StorageIntf *s, QList<BaseInfo> *baseList) -{ - if (baseList==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,baseList->count()); - QListIterator<BaseInfo> bli(*baseList); - BaseInfo *bi; - for (bli.toFirst();(bi=bli.current());++bli) - { - marshalQCString(s,bi->name); - marshalInt(s,(int)bi->prot); - marshalInt(s,(int)bi->virt); - } - } -} - -void marshalGroupingList(StorageIntf *s, QList<Grouping> *groups) -{ - if (groups==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,groups->count()); - QListIterator<Grouping> gli(*groups); - Grouping *g; - for (gli.toFirst();(g=gli.current());++gli) - { - marshalQCString(s,g->groupname); - marshalInt(s,(int)g->pri); - } - } -} - -void marshalSectionInfoList(StorageIntf *s, QList<SectionInfo> *anchors) -{ - if (anchors==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,anchors->count()); - QListIterator<SectionInfo> sli(*anchors); - SectionInfo *si; - for (sli.toFirst();(si=sli.current());++sli) - { - marshalQCString(s,si->label); - marshalQCString(s,si->title); - marshalQCString(s,si->ref); - marshalInt(s,(int)si->type); - marshalQCString(s,si->fileName); - marshalInt(s,si->lineNr); - marshalInt(s,si->level); - } - anchors->clear(); - } -} - -void marshalItemInfoList(StorageIntf *s, QList<ListItemInfo> *sli) -{ - if (sli==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,sli->count()); - QListIterator<ListItemInfo> liii(*sli); - ListItemInfo *lii; - for (liii.toFirst();(lii=liii.current());++liii) - { - marshalQCString(s,lii->type); - marshalInt(s,lii->itemId); - } - } -} - -void marshalObjPointer(StorageIntf *s,void *obj) -{ - char *b = (char *)&obj; - s->write(b,sizeof(void *)); -} - -void marshalSectionDict(StorageIntf *s,SectionDict *sections) -{ - if (sections==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,sections->count()); - SDict<SectionInfo>::IteratorDict sli(*sections); - SectionInfo *si; - for (sli.toFirst();(si=sli.current());++sli) - { - marshalQCString(s,sli.currentKey()); - marshalObjPointer(s,si); - } - } -} - -void marshalMemberSDict(StorageIntf *s,MemberSDict *memberSDict) -{ - if (memberSDict==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,memberSDict->count()); - //printf(" marshalMemberSDict: items=%d\n",memberSDict->count()); - SDict<MemberDef>::IteratorDict mdi(*memberSDict); - MemberDef *md; - int count=0; - for (mdi.toFirst();(md=mdi.current());++mdi) - { - //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md); - marshalQCString(s,mdi.currentKey()); - marshalObjPointer(s,md); - count++; - } - assert(count==memberSDict->count()); - } -} - -void marshalDocInfo(StorageIntf *s,DocInfo *docInfo) -{ - if (docInfo==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,1); - marshalQCString(s,docInfo->doc); - marshalInt(s,docInfo->line); - marshalQCString(s,docInfo->file); - } -} - -void marshalBriefInfo(StorageIntf *s,BriefInfo *briefInfo) -{ - if (briefInfo==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,1); - marshalQCString(s,briefInfo->doc); - marshalQCString(s,briefInfo->tooltip); - marshalInt(s,briefInfo->line); - marshalQCString(s,briefInfo->file); - } -} - -void marshalBodyInfo(StorageIntf *s,BodyInfo *bodyInfo) -{ - if (bodyInfo==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,1); - marshalInt(s,bodyInfo->startLine); - marshalInt(s,bodyInfo->endLine); - marshalObjPointer(s,bodyInfo->fileDef); - } -} - -void marshalGroupList(StorageIntf *s,GroupList *groupList) -{ - if (groupList==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,groupList->count()); - QListIterator<GroupDef> gli(*groupList); - GroupDef *gd=0; - for (gli.toFirst();(gd=gli.current());++gli) - { - marshalObjPointer(s,gd); - } - } -} - -void marshalMemberList(StorageIntf *s,MemberList *ml) -{ - if (ml==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,ml->count()); - MemberListIterator mli(*ml); - MemberDef *md; - uint count=0; - for (mli.toFirst();(md=mli.current());++mli) - { - marshalObjPointer(s,md); - count++; - } - assert(count==ml->count()); - - ml->marshal(s); - } -} - -void marshalExampleSDict(StorageIntf *s,ExampleSDict *ed) -{ - if (ed==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,ed->count()); - //printf(" marshalMemberSDict: items=%d\n",memberSDict->count()); - SDict<Example>::IteratorDict edi(*ed); - Example *e; - for (edi.toFirst();(e=edi.current());++edi) - { - //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md); - marshalQCString(s,edi.currentKey()); - marshalQCString(s,e->anchor); - marshalQCString(s,e->name); - marshalQCString(s,e->file); - } - } -} - -void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls) -{ - if (mls==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,mls->count()); - //printf(" marshalMemberSDict: items=%d\n",memberSDict->count()); - SDict<MemberList>::IteratorDict mli(*mls); - MemberList *ml; - for (mli.toFirst();(ml=mli.current());++mli) - { - //printf(" marshalMemberSDict: %d: key=%s value=%p\n",count,mdi.currentKey().data(),md); - marshalQCString(s,mli.currentKey()); - marshalObjPointer(s,ml); // assume we are not owner of the list - } - } -} - -void marshalLocalToc(StorageIntf *s,const LocalToc <) -{ - marshalInt(s,lt.mask()); - marshalInt(s,lt.htmlLevel()); - marshalInt(s,lt.latexLevel()); - marshalInt(s,lt.xmlLevel()); - marshalInt(s,lt.docbookLevel()); -} - -void marshalEntry(StorageIntf *s,Entry *e) -{ - marshalUInt(s,HEADER); - marshalQCString(s,e->name); - marshalQCString(s,e->type); - marshalInt(s,e->section); - marshalInt(s,(int)e->protection); - marshalInt(s,(int)e->mtype); - marshalUInt64(s,e->spec); - marshalInt(s,e->initLines); - marshalBool(s,e->stat); - marshalLocalToc(s,e->localToc); - marshalBool(s,e->explicitExternal); - marshalBool(s,e->proto); - marshalBool(s,e->subGrouping); - marshalBool(s,e->callGraph); - marshalBool(s,e->callerGraph); - marshalBool(s,e->referencedByRelation); - marshalBool(s,e->referencesRelation); - marshalInt(s,(int)e->virt); - marshalQCString(s,e->args); - marshalQCString(s,e->bitfields); - marshalArgumentList(s,e->argList); - marshalArgumentLists(s,e->tArgLists); - marshalQGString(s,e->program); - marshalQGString(s,e->initializer); - marshalQCString(s,e->includeFile); - marshalQCString(s,e->includeName); - marshalQCString(s,e->doc); - marshalInt(s,e->docLine); - marshalQCString(s,e->docFile); - marshalQCString(s,e->brief); - marshalInt(s,e->briefLine); - marshalQCString(s,e->briefFile); - marshalQCString(s,e->inbodyDocs); - marshalInt(s,e->inbodyLine); - marshalQCString(s,e->inbodyFile); - marshalQCString(s,e->relates); - marshalInt(s,e->relatesType); - marshalQCString(s,e->read); - marshalQCString(s,e->write); - marshalQCString(s,e->inside); - marshalQCString(s,e->exception); - marshalArgumentList(s,e->typeConstr); - marshalInt(s,e->bodyLine); - marshalInt(s,e->endBodyLine); - marshalInt(s,e->mGrpId); - marshalBaseInfoList(s,e->extends); - marshalGroupingList(s,e->groups); - marshalSectionInfoList(s,e->anchors); - marshalQCString(s,e->fileName); - marshalInt(s,e->startLine); - marshalItemInfoList(s,e->sli); - marshalInt(s,(int)e->lang); - marshalBool(s,e->hidden); - marshalBool(s,e->artificial); - marshalInt(s,(int)e->groupDocType); - marshalQCString(s,e->id); - marshalQCString(s,e->metaData); -} - -void marshalEntryTree(StorageIntf *s,Entry *e) -{ - marshalEntry(s,e); - marshalUInt(s,e->children()->count()); - QListIterator<Entry> eli(*e->children()); - Entry *child; - for (eli.toFirst();(child=eli.current());++eli) - { - marshalEntryTree(s,child); - } -} - -//------------------------------------------------------------------ - -int unmarshalInt(StorageIntf *s) -{ - uchar b[4]; - s->read((char *)b,4); - int result=(int)((((uint)b[0])<<24)+((uint)b[1]<<16)+((uint)b[2]<<8)+(uint)b[3]); - //printf("unmarshalInt: %x %x %x %x: %x offset=%llx\n",b[0],b[1],b[2],b[3],result,f.pos()); - return result; -} - -uint unmarshalUInt(StorageIntf *s) -{ - uchar b[4]; - s->read((char *)b,4); - uint result=(((uint)b[0])<<24)+((uint)b[1]<<16)+((uint)b[2]<<8)+(uint)b[3]; - //printf("unmarshalUInt: %x %x %x %x: %x offset=%llx\n",b[0],b[1],b[2],b[3],result,f.pos()); - return result; -} - -uint64 unmarshalUInt64(StorageIntf *s) -{ - uint64 result=uint64(unmarshalUInt(s))<<32; - result|=unmarshalUInt(s); - return result; -} - -bool unmarshalBool(StorageIntf *s) -{ - char result; - s->read(&result,sizeof(result)); - //printf("unmarshalBool: %x offset=%llx\n",result,f.pos()); - return result; -} - -QCString unmarshalQCString(StorageIntf *s) -{ - uint len = unmarshalUInt(s); - //printf("unmarshalQCString: len=%d offset=%llx\n",len,f.pos()); - QCString result(len+1); - result.at(len)='\0'; - if (len>0) - { - s->read(result.rawData(),len); - } - //printf("unmarshalQCString: result=%s\n",result.data()); - return result; -} - -QGString unmarshalQGString(StorageIntf *s) -{ - uint len = unmarshalUInt(s); - //printf("unmarshalQCString: len=%d offset=%llx\n",len,f.pos()); - QGString result(len+1); - result.at(len)='\0'; - if (len>0) - { - s->read(result.data(),len); - } - //printf("unmarshalQCString: result=%s\n",result.data()); - return result; -} - -ArgumentList *unmarshalArgumentList(StorageIntf *s) -{ - return ArgumentList::unmarshal(s); -} - -QList<ArgumentList> *unmarshalArgumentLists(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<ArgumentList> *result = new QList<ArgumentList>; - result->setAutoDelete(TRUE); - assert(count<1000000); - //printf("unmarshalArgumentLists: %d\n",count); - for (i=0;i<count;i++) - { - result->append(unmarshalArgumentList(s)); - } - return result; -} - -QList<BaseInfo> *unmarshalBaseInfoList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<BaseInfo> *result = new QList<BaseInfo>; - result->setAutoDelete(TRUE); - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString name = unmarshalQCString(s); - Protection prot = (Protection)unmarshalInt(s); - Specifier virt = (Specifier)unmarshalInt(s); - result->append(new BaseInfo(name,prot,virt)); - } - return result; -} - -QList<Grouping> *unmarshalGroupingList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<Grouping> *result = new QList<Grouping>; - result->setAutoDelete(TRUE); - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString name = unmarshalQCString(s); - Grouping::GroupPri_t prio = (Grouping::GroupPri_t)unmarshalInt(s); - result->append(new Grouping(name,prio)); - } - return result; -} - -QList<SectionInfo> *unmarshalSectionInfoList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<SectionInfo> *anchors = new QList<SectionInfo>; - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString label = unmarshalQCString(s); - QCString title = unmarshalQCString(s); - QCString ref = unmarshalQCString(s); - SectionInfo::SectionType type = (SectionInfo::SectionType)unmarshalInt(s); - QCString fileName = unmarshalQCString(s); - int lineNr = unmarshalInt(s); - int level = unmarshalInt(s); - SectionInfo *si = Doxygen::sectionDict->find(label); - if (si==0) // This should actually never be true since all anchors should be in sectionDict. - // Could still optimize the marshaling routine by only storing label. - { - SectionInfo *si = new SectionInfo(fileName,lineNr,label,title,type,level,ref); - anchors->append(si); - Doxygen::sectionDict->append(label,si); // this dict owns the anchor objects - } - else - { - anchors->append(si); - } - } - return anchors; -} - -QList<ListItemInfo> *unmarshalItemInfoList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - QList<ListItemInfo> *result = new QList<ListItemInfo>; - result->setAutoDelete(TRUE); - assert(count<1000000); - for (i=0;i<count;i++) - { - ListItemInfo *lii = new ListItemInfo; - lii->type = unmarshalQCString(s); - lii->itemId = unmarshalInt(s); - result->append(lii); - } - return result; -} - -void *unmarshalObjPointer(StorageIntf *s) -{ - void *result; - s->read((char *)&result,sizeof(void*)); - return result; -} - -SectionDict *unmarshalSectionDict(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - //printf("unmarshalSectionDict count=%d\n",count); - if (count==NULL_LIST) return 0; // null list - SectionDict *result = new SectionDict(17); - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString key = unmarshalQCString(s); - SectionInfo *si = (SectionInfo *)unmarshalObjPointer(s); - //printf(" unmarshalSectionDict i=%d key=%s si=%s\n",count,key.data(),si->label.data()); - result->append(key,si); - } - return result; -} - -MemberSDict *unmarshalMemberSDict(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - //printf("--- unmarshalMemberSDict count=%d\n",count); - if (count==NULL_LIST) - { - //printf("--- end unmarshalMemberSDict\n"); - return 0; // null list - } - MemberSDict *result = new MemberSDict; - assert(count<1000000); - //printf("Reading %d key-value pairs\n",count); - for (i=0;i<count;i++) - { - //printf(" unmarshaling pair %d\n",i); - QCString key = unmarshalQCString(s); - //printf(" unmarshaling key %s\n",key.data()); - MemberDef *md = (MemberDef *)unmarshalObjPointer(s); - //printf(" unmarshalMemberSDict i=%d key=%s md=%p\n",i,key.data(),md); - result->append(key,md); - } - - //printf("--- end unmarshalMemberSDict\n"); - return result; -} - -DocInfo *unmarshalDocInfo(StorageIntf *s) -{ - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - DocInfo *result = new DocInfo; - result->doc = unmarshalQCString(s); - result->line = unmarshalInt(s); - result->file = unmarshalQCString(s); - return result; -} - -BriefInfo *unmarshalBriefInfo(StorageIntf *s) -{ - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - BriefInfo *result = new BriefInfo; - result->doc = unmarshalQCString(s); - result->tooltip = unmarshalQCString(s); - result->line = unmarshalInt(s); - result->file = unmarshalQCString(s); - return result; -} - -BodyInfo *unmarshalBodyInfo(StorageIntf *s) -{ - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - BodyInfo *result = new BodyInfo; - result->startLine = unmarshalInt(s); - result->endLine = unmarshalInt(s); - result->fileDef = (FileDef*)unmarshalObjPointer(s); - return result; -} - -GroupList *unmarshalGroupList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; // null list - assert(count<1000000); - GroupList *result = new GroupList; - for (i=0;i<count;i++) - { - GroupDef *gd = (GroupDef *)unmarshalObjPointer(s); - result->append(gd); - } - return result; -} - -MemberList *unmarshalMemberList(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - MemberList *result = new MemberList; - assert(count<1000000); - for (i=0;i<count;i++) - { - MemberDef *md = (MemberDef*)unmarshalObjPointer(s); - result->append(md); - } - result->unmarshal(s); - return result; -} - -ExampleSDict *unmarshalExampleSDict(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - ExampleSDict *result = new ExampleSDict; - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString key = unmarshalQCString(s); - Example *e = new Example; - e->anchor = unmarshalQCString(s); - e->name = unmarshalQCString(s); - e->file = unmarshalQCString(s); - result->inSort(key,e); - } - return result; -} - -SDict<MemberList> *unmarshalMemberLists(StorageIntf *s) -{ - uint i; - uint count = unmarshalUInt(s); - if (count==NULL_LIST) return 0; - SDict<MemberList> *result = new SDict<MemberList>(7); - assert(count<1000000); - for (i=0;i<count;i++) - { - QCString key = unmarshalQCString(s); - MemberList *ml = (MemberList *)unmarshalObjPointer(s); - result->append(key,ml); - } - return result; -} - -LocalToc unmarshalLocalToc(StorageIntf *s) -{ - LocalToc result; - int mask = unmarshalInt(s); - int htmlLevel = unmarshalInt(s); - int latexLevel = unmarshalInt(s); - int xmlLevel = unmarshalInt(s); - int docbookLevel = unmarshalInt(s); - if ((mask & (1<<LocalToc::Html))!=0) - { - result.enableHtml(htmlLevel); - } - if ((mask & (1<<LocalToc::Latex))!=0) - { - result.enableLatex(latexLevel); - } - if ((mask & (1<<LocalToc::Xml))!=0) - { - result.enableXml(xmlLevel); - } - if ((mask & (1<<LocalToc::Docbook))!=0) - { - result.enableDocbook(docbookLevel); - } - return result; -} - -Entry * unmarshalEntry(StorageIntf *s) -{ - Entry *e = new Entry; - uint header=unmarshalUInt(s); - ASSERT(header==HEADER); - e->name = unmarshalQCString(s); - e->type = unmarshalQCString(s); - e->section = unmarshalInt(s); - e->protection = (Protection)unmarshalInt(s); - e->mtype = (MethodTypes)unmarshalInt(s); - e->spec = unmarshalUInt64(s); - e->initLines = unmarshalInt(s); - e->stat = unmarshalBool(s); - e->localToc = unmarshalLocalToc(s); - e->explicitExternal = unmarshalBool(s); - e->proto = unmarshalBool(s); - e->subGrouping = unmarshalBool(s); - e->callGraph = unmarshalBool(s); - e->callerGraph = unmarshalBool(s); - e->referencedByRelation = unmarshalBool(s); - e->referencesRelation = unmarshalBool(s); - e->virt = (Specifier)unmarshalInt(s); - e->args = unmarshalQCString(s); - e->bitfields = unmarshalQCString(s); - delete e->argList; - e->argList = unmarshalArgumentList(s); - e->tArgLists = unmarshalArgumentLists(s); - e->program = unmarshalQGString(s); - e->initializer = unmarshalQGString(s); - e->includeFile = unmarshalQCString(s); - e->includeName = unmarshalQCString(s); - e->doc = unmarshalQCString(s); - e->docLine = unmarshalInt(s); - e->docFile = unmarshalQCString(s); - e->brief = unmarshalQCString(s); - e->briefLine = unmarshalInt(s); - e->briefFile = unmarshalQCString(s); - e->inbodyDocs = unmarshalQCString(s); - e->inbodyLine = unmarshalInt(s); - e->inbodyFile = unmarshalQCString(s); - e->relates = unmarshalQCString(s); - e->relatesType = (RelatesType)unmarshalInt(s); - e->read = unmarshalQCString(s); - e->write = unmarshalQCString(s); - e->inside = unmarshalQCString(s); - e->exception = unmarshalQCString(s); - e->typeConstr = unmarshalArgumentList(s); - e->bodyLine = unmarshalInt(s); - e->endBodyLine = unmarshalInt(s); - e->mGrpId = unmarshalInt(s); - delete e->extends; - e->extends = unmarshalBaseInfoList(s); - delete e->groups; - e->groups = unmarshalGroupingList(s); - delete e->anchors; - e->anchors = unmarshalSectionInfoList(s); - e->fileName = unmarshalQCString(s); - e->startLine = unmarshalInt(s); - e->sli = unmarshalItemInfoList(s); - e->lang = (SrcLangExt)unmarshalInt(s); - e->hidden = unmarshalBool(s); - e->artificial = unmarshalBool(s); - e->groupDocType = (Entry::GroupDocType)unmarshalInt(s); - e->id = unmarshalQCString(s); - e->metaData = unmarshalQCString(s); - return e; -} - -Entry * unmarshalEntryTree(StorageIntf *s) -{ - Entry *e = unmarshalEntry(s); - uint count = unmarshalUInt(s); - uint i; - for (i=0;i<count;i++) - { - e->addSubEntry(unmarshalEntryTree(s)); - } - return e; -} diff --git a/src/marshal.h b/src/marshal.h deleted file mode 100644 index 206ab04..0000000 --- a/src/marshal.h +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** - * - * Copyright (C) 1997-2015 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * - * Documents produced by Doxygen are derivative works derived from the - * input used in their production; they are not affected by this license. - * - */ - -#ifndef MARSHAL_H -#define MARSHAL_H - -#include <qlist.h> -#include <qfile.h> -#include "sortdict.h" -#include "store.h" - -class ArgumentList; -struct BaseInfo; -struct Grouping; -struct SectionInfo; -struct ListItemInfo; -class QCString; -class QGString; -class SectionDict; -class MemberSDict; -class GroupList; -class MemberList; -struct BodyInfo; -struct DocInfo; -struct BriefInfo; -class ExampleSDict; -class Entry; - -#define NULL_LIST 0xffffffff - -//----- marshaling function: datatype -> byte stream -------------------- - -void marshalInt(StorageIntf *s,int v); -void marshalUInt(StorageIntf *s,uint v); -void marshalUInt64(StorageIntf *s,uint64 v); -void marshalBool(StorageIntf *s,bool b); -void marshalQCString(StorageIntf *s,const QCString &str); -void marshalQGString(StorageIntf *s,const QGString &str); -void marshalArgumentList(StorageIntf *s,ArgumentList *argList); -void marshalArgumentLists(StorageIntf *s,QList<ArgumentList> *argLists); -void marshalBaseInfoList(StorageIntf *s, QList<BaseInfo> *baseList); -void marshalGroupingList(StorageIntf *s, QList<Grouping> *groups); -void marshalSectionInfoList(StorageIntf *s, QList<SectionInfo> *anchors); -void marshalItemInfoList(StorageIntf *s, QList<ListItemInfo> *sli); -void marshalObjPointer(StorageIntf *s,void *obj); -void marshalSectionDict(StorageIntf *s,SectionDict *sections); -void marshalMemberSDict(StorageIntf *s,MemberSDict *memberSDict); -void marshalDocInfo(StorageIntf *s,DocInfo *docInfo); -void marshalBriefInfo(StorageIntf *s,BriefInfo *briefInfo); -void marshalBodyInfo(StorageIntf *s,BodyInfo *bodyInfo); -void marshalGroupList(StorageIntf *s,GroupList *groupList); -void marshalMemberList(StorageIntf *s,MemberList *ml); -void marshalExampleSDict(StorageIntf *s,ExampleSDict *ed); -void marshalMemberLists(StorageIntf *s,SDict<MemberList> *mls); -void marshalEntry(StorageIntf *s,Entry *e); -void marshalEntryTree(StorageIntf *s,Entry *e); - -//----- unmarshaling function: byte stream -> datatype ------------------ - -int unmarshalInt(StorageIntf *s); -uint unmarshalUInt(StorageIntf *s); -uint64 unmarshalUInt64(StorageIntf *s); -bool unmarshalBool(StorageIntf *s); -QCString unmarshalQCString(StorageIntf *s); -QGString unmarshalQGString(StorageIntf *s); -ArgumentList * unmarshalArgumentList(StorageIntf *s); -QList<ArgumentList> *unmarshalArgumentLists(StorageIntf *s); -QList<BaseInfo> * unmarshalBaseInfoList(StorageIntf *s); -QList<Grouping> * unmarshalGroupingList(StorageIntf *s); -QList<SectionInfo> * unmarshalSectionInfoList(StorageIntf *s); -QList<ListItemInfo> *unmarshalItemInfoList(StorageIntf *s); -void * unmarshalObjPointer(StorageIntf *s); -SectionDict * unmarshalSectionDict(StorageIntf *s); -MemberSDict * unmarshalMemberSDict(StorageIntf *s); -DocInfo * unmarshalDocInfo(StorageIntf *s); -BriefInfo * unmarshalBriefInfo(StorageIntf *s); -BodyInfo * unmarshalBodyInfo(StorageIntf *s); -GroupList * unmarshalGroupList(StorageIntf *s); -MemberList * unmarshalMemberList(StorageIntf *s); -ExampleSDict * unmarshalExampleSDict(StorageIntf *s); -SDict<MemberList> * unmarshalMemberLists(StorageIntf *s); -Entry * unmarshalEntry(StorageIntf *s); -Entry * unmarshalEntryTree(StorageIntf *s); - -#endif diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 793a56b..683f8c3 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -35,7 +35,6 @@ #include "dot.h" #include "searchindex.h" #include "parserintf.h" -#include "marshal.h" #include "objcache.h" #include "vhdldocgen.h" diff --git a/src/membergroup.cpp b/src/membergroup.cpp index 5ee47ab..9c48668 100644 --- a/src/membergroup.cpp +++ b/src/membergroup.cpp @@ -26,7 +26,6 @@ #include "groupdef.h" #include "doxygen.h" #include "docparser.h" -#include "marshal.h" #include "entry.h" #include "md5.h" @@ -44,8 +43,11 @@ MemberGroup::MemberGroup() MemberGroup::MemberGroup(Definition *parent, int id,const char *hdr,const char *d,const char *docFile,int docLine) { + static bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS); + //printf("New member group id=%d header=%s desc=%s\n",id,hdr,d); memberList = new MemberList(MemberListType_memberGroup); + memberList->setNeedsSorting(sortBriefDocs); // detailed sections are already sorted elsewhere. grpId = id; grpHeader = hdr; doc = d; @@ -349,40 +351,6 @@ void MemberGroup::findSectionsInDocumentation() memberList->findSectionsInDocumentation(); } -void MemberGroup::marshal(StorageIntf *s) -{ - marshalMemberList(s,memberList); - marshalObjPointer(s,inDeclSection); // reference only - marshalInt(s,grpId); - marshalQCString(s,grpHeader); - marshalQCString(s,fileName); - marshalObjPointer(s,scope); - marshalQCString(s,doc); - marshalBool(s,inSameSection); - marshalInt(s,m_numDecMembers); - marshalInt(s,m_numDocMembers); - marshalObjPointer(s,m_parent); - marshalQCString(s,m_docFile); - marshalItemInfoList (Doxygen::symbolStorage,m_xrefListItems); -} - -void MemberGroup::unmarshal(StorageIntf *s) -{ - memberList = unmarshalMemberList(s); - inDeclSection = (MemberList *)unmarshalObjPointer(s); - grpId = unmarshalInt(s); - grpHeader = unmarshalQCString(s); - fileName = unmarshalQCString(s); - scope = (Definition *)unmarshalObjPointer(s); - doc = unmarshalQCString(s); - inSameSection = unmarshalBool(s); - m_numDecMembers = unmarshalInt(s); - m_numDocMembers = unmarshalInt(s); - m_parent = (Definition *)unmarshalObjPointer(s); - m_docFile = unmarshalQCString(s); - m_xrefListItems = unmarshalItemInfoList (Doxygen::symbolStorage); -} - void MemberGroup::setRefItems(const QList<ListItemInfo> *sli) { if (sli) diff --git a/src/membergroup.h b/src/membergroup.h index b590d48..51123bb 100644 --- a/src/membergroup.h +++ b/src/membergroup.h @@ -94,9 +94,6 @@ class MemberGroup QCString docFile() const { return m_docFile; } int docLine() const { return m_docLine; } - void marshal(StorageIntf *s); - void unmarshal(StorageIntf *s); - private: MemberList *memberList; // list of all members in the group MemberList *inDeclSection; diff --git a/src/memberlist.cpp b/src/memberlist.cpp index 031b619..8d88863 100644 --- a/src/memberlist.cpp +++ b/src/memberlist.cpp @@ -25,7 +25,6 @@ #include "doxygen.h" #include "outputlist.h" #include "groupdef.h" -#include "marshal.h" #include "vhdldocgen.h" #include "namespacedef.h" #include "filedef.h" @@ -930,75 +929,6 @@ void MemberList::findSectionsInDocumentation() } } -void MemberList::marshal(StorageIntf *s) -{ - marshalInt(s,(int)m_listType); - marshalInt(s,m_varCnt); - marshalInt(s,m_funcCnt); - marshalInt(s,m_enumCnt); - marshalInt(s,m_enumValCnt); - marshalInt(s,m_typeCnt); - marshalInt(s,m_seqCnt); - marshalInt(s,m_dictCnt); - marshalInt(s,m_protoCnt); - marshalInt(s,m_defCnt); - marshalInt(s,m_friendCnt); - marshalInt(s,m_numDecMembers); - marshalInt(s,m_numDocMembers); - marshalBool(s,m_inGroup); - marshalBool(s,m_inFile); - marshalBool(s,m_needsSorting); - if (memberGroupList==0) - { - marshalUInt(s,NULL_LIST); // null pointer representation - } - else - { - marshalUInt(s,memberGroupList->count()); - QListIterator<MemberGroup> mgi(*memberGroupList); - MemberGroup *mg=0; - for (mgi.toFirst();(mg=mgi.current());++mgi) - { - mg->marshal(s); - } - } -} - -void MemberList::unmarshal(StorageIntf *s) -{ - m_listType = (MemberListType)unmarshalInt(s); - m_varCnt = unmarshalInt(s); - m_funcCnt = unmarshalInt(s); - m_enumCnt = unmarshalInt(s); - m_enumValCnt = unmarshalInt(s); - m_typeCnt = unmarshalInt(s); - m_seqCnt = unmarshalInt(s); - m_dictCnt = unmarshalInt(s); - m_protoCnt = unmarshalInt(s); - m_defCnt = unmarshalInt(s); - m_friendCnt = unmarshalInt(s); - m_numDecMembers = unmarshalInt(s); - m_numDocMembers = unmarshalInt(s); - m_inGroup = unmarshalBool(s); - m_inFile = unmarshalBool(s); - m_needsSorting = unmarshalBool(s); - uint i,count = unmarshalUInt(s); - if (count==NULL_LIST) // empty list - { - memberGroupList = 0; - } - else // add member groups - { - memberGroupList = new MemberGroupList; - for (i=0;i<count;i++) - { - MemberGroup *mg = new MemberGroup; - mg->unmarshal(s); - memberGroupList->append(mg); - } - } -} - void MemberList::setNeedsSorting(bool b) { m_needsSorting = b; diff --git a/src/memberlist.h b/src/memberlist.h index a96f61f..f0cc63d 100644 --- a/src/memberlist.h +++ b/src/memberlist.h @@ -89,9 +89,6 @@ class MemberList : private QList<MemberDef> void setNeedsSorting(bool b); MemberGroupList *getMemberGroupList() const { return memberGroupList; } - void marshal(StorageIntf *s); - void unmarshal(StorageIntf *s); - private: int compareValues(const MemberDef *item1,const MemberDef *item2) const; int countEnumValues(MemberDef *md,bool setAnonEnumType) const; diff --git a/src/scanner.l b/src/scanner.l index 6633098..3d3c109 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -6732,7 +6732,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } <DocCopyBlock><<EOF>> { warn(yyFileName,yyLineNr, - "reached end of file while inside a %s block!\n" + "reached end of file while inside a `%s' block!\n" "The command that should end the block seems to be missing!\n", docBlockName.data()); yyterminate(); @@ -6987,6 +6987,7 @@ static void handleParametersCommentBlocks(ArgumentList *al) //printf(" Param %s docs=%s\n",a->name.data(),a->docs.data()); if (!a->docs.isEmpty()) { + if (!a->name && a->type == "...") a->name= "..."; int position=0; bool needsEntry; diff --git a/src/store.cpp b/src/store.cpp deleted file mode 100644 index c09dcfb..0000000 --- a/src/store.cpp +++ /dev/null @@ -1,484 +0,0 @@ -/****************************************************************************** - * - * - * - * - * Copyright (C) 1997-2015 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * - * Documents produced by Doxygen are derivative works derived from the - * input used in their production; they are not affected by this license. - * - */ - -#include "store.h" -#include "portable.h" - - -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <string.h> -#include <assert.h> -#include <ctype.h> - -#define BLOCK_SIZE 512 // should be >8 and a power of 2 -#define BLOCK_POINTER_SIZE sizeof(portable_off_t) - - -#define ASSERTS_ENABLED - -#ifdef ASSERTS_ENABLED -#define STORE_ASSERT(x) assert(x) -#else -#define STORE_ASSERT(x) -#endif - -// Decide to use ftell or keep track of the current file pointer ourselves. -// Since valgrind shows that calling ftell has the unwanted side-effect of -// writing some uninitialized bytes (!) it might be better (and faster) to keep track -// of the current pointer ourselves. -#define USE_FTELL 0 - -//------------------------------------------------------------------------------------ - -Store::Store() -{ - m_file = 0; - m_front = 0; - m_cur = 0; - m_head = 0; - m_state = Init; - m_reads = 0; - m_writes = 0; -} - -Store::~Store() -{ - if (m_file) fclose(m_file); - - // clean up free list - while (m_head) - { - Node *node = m_head; - m_head = node->next; - delete node; - } -} - -int Store::open(const char *name) -{ - int i; - STORE_ASSERT(m_state==Init); - if (m_file) return 0; // already open - m_file = portable_fopen(name,"w+b"); - if (m_file==0) return -1; - - // first block serves as header, so offset=0 can be used as the end of the list. - for (i=0;i<BLOCK_SIZE/8;i++) - { - fputc('D',m_file); - fputc('O',m_file); - fputc('X',m_file); - fputc('Y',m_file); - fputc('G',m_file); - fputc('E',m_file); - fputc('N',m_file); - fputc(0,m_file); - } - m_front = BLOCK_SIZE; - m_cur = BLOCK_SIZE; - m_head = 0; - m_state = Reading; - return 0; -} - -void Store::close() -{ - if (m_file) fclose(m_file); - m_file=0; - m_state = Init; -} - -portable_off_t Store::alloc() -{ - STORE_ASSERT(m_state==Reading); - m_state=Writing; - portable_off_t pos; - if (m_head==0) // allocate new block - { - //printf("alloc: new block, pos=%lld\n",(long long)m_front); - if (portable_fseek(m_file,0,SEEK_END)==-1) // go to end of the file - { - fprintf(stderr,"Store::alloc: Error seeking to end of file: %s\n",strerror(errno)); - exit(1); - } -#if USE_FTELL - pos = portable_ftell(m_file); - STORE_ASSERT( (pos & (BLOCK_SIZE-1))==0 ); - m_front = pos + BLOCK_SIZE; // move front to end of this block -#else - m_cur = m_front; - pos = m_cur; - STORE_ASSERT( (pos & (BLOCK_SIZE-1))==0 ); - m_front = pos + BLOCK_SIZE; -#endif - } - else // reuse freed block - { - //printf("alloc: reuse block: pos=%lld\n",(long long)m_head->pos); - Node *node = m_head; - pos = node->pos; - // point head to next free item - m_head = node->next; - delete node; - // move to start of the block - if (portable_fseek(m_file,pos,SEEK_SET)==-1) - { - fprintf(stderr,"Store::alloc: Error seeking to position %d: %s\n", - (int)pos,strerror(errno)); - exit(1); - } - m_cur = pos; - STORE_ASSERT( (pos & (BLOCK_SIZE-1))==0 ); - } - //printf("%x: Store::alloc\n",(int)pos); - return pos; -} - -int Store::write(const char *buf,uint size) -{ - STORE_ASSERT(m_state==Writing); - //printf("%x: Store::write\n",(int)portable_ftell(m_file)); - do - { -#if USE_FTELL - portable_off_t curPos = portable_ftell(m_file); -#else - portable_off_t curPos = m_cur; -#endif - int bytesInBlock = (int)(BLOCK_SIZE - BLOCK_POINTER_SIZE - (curPos & (BLOCK_SIZE-1))); - int bytesLeft = bytesInBlock<(int)size ? (int)size-bytesInBlock : 0; - int numBytes = size - bytesLeft; - STORE_ASSERT(bytesInBlock>=0); - STORE_ASSERT(numBytes<=(int)(BLOCK_SIZE-BLOCK_POINTER_SIZE)); - if (numBytes>0) - { - if ((int)fwrite(buf,1,numBytes,m_file)!=numBytes) - { - fprintf(stderr,"Error writing: %s\n",strerror(errno)); - exit(1); - } - m_cur+=numBytes; - m_writes++; - } - if (bytesLeft>0) // still more bytes to write - { -#if USE_FTELL - STORE_ASSERT(((portable_ftell(m_file)+BLOCK_POINTER_SIZE)&(BLOCK_SIZE-1))==0); -#else - STORE_ASSERT(((m_cur+BLOCK_POINTER_SIZE)&(BLOCK_SIZE-1))==0); -#endif - // allocate new block - if (m_head==0) // no free blocks to reuse - { - //printf("%x: Store::write: new: pos=%x\n",(int)m_front,(int)portable_ftell(m_file)); - // write pointer to next block - if (fwrite(&m_front,BLOCK_POINTER_SIZE,1,m_file)!=1) - { - fprintf(stderr,"Error writing to store: %s\n",strerror(errno)); - exit(1); - } - m_cur+=BLOCK_POINTER_SIZE; -#if USE_FTELL - STORE_ASSERT(portable_ftell(m_file)==(curPos&~(BLOCK_SIZE-1))+BLOCK_SIZE); -#else - STORE_ASSERT(m_cur==(curPos&~(BLOCK_SIZE-1))+BLOCK_SIZE); -#endif - // move to next block - if (portable_fseek(m_file,0,SEEK_END)==-1) // go to end of the file - { - fprintf(stderr,"Store::alloc: Error seeking to end of file: %s\n",strerror(errno)); - exit(1); - } - m_cur=m_front; -#if USE_FTELL - STORE_ASSERT(portable_ftell(m_file)==m_front); -#else - STORE_ASSERT(m_cur==m_front); -#endif - // move front to the next of the block - m_front+=BLOCK_SIZE; - } - else // reuse block from the free list - { - // write pointer to next block - if (fwrite(&m_head->pos,BLOCK_POINTER_SIZE,1,m_file)!=1) - { - fprintf(stderr,"Error writing to store: %s\n",strerror(errno)); - exit(1); - } - Node *node = m_head; - portable_off_t pos = node->pos; - // point head to next free item - m_head = node->next; - delete node; - // move to start of the block - if (portable_fseek(m_file,pos,SEEK_SET)==-1) - { - fprintf(stderr,"Store::write: Error seeking to position %d: %s\n", - (int)pos,strerror(errno)); - exit(1); - } - m_cur = pos; - //printf("%x: Store::write: reuse\n",(int)pos); - } - } - size-=numBytes; - buf+=numBytes; - } - while (size>0); - return size; -} - -void Store::end() -{ - STORE_ASSERT(m_state==Writing); -#if USE_FTELL - portable_off_t curPos = portable_ftell(m_file); -#else - portable_off_t curPos = m_cur; -#endif - int bytesInBlock = (int)(BLOCK_SIZE - (curPos & (BLOCK_SIZE-1))); - //printf("%x: Store::end erasing %x bytes\n",(int)curPos&~(BLOCK_SIZE-1),bytesInBlock); - //printf("end: bytesInBlock=%x\n",bytesInBlock); - // zero out rest of the block - int i; - for (i=0;i<bytesInBlock;i++) - { - fputc(0,m_file); - } - m_state=Reading; -} - -void Store::release(portable_off_t pos) -{ - STORE_ASSERT(m_state==Reading); - //printf("release: block pos=%lld\n",(long long)pos); - STORE_ASSERT(pos>0 && (pos & (BLOCK_SIZE-1))==0); - // goto end of the block - portable_off_t cur = pos, next; - while (1) - { - // add new node to the free list - Node *node = new Node; - node->next = m_head; - node->pos = cur; - - m_head = node; - // goto the end of cur block - if (portable_fseek(m_file,cur+BLOCK_SIZE-BLOCK_POINTER_SIZE,SEEK_SET)==-1) - { - fprintf(stderr,"Store::release: Error seeking to position %d: %s\n", - (int)(cur+BLOCK_SIZE-BLOCK_POINTER_SIZE),strerror(errno)); - exit(1); - } - // read pointer to next block - if (fread(&next,BLOCK_POINTER_SIZE,1,m_file)!=1) - { - fprintf(stderr,"Store::release: Error reading from store: %s\n",strerror(errno)); - exit(1); - } - m_cur = cur+BLOCK_SIZE; - if (next==0) break; // found end of list -> cur is last element - STORE_ASSERT((next & (BLOCK_SIZE-1))==0); - cur = next; - //printf("%x: Store::release\n",(int)cur); - } -} - -void Store::seek(portable_off_t pos) -{ - STORE_ASSERT(m_state==Reading); - //printf("%x: Store::seek\n",(int)pos); - if (portable_fseek(m_file,pos,SEEK_SET)==-1) - { - fprintf(stderr,"Store::seek: Error seeking to position %d: %s\n", - (int)pos,strerror(errno)); - exit(1); - } - m_cur = pos; - STORE_ASSERT((pos&(BLOCK_SIZE-1))==0); -} - -int Store::read(char *buf,uint size) -{ - STORE_ASSERT(m_state==Reading); - //printf("%x: Store::read total=%d\n",(int)portable_ftell(m_file),size); - do - { -#if USE_FTELL - portable_off_t curPos = portable_ftell(m_file); -#else - portable_off_t curPos = m_cur; -#endif - int bytesInBlock = (int)(BLOCK_SIZE - BLOCK_POINTER_SIZE - (curPos & (BLOCK_SIZE-1))); - int bytesLeft = bytesInBlock<(int)size ? (int)size-bytesInBlock : 0; - int numBytes = size - bytesLeft; - //printf(" Store::read: pos=%x num=%d left=%d\n",(int)curPos,numBytes,bytesLeft); - - if (numBytes>0) - { - //printf("%x: Store::read: %d out of %d bytes\n",(int)portable_ftell(m_file),numBytes,size); - if ((int)fread(buf,1,numBytes,m_file)!=numBytes) - { - fprintf(stderr,"Error reading from store: %s\n",strerror(errno)); - exit(1); - } - m_cur+=numBytes; - m_reads++; - } - if (bytesLeft>0) - { - portable_off_t newPos; - // read offset of the next block -#if USE_FTELL - STORE_ASSERT(((portable_ftell(m_file)+BLOCK_POINTER_SIZE)&(BLOCK_SIZE-1))==0); -#else - STORE_ASSERT(((m_cur+BLOCK_POINTER_SIZE)&(BLOCK_SIZE-1))==0); -#endif - if (fread((char *)&newPos,BLOCK_POINTER_SIZE,1,m_file)!=1) - { - fprintf(stderr,"Error reading from store: %s\n",strerror(errno)); - exit(1); - } - //printf("%x: Store::read: continue in next block, %d bytes to go\n",(int)newPos,bytesLeft); - //printf(" Store::read: next block=%x\n",(int)newPos); - STORE_ASSERT(newPos!=0); - STORE_ASSERT((newPos&(BLOCK_SIZE-1))==0); - curPos = newPos; - // move to next block - if (portable_fseek(m_file,curPos,SEEK_SET)==-1) - { - fprintf(stderr,"Store::read: Error seeking to position %d: %s\n", - (int)curPos,strerror(errno)); - exit(1); - } - m_cur = curPos; - } - - size-=numBytes; - buf+=numBytes; - } - while (size>0); - return size; -} - -void Store::printFreeList() -{ - printf("FreeList: "); - while (m_head) - { - portable_off_t pos = m_head->pos; - printf("%x ",(int)pos); - m_head = m_head->next; - } - printf("\n"); -} - -void Store::printStats() -{ - printf("ObjStore: block size %d bytes, total size %ld blocks, wrote %d blocks, read %d blocks\n", - BLOCK_SIZE,(long)(m_front/BLOCK_SIZE),m_reads,m_writes); -} - -void Store::dumpBlock(portable_off_t s,portable_off_t e) -{ - portable_fseek(m_file,s,SEEK_SET); - int size = (int)(e-s); - uchar *buf = new uchar[size]; - if (fread(buf,size,1,m_file)==(size_t)size) - { - int i,j; - for (i=0;i<size;i+=16) - { - printf("%08x: ",(int)s+i); - for (j=i;j<QMIN(size,i+16);j++) - { - printf("%02x ",buf[i+j]); - } - printf(" "); - for (j=i;j<QMIN(size,i+16);j++) - { - printf("%c",(buf[i+j]>=32 && buf[i+j]<128)?buf[i+j]:'.'); - } - printf("\n"); - } - } - delete[] buf; - portable_fseek(m_file,m_cur,SEEK_SET); -} - -#ifdef STORE_TEST - -int main() -{ - printf("sizeof(portable_off_t)=%d\n",(int)sizeof(portable_off_t)); - Store s; - if (s.open("test.db")==0) - { - const char *str1 = "This is a test message... "; - const char *str2 = "Another message. "; - - int i,j; - for (j=0;j<5;j++) - { - char buf[100]; - - portable_off_t handle = s.alloc(); - for (i=0;i<1000000000;i++) - { - s.write(str1,strlen(str1)+1); - } - s.end(); - portable_off_t handle2 = s.alloc(); - for (i=0;i<10;i++) - { - s.write(str2,strlen(str2)+1); - } - s.end(); - - s.seek(handle); - for (i=0;i<3;i++) - { - s.read(buf,strlen(str1)+1); - printf("i=%d Read: %s\n",i,buf); - } - - s.release(handle); - - s.seek(handle2); - for (i=0;i<3;i++) - { - s.read(buf,strlen(str2)+1); - printf("i=%d Read: %s\n",i,buf); - } - - s.release(handle2); - } - - s.close(); - } - else - { - printf("Open failed! %s\n",strerror(errno)); - } -} - -#endif - diff --git a/src/store.h b/src/store.h deleted file mode 100644 index 39917df..0000000 --- a/src/store.h +++ /dev/null @@ -1,123 +0,0 @@ -/****************************************************************************** - * - * - * - * Copyright (C) 1997-2015 by Dimitri van Heesch. - * - * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software - * for any purpose. It is provided "as is" without express or implied warranty. - * See the GNU General Public License for more details. - * - * Documents produced by Doxygen are derivative works derived from the - * input used in their production; they are not affected by this license. - * - */ - -#ifndef STORE_H -#define STORE_H - -#include <qglobal.h> -#include <stdio.h> - -#include "portable.h" - -/*! @brief Abstract interface for file based memory storage operations */ -class StorageIntf -{ - public: - /*! Required by gcc */ - virtual ~StorageIntf() {} - /*! Read \a size bytes from the store into \a buf. */ - virtual int read(char *buf,uint size) = 0; - /*! Write \a size bytes from \a buf into the store. */ - virtual int write(const char *buf,uint size) = 0; -}; - -/*! @brief The Store is a file based memory manager. - * - * You can open the store using open(). Then obtain a handle via alloc() - * followed by a sequence of write() commands to store information, - * and finalize it using end(). - * - * Later on you locate the information - * with seek() using the handle obtained with alloc(), and then use a - * sequence of read() calls to read the information back. - * - * If no longer needed the storage space can be freed using release(). - * - * The store will dynamically grow the file on disk if needed. - */ -class Store : public StorageIntf -{ - public: - /*! Creates a store. */ - Store(); - - /*! Releases the store object. Will close the underlying file if opened. */ - ~Store(); - - /*! Opens the file underlying the store using \a name as the file name. - * Returns 0 upon success, or -1 otherwise. - */ - int open(const char *name); - - /*! Allocates a handle to write to and read from. */ - portable_off_t alloc(); - - /*! Writes \a size bytes in array \a buf to the store. - * First alloc() has to be called. - * \note The information can only be read after end() has been called. - */ - int write(const char *buf,uint size); - - /*! Ends the sequence of writes. - * \note After this call, first alloc() has to be called - * before new writes can be done. - */ - void end(); - - /*! Releases the memory corresponding to the handle returned with alloc() */ - void release(portable_off_t handle); - - /*! Closes the store */ - void close(); - - /*! Goes to the start of information corresponding to handle \a pos */ - void seek(portable_off_t handle); - - /*! Reads \a size bytes from the store into the array pointed to be \a buf. - * \note Before reading seek() has to be called to set the right start of the store. - */ - int read(char *buf,uint size); - - void printStats(); - - portable_off_t pos() const { return m_cur; } - - void dumpBlock(portable_off_t start,portable_off_t end); - - private: - enum State - { - Init, - Reading, - Writing - }; - struct Node - { - portable_off_t pos; - struct Node *next; - }; - void printFreeList(); - FILE *m_file; - portable_off_t m_front; - portable_off_t m_cur; - Node *m_head; - State m_state; - int m_reads; - int m_writes; -}; - -#endif diff --git a/src/util.cpp b/src/util.cpp index 53b176d..035bef3 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -6856,6 +6856,7 @@ void filterLatexString(FTextStream &t,const char *str, case '%': t << "\\%"; break; case '#': t << "\\#"; break; case '$': t << "\\$"; break; + case '-': t << "-\\/"; break; case '^': (usedTableLevels()>0) ? t << "\\string^" : t << (char)c; break; case '~': (usedTableLevels()>0) ? t << "\\string~" : t << (char)c; break; case ' ': if (keepSpaces) t << "~"; else t << ' '; @@ -8220,10 +8221,6 @@ QCString externalRef(const QCString &relPath,const QCString &ref,bool href) result.prepend(relPath); l+=relPath.length(); } - if (!href){ - result.prepend("doxygen=\""+ref+":"); - l+=10+ref.length(); - } if (l>0 && result.at(l-1)!='/') result+='/'; if (!href) result.append("\" "); } diff --git a/testing/009/bug.xml b/testing/009/bug.xml index 34a411b..ca3a22a 100644 --- a/testing/009/bug.xml +++ b/testing/009/bug.xml @@ -9,7 +9,7 @@ <para> <variablelist> <varlistentry> - <term>Class <ref refid="class_bug" kindref="compound">Bug</ref></term> + <term>Class <ref refid="class_bug" kindref="compound">Bug</ref> </term> </varlistentry> <listitem> <para><anchor id="bug_1_bug000001"/>Class bug. </para> diff --git a/testing/009/class_bug.xml b/testing/009/class_bug.xml index 5a770bb..f972b4a 100644 --- a/testing/009/class_bug.xml +++ b/testing/009/class_bug.xml @@ -17,7 +17,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="009_bug.cpp" line="25" column="1"/> + <location file="009_bug.cpp" line="25" column="11"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/009/class_deprecated.xml b/testing/009/class_deprecated.xml index 5d44aaf..061bb34 100644 --- a/testing/009/class_deprecated.xml +++ b/testing/009/class_deprecated.xml @@ -15,7 +15,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="009_bug.cpp" line="35" column="1"/> + <location file="009_bug.cpp" line="35" column="10"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/009/class_reminder.xml b/testing/009/class_reminder.xml index 379b3e7..bdf2ee0 100644 --- a/testing/009/class_reminder.xml +++ b/testing/009/class_reminder.xml @@ -22,7 +22,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="009_bug.cpp" line="59" column="1"/> + <location file="009_bug.cpp" line="59" column="10"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/009/class_test.xml b/testing/009/class_test.xml index 9f1b126..64f287f 100644 --- a/testing/009/class_test.xml +++ b/testing/009/class_test.xml @@ -22,7 +22,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="009_bug.cpp" line="51" column="1"/> + <location file="009_bug.cpp" line="51" column="10"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/009/class_todo.xml b/testing/009/class_todo.xml index 8657d60..a4fed63 100644 --- a/testing/009/class_todo.xml +++ b/testing/009/class_todo.xml @@ -22,7 +22,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="009_bug.cpp" line="43" column="1"/> + <location file="009_bug.cpp" line="43" column="10"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/009/deprecated.xml b/testing/009/deprecated.xml index a787015..c3fc2a2 100644 --- a/testing/009/deprecated.xml +++ b/testing/009/deprecated.xml @@ -9,7 +9,7 @@ <para> <variablelist> <varlistentry> - <term>Class <ref refid="class_deprecated" kindref="compound">Deprecated</ref></term> + <term>Class <ref refid="class_deprecated" kindref="compound">Deprecated</ref> </term> </varlistentry> <listitem> <para><anchor id="deprecated_1_deprecated000001"/>This class is deprecated </para> diff --git a/testing/009/reminders.xml b/testing/009/reminders.xml index f848e3c..4818541 100644 --- a/testing/009/reminders.xml +++ b/testing/009/reminders.xml @@ -9,16 +9,16 @@ <para> <variablelist> <varlistentry> - <term>Class <ref refid="class_reminder" kindref="compound">Reminder</ref></term> + <term>Class <ref refid="class_reminder" kindref="compound">Reminder</ref> </term> </varlistentry> <listitem> - <para><anchor id="reminders_1_reminders000001"/>A reminder </para> + <para><anchor id="reminders_1_reminders000001"/> A reminder </para> </listitem> <varlistentry> <term>Member <ref refid="class_reminder_1a173b5218bb11287b0e86a550d9f0728d" kindref="member">Reminder::reminder</ref> ()</term> </varlistentry> <listitem> - <para><anchor id="reminders_1_reminders000002"/>Need to rework this before the next release. </para> + <para><anchor id="reminders_1_reminders000002"/> Need to rework this before the next release. </para> </listitem> </variablelist> </para> diff --git a/testing/009/test.xml b/testing/009/test.xml index 828316d..665dc0e 100644 --- a/testing/009/test.xml +++ b/testing/009/test.xml @@ -9,7 +9,7 @@ <para> <variablelist> <varlistentry> - <term>Class <ref refid="class_test" kindref="compound">Test</ref></term> + <term>Class <ref refid="class_test" kindref="compound">Test</ref> </term> </varlistentry> <listitem> <para><anchor id="test_1_test000001"/>This is part of testing </para> diff --git a/testing/009/todo.xml b/testing/009/todo.xml index 394f07d..c3b160f 100644 --- a/testing/009/todo.xml +++ b/testing/009/todo.xml @@ -9,7 +9,7 @@ <para> <variablelist> <varlistentry> - <term>Class <ref refid="class_todo" kindref="compound">Todo</ref></term> + <term>Class <ref refid="class_todo" kindref="compound">Todo</ref> </term> </varlistentry> <listitem> <para><anchor id="todo_1_todo000001"/>This still needs to be done. </para> diff --git a/testing/011/category_integer_07_arithmetic_08.xml b/testing/011/category_integer_07_arithmetic_08.xml index 78a8c0e..0705628 100644 --- a/testing/011/category_integer_07_arithmetic_08.xml +++ b/testing/011/category_integer_07_arithmetic_08.xml @@ -19,7 +19,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="011_category.m" line="8" column="1"/> + <location file="011_category.m" line="8" column="6"/> </memberdef> <memberdef kind="function" id="category_integer_07_arithmetic_08_1ae4ff0b0c62b6809e8f5bcee9baa6e521" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual"> <type>id</type> @@ -37,7 +37,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="011_category.m" line="8" column="1"/> + <location file="011_category.m" line="8" column="6"/> </memberdef> </sectiondef> <briefdescription> @@ -45,7 +45,7 @@ <detaileddescription> <para>A category </para> </detaileddescription> - <location file="011_category.m" line="17" column="1" bodyfile="011_category.m" bodystart="17" bodyend="-1"/> + <location file="011_category.m" line="17" column="19" bodyfile="011_category.m" bodystart="17" bodyend="-1"/> <listofallmembers> <member refid="category_integer_07_arithmetic_08_1a12f411c5872ba3bafb8ea7dd1826cf2a" prot="public" virt="virtual"> <scope>Integer(Arithmetic)</scope> diff --git a/testing/011/interface_integer.xml b/testing/011/interface_integer.xml index 429c6a0..863ec91 100644 --- a/testing/011/interface_integer.xml +++ b/testing/011/interface_integer.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="011_category.m" line="8" column="1" bodyfile="011_category.m" bodystart="8" bodyend="-1"/> + <location file="011_category.m" line="8" column="6" bodyfile="011_category.m" bodystart="8" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="public-func"> @@ -32,7 +32,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="011_category.m" line="8" column="1"/> + <location file="011_category.m" line="8" column="6"/> </memberdef> <memberdef kind="function" id="interface_integer_1ad2f47761103b2442ff7b3fbfe33ec6c9" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual"> <type>id</type> @@ -50,7 +50,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="011_category.m" line="8" column="1"/> + <location file="011_category.m" line="8" column="6"/> </memberdef> </sectiondef> <briefdescription> @@ -80,7 +80,7 @@ </childnode> </node> </collaborationgraph> - <location file="011_category.m" line="6" column="1" bodyfile="011_category.m" bodystart="6" bodyend="-1"/> + <location file="011_category.m" line="6" column="26" bodyfile="011_category.m" bodystart="6" bodyend="-1"/> <listofallmembers> <member refid="interface_integer_1a35e89216966d8179a1b77f14b8211fda" prot="protected" virt="non-virtual"> <scope>Integer</scope> diff --git a/testing/012/citelist.xml b/testing/012/citelist.xml index cb039fd..81e46e5 100755..100644 --- a/testing/012/citelist.xml +++ b/testing/012/citelist.xml @@ -1,43 +1,43 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
- <compounddef id="citelist" kind="page">
- <compoundname>citelist</compoundname>
- <title>Bibliography</title>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- <para>
- <variablelist>
- <varlistentry>
- <term><anchor id="citelist_1CITEREF_Be09"/>[1]</term>
- </varlistentry>
- <listitem>
- <para>P.<nonbreakablespace/>Belotti. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3_5">Disjunctive cuts for non-convex MINLP</ulink>. In <ulink url="#CITEREF_LeLe12">Lee and Leyffer</ulink> <ulink url="#CITEREF_LeLe12">[4]</ulink>, pages 117<ndash/>144.</para>
- <para/>
- </listitem>
- <varlistentry>
- <term><anchor id="citelist_1CITEREF_BertholdHeinzVigerske2009"/>[2]</term>
- </varlistentry>
- <listitem>
- <para>T.<nonbreakablespace/>Berthold, S.<nonbreakablespace/>Heinz, and S.<nonbreakablespace/>Vigerske. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3_15">Extending a CIP framework to solve MIQCPs</ulink>. In <ulink url="#CITEREF_LeLe12">Lee and Leyffer</ulink> <ulink url="#CITEREF_LeLe12">[4]</ulink>, pages 427<ndash/>444.</para>
- <para/>
- </listitem>
- <varlistentry>
- <term><anchor id="citelist_1CITEREF_knuth79"/>[3]</term>
- </varlistentry>
- <listitem>
- <para>Donald<nonbreakablespace/>E. Knuth. <emphasis>Tex and Metafont, New Directions in Typesetting</emphasis>. American Mathematical Society and Digital Press, Stanford, 1979.</para>
- <para/>
- </listitem>
- <varlistentry>
- <term><anchor id="citelist_1CITEREF_LeLe12"/>[4]</term>
- </varlistentry>
- <listitem>
- <para>Jon Lee and Sven Leyffer, editors. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3"><emphasis>Mixed Integer Nonlinear Programming</emphasis></ulink>, volume 154 of <emphasis>The IMA Volumes in Mathematics and its Applications</emphasis>. Springer, 2012.</para>
- <para/>
- </listitem>
- </variablelist>
- </para>
- </detaileddescription>
- </compounddef>
-</doxygen>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="citelist" kind="page"> + <compoundname>citelist</compoundname> + <title>Bibliography</title> + <briefdescription> + </briefdescription> + <detaileddescription> + <para> + <variablelist> + <varlistentry> + <term><anchor id="citelist_1CITEREF_Be09"/>[1]</term> + </varlistentry> + <listitem> + <para>P.<nonbreakablespace/>Belotti. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3_5">Disjunctive cuts for non-convex MINLP</ulink>. In <ulink url="#CITEREF_LeLe12">Lee and Leyffer</ulink> <ulink url="#CITEREF_LeLe12">[4]</ulink>, pages 117<ndash/>144.</para> + <para/> + </listitem> + <varlistentry> + <term><anchor id="citelist_1CITEREF_BertholdHeinzVigerske2009"/>[2]</term> + </varlistentry> + <listitem> + <para>T.<nonbreakablespace/>Berthold, S.<nonbreakablespace/>Heinz, and S.<nonbreakablespace/>Vigerske. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3_15">Extending a CIP framework to solve MIQCPs</ulink>. In <ulink url="#CITEREF_LeLe12">Lee and Leyffer</ulink> <ulink url="#CITEREF_LeLe12">[4]</ulink>, pages 427<ndash/>444.</para> + <para/> + </listitem> + <varlistentry> + <term><anchor id="citelist_1CITEREF_knuth79"/>[3]</term> + </varlistentry> + <listitem> + <para>Donald<nonbreakablespace/>E. Knuth. <emphasis>Tex and Metafont, New Directions in Typesetting</emphasis>. American Mathematical Society and Digital Press, Stanford, 1979.</para> + <para/> + </listitem> + <varlistentry> + <term><anchor id="citelist_1CITEREF_LeLe12"/>[4]</term> + </varlistentry> + <listitem> + <para>Jon Lee and Sven Leyffer, editors. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3"><emphasis>Mixed Integer Nonlinear Programming</emphasis></ulink>, volume 154 of <emphasis>The IMA Volumes in Mathematics and its Applications</emphasis>. Springer, 2012.</para> + <para/> + </listitem> + </variablelist> + </para> + </detaileddescription> + </compounddef> +</doxygen> diff --git a/testing/012/indexpage.xml b/testing/012/indexpage.xml index e682540..227e52c 100755..100644 --- a/testing/012/indexpage.xml +++ b/testing/012/indexpage.xml @@ -1,13 +1,13 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
- <compounddef id="indexpage" kind="page">
- <compoundname>index</compoundname>
- <title>My Project</title>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">[3]</ref> for more info.</para>
- <para>Oter references with crosreference see <ref refid="citelist_1CITEREF_Be09" kindref="member">[1]</ref> and <ref refid="citelist_1CITEREF_BertholdHeinzVigerske2009" kindref="member">[2]</ref> for more info. </para>
- </detaileddescription>
- </compounddef>
-</doxygen>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="indexpage" kind="page"> + <compoundname>index</compoundname> + <title>My Project</title> + <briefdescription> + </briefdescription> + <detaileddescription> + <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">[3]</ref> for more info.</para> + <para>Oter references with crosreference see <ref refid="citelist_1CITEREF_Be09" kindref="member">[1]</ref> and <ref refid="citelist_1CITEREF_BertholdHeinzVigerske2009" kindref="member">[2]</ref> for more info. </para> + </detaileddescription> + </compounddef> +</doxygen> diff --git a/testing/014/indexpage.xml b/testing/014/indexpage.xml index 7cbc82f..3fb3867 100644 --- a/testing/014/indexpage.xml +++ b/testing/014/indexpage.xml @@ -42,7 +42,7 @@ <para> <programlisting> <codeline> - <highlight class="normal">//<sp />implicit<sp />code<sp />language</highlight> + <highlight class="normal">//<sp/>implicit<sp/>code<sp/>language</highlight> </codeline> </programlisting> </para> diff --git a/testing/015/015__cond_8c.xml b/testing/015/015__cond_8c.xml index bcc18b5..8700967 100644 --- a/testing/015/015__cond_8c.xml +++ b/testing/015/015__cond_8c.xml @@ -15,7 +15,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="015_cond.c" line="21" column="1" bodyfile="015_cond.c" bodystart="21" bodyend="23"/> + <location file="015_cond.c" line="21" column="6" bodyfile="015_cond.c" bodystart="21" bodyend="23"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/016/016__copydoc_8c.xml b/testing/016/016__copydoc_8c.xml index b0e2246..78a746a 100644 --- a/testing/016/016__copydoc_8c.xml +++ b/testing/016/016__copydoc_8c.xml @@ -20,7 +20,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="016_copydoc.c" line="11" column="1" declfile="016_copydoc.c" declline="11" declcolumn="1"/> + <location file="016_copydoc.c" line="11" column="6" declfile="016_copydoc.c" declline="11" declcolumn="6"/> </memberdef> <memberdef kind="function" id="016__copydoc_8c_1a119dbcf2f0bc3ec1fbf77fcd35dec6df" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -34,7 +34,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="016_copydoc.c" line="14" column="1" declfile="016_copydoc.c" declline="14" declcolumn="1"/> + <location file="016_copydoc.c" line="14" column="6" declfile="016_copydoc.c" declline="14" declcolumn="6"/> </memberdef> <memberdef kind="function" id="016__copydoc_8c_1a3c1e44de2b412b5218b55e216cebb4ac" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -48,7 +48,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="016_copydoc.c" line="17" column="1" declfile="016_copydoc.c" declline="17" declcolumn="1"/> + <location file="016_copydoc.c" line="17" column="6" declfile="016_copydoc.c" declline="17" declcolumn="6"/> </memberdef> <memberdef kind="function" id="016__copydoc_8c_1a2535f29ea009c3d7449264671e15afe9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -63,7 +63,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="016_copydoc.c" line="22" column="1" declfile="016_copydoc.c" declline="22" declcolumn="1"/> + <location file="016_copydoc.c" line="22" column="6" declfile="016_copydoc.c" declline="22" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/018/018__def_8c.xml b/testing/018/018__def_8c.xml index 5f42767..837a85a 100644 --- a/testing/018/018__def_8c.xml +++ b/testing/018/018__def_8c.xml @@ -41,7 +41,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="018_def.c" line="13" column="1" bodyfile="018_def.c" bodystart="13" bodyend="13"/> + <location file="018_def.c" line="13" column="7" bodyfile="018_def.c" bodystart="13" bodyend="13"/> </memberdef> </sectiondef> <sectiondef kind="typedef"> @@ -57,7 +57,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="018_def.c" line="12" column="1" bodyfile="018_def.c" bodystart="12" bodyend="-1"/> + <location file="018_def.c" line="12" column="13" bodyfile="018_def.c" bodystart="12" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="var"> @@ -74,7 +74,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="018_def.c" line="9" column="1" bodyfile="018_def.c" bodystart="9" bodyend="-1"/> + <location file="018_def.c" line="9" column="5" bodyfile="018_def.c" bodystart="9" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="func"> @@ -93,7 +93,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="018_def.c" line="10" column="1" bodyfile="018_def.c" bodystart="10" bodyend="10"/> + <location file="018_def.c" line="10" column="6" bodyfile="018_def.c" bodystart="10" bodyend="10"/> </memberdef> <memberdef kind="function" id="018__def_8c_1a2652ccbfb85efa2df3c70ba6c4628f8d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -113,7 +113,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="018_def.c" line="11" column="1" bodyfile="018_def.c" bodystart="11" bodyend="11"/> + <location file="018_def.c" line="11" column="6" bodyfile="018_def.c" bodystart="11" bodyend="11"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/019/group__g1.xml b/testing/019/group__g1.xml index 2d45709..d9ea16d 100644 --- a/testing/019/group__g1.xml +++ b/testing/019/group__g1.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="019_defgroup.c" line="13" column="1" declfile="019_defgroup.c" declline="13" declcolumn="1"/> + <location file="019_defgroup.c" line="13" column="6" declfile="019_defgroup.c" declline="13" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/019/group__g2.xml b/testing/019/group__g2.xml index 3429ad9..9b1fc83 100644 --- a/testing/019/group__g2.xml +++ b/testing/019/group__g2.xml @@ -17,7 +17,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="019_defgroup.c" line="23" column="1" declfile="019_defgroup.c" declline="23" declcolumn="1"/> + <location file="019_defgroup.c" line="23" column="6" declfile="019_defgroup.c" declline="23" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/019/group__g3.xml b/testing/019/group__g3.xml index 6ef7640..d9137b0 100644 --- a/testing/019/group__g3.xml +++ b/testing/019/group__g3.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="019_defgroup.c" line="36" column="1" declfile="019_defgroup.c" declline="36" declcolumn="1"/> + <location file="019_defgroup.c" line="36" column="6" declfile="019_defgroup.c" declline="36" declcolumn="6"/> </memberdef> <memberdef kind="function" id="group__g3_1gaf32d23522a5d9c3e7fed3dd5710001f7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -30,7 +30,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="019_defgroup.c" line="45" column="1" declfile="019_defgroup.c" declline="45" declcolumn="1"/> + <location file="019_defgroup.c" line="45" column="6" declfile="019_defgroup.c" declline="45" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/020/indexpage.xml b/testing/020/indexpage.xml index 3171e13..8bfb472 100644 --- a/testing/020/indexpage.xml +++ b/testing/020/indexpage.xml @@ -6,9 +6,9 @@ <briefdescription> </briefdescription> <detaileddescription> - <para>Text. + <para>Text. XML -More text. </para> + More text. </para> </detaileddescription> </compounddef> </doxygen> diff --git a/testing/025/class_test.xml b/testing/025/class_test.xml index c19341a..7438488 100644 --- a/testing/025/class_test.xml +++ b/testing/025/class_test.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="025_example.cpp" line="17" column="1" bodyfile="025_example.cpp" bodystart="20" bodyend="20"/> + <location file="025_example.cpp" line="17" column="10" bodyfile="025_example.cpp" bodystart="20" bodyend="20"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/026/class_test.xml b/testing/026/class_test.xml index 582d509..469ba7c 100644 --- a/testing/026/class_test.xml +++ b/testing/026/class_test.xml @@ -32,7 +32,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="026_exception.cpp" line="19" column="1"/> + <location file="026_exception.cpp" line="19" column="9"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/027/struct_car.xml b/testing/027/struct_car.xml index 9027597..61a8d16 100644 --- a/testing/027/struct_car.xml +++ b/testing/027/struct_car.xml @@ -18,7 +18,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="027_extends.c" line="69" column="1" bodyfile="027_extends.c" bodystart="69" bodyend="-1"/> + <location file="027_extends.c" line="69" column="11" bodyfile="027_extends.c" bodystart="69" bodyend="-1"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/027/struct_object.xml b/testing/027/struct_object.xml index 9d93be7..18b34ef 100644 --- a/testing/027/struct_object.xml +++ b/testing/027/struct_object.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="027_extends.c" line="21" column="1" bodyfile="027_extends.c" bodystart="21" bodyend="-1"/> + <location file="027_extends.c" line="21" column="7" bodyfile="027_extends.c" bodystart="21" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="public-func"> @@ -36,7 +36,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="027_extends.c" line="29" column="1" declfile="027_extends.c" declline="29" declcolumn="1"/> + <location file="027_extends.c" line="29" column="16" declfile="027_extends.c" declline="29" declcolumn="16"/> </memberdef> <memberdef kind="function" id="struct_object_1a924ee0cecc906d148022b3f0d6325cfb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type><ref refid="struct_object" kindref="compound">Object</ref> *</type> @@ -54,7 +54,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="027_extends.c" line="36" column="1" declfile="027_extends.c" declline="36" declcolumn="1"/> + <location file="027_extends.c" line="36" column="16" declfile="027_extends.c" declline="36" declcolumn="16"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/027/struct_truck.xml b/testing/027/struct_truck.xml index c5009d4..92877e3 100644 --- a/testing/027/struct_truck.xml +++ b/testing/027/struct_truck.xml @@ -18,7 +18,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="027_extends.c" line="79" column="1" bodyfile="027_extends.c" bodystart="79" bodyend="-1"/> + <location file="027_extends.c" line="79" column="11" bodyfile="027_extends.c" bodystart="79" bodyend="-1"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/027/struct_vehicle.xml b/testing/027/struct_vehicle.xml index c217fc6..3fc2456 100644 --- a/testing/027/struct_vehicle.xml +++ b/testing/027/struct_vehicle.xml @@ -20,7 +20,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="027_extends.c" line="45" column="1" bodyfile="027_extends.c" bodystart="45" bodyend="-1"/> + <location file="027_extends.c" line="45" column="10" bodyfile="027_extends.c" bodystart="45" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="public-func"> @@ -40,7 +40,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="027_extends.c" line="53" column="1" declfile="027_extends.c" declline="53" declcolumn="1"/> + <location file="027_extends.c" line="53" column="6" declfile="027_extends.c" declline="53" declcolumn="6"/> </memberdef> <memberdef kind="function" id="struct_vehicle_1a4dcbcba43792dcd673a552b14479ab77" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -58,7 +58,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="027_extends.c" line="60" column="1" declfile="027_extends.c" declline="60" declcolumn="1"/> + <location file="027_extends.c" line="60" column="6" declfile="027_extends.c" declline="60" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/029/029__hideinit_8c.xml b/testing/029/029__hideinit_8c.xml index 4caf092..c13192f 100644 --- a/testing/029/029__hideinit_8c.xml +++ b/testing/029/029__hideinit_8c.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="029_hideinit.c" line="7" column="1" bodyfile="029_hideinit.c" bodystart="7" bodyend="-1"/> + <location file="029_hideinit.c" line="7" column="5" bodyfile="029_hideinit.c" bodystart="7" bodyend="-1"/> </memberdef> <memberdef kind="variable" id="029__hideinit_8c_1ac0da06d47d79ad4b9fb1c0eaf1118c3f" prot="public" static="no" mutable="no"> <type>int</type> @@ -30,7 +30,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="029_hideinit.c" line="12" column="1" bodyfile="029_hideinit.c" bodystart="12" bodyend="-1"/> + <location file="029_hideinit.c" line="12" column="5" bodyfile="029_hideinit.c" bodystart="12" bodyend="-1"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/031/indexpage.xml b/testing/031/indexpage.xml index 7e368f3..2d74510 100755..100644 --- a/testing/031/indexpage.xml +++ b/testing/031/indexpage.xml @@ -1,54 +1,54 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
- <compounddef id="indexpage" kind="page">
- <compoundname>index</compoundname>
- <title>My Project</title>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- <para>Some text. <image type="html" name="sample.png"/>
- <image type="latex" name="sample.png" width="5cm">Doxygen logo</image>
- <image type="docbook" name="sample.png"/>
- More text.</para>
- <para>SVG image with caption:<linebreak/>
-<image type="html" name="license-MIT-brightgreen.svg">A caption</image>
-</para>
- <para>PNG image with caption:<linebreak/>
-<image type="html" name="license-MIT-brightgreen.png">A caption</image>
-</para>
- <para>SVG image without caption:<linebreak/>
-<image type="html" name="license-MIT-brightgreen.svg"/>
-</para>
- <para>PNG image without caption:<linebreak/>
-<image type="html" name="license-MIT-brightgreen.png"/>
-</para>
- <para>Inline SVG image with caption:<linebreak/>
-This image is inline <image type="html" name="license-MIT-brightgreen.svg" inline="yes">MIT license</image>
- within the text.</para>
- <para>Inline PNG image with caption:<linebreak/>
-This image is inline <image type="html" name="license-MIT-brightgreen.png" inline="yes">MIT license</image>
- within the text.</para>
- <para>Markdown style linked SVG image:<linebreak/>
-<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.svg" inline="yes"/></ulink></para>
- <para>Markdown style linked PNG image:<linebreak/>
-<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.png" inline="yes"/></ulink></para>
- <para>HTML style linked SVG image:<linebreak/>
-<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.svg" inline="yes"/></ulink></para>
- <para>HTML style linked PNG image:<linebreak/>
-<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.png" inline="yes"/></ulink></para>
- <para>HTML style unlinked SVG image:<linebreak/>
-<image type="html" name="license-MIT-brightgreen.svg" inline="yes"/>
-</para>
- <para>HTML style unlinked PNG image:<linebreak/>
-<image type="html" name="license-MIT-brightgreen.png" inline="yes"/>
-</para>
- <para>Some markdown image tests<linebreak/>
-<image type="html" name="docs-Doxygen-blue.svg?foo&bar" inline="yes"/>
- <ulink url="http://www.doxygen.nl?foo&bar">Some normal link</ulink></para>
- <para>
- <image type="html" name="docs-Doxygen-blue.svg?foo&bar" inline="yes"/>
- <ulink url="http://www.doxygen.nl?foo&bar">Some normal link</ulink>
- </para>
- </detaileddescription>
- </compounddef>
-</doxygen>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="indexpage" kind="page"> + <compoundname>index</compoundname> + <title>My Project</title> + <briefdescription> + </briefdescription> + <detaileddescription> + <para>Some text. <image type="html" name="sample.png"/> + <image type="latex" name="sample.png" width="5cm">Doxygen logo</image> + <image type="docbook" name="sample.png"/> + More text.</para> + <para>SVG image with caption:<linebreak/> +<image type="html" name="license-MIT-brightgreen.svg">A caption</image> +</para> + <para>PNG image with caption:<linebreak/> +<image type="html" name="license-MIT-brightgreen.png">A caption</image> +</para> + <para>SVG image without caption:<linebreak/> +<image type="html" name="license-MIT-brightgreen.svg"/> +</para> + <para>PNG image without caption:<linebreak/> +<image type="html" name="license-MIT-brightgreen.png"/> +</para> + <para>Inline SVG image with caption:<linebreak/> +This image is inline <image type="html" name="license-MIT-brightgreen.svg" inline="yes">MIT license</image> + within the text.</para> + <para>Inline PNG image with caption:<linebreak/> +This image is inline <image type="html" name="license-MIT-brightgreen.png" inline="yes">MIT license</image> + within the text.</para> + <para>Markdown style linked SVG image:<linebreak/> +<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.svg" inline="yes"/></ulink></para> + <para>Markdown style linked PNG image:<linebreak/> +<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.png" inline="yes"/></ulink></para> + <para>HTML style linked SVG image:<linebreak/> +<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.svg" inline="yes"/></ulink></para> + <para>HTML style linked PNG image:<linebreak/> +<ulink url="http://opensource.org/licenses/MIT"><image type="html" name="license-MIT-brightgreen.png" inline="yes"/></ulink></para> + <para>HTML style unlinked SVG image:<linebreak/> +<image type="html" name="license-MIT-brightgreen.svg" inline="yes"/> +</para> + <para>HTML style unlinked PNG image:<linebreak/> +<image type="html" name="license-MIT-brightgreen.png" inline="yes"/> +</para> + <para>Some markdown image tests<linebreak/> +<image type="html" name="docs-Doxygen-blue.svg?foo&bar" inline="yes"/> + <ulink url="http://www.doxygen.nl?foo&bar">Some normal link</ulink></para> + <para> + <image type="html" name="docs-Doxygen-blue.svg?foo&bar" inline="yes"/> + <ulink url="http://www.doxygen.nl?foo&bar">Some normal link</ulink> + </para> + </detaileddescription> + </compounddef> +</doxygen> diff --git a/testing/035/035__invariant_8c.xml b/testing/035/035__invariant_8c.xml index b3d74bc..0bdd7a6 100644 --- a/testing/035/035__invariant_8c.xml +++ b/testing/035/035__invariant_8c.xml @@ -33,7 +33,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="035_invariant.c" line="10" column="1" bodyfile="035_invariant.c" bodystart="10" bodyend="15"/> + <location file="035_invariant.c" line="10" column="6" bodyfile="035_invariant.c" bodystart="10" bodyend="15"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/036/036__link_8c.xml b/testing/036/036__link_8c.xml index aba069f..db238fb 100644 --- a/testing/036/036__link_8c.xml +++ b/testing/036/036__link_8c.xml @@ -20,7 +20,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="036_link.c" line="11" column="1" declfile="036_link.c" declline="11" declcolumn="1"/> + <location file="036_link.c" line="11" column="6" declfile="036_link.c" declline="11" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/037/class_receiver.xml b/testing/037/class_receiver.xml index edb688a..21156d7 100644 --- a/testing/037/class_receiver.xml +++ b/testing/037/class_receiver.xml @@ -19,7 +19,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="037_msc.cpp" line="32" column="1"/> + <location file="037_msc.cpp" line="32" column="10"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/037/class_sender.xml b/testing/037/class_sender.xml index 0f1996d..53ba04e 100644 --- a/testing/037/class_sender.xml +++ b/testing/037/class_sender.xml @@ -19,7 +19,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="037_msc.cpp" line="17" column="1"/> + <location file="037_msc.cpp" line="17" column="10"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/039/class_test.xml b/testing/039/class_test.xml index 2a4796a..ca7ff62 100644 --- a/testing/039/class_test.xml +++ b/testing/039/class_test.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="039_name.cpp" line="16" column="1"/> + <location file="039_name.cpp" line="16" column="10"/> </memberdef> <memberdef kind="function" id="class_test_1a78e37a450a276b60a5a2fa4a46c86f2e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -30,7 +30,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="039_name.cpp" line="18" column="1"/> + <location file="039_name.cpp" line="18" column="10"/> </memberdef> </sectiondef> <sectiondef kind="public-func"> @@ -46,7 +46,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="039_name.cpp" line="23" column="1"/> + <location file="039_name.cpp" line="23" column="10"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/041/class_test.xml b/testing/041/class_test.xml index 57dbe37..c4c1d9c 100644 --- a/testing/041/class_test.xml +++ b/testing/041/class_test.xml @@ -31,7 +31,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="041_overload.cpp" line="7" column="1" bodyfile="041_overload.cpp" bodystart="12" bodyend="12"/> + <location file="041_overload.cpp" line="7" column="10" bodyfile="041_overload.cpp" bodystart="12" bodyend="12"/> </memberdef> <memberdef kind="function" id="class_test_1ae87a6e26707e684c0d2d07bb3d4a9d7f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -45,11 +45,11 @@ <briefdescription> </briefdescription> <detaileddescription> - <para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para> + <para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.</para> </detaileddescription> <inbodydescription> </inbodydescription> - <location file="041_overload.cpp" line="8" column="1" bodyfile="041_overload.cpp" bodystart="13" bodyend="13"/> + <location file="041_overload.cpp" line="8" column="10" bodyfile="041_overload.cpp" bodystart="13" bodyend="13"/> </memberdef> <memberdef kind="function" id="class_test_1a62a76eed05fa84633d1e460aeeaf875d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -72,7 +72,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="041_overload.cpp" line="9" column="1" bodyfile="041_overload.cpp" bodystart="18" bodyend="18"/> + <location file="041_overload.cpp" line="9" column="10" bodyfile="041_overload.cpp" bodystart="18" bodyend="18"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/042/namespaceorg_1_1doxygen_1_1_test.xml b/testing/042/namespaceorg_1_1doxygen_1_1_test.xml index 7ed33d5..cd243d5 100644 --- a/testing/042/namespaceorg_1_1doxygen_1_1_test.xml +++ b/testing/042/namespaceorg_1_1doxygen_1_1_test.xml @@ -7,6 +7,6 @@ <detaileddescription> <para>A test package. </para> </detaileddescription> - <location file="042_package.java" line="4" column="1"/> + <location file="042_package.java" line="4" column="15"/> </compounddef> </doxygen> diff --git a/testing/044/struct_s.xml b/testing/044/struct_s.xml index aefd50d..7214f29 100644 --- a/testing/044/struct_s.xml +++ b/testing/044/struct_s.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="044_section.h" line="10" column="1" bodyfile="044_section.h" bodystart="10" bodyend="-1"/> + <location file="044_section.h" line="10" column="7" bodyfile="044_section.h" bodystart="10" bodyend="-1"/> </memberdef> <memberdef kind="variable" id="struct_s_1a413054db7785010db38c16322c8583cc" prot="public" static="no" mutable="no"> <type>int</type> @@ -30,7 +30,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="044_section.h" line="12" column="1" bodyfile="044_section.h" bodystart="12" bodyend="-1"/> + <location file="044_section.h" line="12" column="7" bodyfile="044_section.h" bodystart="12" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="protected-attrib"> @@ -46,7 +46,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="044_section.h" line="17" column="1" bodyfile="044_section.h" bodystart="17" bodyend="-1"/> + <location file="044_section.h" line="17" column="7" bodyfile="044_section.h" bodystart="17" bodyend="-1"/> </memberdef> <memberdef kind="variable" id="struct_s_1a0c535a6122f4ae509a336e3a67f927a4" prot="protected" static="no" mutable="no"> <type>int</type> @@ -60,7 +60,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="044_section.h" line="19" column="1" bodyfile="044_section.h" bodystart="19" bodyend="-1"/> + <location file="044_section.h" line="19" column="7" bodyfile="044_section.h" bodystart="19" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="private-attrib"> @@ -76,7 +76,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="044_section.h" line="24" column="1" bodyfile="044_section.h" bodystart="24" bodyend="-1"/> + <location file="044_section.h" line="24" column="7" bodyfile="044_section.h" bodystart="24" bodyend="-1"/> </memberdef> <memberdef kind="variable" id="struct_s_1a4b26822a09bcd6b946702e99280826ff" prot="private" static="no" mutable="no"> <type>int</type> @@ -90,7 +90,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="044_section.h" line="26" column="1" bodyfile="044_section.h" bodystart="26" bodyend="-1"/> + <location file="044_section.h" line="26" column="7" bodyfile="044_section.h" bodystart="26" bodyend="-1"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/046/046__related_8cpp.xml b/testing/046/046__related_8cpp.xml index c36c6c5..6386d5d 100644 --- a/testing/046/046__related_8cpp.xml +++ b/testing/046/046__related_8cpp.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="046_related.cpp" line="28" column="1" declfile="046_related.cpp" declline="28" declcolumn="1"/> + <location file="046_related.cpp" line="28" column="6" declfile="046_related.cpp" declline="28" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/046/class_test.xml b/testing/046/class_test.xml index 1445e35..0a9f22c 100644 --- a/testing/046/class_test.xml +++ b/testing/046/class_test.xml @@ -15,7 +15,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="046_related.cpp" line="14" column="1"/> + <location file="046_related.cpp" line="14" column="10"/> </memberdef> </sectiondef> <sectiondef kind="related"> @@ -38,7 +38,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="046_related.cpp" line="22" column="1" declfile="046_related.cpp" declline="22" declcolumn="1"/> + <location file="046_related.cpp" line="22" column="6" declfile="046_related.cpp" declline="22" declcolumn="6"/> </memberdef> <memberdef kind="function" id="class_test_1a1283d836e0611ff772c1b06a31ecbbfe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -52,7 +52,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="046_related.cpp" line="28" column="1" declfile="046_related.cpp" declline="28" declcolumn="1"/> + <location file="046_related.cpp" line="28" column="6" declfile="046_related.cpp" declline="28" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/047/047__return_8cpp.xml b/testing/047/047__return_8cpp.xml index a29062f..4e3d3e9 100644 --- a/testing/047/047__return_8cpp.xml +++ b/testing/047/047__return_8cpp.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="047_return.cpp" line="9" column="1" declfile="047_return.cpp" declline="9" declcolumn="1"/> + <location file="047_return.cpp" line="9" column="5" declfile="047_return.cpp" declline="9" declcolumn="5"/> </memberdef> <memberdef kind="function" id="047__return_8cpp_1aa1d4878589351db8276c79f98ed9fb7d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>int</type> @@ -31,7 +31,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="047_return.cpp" line="14" column="1" declfile="047_return.cpp" declline="14" declcolumn="1"/> + <location file="047_return.cpp" line="14" column="5" declfile="047_return.cpp" declline="14" declcolumn="5"/> </memberdef> <memberdef kind="function" id="047__return_8cpp_1abee09dd9ed9ce93df5a931d16faac09a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>int</type> @@ -46,7 +46,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="047_return.cpp" line="19" column="1" declfile="047_return.cpp" declline="19" declcolumn="1"/> + <location file="047_return.cpp" line="19" column="5" declfile="047_return.cpp" declline="19" declcolumn="5"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/048/048__showinit_8c.xml b/testing/048/048__showinit_8c.xml index 4cc5717..3037c9c 100644 --- a/testing/048/048__showinit_8c.xml +++ b/testing/048/048__showinit_8c.xml @@ -15,7 +15,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="048_showinit.c" line="8" column="1" bodyfile="048_showinit.c" bodystart="8" bodyend="-1"/> + <location file="048_showinit.c" line="8" column="5" bodyfile="048_showinit.c" bodystart="8" bodyend="-1"/> </memberdef> <memberdef kind="variable" id="048__showinit_8c_1ac0da06d47d79ad4b9fb1c0eaf1118c3f" prot="public" static="no" mutable="no"> <type>int</type> @@ -30,7 +30,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="048_showinit.c" line="13" column="1" bodyfile="048_showinit.c" bodystart="13" bodyend="-1"/> + <location file="048_showinit.c" line="13" column="5" bodyfile="048_showinit.c" bodystart="13" bodyend="-1"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/050/indexpage.xml b/testing/050/indexpage.xml index bbaacf4..f3cd647 100755..100644 --- a/testing/050/indexpage.xml +++ b/testing/050/indexpage.xml @@ -1,45 +1,45 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
- <compounddef id="indexpage" kind="page">
- <compoundname>index</compoundname>
- <title>My Project</title>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- <para>Some normal text. <verbatim>A verbatim section with a /* C comment */ in it
-</verbatim> Showing a file as verbatim <verbatim>@book{knuth79,
- author = "Donald E. Knuth",
- title = "Tex and Metafont, New Directions in Typesetting",
- year = "1979",
- publisher = "American Mathematical Society and Digital Press",
- address = "Stanford"
-}
-@InCollection{ BertholdHeinzVigerske2009,
- author = {T. Berthold and S. Heinz and S. Vigerske},
- title = {Extending a {CIP} framework to solve {MIQCP}s},
- crossref = {LeLe12},
- pages = {427--444},
- url = {http://doi.org/10.1007/978-1-4614-1927-3_15}
-}
-@Book{ LeLe12,
- title = {Mixed Integer Nonlinear Programming},
- booktitle = {Mixed Integer Nonlinear Programming},
- publisher = {Springer},
- year = {2012},
- editor = {Jon Lee and Sven Leyffer},
- volume = {154},
- series = {The IMA Volumes in Mathematics and its Applications},
- url = {http://doi.org/10.1007/978-1-4614-1927-3},
- issn = {978-1-4614-1926-6}
-}
-@InCollection{ Be09,
- author = {P. Belotti},
- title = {Disjunctive cuts for non-convex {MINLP}},
- crossref = {LeLe12},
- pages = {117--144},
- url = {http://doi.org/10.1007/978-1-4614-1927-3_5}
-}
-</verbatim> More text after the verbatim section. </para>
- </detaileddescription>
- </compounddef>
-</doxygen>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="indexpage" kind="page"> + <compoundname>index</compoundname> + <title>My Project</title> + <briefdescription> + </briefdescription> + <detaileddescription> + <para>Some normal text. <verbatim>A verbatim section with a /* C comment */ in it +</verbatim> Showing a file as verbatim <verbatim>@book{knuth79, + author = "Donald E. Knuth", + title = "Tex and Metafont, New Directions in Typesetting", + year = "1979", + publisher = "American Mathematical Society and Digital Press", + address = "Stanford" +} +@InCollection{ BertholdHeinzVigerske2009, + author = {T. Berthold and S. Heinz and S. Vigerske}, + title = {Extending a {CIP} framework to solve {MIQCP}s}, + crossref = {LeLe12}, + pages = {427--444}, + url = {http://doi.org/10.1007/978-1-4614-1927-3_15} +} +@Book{ LeLe12, + title = {Mixed Integer Nonlinear Programming}, + booktitle = {Mixed Integer Nonlinear Programming}, + publisher = {Springer}, + year = {2012}, + editor = {Jon Lee and Sven Leyffer}, + volume = {154}, + series = {The IMA Volumes in Mathematics and its Applications}, + url = {http://doi.org/10.1007/978-1-4614-1927-3}, + issn = {978-1-4614-1926-6} +} +@InCollection{ Be09, + author = {P. Belotti}, + title = {Disjunctive cuts for non-convex {MINLP}}, + crossref = {LeLe12}, + pages = {117--144}, + url = {http://doi.org/10.1007/978-1-4614-1927-3_5} +} +</verbatim> More text after the verbatim section. </para> + </detaileddescription> + </compounddef> +</doxygen> diff --git a/testing/051/indexpage.xml b/testing/051/indexpage.xml index 50a6ff8..2d37333 100644 --- a/testing/051/indexpage.xml +++ b/testing/051/indexpage.xml @@ -6,7 +6,7 @@ <briefdescription> </briefdescription> <detaileddescription> - <para>Dollar $ At @ Backslash \ Ampersand & Less < Greater > Hash # Percent % Quote " Dot . Double colon :: Pipe | Plus + Minus - </para> + <para>Dollar $ At @ Backslash \ Ampersand & Less < Greater > Hash # Percent % Quote " Dot . Double colon :: Pipe | Plus + Minus - </para> </detaileddescription> </compounddef> </doxygen> diff --git a/testing/054/054__parblock_8cpp.xml b/testing/054/054__parblock_8cpp.xml index e9aec90..0eefc0b 100644 --- a/testing/054/054__parblock_8cpp.xml +++ b/testing/054/054__parblock_8cpp.xml @@ -91,7 +91,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="054_parblock.cpp" line="33" column="1" declfile="054_parblock.cpp" declline="33" declcolumn="1"/> + <location file="054_parblock.cpp" line="33" column="6" declfile="054_parblock.cpp" declline="33" declcolumn="6"/> </memberdef> <memberdef kind="function" id="054__parblock_8cpp_1a5cded03ec9e6fd626da35ab05f624f39" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -181,7 +181,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="054_parblock.cpp" line="60" column="1" declfile="054_parblock.cpp" declline="60" declcolumn="1"/> + <location file="054_parblock.cpp" line="60" column="6" declfile="054_parblock.cpp" declline="60" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/055/md_055_markdown.xml b/testing/055/md_055_markdown.xml index 307eb26..18555aa 100755..100644 --- a/testing/055/md_055_markdown.xml +++ b/testing/055/md_055_markdown.xml @@ -1,31 +1,31 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
- <compounddef id="md_055_markdown" kind="page">
- <compoundname>md_055_markdown</compoundname>
- <title>055_markdown</title>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- <sect1 id="md_055_markdown_1autotoc_md0">
- <title>Foo</title>
- <sect2 id="md_055_markdown_1autotoc_md1">
- <title>Bar</title>
- <para>
- <ulink url="http://example.com/inline">Inline link</ulink>
- </para>
- <para>
- <ulink url="http://example.com/reference">Reference link</ulink>
- </para>
- </sect2>
- <sect2 id="md_055_markdown_1autotoc_md2">
- <title>Baz</title>
- <para>More text</para>
- <para>
- <ulink url="http://example.com/last-line">Upper-cased reference link on last line</ulink>
- </para>
- <para>Dash - NDash <ndash/> MDash <mdash/> EDash - ENDash -- EMDash --- E3Dash --- </para>
- </sect2>
- </sect1>
- </detaileddescription>
- </compounddef>
-</doxygen>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="md_055_markdown" kind="page"> + <compoundname>md_055_markdown</compoundname> + <title>055_markdown</title> + <briefdescription> + </briefdescription> + <detaileddescription> + <sect1 id="md_055_markdown_1autotoc_md0"> + <title>Foo</title> + <sect2 id="md_055_markdown_1autotoc_md1"> + <title>Bar</title> + <para> + <ulink url="http://example.com/inline">Inline link</ulink> + </para> + <para> + <ulink url="http://example.com/reference">Reference link</ulink> + </para> + </sect2> + <sect2 id="md_055_markdown_1autotoc_md2"> + <title>Baz</title> + <para>More text</para> + <para> + <ulink url="http://example.com/last-line">Upper-cased reference link on last line</ulink> + </para> + <para>Dash - NDash <ndash/> MDash <mdash/> EDash - ENDash -- EMDash --- E3Dash --- </para> + </sect2> + </sect1> + </detaileddescription> + </compounddef> +</doxygen> diff --git a/testing/064/struct_foo.xml b/testing/064/struct_foo.xml index e228f92..d9e2486 100644 --- a/testing/064/struct_foo.xml +++ b/testing/064/struct_foo.xml @@ -15,7 +15,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="064_castoperator.cpp" line="22" column="1"/> + <location file="064_castoperator.cpp" line="22" column="3"/> </memberdef> <memberdef kind="function" id="struct_foo_1a1cd30e67501c6ff12bd6bf17af081449" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type/> @@ -29,7 +29,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="064_castoperator.cpp" line="24" column="1"/> + <location file="064_castoperator.cpp" line="24" column="3"/> </memberdef> </sectiondef> <briefdescription> @@ -97,7 +97,7 @@ </itemizedlist> </para> </detaileddescription> - <location file="064_castoperator.cpp" line="20" column="1" bodyfile="064_castoperator.cpp" bodystart="20" bodyend="25"/> + <location file="064_castoperator.cpp" line="20" column="10" bodyfile="064_castoperator.cpp" bodystart="20" bodyend="25"/> <listofallmembers> <member refid="struct_foo_1aab9774d892b6cd4a0fbebd034b4c1fad" prot="public" virt="non-virtual"> <scope>Foo</scope> diff --git a/testing/066/class_class1.xml b/testing/066/class_class1.xml index 34335a7..ccc412e 100755..100644 --- a/testing/066/class_class1.xml +++ b/testing/066/class_class1.xml @@ -1,53 +1,53 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
- <compounddef id="class_class1" kind="class" language="C#" prot="public">
- <compoundname>Class1</compoundname>
- <sectiondef kind="property">
- <memberdef kind="property" id="class_class1_1a6b0b2ab73516e37adb38b8ff33f97c40" prot="public" static="no" readable="no" writable="no" gettable="yes" privategettable="no" protectedgettable="no" settable="no" privatesettable="no" protectedsettable="no">
- <type>int</type>
- <definition>int Class1.Property1</definition>
- <argsstring/>
- <name>Property1</name>
- <initializer>= 1</initializer>
- <briefdescription>
- <para>Documentation of first property. </para>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="066_property_initializer.cs" line="7" column="1" bodyfile="066_property_initializer.cs" bodystart="7" bodyend="7"/>
- </memberdef>
- <memberdef kind="property" id="class_class1_1a0d5b843d48ebc2c078e003d6ff3a1610" prot="public" static="no" readable="no" writable="no" gettable="yes" privategettable="no" protectedgettable="no" settable="yes" privatesettable="no" protectedsettable="no">
- <type>string</type>
- <definition>string Class1.Property2</definition>
- <argsstring/>
- <name>Property2</name>
- <briefdescription>
- <para>Documentation of second property. </para>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="066_property_initializer.cs" line="8" column="1" bodyfile="066_property_initializer.cs" bodystart="8" bodyend="8"/>
- </memberdef>
- </sectiondef>
- <briefdescription>
- <para>Documentation of the class. </para>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="066_property_initializer.cs" line="6" column="1" bodyfile="066_property_initializer.cs" bodystart="5" bodyend="9"/>
- <listofallmembers>
- <member refid="class_class1_1a6b0b2ab73516e37adb38b8ff33f97c40" prot="public" virt="non-virtual">
- <scope>Class1</scope>
- <name>Property1</name>
- </member>
- <member refid="class_class1_1a0d5b843d48ebc2c078e003d6ff3a1610" prot="public" virt="non-virtual">
- <scope>Class1</scope>
- <name>Property2</name>
- </member>
- </listofallmembers>
- </compounddef>
-</doxygen>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="class_class1" kind="class" language="C#" prot="public"> + <compoundname>Class1</compoundname> + <sectiondef kind="property"> + <memberdef kind="property" id="class_class1_1a6b0b2ab73516e37adb38b8ff33f97c40" prot="public" static="no" readable="no" writable="no" gettable="yes" privategettable="no" protectedgettable="no" settable="no" privatesettable="no" protectedsettable="no"> + <type>int</type> + <definition>int Class1.Property1</definition> + <argsstring/> + <name>Property1</name> + <initializer>= 1</initializer> + <briefdescription> + <para>Documentation of first property. </para> + </briefdescription> + <detaileddescription> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="066_property_initializer.cs" line="7" column="14" bodyfile="066_property_initializer.cs" bodystart="7" bodyend="7"/> + </memberdef> + <memberdef kind="property" id="class_class1_1a0d5b843d48ebc2c078e003d6ff3a1610" prot="public" static="no" readable="no" writable="no" gettable="yes" privategettable="no" protectedgettable="no" settable="yes" privatesettable="no" protectedsettable="no"> + <type>string</type> + <definition>string Class1.Property2</definition> + <argsstring/> + <name>Property2</name> + <briefdescription> + <para>Documentation of second property. </para> + </briefdescription> + <detaileddescription> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="066_property_initializer.cs" line="8" column="17" bodyfile="066_property_initializer.cs" bodystart="8" bodyend="8"/> + </memberdef> + </sectiondef> + <briefdescription> + <para>Documentation of the class. </para> + </briefdescription> + <detaileddescription> + </detaileddescription> + <location file="066_property_initializer.cs" line="6" column="1" bodyfile="066_property_initializer.cs" bodystart="5" bodyend="9"/> + <listofallmembers> + <member refid="class_class1_1a6b0b2ab73516e37adb38b8ff33f97c40" prot="public" virt="non-virtual"> + <scope>Class1</scope> + <name>Property1</name> + </member> + <member refid="class_class1_1a0d5b843d48ebc2c078e003d6ff3a1610" prot="public" virt="non-virtual"> + <scope>Class1</scope> + <name>Property2</name> + </member> + </listofallmembers> + </compounddef> +</doxygen> diff --git a/testing/067/067__link__varargs_8cpp.xml b/testing/067/067__link__varargs_8cpp.xml index 8bf0051..c6eaac5 100644 --- a/testing/067/067__link__varargs_8cpp.xml +++ b/testing/067/067__link__varargs_8cpp.xml @@ -20,7 +20,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="067_link_varargs.cpp" line="11" column="1" declfile="067_link_varargs.cpp" declline="11" declcolumn="1"/> + <location file="067_link_varargs.cpp" line="11" column="6" declfile="067_link_varargs.cpp" declline="11" declcolumn="6"/> </memberdef> <memberdef kind="function" id="067__link__varargs_8cpp_1a106e01084409028d1b41f5ad83fb82c1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -41,7 +41,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="067_link_varargs.cpp" line="15" column="1" declfile="067_link_varargs.cpp" declline="15" declcolumn="1"/> + <location file="067_link_varargs.cpp" line="15" column="6" declfile="067_link_varargs.cpp" declline="15" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/068/068__ref__varargs_8cpp.xml b/testing/068/068__ref__varargs_8cpp.xml index ae5f28f..6cae853 100644 --- a/testing/068/068__ref__varargs_8cpp.xml +++ b/testing/068/068__ref__varargs_8cpp.xml @@ -20,7 +20,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="068_ref_varargs.cpp" line="11" column="1" declfile="068_ref_varargs.cpp" declline="11" declcolumn="1"/> + <location file="068_ref_varargs.cpp" line="11" column="6" declfile="068_ref_varargs.cpp" declline="11" declcolumn="6"/> </memberdef> <memberdef kind="function" id="068__ref__varargs_8cpp_1a106e01084409028d1b41f5ad83fb82c1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -41,7 +41,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="068_ref_varargs.cpp" line="15" column="1" declfile="068_ref_varargs.cpp" declline="15" declcolumn="1"/> + <location file="068_ref_varargs.cpp" line="15" column="6" declfile="068_ref_varargs.cpp" declline="15" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/069/069__link__variadic__template_8cpp.xml b/testing/069/069__link__variadic__template_8cpp.xml index 00677f8..08c3667 100644 --- a/testing/069/069__link__variadic__template_8cpp.xml +++ b/testing/069/069__link__variadic__template_8cpp.xml @@ -20,7 +20,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="40" column="1" declfile="069_link_variadic_template.cpp" declline="40" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="40" column="6" declfile="069_link_variadic_template.cpp" declline="40" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1aa7e4936a17759246bce60256cf224e16" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -49,7 +49,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="45" column="1" declfile="069_link_variadic_template.cpp" declline="45" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="45" column="6" declfile="069_link_variadic_template.cpp" declline="45" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1ad6fc2d2a6cb8980f3e0eaacbd2ae41fe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -78,7 +78,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="50" column="1" declfile="069_link_variadic_template.cpp" declline="50" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="50" column="6" declfile="069_link_variadic_template.cpp" declline="50" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -107,7 +107,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="55" column="1" declfile="069_link_variadic_template.cpp" declline="55" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="55" column="6" declfile="069_link_variadic_template.cpp" declline="55" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1aed64c596fea5f4f5e719006539922f7c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -136,7 +136,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="60" column="1" declfile="069_link_variadic_template.cpp" declline="60" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="60" column="6" declfile="069_link_variadic_template.cpp" declline="60" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1a0ad18d95a1dc2dbacee657c43f719187" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -165,7 +165,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="65" column="1" declfile="069_link_variadic_template.cpp" declline="65" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="65" column="6" declfile="069_link_variadic_template.cpp" declline="65" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1a2331eedd0a1db9da5de0ad0faef78a4e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -194,7 +194,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="70" column="1" declfile="069_link_variadic_template.cpp" declline="70" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="70" column="6" declfile="069_link_variadic_template.cpp" declline="70" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1a72bd94e61df947347f98a2a6214e9342" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -223,7 +223,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="75" column="1" declfile="069_link_variadic_template.cpp" declline="75" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="75" column="6" declfile="069_link_variadic_template.cpp" declline="75" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1a0bd03c39aa36ae51d2b8d87e04cf7eab" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -252,7 +252,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="80" column="1" declfile="069_link_variadic_template.cpp" declline="80" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="80" column="6" declfile="069_link_variadic_template.cpp" declline="80" declcolumn="6"/> </memberdef> <memberdef kind="function" id="069__link__variadic__template_8cpp_1abb1e0338f72ae46a1240ada65d6a397c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -281,7 +281,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="069_link_variadic_template.cpp" line="85" column="1" declfile="069_link_variadic_template.cpp" declline="85" declcolumn="1"/> + <location file="069_link_variadic_template.cpp" line="85" column="6" declfile="069_link_variadic_template.cpp" declline="85" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/070/070__ref__variadic__template_8cpp.xml b/testing/070/070__ref__variadic__template_8cpp.xml index 54d385b..cebe079 100644 --- a/testing/070/070__ref__variadic__template_8cpp.xml +++ b/testing/070/070__ref__variadic__template_8cpp.xml @@ -20,7 +20,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="40" column="1" declfile="070_ref_variadic_template.cpp" declline="40" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="40" column="6" declfile="070_ref_variadic_template.cpp" declline="40" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1aa7e4936a17759246bce60256cf224e16" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -49,7 +49,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="45" column="1" declfile="070_ref_variadic_template.cpp" declline="45" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="45" column="6" declfile="070_ref_variadic_template.cpp" declline="45" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1ad6fc2d2a6cb8980f3e0eaacbd2ae41fe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -78,7 +78,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="50" column="1" declfile="070_ref_variadic_template.cpp" declline="50" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="50" column="6" declfile="070_ref_variadic_template.cpp" declline="50" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -107,7 +107,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="55" column="1" declfile="070_ref_variadic_template.cpp" declline="55" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="55" column="6" declfile="070_ref_variadic_template.cpp" declline="55" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1aed64c596fea5f4f5e719006539922f7c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -136,7 +136,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="60" column="1" declfile="070_ref_variadic_template.cpp" declline="60" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="60" column="6" declfile="070_ref_variadic_template.cpp" declline="60" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1a0ad18d95a1dc2dbacee657c43f719187" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -165,7 +165,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="65" column="1" declfile="070_ref_variadic_template.cpp" declline="65" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="65" column="6" declfile="070_ref_variadic_template.cpp" declline="65" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1a2331eedd0a1db9da5de0ad0faef78a4e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -194,7 +194,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="70" column="1" declfile="070_ref_variadic_template.cpp" declline="70" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="70" column="6" declfile="070_ref_variadic_template.cpp" declline="70" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1a72bd94e61df947347f98a2a6214e9342" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -223,7 +223,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="75" column="1" declfile="070_ref_variadic_template.cpp" declline="75" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="75" column="6" declfile="070_ref_variadic_template.cpp" declline="75" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1a0bd03c39aa36ae51d2b8d87e04cf7eab" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -252,7 +252,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="80" column="1" declfile="070_ref_variadic_template.cpp" declline="80" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="80" column="6" declfile="070_ref_variadic_template.cpp" declline="80" declcolumn="6"/> </memberdef> <memberdef kind="function" id="070__ref__variadic__template_8cpp_1abb1e0338f72ae46a1240ada65d6a397c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <templateparamlist> @@ -281,7 +281,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="070_ref_variadic_template.cpp" line="85" column="1" declfile="070_ref_variadic_template.cpp" declline="85" declcolumn="1"/> + <location file="070_ref_variadic_template.cpp" line="85" column="6" declfile="070_ref_variadic_template.cpp" declline="85" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/071/namespace_a_namespace_1_1_0D0.xml b/testing/071/namespace_a_namespace_1_1_0D0.xml index 76483ca..6e42714 100644 --- a/testing/071/namespace_a_namespace_1_1_0D0.xml +++ b/testing/071/namespace_a_namespace_1_1_0D0.xml @@ -2,7 +2,7 @@ <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> <compounddef id="namespace_a_namespace_1_1_0D0" kind="namespace" language="C++"> <compoundname>ANamespace::@0</compoundname> - <sectiondef kind="enum"> + <sectiondef kind="enum"> <memberdef kind="enum" id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45d" prot="public" static="no" strong="yes"> <type/> <name>Boolean</name> @@ -33,13 +33,13 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="071_enum_in_anon_ns.cpp" line="6" column="1" bodyfile="071_enum_in_anon_ns.cpp" bodystart="6" bodyend="10"/> + <location file="071_enum_in_anon_ns.cpp" line="6" column="19" bodyfile="071_enum_in_anon_ns.cpp" bodystart="6" bodyend="10"/> </memberdef> - </sectiondef> + </sectiondef> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> - <location file="071_enum_in_anon_ns.cpp" line="4" column="1"/> + <location file="071_enum_in_anon_ns.cpp" line="4" column="30"/> </compounddef> </doxygen> diff --git a/testing/072/072__using_8cpp.xml b/testing/072/072__using_8cpp.xml index e368966..784bb67 100644 --- a/testing/072/072__using_8cpp.xml +++ b/testing/072/072__using_8cpp.xml @@ -20,7 +20,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="072_using.cpp" line="7" column="1" bodyfile="072_using.cpp" bodystart="7" bodyend="-1"/> + <location file="072_using.cpp" line="7" column="12" bodyfile="072_using.cpp" bodystart="7" bodyend="-1"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/073/073__typed__enum_8cpp.xml b/testing/073/073__typed__enum_8cpp.xml index 9dda417..b0b2014 100644 --- a/testing/073/073__typed__enum_8cpp.xml +++ b/testing/073/073__typed__enum_8cpp.xml @@ -13,7 +13,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="073_typed_enum.cpp" line="7" column="1" bodyfile="073_typed_enum.cpp" bodystart="7" bodyend="7"/> + <location file="073_typed_enum.cpp" line="7" column="13" bodyfile="073_typed_enum.cpp" bodystart="7" bodyend="7"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/074/namespacens.xml b/testing/074/namespacens.xml index db46c7d..0ee93fc 100644 --- a/testing/074/namespacens.xml +++ b/testing/074/namespacens.xml @@ -18,7 +18,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="67" column="1" declfile="074_ref.cpp" declline="67" declcolumn="1"/> + <location file="074_ref.cpp" line="67" column="5" declfile="074_ref.cpp" declline="67" declcolumn="5"/> </memberdef> <memberdef kind="function" id="namespacens_1a47f70e51e66b81b8383a4e2da66f1e09" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>int</type> @@ -35,7 +35,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="70" column="1" declfile="074_ref.cpp" declline="70" declcolumn="1"/> + <location file="074_ref.cpp" line="70" column="5" declfile="074_ref.cpp" declline="70" declcolumn="5"/> </memberdef> <memberdef kind="function" id="namespacens_1aaa9eb8a7b40d4ed0edbe5e163b4e6e8d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -52,7 +52,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="73" column="1" declfile="074_ref.cpp" declline="73" declcolumn="1"/> + <location file="074_ref.cpp" line="73" column="6" declfile="074_ref.cpp" declline="73" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> @@ -76,6 +76,6 @@ </itemizedlist> </para> </detaileddescription> - <location file="074_ref.cpp" line="64" column="1"/> + <location file="074_ref.cpp" line="64" column="12"/> </compounddef> </doxygen> diff --git a/testing/074/struct_foo.xml b/testing/074/struct_foo.xml index e031314..bf9c426 100644 --- a/testing/074/struct_foo.xml +++ b/testing/074/struct_foo.xml @@ -15,7 +15,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="21" column="1"/> + <location file="074_ref.cpp" line="21" column="3"/> </memberdef> <memberdef kind="function" id="struct_foo_1a279debd94d894223fa8468933e2d6188" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type><ref refid="struct_foo" kindref="compound">Foo</ref> &</type> @@ -33,7 +33,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="32" column="1"/> + <location file="074_ref.cpp" line="32" column="3"/> </memberdef> <memberdef kind="function" id="struct_foo_1a48bcc3de9b2f1ad09a3518a0c9f0da61" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type>const <ref refid="struct_foo" kindref="compound">Foo</ref> &</type> @@ -51,7 +51,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="35" column="1"/> + <location file="074_ref.cpp" line="35" column="9"/> </memberdef> <memberdef kind="function" id="struct_foo_1a3a41dcf8c53f777d50676ea28400a640" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>int</type> @@ -69,7 +69,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="38" column="1"/> + <location file="074_ref.cpp" line="38" column="7"/> </memberdef> <memberdef kind="function" id="struct_foo_1ae3c9c1f33cdb8b932c6eb104660a262b" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type>int</type> @@ -87,7 +87,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="41" column="1"/> + <location file="074_ref.cpp" line="41" column="7"/> </memberdef> <memberdef kind="function" id="struct_foo_1aa20bd44b1bb87a652ac65170ddfa1a5a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type><ref refid="struct_foo" kindref="compound">Foo</ref> &</type> @@ -105,7 +105,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="44" column="1"/> + <location file="074_ref.cpp" line="44" column="7"/> </memberdef> <memberdef kind="function" id="struct_foo_1ab1a2a53ad5b2a0f97422630330c151fe" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type>const <ref refid="struct_foo" kindref="compound">Foo</ref> &</type> @@ -123,7 +123,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="47" column="1"/> + <location file="074_ref.cpp" line="47" column="13"/> </memberdef> <memberdef kind="function" id="struct_foo_1a0514e1f5b30cbf77e1c39d7aba308656" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>int *</type> @@ -141,7 +141,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="50" column="1"/> + <location file="074_ref.cpp" line="50" column="7"/> </memberdef> <memberdef kind="function" id="struct_foo_1a978acd73e910ce56cc169ebec8736669" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual"> <type> @@ -157,7 +157,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="53" column="1"/> + <location file="074_ref.cpp" line="53" column="7"/> </memberdef> </sectiondef> <sectiondef kind="public-static-func"> @@ -206,7 +206,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="074_ref.cpp" line="29" column="1"/> + <location file="074_ref.cpp" line="29" column="14"/> </memberdef> </sectiondef> <briefdescription> @@ -243,7 +243,7 @@ </simplesect> </para> </detaileddescription> - <location file="074_ref.cpp" line="19" column="1" bodyfile="074_ref.cpp" bodystart="19" bodyend="54"/> + <location file="074_ref.cpp" line="19" column="10" bodyfile="074_ref.cpp" bodystart="19" bodyend="54"/> <listofallmembers> <member refid="struct_foo_1a5c036d1b3561a0e1beffe8c6799a4276" prot="public" virt="non-virtual"> <scope>Foo</scope> diff --git a/testing/075/struct_foo.xml b/testing/075/struct_foo.xml index eca791b..53ed0a8 100644 --- a/testing/075/struct_foo.xml +++ b/testing/075/struct_foo.xml @@ -19,7 +19,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="075_argmatch.cpp" line="5" column="1" bodyfile="075_argmatch.cpp" bodystart="14" bodyend="14"/> + <location file="075_argmatch.cpp" line="5" column="10" bodyfile="075_argmatch.cpp" bodystart="14" bodyend="14"/> </memberdef> <memberdef kind="function" id="struct_foo_1a3b1460a8784e5cc8156899a04df08b94" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -37,7 +37,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="075_argmatch.cpp" line="6" column="1" bodyfile="075_argmatch.cpp" bodystart="17" bodyend="17"/> + <location file="075_argmatch.cpp" line="6" column="10" bodyfile="075_argmatch.cpp" bodystart="17" bodyend="17"/> </memberdef> <memberdef kind="function" id="struct_foo_1a87f5be128245c4a16b25500fe6ae2fd1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -54,7 +54,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="075_argmatch.cpp" line="7" column="1" bodyfile="075_argmatch.cpp" bodystart="20" bodyend="20"/> + <location file="075_argmatch.cpp" line="7" column="10" bodyfile="075_argmatch.cpp" bodystart="20" bodyend="20"/> </memberdef> <memberdef kind="function" id="struct_foo_1adc1cd4494f8a556d5bf6cb78409e3e68" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -71,7 +71,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="075_argmatch.cpp" line="8" column="1" bodyfile="075_argmatch.cpp" bodystart="23" bodyend="23"/> + <location file="075_argmatch.cpp" line="8" column="10" bodyfile="075_argmatch.cpp" bodystart="23" bodyend="23"/> </memberdef> <memberdef kind="function" id="struct_foo_1a0baba36cdd24740c6e39d5641e30a0fe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -88,7 +88,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="075_argmatch.cpp" line="9" column="1" bodyfile="075_argmatch.cpp" bodystart="26" bodyend="26"/> + <location file="075_argmatch.cpp" line="9" column="10" bodyfile="075_argmatch.cpp" bodystart="26" bodyend="26"/> </memberdef> <memberdef kind="function" id="struct_foo_1abeaaeb54ad61db26205c06927968845f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -109,7 +109,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="075_argmatch.cpp" line="10" column="1"/> + <location file="075_argmatch.cpp" line="10" column="10"/> </memberdef> </sectiondef> <briefdescription> @@ -117,7 +117,7 @@ </briefdescription> <detaileddescription> </detaileddescription> - <location file="075_argmatch.cpp" line="4" column="1" bodyfile="075_argmatch.cpp" bodystart="4" bodyend="11"/> + <location file="075_argmatch.cpp" line="4" column="10" bodyfile="075_argmatch.cpp" bodystart="4" bodyend="11"/> <listofallmembers> <member refid="struct_foo_1a4f9767677227174b2a9684b92e36cba7" prot="public" virt="non-virtual"> <scope>Foo</scope> diff --git a/testing/078/078__xml__namespace__members__in__file__scope_8h.xml b/testing/078/078__xml__namespace__members__in__file__scope_8h.xml index 728054f..1198549 100644 --- a/testing/078/078__xml__namespace__members__in__file__scope_8h.xml +++ b/testing/078/078__xml__namespace__members__in__file__scope_8h.xml @@ -14,7 +14,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="078_xml_namespace_members_in_file_scope.h" line="15" column="1" bodyfile="078_xml_namespace_members_in_file_scope.h" bodystart="15" bodyend="15"/> + <location file="078_xml_namespace_members_in_file_scope.h" line="15" column="16" bodyfile="078_xml_namespace_members_in_file_scope.h" bodystart="15" bodyend="15"/> </memberdef> </sectiondef> <sectiondef kind="func"> @@ -31,7 +31,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="078_xml_namespace_members_in_file_scope.h" line="12" column="1" declfile="078_xml_namespace_members_in_file_scope.h" declline="12" declcolumn="1"/> + <location file="078_xml_namespace_members_in_file_scope.h" line="12" column="6" declfile="078_xml_namespace_members_in_file_scope.h" declline="12" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/079/empty.xml b/testing/079/empty.xml index 3e1d691..83e7c99 100644 --- a/testing/079/empty.xml +++ b/testing/079/empty.xml @@ -6,7 +6,7 @@ <briefdescription> </briefdescription> <detaileddescription> -<para>With an empty TOC. </para> + <para>With an empty TOC. </para> </detaileddescription> </compounddef> </doxygen> diff --git a/testing/080/class_interface.xml b/testing/080/class_interface.xml index 06e0bb5..2ee4379 100644 --- a/testing/080/class_interface.xml +++ b/testing/080/class_interface.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="080_extract_private_virtual.cpp" line="13" column="1"/> + <location file="080_extract_private_virtual.cpp" line="13" column="10"/> </memberdef> </sectiondef> <sectiondef kind="private-func"> @@ -33,7 +33,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="080_extract_private_virtual.cpp" line="21" column="1"/> + <location file="080_extract_private_virtual.cpp" line="21" column="18"/> </memberdef> <memberdef kind="function" id="class_interface_1ad13fffb1181ab0da1f8fbb586eff9afe" prot="private" static="no" const="no" explicit="no" inline="no" virt="virtual"> <type>void</type> @@ -48,7 +48,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="080_extract_private_virtual.cpp" line="28" column="1"/> + <location file="080_extract_private_virtual.cpp" line="28" column="18"/> </memberdef> <memberdef kind="function" id="class_interface_1a46062977049a7c2c2c141e4487e954b8" prot="private" static="no" const="no" explicit="no" inline="no" virt="virtual"> <type>void</type> @@ -61,7 +61,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="080_extract_private_virtual.cpp" line="31" column="1"/> + <location file="080_extract_private_virtual.cpp" line="31" column="18"/> </memberdef> <memberdef kind="function" id="class_interface_1a108dce1debd0596b57e7985bbb0f63a1" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -75,7 +75,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="080_extract_private_virtual.cpp" line="34" column="1"/> + <location file="080_extract_private_virtual.cpp" line="34" column="10"/> </memberdef> </sectiondef> <briefdescription> @@ -83,7 +83,7 @@ </briefdescription> <detaileddescription> </detaileddescription> - <location file="080_extract_private_virtual.cpp" line="6" column="1" bodyfile="080_extract_private_virtual.cpp" bodystart="6" bodyend="35"/> + <location file="080_extract_private_virtual.cpp" line="6" column="16" bodyfile="080_extract_private_virtual.cpp" bodystart="6" bodyend="35"/> <listofallmembers> <member refid="class_interface_1a328e0a16ccee5d796ca93801a055d27d" prot="private" virt="pure-virtual"> <scope>Interface</scope> diff --git a/testing/081/081__brief__lists_8h.xml b/testing/081/081__brief__lists_8h.xml index 19dfe79..3f6052e 100644 --- a/testing/081/081__brief__lists_8h.xml +++ b/testing/081/081__brief__lists_8h.xml @@ -28,7 +28,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="081_brief_lists.h" line="8" column="1" declfile="081_brief_lists.h" declline="8" declcolumn="1"/> + <location file="081_brief_lists.h" line="8" column="6" declfile="081_brief_lists.h" declline="8" declcolumn="6"/> </memberdef> <memberdef kind="function" id="081__brief__lists_8h_1a6724979ae3655ed6eb8b377337119d94" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -55,7 +55,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="081_brief_lists.h" line="13" column="1" declfile="081_brief_lists.h" declline="13" declcolumn="1"/> + <location file="081_brief_lists.h" line="13" column="6" declfile="081_brief_lists.h" declline="13" declcolumn="6"/> </memberdef> <memberdef kind="function" id="081__brief__lists_8h_1a32cca553d19c1f483a6c308000517353" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -82,7 +82,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="081_brief_lists.h" line="18" column="1" declfile="081_brief_lists.h" declline="18" declcolumn="1"/> + <location file="081_brief_lists.h" line="18" column="6" declfile="081_brief_lists.h" declline="18" declcolumn="6"/> </memberdef> <memberdef kind="function" id="081__brief__lists_8h_1a350caf1b2bbbbb18b9b4f08bb799f86b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> @@ -109,7 +109,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="081_brief_lists.h" line="23" column="1" declfile="081_brief_lists.h" declline="23" declcolumn="1"/> + <location file="081_brief_lists.h" line="23" column="6" declfile="081_brief_lists.h" declline="23" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/082/namespace_n.xml b/testing/082/namespace_n.xml index f69081d..9f39bd1 100644 --- a/testing/082/namespace_n.xml +++ b/testing/082/namespace_n.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="082_decl_def.cpp" line="11" column="1" bodyfile="082_decl_def.cpp" bodystart="11" bodyend="-1" declfile="decl_def.h" declline="5" declcolumn="1"/> + <location file="082_decl_def.cpp" line="11" column="5" bodyfile="082_decl_def.cpp" bodystart="11" bodyend="-1" declfile="decl_def.h" declline="5" declcolumn="12"/> </memberdef> </sectiondef> <sectiondef kind="func"> @@ -37,7 +37,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="082_decl_def.cpp" line="14" column="1" bodyfile="082_decl_def.cpp" bodystart="14" bodyend="16" declfile="decl_def.h" declline="8" declcolumn="1"/> + <location file="082_decl_def.cpp" line="14" column="6" bodyfile="082_decl_def.cpp" bodystart="14" bodyend="16" declfile="decl_def.h" declline="8" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/083/namespace_n.xml b/testing/083/namespace_n.xml index 6adedaf..2b41072 100644 --- a/testing/083/namespace_n.xml +++ b/testing/083/namespace_n.xml @@ -16,7 +16,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="083_decl_def.cpp" line="11" column="1" bodyfile="083_decl_def.cpp" bodystart="11" bodyend="-1" declfile="decl_def.h" declline="5" declcolumn="1"/> + <location file="083_decl_def.cpp" line="11" column="5" bodyfile="083_decl_def.cpp" bodystart="11" bodyend="-1" declfile="decl_def.h" declline="5" declcolumn="12"/> </memberdef> </sectiondef> <sectiondef kind="func"> @@ -37,7 +37,7 @@ </detaileddescription> <inbodydescription> </inbodydescription> - <location file="083_decl_def.cpp" line="14" column="1" bodyfile="083_decl_def.cpp" bodystart="14" bodyend="16" declfile="decl_def.h" declline="8" declcolumn="1"/> + <location file="083_decl_def.cpp" line="14" column="6" bodyfile="083_decl_def.cpp" bodystart="14" bodyend="16" declfile="decl_def.h" declline="8" declcolumn="6"/> </memberdef> </sectiondef> <briefdescription> diff --git a/testing/084/084__markdown__pre_8f90.xml b/testing/084/084__markdown__pre_8f90.xml index 8a59bd9..62fec7d 100755..100644 --- a/testing/084/084__markdown__pre_8f90.xml +++ b/testing/084/084__markdown__pre_8f90.xml @@ -1,51 +1,51 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
- <compounddef id="084__markdown__pre_8f90" kind="file" language="Fortran">
- <compoundname>084_markdown_pre.f90</compoundname>
- <sectiondef kind="func">
- <memberdef kind="function" id="084__markdown__pre_8f90_1aae79d7941f2dce9b2d61fc852f3031d1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
- <type>subroutine</type>
- <definition>subroutine subr1</definition>
- <argsstring>()</argsstring>
- <name>subr1</name>
- <briefdescription>
- <para>subr1 </para>
- </briefdescription>
- <detaileddescription>
- <para>
- <preformatted>
- ___________________________
-</preformatted>
- </para>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="084_markdown_pre.f90" line="9" column="1" bodyfile="084_markdown_pre.f90" bodystart="10" bodyend="9"/>
- </memberdef>
- <memberdef kind="function" id="084__markdown__pre_8f90_1a799d06e535f6b6e83331907261cef116" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
- <type>subroutine</type>
- <definition>subroutine subr2</definition>
- <argsstring>()</argsstring>
- <name>subr2</name>
- <briefdescription>
- <para>subr2 </para>
- </briefdescription>
- <detaileddescription>
- <para>
- <preformatted>
- ___________________________
-</preformatted>
- </para>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="084_markdown_pre.f90" line="17" column="1" bodyfile="084_markdown_pre.f90" bodystart="18" bodyend="17"/>
- </memberdef>
- </sectiondef>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="084_markdown_pre.f90"/>
- </compounddef>
-</doxygen>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="084__markdown__pre_8f90" kind="file" language="Fortran"> + <compoundname>084_markdown_pre.f90</compoundname> + <sectiondef kind="func"> + <memberdef kind="function" id="084__markdown__pre_8f90_1aae79d7941f2dce9b2d61fc852f3031d1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> + <type>subroutine</type> + <definition>subroutine subr1</definition> + <argsstring>()</argsstring> + <name>subr1</name> + <briefdescription> + <para>subr1 </para> + </briefdescription> + <detaileddescription> + <para> + <preformatted> + ___________________________ +</preformatted> + </para> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="084_markdown_pre.f90" line="9" column="1" bodyfile="084_markdown_pre.f90" bodystart="10" bodyend="9"/> + </memberdef> + <memberdef kind="function" id="084__markdown__pre_8f90_1a799d06e535f6b6e83331907261cef116" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> + <type>subroutine</type> + <definition>subroutine subr2</definition> + <argsstring>()</argsstring> + <name>subr2</name> + <briefdescription> + <para>subr2 </para> + </briefdescription> + <detaileddescription> + <para> + <preformatted> + ___________________________ +</preformatted> + </para> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="084_markdown_pre.f90" line="17" column="1" bodyfile="084_markdown_pre.f90" bodystart="18" bodyend="17"/> + </memberdef> + </sectiondef> + <briefdescription> + </briefdescription> + <detaileddescription> + </detaileddescription> + <location file="084_markdown_pre.f90"/> + </compounddef> +</doxygen> diff --git a/testing/085/085__tooltip_8cpp.xml b/testing/085/085__tooltip_8cpp.xml index d9eaf8b..f9859d9 100755..100644 --- a/testing/085/085__tooltip_8cpp.xml +++ b/testing/085/085__tooltip_8cpp.xml @@ -1,66 +1,66 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="">
- <compounddef id="085__tooltip_8cpp" kind="file" language="C++">
- <compoundname>085_tooltip.cpp</compoundname>
- <sectiondef kind="define">
- <memberdef kind="define" id="085__tooltip_8cpp_1ace0cca79d3f7e7c96b6edcb1b8d31e66" prot="public" static="no">
- <name>FOPEN_MACRO</name>
- <param>
- <defname>fn</defname>
- </param>
- <param>
- <defname>mod</defname>
- </param>
- <initializer>if ((<ref refid="085__tooltip_8cpp_1a5cccf7694b5d688466063895f39ee5d1" kindref="member">unit</ref> = fopen(fn, mod)) == NULL) \
- { \
- msg(OPEN_ERR,strerror(errno)); \
- }</initializer>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- <para>a general open macro </para>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="085_tooltip.cpp" line="11" column="9" bodyfile="085_tooltip.cpp" bodystart="11" bodyend="-1"/>
- </memberdef>
- <memberdef kind="define" id="085__tooltip_8cpp_1a11a2c0486e2bbd915f975a3517817de6" prot="public" static="no">
- <name>FCLOSE_MACRO</name>
- <initializer>if (fclose(<ref refid="085__tooltip_8cpp_1a5cccf7694b5d688466063895f39ee5d1" kindref="member">unit</ref>) != 0) \
- { \
- msg(CLOSE_ERR,strerror(errno)); \
- }</initializer>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- <para>a general close macro </para>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="085_tooltip.cpp" line="18" column="9" bodyfile="085_tooltip.cpp" bodystart="18" bodyend="-1"/>
- </memberdef>
- </sectiondef>
- <sectiondef kind="var">
- <memberdef kind="variable" id="085__tooltip_8cpp_1a5cccf7694b5d688466063895f39ee5d1" prot="public" static="no" mutable="no">
- <type>FILE *</type>
- <definition>FILE* unit</definition>
- <argsstring/>
- <name>unit</name>
- <initializer>= NULL</initializer>
- <briefdescription>
- <para>the unit </para>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <inbodydescription>
- </inbodydescription>
- <location file="085_tooltip.cpp" line="8" column="1" bodyfile="085_tooltip.cpp" bodystart="8" bodyend="-1"/>
- </memberdef>
- </sectiondef>
- <briefdescription>
- </briefdescription>
- <detaileddescription>
- </detaileddescription>
- <location file="085_tooltip.cpp"/>
- </compounddef>
-</doxygen>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="085__tooltip_8cpp" kind="file" language="C++"> + <compoundname>085_tooltip.cpp</compoundname> + <sectiondef kind="define"> + <memberdef kind="define" id="085__tooltip_8cpp_1ace0cca79d3f7e7c96b6edcb1b8d31e66" prot="public" static="no"> + <name>FOPEN_MACRO</name> + <param> + <defname>fn</defname> + </param> + <param> + <defname>mod</defname> + </param> + <initializer>if ((<ref refid="085__tooltip_8cpp_1a5cccf7694b5d688466063895f39ee5d1" kindref="member">unit</ref> = fopen(fn, mod)) == NULL) \ + { \ + msg(OPEN_ERR,strerror(errno)); \ + }</initializer> + <briefdescription> + </briefdescription> + <detaileddescription> + <para>a general open macro </para> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="085_tooltip.cpp" line="11" column="9" bodyfile="085_tooltip.cpp" bodystart="11" bodyend="-1"/> + </memberdef> + <memberdef kind="define" id="085__tooltip_8cpp_1a11a2c0486e2bbd915f975a3517817de6" prot="public" static="no"> + <name>FCLOSE_MACRO</name> + <initializer>if (fclose(<ref refid="085__tooltip_8cpp_1a5cccf7694b5d688466063895f39ee5d1" kindref="member">unit</ref>) != 0) \ + { \ + msg(CLOSE_ERR,strerror(errno)); \ + }</initializer> + <briefdescription> + </briefdescription> + <detaileddescription> + <para>a general close macro </para> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="085_tooltip.cpp" line="18" column="9" bodyfile="085_tooltip.cpp" bodystart="18" bodyend="-1"/> + </memberdef> + </sectiondef> + <sectiondef kind="var"> + <memberdef kind="variable" id="085__tooltip_8cpp_1a5cccf7694b5d688466063895f39ee5d1" prot="public" static="no" mutable="no"> + <type>FILE *</type> + <definition>FILE* unit</definition> + <argsstring/> + <name>unit</name> + <initializer>= NULL</initializer> + <briefdescription> + <para>the unit </para> + </briefdescription> + <detaileddescription> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="085_tooltip.cpp" line="8" column="6" bodyfile="085_tooltip.cpp" bodystart="8" bodyend="-1"/> + </memberdef> + </sectiondef> + <briefdescription> + </briefdescription> + <detaileddescription> + </detaileddescription> + <location file="085_tooltip.cpp"/> + </compounddef> +</doxygen> diff --git a/testing/dtd/xhtml1-transitional.dtd b/testing/dtd/xhtml1-transitional.dtd index 4ac1571..764c41a 100755 --- a/testing/dtd/xhtml1-transitional.dtd +++ b/testing/dtd/xhtml1-transitional.dtd @@ -30,10 +30,6 @@ <!ATTLIST script added async (async) #IMPLIED - - in - <!ATTLIST a - added - doxygen %URI; #IMPLIED --> <!--================ Character mnemonic entities =========================--> @@ -650,7 +646,6 @@ <!--================== The Anchor Element ================================--> <!-- content is %Inline; except that anchors shouldn't be nested --> -<!-- added for doxygen: doxygen %URI; #IMPLIED --> <!ELEMENT a %a.content;> <!ATTLIST a @@ -659,7 +654,6 @@ charset %Charset; #IMPLIED type %ContentType; #IMPLIED name NMTOKEN #IMPLIED - doxygen %URI; #IMPLIED href %URI; #IMPLIED hreflang %LanguageCode; #IMPLIED rel %LinkTypes; #IMPLIED |