/* Generated by Nim Compiler v1.4.2 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

/* section: NIM_merge_HEADERS */

#include "nimbase.h"
#include <string.h>
#include <dirent.h>
#include <setjmp.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg;
typedef struct RootObj RootObj;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tySequence__b7kA8pLABz0wMAUNGYo6Wg tySequence__b7kA8pLABz0wMAUNGYo6Wg;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ;
typedef struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og tySequence__pUxI6Ljo6IKKHXKOZkQ7Og;
typedef struct tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw;
typedef struct tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg;
typedef struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A tyTuple__JfHvHzMrhKkWAUvQKe0i1A;
typedef struct tyObject_Env_rstgendotnim_RstGenerator___diB2NTuAIWY0FO9c5IUJRGg tyObject_Env_rstgendotnim_RstGenerator___diB2NTuAIWY0FO9c5IUJRGg;
typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ tySequence__xv3aaFd3JCw8NbmALHiezQ;
typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tySequence__sawZST1Esj3o7EY9ayWwGPw tySequence__sawZST1Esj3o7EY9ayWwGPw;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tyObject_GeneralTokenizer__XJrmQSLLjVmugZQb54lVWA tyObject_GeneralTokenizer__XJrmQSLLjVmugZQb54lVWA;
typedef struct tyTuple__19af1Yi5wzYJHEoosvtCJdQ tyTuple__19af1Yi5wzYJHEoosvtCJdQ;
typedef struct tySequence__wAC0kXbVGkLoWP8vdi0sUw tySequence__wAC0kXbVGkLoWP8vdi0sUw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__5PunAJrNQYcB8dF0jau3pQ tySequence__5PunAJrNQYcB8dF0jau3pQ;
typedef struct tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg;
typedef struct tyObject_Table__XC01wkRgzAyOjTiapde7hQ tyObject_Table__XC01wkRgzAyOjTiapde7hQ;
typedef struct Exception Exception;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct TSafePoint TSafePoint;
typedef struct tyTuple__A9cRoiotm9actU8lLMnN9bYcw tyTuple__A9cRoiotm9actU8lLMnN9bYcw;
typedef struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ;
typedef struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA tyTuple__sPaDkVPSC0MkcoXCxPH9ccA;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;

/* section: NIM_merge_TYPES */
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct RootObj {
TNimType* m_type;
};
typedef NU8 tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tySet_tyEnum_RstParseOption__fiZmsylYkyh6nEciRZcPsw;
typedef struct {
N_NIMCALL_PTR(NimStringDesc*, ClP_0) (NimStringDesc* filename, void* ClE_0);
void* ClE_0;
} tyProc__oFHfEKFsiYTMAy9a42cSiKw;
typedef NU8 tyEnum_MsgKind__iviJnHlj9acPYlnNRbd9bhkQ;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* filename, NI line, NI col, tyEnum_MsgKind__iviJnHlj9acPYlnNRbd9bhkQ msgKind, NimStringDesc* arg, void* ClE_0);
void* ClE_0;
} tyProc__BnbLegyGxTOhIgncw6Jqfg;
typedef NimStringDesc* tyArray__C9cQfUOxfT2Mk6yT19cPu9aIA[5];
struct tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ {
tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, NimStringDesc* filename, NimStringDesc* cmd, NI status, NimStringDesc* content, void* ClE_0);
void* ClE_0;
} tyProc__XtNNqpdSSaHFEnbiw4OQrw;
struct tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg {
  RootObj Sup;
tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* config;
NI splitAfter;
NI listingCounter;
tySequence__b7kA8pLABz0wMAUNGYo6Wg* tocPart;
NIM_BOOL hasToc;
NimStringDesc* theIndex;
tySet_tyEnum_RstParseOption__fiZmsylYkyh6nEciRZcPsw options;
tyProc__oFHfEKFsiYTMAy9a42cSiKw findFile;
tyProc__BnbLegyGxTOhIgncw6Jqfg msgHandler;
NimStringDesc* outDir;
NimStringDesc* destFile;
NimStringDesc* filename;
tyArray__C9cQfUOxfT2Mk6yT19cPu9aIA meta;
NimStringDesc* currentSection;
tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ seenIndexTerms;
NI id;
tyProc__XtNNqpdSSaHFEnbiw4OQrw onTestSnippet;
};
struct tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw {
tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n;
NimStringDesc* refname;
NimStringDesc* header;
};
struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A {
void* Field0;
tyObject_Env_rstgendotnim_RstGenerator___diB2NTuAIWY0FO9c5IUJRGg* Field1;
};
typedef NU8 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ;
struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg {
  RootObj Sup;
NI counter;
tySequence__xv3aaFd3JCw8NbmALHiezQ* data;
tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ mode;
};
struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
typedef NU8 tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg;
typedef NU8 tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg;
struct tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg {
tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg kind;
NimStringDesc* text;
NI level;
tySequence__sawZST1Esj3o7EY9ayWwGPw* sons;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef NimStringDesc* tyArray__sMpvt1sOxOJ3LFGulnbeMQ[4];
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef NU8 tyEnum_SourceLanguage__LpbEPkKqvJ0VCa4hwZcOBQ;
struct tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA {
NIM_BOOL numberLines;
NI startLine;
NimStringDesc* langStr;
tyEnum_SourceLanguage__LpbEPkKqvJ0VCa4hwZcOBQ lang;
NimStringDesc* filename;
NimStringDesc* testCmd;
NI status;
};
typedef N_CLOSURE_PTR(void, TM__vGSJrCjWQr859bqRvctRIaA_132) (NimStringDesc* filename, NI line, NI col, tyEnum_MsgKind__iviJnHlj9acPYlnNRbd9bhkQ msgKind, NimStringDesc* arg);
typedef N_CLOSURE_PTR(void, TM__vGSJrCjWQr859bqRvctRIaA_134) (tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, NimStringDesc* filename, NimStringDesc* cmd, NI status, NimStringDesc* content);
typedef NimStringDesc* tyArray__CchsCKVbWNDjfQ2XsaO6Aw[7];
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
typedef NimStringDesc* tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
typedef N_CLOSURE_PTR(void, TM__vGSJrCjWQr859bqRvctRIaA_142) (NimStringDesc* filename, NI line, NI col, tyEnum_MsgKind__iviJnHlj9acPYlnNRbd9bhkQ msgKind, NimStringDesc* arg);
typedef NU8 tyEnum_TokenClass__UcAPDGzMlzghdb9c8MB7mEw;
struct tyObject_GeneralTokenizer__XJrmQSLLjVmugZQb54lVWA {
  RootObj Sup;
tyEnum_TokenClass__UcAPDGzMlzghdb9c8MB7mEw kind;
NI start;
NI length;
NCSTRING buf;
NI pos;
tyEnum_TokenClass__UcAPDGzMlzghdb9c8MB7mEw state;
};
typedef NimStringDesc* tyArray__b121gTFK3KCOh1bfQWQzTw[33];
struct tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linkTitle;
NimStringDesc* linkDesc;
};
struct tyObject_Table__XC01wkRgzAyOjTiapde7hQ {
tySequence__wAC0kXbVGkLoWP8vdi0sUw* data;
NI counter;
};
struct tyTuple__19af1Yi5wzYJHEoosvtCJdQ {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* Field0;
tySequence__5PunAJrNQYcB8dF0jau3pQ* Field1;
tyObject_Table__XC01wkRgzAyOjTiapde7hQ Field2;
};
typedef NU8 tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg;
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
};
typedef NIM_CHAR tyArray__dTlC27m9c9aWd5dvuePYanug[256];
typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
typedef tyTuple__UV3llMMYFckfui8YMBuUZA tyArray__0ipey9aZuUA8jy4OAHzODQg[3];
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (NimStringDesc* x, NimStringDesc* y, void* ClE_0);
void* ClE_0;
} tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA;
typedef NU8 tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA;
typedef N_CLOSURE_PTR(NI, TM__vGSJrCjWQr859bqRvctRIaA_182) (NimStringDesc* x, NimStringDesc* y, void* ClE_0);
struct tyTuple__A9cRoiotm9actU8lLMnN9bYcw {
NI Field0;
tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg Field1;
tySequence__5PunAJrNQYcB8dF0jau3pQ* Field2;
};
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* x, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* y, void* ClE_0);
void* ClE_0;
} tyProc__RGoYgsiJtkrXoyibDk6Gzw;
typedef N_CLOSURE_PTR(NI, TM__vGSJrCjWQr859bqRvctRIaA_184) (tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* x, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* y, void* ClE_0);
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ {
NI Field0;
NimStringDesc* Field1;
NI Field2;
};
struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA {
NimStringDesc* Field0;
NimStringDesc* Field1;
NIM_BOOL Field2;
};
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__b7kA8pLABz0wMAUNGYo6Wg {
  TGenericSeq Sup;
  tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw data[SEQ_DECL_SIZE];
};
struct tySequence__sawZST1Esj3o7EY9ayWwGPw {
  TGenericSeq Sup;
  tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__5PunAJrNQYcB8dF0jau3pQ {
  TGenericSeq Sup;
  tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg data[SEQ_DECL_SIZE];
};
struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og {
  TGenericSeq Sup;
  tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ data[SEQ_DECL_SIZE];
};
struct tySequence__xv3aaFd3JCw8NbmALHiezQ {
  TGenericSeq Sup;
  tyTuple__sPaDkVPSC0MkcoXCxPH9ccA data[SEQ_DECL_SIZE];
};
struct tySequence__wAC0kXbVGkLoWP8vdi0sUw {
  TGenericSeq Sup;
  tyTuple__A9cRoiotm9actU8lLMnN9bYcw data[SEQ_DECL_SIZE];
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__b7kA8pLABz0wMAUNGYo6Wg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void, nossplitFile)(NimStringDesc* path, tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* Result);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, initTable__RrWZeIMfwjxuENvIG9aHB8g)(NI initialSize, tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOrDefault__2a0cbxcfpWcXtK45m9bR5Kg)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key, NimStringDesc* default_0);
N_LIB_PRIVATE N_NIMCALL(NI, nsuParseInt)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, renderAux__9bVWgX0SWmhEi3eHlrcMD8g_2)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(NI, len__bM2v46TeKfDIrVkegSIy9ag)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n);
N_LIB_PRIVATE N_NIMCALL(void, renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(void, renderHeadline__9bVWgX0SWmhEi3eHlrcMD8g_3)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rstnodeToRefname__TOPoj9cIRh7GBTY6PKofpTQ)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(void, dispA__3GZ9bx75poGreVGlawa9aBDg)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc** dest, NimStringDesc* xml, NimStringDesc* tex, NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, nsuAddf)(NimStringDesc** s, NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosextractFilename)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosrelativePath)(NimStringDesc* path, NimStringDesc* base, NIM_CHAR sep);
N_LIB_PRIVATE N_NIMCALL(void, setIndexTerm__59a2OAWg9c9azGlf9aSfMJTaLA)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, NimStringDesc* htmlFile, NimStringDesc* id, NimStringDesc* term, NimStringDesc* linkTitle, NimStringDesc* linkDesc);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, quoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag)(NimStringDesc* text);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_LIB_PRIVATE N_NIMCALL(void, insert__bnB13E7BS4dZJaaSQFdX5w)(NimStringDesc** x, NimStringDesc* item, NI i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, stripTocHtml__CG3Pm1f26Xv9bcO1ymY7HaA)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s, NIM_CHAR sub, NI start, NI last);
N_LIB_PRIVATE N_NIMCALL(void, nsuDelete)(NimStringDesc** s, NI first, NI last);
static N_INLINE(NimStringDesc*, spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils)(NI n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NIM_CHAR c, NI count);
N_LIB_PRIVATE N_NIMCALL(void, renderOverline__9bVWgX0SWmhEi3eHlrcMD8g_4)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(void, renderAux__zVlkCIHCkLQV6Nm9a32Dl4w)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc* frmtA, NimStringDesc* frmtB, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(void, renderField__9bVWgX0SWmhEi3eHlrcMD8g_5)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addNodes__TOPoj9cIRh7GBTY6PKofpTQ_2)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, esc__Tgq9c7oEp9c4LGF7SoXGTh8w)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc* s, NI splitAfter);
N_LIB_PRIVATE N_NIMCALL(NI, nextSplitPoint__1bYOTvfWXChm7WZOI8uPdA)(NimStringDesc* s, NI start);
static N_INLINE(void, addSplitter__otpg39cSdGbkUPYMfuoVxQQrstgen)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc** dest);
static N_INLINE(void, escChar__KYm7vXQBjUyQAIV7FSCu5Qrstgen)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc** dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, addXmlChar__jCxR1j9bCE42Z5E9bu9aEL9cEw)(NimStringDesc** dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, addTexChar__jCxR1j9bCE42Z5E9bu9aEL9cEw_2)(NimStringDesc** dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuStrip)(NimStringDesc* s, NIM_BOOL leading, NIM_BOOL trailing, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, texColumns__6tXalH9aB8YkuyupI8riWjQ)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg*, lastSon__0dL43t7uo9b9ast8lG3CHj1A)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n);
N_LIB_PRIVATE N_NIMCALL(void, renderImage__9bVWgX0SWmhEi3eHlrcMD8g_6)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getArgument__TOPoj9cIRh7GBTY6PKofpTQ_3)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getFieldValue__OTgwDdUvek9bw6NECNLDOqA)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc* fieldname);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dispF__UOeJJO8ohrrgldF61bH7dQ)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc* xml, NimStringDesc* tex, NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuEndsWith)(NimStringDesc* s, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(void, renderCodeBlock__9bVWgX0SWmhEi3eHlrcMD8g_7)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(void, parseCodeBlockParams__0UCWvfdZ9avksgBajNgLGBw)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA* Result);
N_LIB_PRIVATE N_NIMCALL(void, init__VTkjfDKDCsSHMUgadSlTfg)(tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA* p);
N_LIB_PRIVATE N_NIMCALL(void, parseCodeBlockField__8mQpi5m1u2R5BPC42lxLuQ)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA* params);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuToLowerAsciiStr)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NI, npuParseInt)(NimStringDesc* s, NI* number, NI start);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getFieldValue__TOPoj9cIRh7GBTY6PKofpTQ_4)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuUnescape)(NimStringDesc* s, NimStringDesc* prefix, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(tyEnum_SourceLanguage__LpbEPkKqvJ0VCa4hwZcOBQ, getSourceLanguage__xS5vGJiqLeFR2EyiTX0IEA)(NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, buildLinesHtmlTable__8VPefF9cpzTz1N4Guin4vxQ)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA* params, NimStringDesc* code, tyTuple__UV3llMMYFckfui8YMBuUZA* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCountLines)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, initGeneralTokenizer__mu4EAfPX69bUQs62cfYLXRA)(tyObject_GeneralTokenizer__XJrmQSLLjVmugZQb54lVWA* g, NimStringDesc* buf);
N_LIB_PRIVATE N_NIMCALL(void, getNextToken__9axtJQpZ5U9aGuyq519c9axprw)(tyObject_GeneralTokenizer__XJrmQSLLjVmugZQb54lVWA* g, tyEnum_SourceLanguage__LpbEPkKqvJ0VCa4hwZcOBQ lang);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__2yh9cer0ymNRHlOOg8P7IuA)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(void, deinitGeneralTokenizer__9a3JlWX9cxQaYCTvq9c0xqGpQ_7)(tyObject_GeneralTokenizer__XJrmQSLLjVmugZQb54lVWA* g);
N_LIB_PRIVATE N_NIMCALL(void, renderContainer__9bVWgX0SWmhEi3eHlrcMD8g_8)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(void, renderIndexTerm__9bVWgX0SWmhEi3eHlrcMD8g_9)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__aOI3jq5GpcZWNc9aNWt3Shw)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___HfxZpUfki4UkuP38hbwROA)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t, NimStringDesc* key, NI val);
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__B9adUqknApMjE6ou13bpO8A)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(void, renderSmiley__9bVWgX0SWmhEi3eHlrcMD8g_10)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s, NimStringDesc* sub, NimStringDesc* by);
N_LIB_PRIVATE N_NIMCALL(void, renderTocEntry__swtKJhB7QpFMqLr9cuEw1JQ)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw e, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(void, renderTocEntries__lXmEBiWEMeUQB9cTe0c6XoQ)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, NI* j, NI lvl, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(void, writeFile__D6Pj9c29aCLEJP9beOWa08HYA)(NimStringDesc* filename, NimStringDesc* content);
N_LIB_PRIVATE N_NIMCALL(void, readIndexDir__tb68DrT6xzF5ZfmNFMFm2Q)(NimStringDesc* dir, tyTuple__19af1Yi5wzYJHEoosvtCJdQ* Result);
N_LIB_PRIVATE N_NIMCALL(void, initTable__I9aPNnheGFL82i9cc5xQlxyA)(NI initialSize, tyObject_Table__XC01wkRgzAyOjTiapde7hQ* Result);
static N_NIMCALL(void, Marker_tySequence__5PunAJrNQYcB8dF0jau3pQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
static N_INLINE(NimStringDesc*, pop__uJq9ayjszaqUcdxv3Rz6G9bQsystem)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___gEyhbzZ1UcxyenWRLJRXNQ)(NimStringDesc* head, NimStringDesc* tail);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__CWyPYlyH9a6rAuZckFyVxPA)(NI32 errorCode, NimStringDesc* additionalInfo);
N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__9bUWNxbcGnToMWA9b79aTXLIw)(void);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosdirExists)(NimStringDesc* dir);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(FILE*, open__cb1k9citqyT9a9brBSJAz8pkg)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__FbqDHP9bu7nqCh9c04dnSOxw)(FILE* f, NimStringDesc** line);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__iGg0RIKceRvsmvq8FUHOEw)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDocumentationTitle__59alvxmcYHb5hQOcj69cvGPQ)(NimStringDesc* hyperlink);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, nsuSplitChar)(NimStringDesc* s, NIM_CHAR sep, NI maxsplit);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, unquoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag_2)(NimStringDesc* text);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, multiReplace__bE9ctzdR0d2caO0lr9a9b8Jng)(NimStringDesc* s, tyTuple__UV3llMMYFckfui8YMBuUZA* replacements, NI replacementsLen_0);
static N_INLINE(void, popSafePoint)(void);
N_LIB_PRIVATE N_NIMCALL(void, close__fU6ZlJAtQ9bre04EDZLdGsA_3)(FILE* f);
N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
N_LIB_PRIVATE N_NIMCALL(NI, len__XkMbL52cqyBSUFesQIX9bTA)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ t);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___7WMJi0xLR1wauzIPHncLMA)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ* t, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* key, tySequence__5PunAJrNQYcB8dF0jau3pQ* val);
static N_INLINE(NI, emarkamp___Bho3MSI0G3qbEZZcjdigaQhashes)(NI h, NI val);
N_LIB_PRIVATE N_NIMCALL(NI, hash__6PCYkKlCNhq9cnRLnqWKkwQ)(NimStringDesc* x);
static N_INLINE(NI, emarkdollar___1VtZEcAzbCzFoJje5ex9aKwhashes)(NI h);
N_LIB_PRIVATE N_NIMCALL(tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg, getSymlinkFileKind__wTnLPNAWjgwVnuiJ9ax0ZGQ)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(void, sort__v7Qa2ifMjpImR01uviBTZg)(NimStringDesc** a, NI aLen_0, tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA cmp, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__NAicU5bAGXmkx2NJujGi7g)(NimStringDesc* x, NimStringDesc* y);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, generateDocumentationJumps__XPDBgoAkOtN37XXG3qoa3w)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ docs);
static N_INLINE(NIM_BOOL, isFilled__5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode);
N_LIB_PRIVATE N_NIMCALL(void, sort__XRcGInRuI9c8vJ3atSUnJRA)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* a, NI aLen_0, tyProc__RGoYgsiJtkrXoyibDk6Gzw cmp, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__cfr1IhGZltviVbdLwYvoIw)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* a, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, generateModuleJumps__l4r77qGmI5lROD0W69bqm9bg)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* modules);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, prettyLink__wqjxtEP9aQIQkUTKzbjpNkQ)(NimStringDesc* file);
N_LIB_PRIVATE N_NIMCALL(void, sortIndex__9a9cA1hoRT9bpo9aO79cDjEtWXA)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(void, ltminus___Ru5aRxpF3DVJvrrEdK89aWg)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* a, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, generateSymbolIndex__5iRfVY0N1Vl19aH6haiuKlQ)(tySequence__5PunAJrNQYcB8dF0jau3pQ* symbols);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, escapeLink__CG3Pm1f26Xv9bcO1ymY7HaA_2)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHex__TwQ1R2wlkmY9ak7KGbc718A)(NI x, NI len);

/* section: NIM_merge_DATA */
extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTI__yF9cB1II0vYb2F0YKmIiArg_;
N_LIB_PRIVATE TNimType NTI__lDlBg9cTod71s9abpUj82lsw_;
extern TNimType NTI__n9cmoMXcDs47wYDFGEXuCfw_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTI__z7kal23LlR1mL50YJIPMCw_;
extern TNimType NTI__eiDrOE3AS6QEbCsY2gtdWQ_;
extern TNimType NTI__77mFvmsOLKik79ci2hXkHEg_;
N_LIB_PRIVATE TNimType NTI__b7kA8pLABz0wMAUNGYo6Wg_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
extern TNimType NTI__triPNwGxgWAG1ULojVLJPA_;
extern TNimType NTI__oFHfEKFsiYTMAy9a42cSiKw_;
extern TNimType NTI__BnbLegyGxTOhIgncw6Jqfg_;
N_LIB_PRIVATE TNimType NTI__C9cQfUOxfT2Mk6yT19cPu9aIA_;
extern TNimType NTI__i55W8RrwGKsG9cl0sAKxgkQ_;
N_LIB_PRIVATE TNimType NTI__XtNNqpdSSaHFEnbiw4OQrw_;
extern TNimType NTI__vr5DoT1jILTGdRlYv1OYpw_;
extern TNimType NTI__HsJiUUcO9cHBdUCi0HwkSTA_;
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_8, ".nim", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_9, "Module ", 7);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_10, "split.item.toc", 14);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_11, "-", 1);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_12, "\012<h$1><a class=\"toc-backref\" id=\"$2\" href=\"#$2\">$3</a></h$1>", 60);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_13, "\\rsth$4{$3}\\label{$2}\012", 22);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_14, "\012<h$1 id=\"$2\">$3</h$1>", 22);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_15, "html", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_16, "\\", 1);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_17, "\\n", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_18, "\\t", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_19, "\012", 1);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_20, "<h$1 id=\"$2\"><center>$3</center></h$1>", 38);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_21, "\\rstov$4{$3}\\label{$2}\012", 23);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_22, "<hr />\012", 7);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_23, "\\hrule\012", 7);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_24, "<p>$1</p>\012", 10);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_25, "$1\012\012", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_26, "<ul class=\"simple\">$1</ul>\012", 27);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_27, "\\begin{itemize}$1\\end{itemize}\012", 31);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_28, "<li>$1</li>\012", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_29, "\\item $1\012", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_30, "<ol class=\"simple\">$1</ol>\012", 27);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_31, "\\begin{enumerate}$1\\end{enumerate}\012", 35);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_32, "<dl class=\"docutils\">$1</dl>\012", 29);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_33, "\\begin{description}$1\\end{description}\012", 39);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_34, "<dt>$1</dt>\012", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_35, "\\item[$1] ", 10);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_36, "<dd>$1</dd>\012", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_37, "$1\012", 3);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_38, "<table class=\"docinfo\" frame=\"void\" rules=\"none\"><col class=\"do"
"cinfo-name\" /><col class=\"docinfo-content\" /><tbody valign=\"top\""
">$1</tbody></table>", 146);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_39, "<wbr />", 7);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_40, "\\-", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_41, "&amp;", 5);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_42, "&lt;", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_43, "&gt;", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_44, "&quot;", 6);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_45, "\\_", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_46, "\\symbol{123}", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_47, "\\symbol{125}", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_48, "\\symbol{91}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_49, "\\symbol{93}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_50, "\\symbol{92}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_51, "\\$", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_52, "\\&", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_53, "\\#", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_54, "\\%", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_55, "\\symbol{126}", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_56, "\\symbol{64}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_57, "\\symbol{94}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_58, "\\symbol{96}", 11);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__vGSJrCjWQr859bqRvctRIaA_59 = {
0x00, 0x3e, 0x00, 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, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_60, "author", 6);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_61, "authors", 7);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_62, "version", 7);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_63, "<tr>$1</tr>\012", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_64, "$1", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_65, "<th class=\"docinfo-name\">$1:</th>", 33);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_66, "\\item[$1:]", 10);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_67, "<td>$1</td>", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_68, " $1\012", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_69, "<table frame=\"void\">$1</table>", 30);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_70, "\\begin{description}\012$1\\end{description}\012", 40);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_71, "<th align=\"left\">$1</th>", 24);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_72, "\\item[$1]", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_73, "<td align=\"left\">$1</td>\012", 25);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_74, "rstgen.nim(1084, 14) `false` renderRstToOut", 43);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_75, "<pre>$1</pre>\012", 14);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_76, "\\begin{rstpre}\012$1\012\\end{rstpre}\012", 31);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_77, "rstgen.nim(1089, 14) `false` renderRstToOut", 43);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_78, "<p>$1</p>", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_79, "$1<br />", 8);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_80, "$1\\\\\012", 5);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_81, "<blockquote><p>$1</p></blockquote>\012", 35);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_82, "\\begin{quote}$1\\end{quote}\012", 27);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_83, "<table border=\"1\" class=\"docutils\">$1</table>", 45);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_84, "\\begin{table}\\begin{rsttab}{", 28);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_85, "|X", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_86, "|}\012\\hline\012$1\\end{rsttab}\\end{table}", 35);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_87, " & ", 3);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_88, "\\\\\012\\hline\012", 10);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_89, "<tr>", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_90, "</tr>\012", 6);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_91, "<th>$1</th>", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_92, "\\textbf{$1}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_93, "rstgen.nim(1120, 14) `false` renderRstToOut", 43);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_94, "rstgen.nim(1122, 14) `false` renderRstToOut", 43);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_95, "rstgen.nim(1124, 14) `false` renderRstToOut", 43);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_96, "<a class=\"reference external\" href=\"#$2\">$1</a>", 47);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_97, "$1\\ref{$2}", 10);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_98, "<a class=\"reference external\" href=\"$1\">$1</a>", 46);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_99, "\\href{$1}{$1}", 13);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_100, "<a class=\"reference external\" href=\"$2\">$1</a>", 46);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_101, "\\href{$2}{$1}", 13);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_102, "scale", 5);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_103, " scale=\"$1\"", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_104, " scale=$1", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_105, "height", 6);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_106, " height=\"$1\"", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_107, " height=$1", 10);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_108, "width", 5);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_109, " width=\"$1\"", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_110, " width=$1", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_111, "alt", 3);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_112, " alt=\"$1\"", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_113, "align", 5);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_114, " align=\"$1\"", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_115, "[$1]", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_116, ".mp4", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_117, ".ogg", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_118, ".webm", 5);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_119, "      <video src=\"$1\"$2 autoPlay=\'true\' loop=\'true\' muted=\'true"
"\'>\012      Sorry, your browser doesn\'t support embedded videos\012   "
"   </video>\012    ", 143);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_120, "<img src=\"$1\"$2/>", 17);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_121, "target", 6);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_122, "\\includegraphics$2{$1}", 22);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_123, "number-lines", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_124, "file", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_125, "filename", 8);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_126, "test", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_127, "status", 6);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_128, "exitcode", 8);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_129, "default-language", 16);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_130, "$nim r --backend:$backend $options", 34);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_131, "\"", 1);
static NIM_CONST tyProc__XtNNqpdSSaHFEnbiw4OQrw TM__vGSJrCjWQr859bqRvctRIaA_133 = {NIM_NIL,NIM_NIL};
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_135, "doc.listing_start", 17);
extern NIM_CONST tyArray__CchsCKVbWNDjfQ2XsaO6Aw sourceLanguageToStr__HxGhuVvqzgyr9b5gK42kE9aw;
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_136, "doc.listing_end", 15);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_137, "<table class=\"line-nums-table\"><tbody><tr><td class=\"blob-line-"
"nums\"><pre class=\"line-nums\">", 92);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_138, "</pre></td><td>", 15);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_139, "</td></tr></tbody></table>", 26);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_140, "doc.listing_button", 18);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_141, "\\begin{rstpre}\012", 15);
extern TNimType NTI__XJrmQSLLjVmugZQb54lVWA_;
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_143, "<span class=\"$2\">$1</span>", 26);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_144, "\\span$2{$1}", 11);
extern NIM_CONST tyArray__b121gTFK3KCOh1bfQWQzTw tokenClassToStr__XoxGqeDe9c9bun9b5PoCUnzlg;
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_145, "\012\\end{rstpre}\012", 14);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_146, "<div>$1</div>", 13);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_147, "<div class=\"$1\">$2</div>", 24);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_148, "$2", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_149, "|$1|", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_150, "<sub>$1</sub>", 13);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_151, "\\rstsub{$1}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_152, "<sup>$1</sup>", 13);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_153, "\\rstsup{$1}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_154, "<em>$1</em>", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_155, "\\emph{$1}", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_156, "<strong>$1</strong>", 19);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_157, "<strong><em>$1</em></strong>", 28);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_158, "\\textbf{emph{$1}}", 17);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_159, "<span id=\"$1\">$2</span>", 23);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_160, "$2\\label{$1}", 12);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_161, "<tt class=\"docutils literal\"><span class=\"pre\">$1</span></tt>", 61);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_162, "\\texttt{$1}", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_163, "<img src=\"$1\" width=\"15\"\012        height=\"17\" hspace=\"2\" vspace="
"\"2\" class=\"smiley\" />", 84);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_164, "\\includegraphics{$1}", 20);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_165, "doc.smiley_format", 17);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_166, "_._", 3);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_167, "..", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_168, "<li><a class=\"reference\" id=\"$1_toc\" href=\"#$1\">$2</a></li>\012", 60);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_169, "\\item\\label{$1_toc} $2\\ref{$1}\012", 31);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_170, "<ul class=\"simple\">$1</ul>", 26);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_171, "\\begin{enumerate}$1\\end{enumerate}", 34);
N_LIB_PRIVATE TNimType NTI__G9ccBDFWfr9aYnLgXTNGDHDg_;
N_LIB_PRIVATE TNimType NTI__5PunAJrNQYcB8dF0jau3pQ_;
extern TNimType NTI__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_174, ".", 1);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_175, ".idx", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_178, "\011", 1);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_179, "\\\\", 2);
static NIM_CONST tyArray__0ipey9aZuUA8jy4OAHzODQg TM__vGSJrCjWQr859bqRvctRIaA_177 = {{((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_18),
((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_178)}
,
{((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_17),
((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_19)}
,
{((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_179),
((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_16)}
}
;
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_180, "doc_toc_", 8);
extern TNimType NTI__wAC0kXbVGkLoWP8vdi0sUw_;
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_183, "Documents: ", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_185, "<a href=\"", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_186, "\">", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_187, "</a>", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_188, ", ", 2);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_189, ".<br/>", 6);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_190, "<p />", 5);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_191, "Modules: ", 9);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_192, "<a href=\"$1.html\">$2</a>", 24);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_193, "<h2>API symbols</h2>\012", 21);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_194, "<dl>", 4);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_195, "%", 1);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_196, "<dt><a name=\"$2\" href=\"#$2\"><span>$1:</span></a></dt><dd><ul cl"
"ass=\"simple\">\012", 77);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_197, "<li><a class=\"reference external\"\012          title=\"$3\" data-doc"
"-search-tag=\"$2\" href=\"$1\">$2</a></li>\012          ", 112);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_198, "<li><a class=\"reference external\"\012          data-doc-search-tag"
"=\"$2\" href=\"$1\">$2</a></li>\012          ", 101);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_199, "</ul></dd>\012", 11);
STRING_LITERAL(TM__vGSJrCjWQr859bqRvctRIaA_200, "</dl>", 5);

/* section: NIM_merge_VARS */
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;

/* section: NIM_merge_PROCS */
static N_NIMCALL(void, Marker_tySequence__b7kA8pLABz0wMAUNGYo6Wg)(void* p, NI op) {
	tySequence__b7kA8pLABz0wMAUNGYo6Wg* a;
	NI T1_;
	a = (tySequence__b7kA8pLABz0wMAUNGYo6Wg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].n, op);
	nimGCvisit((void*)a->data[T1_].refname, op);
	nimGCvisit((void*)a->data[T1_].header, op);
	}
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initRstGenerator__yb79cZGnzSmPK9bVz9c4Yy9aMg)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* g, tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* config, NimStringDesc* filename, tySet_tyEnum_RstParseOption__fiZmsylYkyh6nEciRZcPsw options, tyProc__oFHfEKFsiYTMAy9a42cSiKw findFile, tyProc__BnbLegyGxTOhIgncw6Jqfg msgHandler) {
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg fileParts;
	NimStringDesc* s;
	unsureAsgnRef((void**) (&(*g).config), config);
	(*g).target = target;
	unsureAsgnRef((void**) (&(*g).tocPart), NIM_NIL);
	unsureAsgnRef((void**) (&(*g).filename), copyString(filename));
	(*g).splitAfter = ((NI) 20);
	unsureAsgnRef((void**) (&(*g).theIndex), ((NimStringDesc*) NIM_NIL));
	(*g).options = options;
	unsureAsgnRef((void**) (&(*g).findFile.ClE_0), findFile.ClE_0);
	(*g).findFile.ClP_0 = findFile.ClP_0;
	unsureAsgnRef((void**) (&(*g).currentSection), ((NimStringDesc*) NIM_NIL));
	(*g).id = ((NI) 0);
	nimZeroMem((void*)(&fileParts), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
	nossplitFile(filename, (&fileParts));
	{
		NimStringDesc* T5_;
		if (!eqStrings(fileParts.Field2, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_8))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = rawNewString((fileParts.Field1 ? fileParts.Field1->Sup.len : 0) + 7);
appendString(T5_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_9));
appendString(T5_, fileParts.Field1);
		unsureAsgnRef((void**) (&(*g).currentSection), T5_);
	}
	LA3_: ;
	initTable__RrWZeIMfwjxuENvIG9aHB8g(((NI) 32), (&(*g).seenIndexTerms));
	unsureAsgnRef((void**) (&(*g).msgHandler.ClE_0), msgHandler.ClE_0);
	(*g).msgHandler.ClP_0 = msgHandler.ClP_0;
	s = getOrDefault__2a0cbxcfpWcXtK45m9bR5Kg(config, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_10), ((NimStringDesc*) NIM_NIL));
	{
		if (!!(((s ? s->Sup.len : 0) == 0))) goto LA8_;
		(*g).splitAfter = nsuParseInt(s);
	}
	LA8_: ;
	{
		tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg i;
		NI res;
		i = (tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg)0;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= ((NI) 4))) goto LA12;
				i = ((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) (res));
				unsureAsgnRef((void**) (&(*g).meta[(i)- 0]), ((NimStringDesc*) NIM_NIL));
				res += ((NI) 1);
			} LA12: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, renderAux__9bVWgX0SWmhEi3eHlrcMD8g_2)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[i], result);
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, dispA__3GZ9bx75poGreVGlawa9aBDg)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc** dest, NimStringDesc* xml, NimStringDesc* tex, NimStringDesc** args, NI argsLen_0) {
	{
		if (!!((target == ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1)))) goto LA3_;
		nsuAddf(dest, xml, args, argsLen_0);
	}
	goto LA1_;
	LA3_: ;
	{
		nsuAddf(dest, tex, args, argsLen_0);
	}
	LA1_: ;
}
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, quoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag)(NimStringDesc* text) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = rawNewString(((NI) ((NI)((text ? text->Sup.len : 0) + ((NI) 3)))));
	{
		NIM_CHAR c;
		NI i;
		NI L;
		c = (NIM_CHAR)0;
		i = ((NI) 0);
		L = (text ? text->Sup.len : 0);
		{
			while (1) {
				if (!(i < L)) goto LA3;
				c = text->data[i];
				switch (((NU8)(c))) {
				case 92:
				{
					result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_16));
				}
				break;
				case 10:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_17));
				}
				break;
				case 13:
				{
				}
				break;
				case 9:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_18));
				}
				break;
				default:
				{
					result = addChar(result, c);
				}
				break;
				}
				i += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setIndexTerm__59a2OAWg9c9azGlf9aSfMJTaLA)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, NimStringDesc* htmlFile, NimStringDesc* id, NimStringDesc* term, NimStringDesc* linkTitle, NimStringDesc* linkDesc) {
	NimStringDesc* entry;
	NIM_BOOL isTitle;
	entry = copyString(term);
	isTitle = NIM_FALSE;
	entry = addChar(entry, 9);
	entry = resizeString(entry, (htmlFile ? htmlFile->Sup.len : 0) + 0);
appendString(entry, htmlFile);
	{
		if (!(((NI) 0) < (id ? id->Sup.len : 0))) goto LA3_;
		entry = addChar(entry, 35);
		entry = resizeString(entry, (id ? id->Sup.len : 0) + 0);
appendString(entry, id);
	}
	goto LA1_;
	LA3_: ;
	{
		isTitle = NIM_TRUE;
	}
	LA1_: ;
	{
		NIM_BOOL T8_;
		NimStringDesc* T12_;
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		NimStringDesc* T15_;
		T8_ = (NIM_BOOL)0;
		T8_ = (((NI) 0) < (linkTitle ? linkTitle->Sup.len : 0));
		if (T8_) goto LA9_;
		T8_ = (((NI) 0) < (linkDesc ? linkDesc->Sup.len : 0));
		LA9_: ;
		if (!T8_) goto LA10_;
		T12_ = (NimStringDesc*)0;
		T13_ = (NimStringDesc*)0;
		T13_ = quoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag(linkTitle);
		T12_ = rawNewString((T13_ ? T13_->Sup.len : 0) + 1);
appendChar(T12_, 9);
appendString(T12_, T13_);
		entry = resizeString(entry, (T12_ ? T12_->Sup.len : 0) + 0);
appendString(entry, T12_);
		T14_ = (NimStringDesc*)0;
		T15_ = (NimStringDesc*)0;
		T15_ = quoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag(linkDesc);
		T14_ = rawNewString((T15_ ? T15_->Sup.len : 0) + 1);
appendChar(T14_, 9);
appendString(T14_, T15_);
		entry = resizeString(entry, (T14_ ? T14_->Sup.len : 0) + 0);
appendString(entry, T14_);
	}
	LA10_: ;
	entry = resizeString(entry, 1);
appendString(entry, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_19));
	{
		if (!isTitle) goto LA18_;
		insert__bnB13E7BS4dZJaaSQFdX5w((&(*d).theIndex), entry, ((NI) 0));
	}
	goto LA16_;
	LA18_: ;
	{
		unsureAsgnRef((void**) (&(*d).theIndex), resizeString((*d).theIndex, (entry ? entry->Sup.len : 0) + 0));
appendString((*d).theIndex, entry);
	}
	LA16_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, stripTocHtml__CG3Pm1f26Xv9bcO1ymY7HaA)(NimStringDesc* s) {
	NimStringDesc* result;
	NI first;
{	result = (NimStringDesc*)0;
	result = copyString(s);
	first = nsuFindChar(result, 60, ((NI) 0), ((NI) 0));
	{
		while (1) {
			NI last;
			if (!(((NI) 0) <= first)) goto LA2;
			last = nsuFindChar(result, 62, ((NI) (first)), ((NI) 0));
			{
				if (!(last < ((NI) 0))) goto LA5_;
				goto BeforeRet_;
			}
			LA5_: ;
			nsuDelete((&result), first, last);
			first = nsuFindChar(result, 60, ((NI) (first)), ((NI) 0));
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NimStringDesc*, spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils)(NI n) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = nsuRepeatChar(32, n);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, renderHeadline__9bVWgX0SWmhEi3eHlrcMD8g_3)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	NimStringDesc* tmp;
	NimStringDesc* sectionPrefix;
	NimStringDesc* refname;
	NimStringDesc* T15_;
	NimStringDesc* T16_;
	NimStringDesc* htmlFileRelPath;
	NimStringDesc* T33_;
	NimStringDesc* T34_;
	NimStringDesc* T35_;
	tmp = ((NimStringDesc*) NIM_NIL);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[i], (&tmp));
				res += ((NI) 1);
			} LA4: ;
		}
	}
	unsureAsgnRef((void**) (&(*d).currentSection), copyString(tmp));
	sectionPrefix = ((NimStringDesc*) NIM_NIL);
	{
		NI i_2;
		NI colontmp__2;
		NI T6_;
		NI res_2;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		T6_ = (((*d).tocPart ? (*d).tocPart->Sup.len : 0)-1);
		colontmp__2 = T6_;
		res_2 = colontmp__2;
		{
			while (1) {
				tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n2;
				if (!(((NI) 0) <= res_2)) goto LA8;
				i_2 = res_2;
				n2 = (*d).tocPart->data[i_2].n;
				{
					NimStringDesc* T13_;
					NimStringDesc* T14_;
					if (!((*n2).level < (*n).level)) goto LA11_;
					T13_ = (NimStringDesc*)0;
					T14_ = (NimStringDesc*)0;
					T14_ = rstnodeToRefname__TOPoj9cIRh7GBTY6PKofpTQ(n2);
					T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + 1);
appendString(T13_, T14_);
appendString(T13_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_11));
					sectionPrefix = T13_;
					goto LA5;
				}
				LA11_: ;
				res_2 -= ((NI) 1);
			} LA8: ;
		}
	} LA5: ;
	T15_ = (NimStringDesc*)0;
	T16_ = (NimStringDesc*)0;
	T16_ = rstnodeToRefname__TOPoj9cIRh7GBTY6PKofpTQ(n);
	T15_ = rawNewString((sectionPrefix ? sectionPrefix->Sup.len : 0) + (T16_ ? T16_->Sup.len : 0) + 0);
appendString(T15_, sectionPrefix);
appendString(T15_, T16_);
	refname = T15_;
	{
		NI length;
		NI T21_;
		NimStringDesc* T22_;
		NimStringDesc* T23_;
		tyArray__sMpvt1sOxOJ3LFGulnbeMQ T24_;
		if (!(*d).hasToc) goto LA19_;
		T21_ = ((*d).tocPart ? (*d).tocPart->Sup.len : 0);
		length = T21_;
		unsureAsgnRef((void**) (&(*d).tocPart), (tySequence__b7kA8pLABz0wMAUNGYo6Wg*) setLengthSeqV2(&((*d).tocPart)->Sup, (&NTI__b7kA8pLABz0wMAUNGYo6Wg_), ((NI) ((NI)(length + ((NI) 1))))));
		T22_ = (NimStringDesc*)0;
		T22_ = (*d).tocPart->data[length].refname; (*d).tocPart->data[length].refname = copyStringRC1(refname);
		if (T22_) nimGCunrefNoCycle(T22_);
		asgnRef((void**) (&(*d).tocPart->data[length].n), n);
		T23_ = (NimStringDesc*)0;
		T23_ = (*d).tocPart->data[length].header; (*d).tocPart->data[length].header = copyStringRC1(tmp);
		if (T23_) nimGCunrefNoCycle(T23_);
		nimZeroMem((void*)T24_, sizeof(tyArray__sMpvt1sOxOJ3LFGulnbeMQ));
		T24_[0] = nimIntToStr((*n).level);
		T24_[1] = copyString((*d).tocPart->data[length].refname);
		T24_[2] = copyString(tmp);
		T24_[3] = nimCharToStr(((NIM_CHAR) (((NI) ((NI)((NI)((*n).level - ((NI) 1)) + ((NI) 65)))))));
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_12), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_13), T24_, 4);
	}
	goto LA17_;
	LA19_: ;
	{
		tyArray__sMpvt1sOxOJ3LFGulnbeMQ T26_;
		nimZeroMem((void*)T26_, sizeof(tyArray__sMpvt1sOxOJ3LFGulnbeMQ));
		T26_[0] = nimIntToStr((*n).level);
		T26_[1] = copyString(refname);
		T26_[2] = copyString(tmp);
		T26_[3] = nimCharToStr(((NIM_CHAR) (((NI) ((NI)((NI)((*n).level - ((NI) 1)) + ((NI) 65)))))));
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_14), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_13), T26_, 4);
	}
	LA17_: ;
	{
		NimStringDesc* T31_;
		if (!(((*d).outDir ? (*d).outDir->Sup.len : 0) == ((NI) 0))) goto LA29_;
		T31_ = (NimStringDesc*)0;
		T31_ = nosextractFilename((*d).filename);
		htmlFileRelPath = noschangeFileExt(T31_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_15));
	}
	goto LA27_;
	LA29_: ;
	{
		htmlFileRelPath = nosrelativePath((*d).destFile, (*d).outDir, 47);
	}
	LA27_: ;
	T33_ = (NimStringDesc*)0;
	T33_ = stripTocHtml__CG3Pm1f26Xv9bcO1ymY7HaA(tmp);
	T34_ = (NimStringDesc*)0;
	T35_ = (NimStringDesc*)0;
	T35_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI) (((((NI) 0) >= (*n).level) ? ((NI) 0) : (*n).level))));
	T34_ = rawNewString((T35_ ? T35_->Sup.len : 0) + (tmp ? tmp->Sup.len : 0) + 0);
appendString(T34_, T35_);
appendString(T34_, tmp);
	setIndexTerm__59a2OAWg9c9azGlf9aSfMJTaLA(d, htmlFileRelPath, refname, T33_, T34_, ((NimStringDesc*) NIM_NIL));
}
N_LIB_PRIVATE N_NIMCALL(void, renderOverline__9bVWgX0SWmhEi3eHlrcMD8g_4)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	{
		if (!(((*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 1))- 0] ? (*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 1))- 0]->Sup.len : 0) == ((NI) 0))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = (NI)0;
			T6_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
			colontmp_ = (NI)(T6_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA8;
					i = res;
					renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[i], (&(*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 1))- 0]));
					res += ((NI) 1);
				} LA8: ;
			}
		}
		unsureAsgnRef((void**) (&(*d).currentSection), copyString((*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 1))- 0]));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 2))- 0] ? (*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 2))- 0]->Sup.len : 0) == ((NI) 0))) goto LA10_;
		{
			NI i_2;
			NI colontmp__2;
			NI T13_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T13_ = (NI)0;
			T13_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
			colontmp__2 = (NI)(T13_ - ((NI) 1));
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA15;
					i_2 = res_2;
					renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[i_2], (&(*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 2))- 0]));
					res_2 += ((NI) 1);
				} LA15: ;
			}
		}
		unsureAsgnRef((void**) (&(*d).currentSection), copyString((*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 2))- 0]));
	}
	goto LA1_;
	LA10_: ;
	{
		NimStringDesc* tmp;
		tyArray__sMpvt1sOxOJ3LFGulnbeMQ T21_;
		tmp = ((NimStringDesc*) NIM_NIL);
		{
			NI i_3;
			NI colontmp__3;
			NI T18_;
			NI res_3;
			i_3 = (NI)0;
			colontmp__3 = (NI)0;
			T18_ = (NI)0;
			T18_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
			colontmp__3 = (NI)(T18_ - ((NI) 1));
			res_3 = ((NI) 0);
			{
				while (1) {
					if (!(res_3 <= colontmp__3)) goto LA20;
					i_3 = res_3;
					renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[i_3], (&tmp));
					res_3 += ((NI) 1);
				} LA20: ;
			}
		}
		unsureAsgnRef((void**) (&(*d).currentSection), copyString(tmp));
		nimZeroMem((void*)T21_, sizeof(tyArray__sMpvt1sOxOJ3LFGulnbeMQ));
		T21_[0] = nimIntToStr((*n).level);
		T21_[1] = rstnodeToRefname__TOPoj9cIRh7GBTY6PKofpTQ(n);
		T21_[2] = copyString(tmp);
		T21_[3] = nimCharToStr(((NIM_CHAR) (((NI) ((NI)((NI)((*n).level - ((NI) 1)) + ((NI) 65)))))));
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_20), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_21), T21_, 4);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, renderAux__zVlkCIHCkLQV6Nm9a32Dl4w)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc* frmtA, NimStringDesc* frmtB, NimStringDesc** result) {
	NimStringDesc* tmp;
	tmp = ((NimStringDesc*) NIM_NIL);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[i], (&tmp));
				res += ((NI) 1);
			} LA4: ;
		}
	}
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T9_;
		if (!!(((*d).target == ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1)))) goto LA7_;
		nimZeroMem((void*)T9_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T9_[0] = copyString(tmp);
		nsuAddf(result, frmtA, T9_, 1);
	}
	goto LA5_;
	LA7_: ;
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T11_;
		nimZeroMem((void*)T11_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T11_[0] = copyString(tmp);
		nsuAddf(result, frmtB, T11_, 1);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, nextSplitPoint__1bYOTvfWXChm7WZOI8uPdA)(NimStringDesc* s, NI start) {
	NI result;
{	result = (NI)0;
	result = start;
	{
		while (1) {
			if (!(result < (NI)((s ? s->Sup.len : 0) + ((NI) 0)))) goto LA2;
			switch (((NU8)(s->data[result]))) {
			case 95:
			{
				goto BeforeRet_;
			}
			break;
			case 97 ... 122:
			{
				{
					if (!((NI)(result + ((NI) 1)) < (NI)((s ? s->Sup.len : 0) + ((NI) 0)))) goto LA7_;
					{
						if (!(((NU8)(s->data[(NI)(result + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(result + ((NI) 1))])) <= ((NU8)(90)))) goto LA11_;
						goto BeforeRet_;
					}
					LA11_: ;
				}
				LA7_: ;
			}
			break;
			default:
			{
			}
			break;
			}
			result += ((NI) 1);
		} LA2: ;
	}
	result -= ((NI) 1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, addSplitter__otpg39cSdGbkUPYMfuoVxQQrstgen)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc** dest) {
	switch (target) {
	case ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 0):
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 7));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_39));
	}
	break;
	case ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1):
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 2));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_40));
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addXmlChar__jCxR1j9bCE42Z5E9bu9aEL9cEw)(NimStringDesc** dest, NIM_CHAR c) {
	switch (((NU8)(c))) {
	case 38:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 5));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_41));
	}
	break;
	case 60:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 4));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_42));
	}
	break;
	case 62:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 4));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_43));
	}
	break;
	case 34:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 6));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_44));
	}
	break;
	default:
	{
		unsureAsgnRef((void**) (&(*dest)), addChar((*dest), c));
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addTexChar__jCxR1j9bCE42Z5E9bu9aEL9cEw_2)(NimStringDesc** dest, NIM_CHAR c) {
	switch (((NU8)(c))) {
	case 95:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 2));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_45));
	}
	break;
	case 123:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 12));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_46));
	}
	break;
	case 125:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 12));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_47));
	}
	break;
	case 91:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 11));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_48));
	}
	break;
	case 93:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 11));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_49));
	}
	break;
	case 92:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 11));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_50));
	}
	break;
	case 36:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 2));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_51));
	}
	break;
	case 38:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 2));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_52));
	}
	break;
	case 35:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 2));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_53));
	}
	break;
	case 37:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 2));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_54));
	}
	break;
	case 126:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 12));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_55));
	}
	break;
	case 64:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 11));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_56));
	}
	break;
	case 94:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 11));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_57));
	}
	break;
	case 96:
	{
		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 11));
appendString((*dest), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_58));
	}
	break;
	default:
	{
		unsureAsgnRef((void**) (&(*dest)), addChar((*dest), c));
	}
	break;
	}
}
static N_INLINE(void, escChar__KYm7vXQBjUyQAIV7FSCu5Qrstgen)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc** dest, NIM_CHAR c) {
	switch (target) {
	case ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 0):
	{
		addXmlChar__jCxR1j9bCE42Z5E9bu9aEL9cEw(dest, c);
	}
	break;
	case ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1):
	{
		addTexChar__jCxR1j9bCE42Z5E9bu9aEL9cEw_2(dest, c);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, esc__Tgq9c7oEp9c4LGF7SoXGTh8w)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc* s, NI splitAfter) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = ((NimStringDesc*) NIM_NIL);
	{
		NI partLen;
		NI j;
		if (!(((NI) 0) <= splitAfter)) goto LA3_;
		partLen = ((NI) 0);
		j = ((NI) 0);
		{
			while (1) {
				NI k;
				if (!(j < (s ? s->Sup.len : 0))) goto LA6;
				k = nextSplitPoint__1bYOTvfWXChm7WZOI8uPdA(s, j);
				partLen = ((NI) 0);
				addSplitter__otpg39cSdGbkUPYMfuoVxQQrstgen(target, (&result));
				{
					NI i;
					NI res;
					i = (NI)0;
					res = j;
					{
						while (1) {
							if (!(res <= k)) goto LA9;
							i = res;
							escChar__KYm7vXQBjUyQAIV7FSCu5Qrstgen(target, (&result), s->data[i]);
							res += ((NI) 1);
						} LA9: ;
					}
				}
				partLen += (NI)((NI)(k - j) + ((NI) 1));
				j = (NI)(k + ((NI) 1));
			} LA6: ;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i_2;
			NI colontmp_;
			NI res_2;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= colontmp_)) goto LA13;
					i_2 = res_2;
					escChar__KYm7vXQBjUyQAIV7FSCu5Qrstgen(target, (&result), s->data[i_2]);
					res_2 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, renderField__9bVWgX0SWmhEi3eHlrcMD8g_5)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	NIM_BOOL b;
	b = NIM_FALSE;
	{
		NimStringDesc* fieldname;
		NimStringDesc* fieldval;
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!((*d).target == ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1))) goto LA3_;
		fieldname = addNodes__TOPoj9cIRh7GBTY6PKofpTQ_2((*n).sons->data[((NI) 0)]);
		T5_ = (NimStringDesc*)0;
		T5_ = addNodes__TOPoj9cIRh7GBTY6PKofpTQ_2((*n).sons->data[((NI) 1)]);
		T6_ = (NimStringDesc*)0;
		T6_ = nsuStrip(T5_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
		fieldval = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T6_, ((NI) -1));
		{
			NIM_BOOL T9_;
			NI T10_;
			NI T12_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NI)0;
			T10_ = nsuCmpIgnoreStyle(fieldname, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_60));
			T9_ = (T10_ == ((NI) 0));
			if (T9_) goto LA11_;
			T12_ = (NI)0;
			T12_ = nsuCmpIgnoreStyle(fieldname, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_61));
			T9_ = (T12_ == ((NI) 0));
			LA11_: ;
			if (!T9_) goto LA13_;
			{
				if (!(((*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 3))- 0] ? (*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 3))- 0]->Sup.len : 0) == ((NI) 0))) goto LA17_;
				unsureAsgnRef((void**) (&(*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 3))- 0]), copyString(fieldval));
				b = NIM_TRUE;
			}
			LA17_: ;
		}
		goto LA7_;
		LA13_: ;
		{
			NI T20_;
			T20_ = (NI)0;
			T20_ = nsuCmpIgnoreStyle(fieldname, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_62));
			if (!(T20_ == ((NI) 0))) goto LA21_;
			{
				if (!(((*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 4))- 0] ? (*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 4))- 0]->Sup.len : 0) == ((NI) 0))) goto LA25_;
				unsureAsgnRef((void**) (&(*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 4))- 0]), copyString(fieldval));
				b = NIM_TRUE;
			}
			LA25_: ;
		}
		goto LA7_;
		LA21_: ;
		LA7_: ;
	}
	LA3_: ;
	{
		if (!!(b)) goto LA29_;
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_63), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_64), result);
	}
	LA29_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, texColumns__6tXalH9aB8YkuyupI8riWjQ)(tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = ((NimStringDesc*) NIM_NIL);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_85));
				res += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dispF__UOeJJO8ohrrgldF61bH7dQ)(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw target, NimStringDesc* xml, NimStringDesc* tex, NimStringDesc** args, NI argsLen_0) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!!((target == ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1)))) goto LA3_;
		result = nsuFormatOpenArray(xml, args, argsLen_0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = nsuFormatOpenArray(tex, args, argsLen_0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, renderImage__9bVWgX0SWmhEi3eHlrcMD8g_6)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	NimStringDesc* arg;
	NimStringDesc* options;
	NimStringDesc* s;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T8_;
	NimStringDesc* T9_;
	NimStringDesc* T15_;
	NimStringDesc* T16_;
	NimStringDesc* T22_;
	NimStringDesc* T23_;
	NimStringDesc* T29_;
	NimStringDesc* T30_;
	NimStringDesc* htmlOut;
	NimStringDesc* target;
	NimStringDesc* T50_;
	NimStringDesc* T51_;
	tyArray__Re75IspeoxXy2oCZHwcRrA T57_;
	arg = getArgument__TOPoj9cIRh7GBTY6PKofpTQ_3(n);
	options = ((NimStringDesc*) NIM_NIL);
	T1_ = (NimStringDesc*)0;
	T1_ = getFieldValue__OTgwDdUvek9bw6NECNLDOqA(n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_102));
	T2_ = (NimStringDesc*)0;
	T2_ = nsuStrip(T1_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
	s = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T2_, ((NI) -1));
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T7_;
		if (!(((NI) 0) < (s ? s->Sup.len : 0))) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T7_[0] = copyString(s);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, (&options), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_103), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_104), T7_, 1);
	}
	LA5_: ;
	T8_ = (NimStringDesc*)0;
	T8_ = getFieldValue__OTgwDdUvek9bw6NECNLDOqA(n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_105));
	T9_ = (NimStringDesc*)0;
	T9_ = nsuStrip(T8_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
	s = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T9_, ((NI) -1));
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T14_;
		if (!(((NI) 0) < (s ? s->Sup.len : 0))) goto LA12_;
		nimZeroMem((void*)T14_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T14_[0] = copyString(s);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, (&options), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_106), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_107), T14_, 1);
	}
	LA12_: ;
	T15_ = (NimStringDesc*)0;
	T15_ = getFieldValue__OTgwDdUvek9bw6NECNLDOqA(n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_108));
	T16_ = (NimStringDesc*)0;
	T16_ = nsuStrip(T15_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
	s = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T16_, ((NI) -1));
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T21_;
		if (!(((NI) 0) < (s ? s->Sup.len : 0))) goto LA19_;
		nimZeroMem((void*)T21_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T21_[0] = copyString(s);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, (&options), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_109), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_110), T21_, 1);
	}
	LA19_: ;
	T22_ = (NimStringDesc*)0;
	T22_ = getFieldValue__OTgwDdUvek9bw6NECNLDOqA(n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_111));
	T23_ = (NimStringDesc*)0;
	T23_ = nsuStrip(T22_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
	s = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T23_, ((NI) -1));
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T28_;
		if (!(((NI) 0) < (s ? s->Sup.len : 0))) goto LA26_;
		nimZeroMem((void*)T28_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T28_[0] = copyString(s);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, (&options), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_112), ((NimStringDesc*) NIM_NIL), T28_, 1);
	}
	LA26_: ;
	T29_ = (NimStringDesc*)0;
	T29_ = getFieldValue__OTgwDdUvek9bw6NECNLDOqA(n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_113));
	T30_ = (NimStringDesc*)0;
	T30_ = nsuStrip(T29_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
	s = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T30_, ((NI) -1));
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T35_;
		if (!(((NI) 0) < (s ? s->Sup.len : 0))) goto LA33_;
		nimZeroMem((void*)T35_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T35_[0] = copyString(s);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, (&options), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_114), ((NimStringDesc*) NIM_NIL), T35_, 1);
	}
	LA33_: ;
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T40_;
		if (!(((NI) 0) < (options ? options->Sup.len : 0))) goto LA38_;
		nimZeroMem((void*)T40_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T40_[0] = copyString(options);
		options = dispF__UOeJJO8ohrrgldF61bH7dQ((*d).target, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_64), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_115), T40_, 1);
	}
	LA38_: ;
	htmlOut = ((NimStringDesc*) NIM_NIL);
	{
		NIM_BOOL T43_;
		NIM_BOOL T44_;
		T43_ = (NIM_BOOL)0;
		T44_ = (NIM_BOOL)0;
		T44_ = nsuEndsWith(arg, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_116));
		if (T44_) goto LA45_;
		T44_ = nsuEndsWith(arg, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_117));
		LA45_: ;
		T43_ = T44_;
		if (T43_) goto LA46_;
		T43_ = nsuEndsWith(arg, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_118));
		LA46_: ;
		if (!T43_) goto LA47_;
		htmlOut = copyString(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_119));
	}
	goto LA41_;
	LA47_: ;
	{
		htmlOut = copyString(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_120));
	}
	LA41_: ;
	T50_ = (NimStringDesc*)0;
	T50_ = getFieldValue__OTgwDdUvek9bw6NECNLDOqA(n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_121));
	T51_ = (NimStringDesc*)0;
	T51_ = nsuStrip(T50_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
	target = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T51_, ((NI) -1));
	{
		NimStringDesc* htmlOutWithLink;
		tyArray__Re75IspeoxXy2oCZHwcRrA T56_;
		if (!(((NI) 0) < (target ? target->Sup.len : 0))) goto LA54_;
		htmlOutWithLink = ((NimStringDesc*) NIM_NIL);
		nimZeroMem((void*)T56_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T56_[0] = copyString(htmlOut);
		T56_[1] = copyString(target);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, (&htmlOutWithLink), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_100), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_101), T56_, 2);
		htmlOut = copyString(htmlOutWithLink);
	}
	LA54_: ;
	nimZeroMem((void*)T57_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
	T57_[0] = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, arg, ((NI) -1));
	T57_[1] = copyString(options);
	dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, htmlOut, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_122), T57_, 2);
	{
		NI T60_;
		T60_ = (NI)0;
		T60_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
		if (!(((NI) 3) <= T60_)) goto LA61_;
		renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 2)], result);
	}
	LA61_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, init__VTkjfDKDCsSHMUgadSlTfg)(tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA* p) {
	(*p).startLine = ((NI) 1);
	(*p).lang = ((tyEnum_SourceLanguage__LpbEPkKqvJ0VCa4hwZcOBQ) 0);
	unsureAsgnRef((void**) (&(*p).langStr), ((NimStringDesc*) NIM_NIL));
}
N_LIB_PRIVATE N_NIMCALL(void, parseCodeBlockField__8mQpi5m1u2R5BPC42lxLuQ)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA* params) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T1_ = getArgument__TOPoj9cIRh7GBTY6PKofpTQ_3(n);
	T2_ = (NimStringDesc*)0;
	T2_ = nsuToLowerAsciiStr(T1_);
	if (eqStrings(T2_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_123))) goto LA3_;
	if (eqStrings(T2_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_124))) goto LA4_;
	if (eqStrings(T2_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_125))) goto LA4_;
	if (eqStrings(T2_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_126))) goto LA5_;
	if (eqStrings(T2_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_127))) goto LA6_;
	if (eqStrings(T2_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_128))) goto LA6_;
	if (eqStrings(T2_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_129))) goto LA7_;
	goto LA8_;
	LA3_: ;
	{
		NI number;
		(*params).numberLines = NIM_TRUE;
		number = (NI)0;
		{
			NimStringDesc* T13_;
			NI T14_;
			T13_ = (NimStringDesc*)0;
			T13_ = getFieldValue__TOPoj9cIRh7GBTY6PKofpTQ_4(n);
			T14_ = (NI)0;
			T14_ = npuParseInt(T13_, (&number), ((NI) 0));
			if (!(((NI) 0) < T14_)) goto LA15_;
			(*params).startLine = number;
		}
		LA15_: ;
	}
	goto LA9_;
	LA4_: ;
	{
		NimStringDesc* T18_;
		T18_ = (NimStringDesc*)0;
		T18_ = getFieldValue__TOPoj9cIRh7GBTY6PKofpTQ_4(n);
		unsureAsgnRef((void**) (&(*params).filename), nsuStrip(T18_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59));
	}
	goto LA9_;
	LA5_: ;
	{
		NimStringDesc* T20_;
		T20_ = (NimStringDesc*)0;
		T20_ = getFieldValue__TOPoj9cIRh7GBTY6PKofpTQ_4(n);
		unsureAsgnRef((void**) (&(*params).testCmd), nsuStrip(T20_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59));
		{
			if (!(((*params).testCmd ? (*params).testCmd->Sup.len : 0) == ((NI) 0))) goto LA23_;
			unsureAsgnRef((void**) (&(*params).testCmd), copyString(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_130)));
		}
		goto LA21_;
		LA23_: ;
		{
			unsureAsgnRef((void**) (&(*params).testCmd), nsuUnescape((*params).testCmd, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_131), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_131)));
		}
		LA21_: ;
	}
	goto LA9_;
	LA6_: ;
	{
		NI status;
		status = (NI)0;
		{
			NimStringDesc* T29_;
			NI T30_;
			T29_ = (NimStringDesc*)0;
			T29_ = getFieldValue__TOPoj9cIRh7GBTY6PKofpTQ_4(n);
			T30_ = (NI)0;
			T30_ = npuParseInt(T29_, (&status), ((NI) 0));
			if (!(((NI) 0) < T30_)) goto LA31_;
			(*params).status = status;
		}
		LA31_: ;
	}
	goto LA9_;
	LA7_: ;
	{
		NimStringDesc* T34_;
		T34_ = (NimStringDesc*)0;
		T34_ = getFieldValue__TOPoj9cIRh7GBTY6PKofpTQ_4(n);
		unsureAsgnRef((void**) (&(*params).langStr), nsuStrip(T34_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59));
		(*params).lang = getSourceLanguage__xS5vGJiqLeFR2EyiTX0IEA((*params).langStr);
	}
	goto LA9_;
	LA8_: ;
	{
		NimStringDesc* T36_;
		T36_ = (NimStringDesc*)0;
		T36_ = getArgument__TOPoj9cIRh7GBTY6PKofpTQ_3(n);
		(*d).msgHandler.ClE_0? (*d).msgHandler.ClP_0((*d).filename, ((NI) 1), ((NI) 0), ((tyEnum_MsgKind__iviJnHlj9acPYlnNRbd9bhkQ) 9), T36_, (*d).msgHandler.ClE_0):((TM__vGSJrCjWQr859bqRvctRIaA_132)((*d).msgHandler.ClP_0))((*d).filename, ((NI) 1), ((NI) 0), ((tyEnum_MsgKind__iviJnHlj9acPYlnNRbd9bhkQ) 9), T36_);
	}
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseCodeBlockParams__0UCWvfdZ9avksgBajNgLGBw)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA* Result) {
	NimStringDesc* T13_;
{	(*Result).numberLines = 0;
	(*Result).startLine = 0;
	unsureAsgnRef((void**)&(*Result).langStr, NIM_NIL);
	(*Result).lang = 0;
	unsureAsgnRef((void**)&(*Result).filename, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).testCmd, NIM_NIL);
	(*Result).status = 0;
	init__VTkjfDKDCsSHMUgadSlTfg(Result);
	{
		if (!(n == 0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!(((*n).sons->data[((NI) 1)] == 0))) goto LA7_;
		{
			tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg** son;
			tySequence__sawZST1Esj3o7EY9ayWwGPw* colontmp_;
			NI i;
			NI L;
			NI T10_;
			son = (tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg**)0;
			colontmp_ = (tySequence__sawZST1Esj3o7EY9ayWwGPw*)0;
			colontmp_ = (*(*n).sons->data[((NI) 1)]).sons;
			i = ((NI) 0);
			T10_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T10_;
			{
				while (1) {
					if (!(i < L)) goto LA12;
					son = &colontmp_->data[i];
					parseCodeBlockField__8mQpi5m1u2R5BPC42lxLuQ(d, (*son), Result);
					i += ((NI) 1);
				} LA12: ;
			}
		}
	}
	LA7_: ;
	T13_ = (NimStringDesc*)0;
	T13_ = getArgument__TOPoj9cIRh7GBTY6PKofpTQ_3(n);
	unsureAsgnRef((void**) (&(*Result).langStr), nsuStrip(T13_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59));
	{
		if (!!((((*Result).langStr ? (*Result).langStr->Sup.len : 0) == 0))) goto LA16_;
		(*Result).lang = getSourceLanguage__xS5vGJiqLeFR2EyiTX0IEA((*Result).langStr);
	}
	LA16_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, buildLinesHtmlTable__8VPefF9cpzTz1N4Guin4vxQ)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA* params, NimStringDesc* code, tyTuple__UV3llMMYFckfui8YMBuUZA* Result) {
	NimStringDesc* id;
	NI codeLines;
	NimStringDesc* T8_;
	NI line;
	NimStringDesc* T13_;
	NimStringDesc* T14_;
	tyArray__Re75IspeoxXy2oCZHwcRrA T15_;
	NimStringDesc* T16_;
	NimStringDesc* T17_;
	NimStringDesc* T18_;
	NimStringDesc* T19_;
	NimStringDesc* T20_;
	NimStringDesc* T21_;
{	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).Field1, NIM_NIL);
	(*d).listingCounter += ((NI) 1);
	id = nimIntToStr((*d).listingCounter);
	{
		NimStringDesc* colontmp_;
		NimStringDesc* T5_;
		tyArray__Re75IspeoxXy2oCZHwcRrA T6_;
		NimStringDesc* colontmp__2;
		NimStringDesc* T7_;
		if (!!((*params).numberLines)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = getOrDefault__2a0cbxcfpWcXtK45m9bR5Kg((*d).config, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_135), ((NimStringDesc*) NIM_NIL));
		nimZeroMem((void*)T6_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T6_[0] = copyString(id);
		T6_[1] = copyString(sourceLanguageToStr__HxGhuVvqzgyr9b5gK42kE9aw[((*params).lang)- 0]);
		colontmp_ = nsuFormatOpenArray(T5_, T6_, 2);
		T7_ = (NimStringDesc*)0;
		T7_ = getOrDefault__2a0cbxcfpWcXtK45m9bR5Kg((*d).config, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_136), ((NimStringDesc*) NIM_NIL));
		colontmp__2 = nsuFormatSingleElem(T7_, id);
		unsureAsgnRef((void**) (&(*Result).Field0), copyString(colontmp_));
		unsureAsgnRef((void**) (&(*Result).Field1), copyString(colontmp__2));
		goto BeforeRet_;
	}
	LA3_: ;
	T8_ = (NimStringDesc*)0;
	T8_ = nsuStrip(code, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
	codeLines = nsuCountLines(T8_);
	unsureAsgnRef((void**) (&(*Result).Field0), copyString(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_137)));
	line = (*params).startLine;
	{
		while (1) {
			NimStringDesc* T11_;
			NimStringDesc* T12_;
			if (!(((NI) 0) < codeLines)) goto LA10;
			T11_ = (NimStringDesc*)0;
			T12_ = (NimStringDesc*)0;
			T12_ = nimIntToStr(line);
			T11_ = rawNewString((T12_ ? T12_->Sup.len : 0) + 1);
appendString(T11_, T12_);
appendString(T11_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_19));
			unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, (T11_ ? T11_->Sup.len : 0) + 0));
appendString((*Result).Field0, T11_);
			line += ((NI) 1);
			codeLines -= ((NI) 1);
		} LA10: ;
	}
	T13_ = (NimStringDesc*)0;
	T14_ = (NimStringDesc*)0;
	T14_ = getOrDefault__2a0cbxcfpWcXtK45m9bR5Kg((*d).config, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_135), ((NimStringDesc*) NIM_NIL));
	nimZeroMem((void*)T15_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
	T15_[0] = copyString(id);
	T15_[1] = copyString(sourceLanguageToStr__HxGhuVvqzgyr9b5gK42kE9aw[((*params).lang)- 0]);
	T16_ = (NimStringDesc*)0;
	T16_ = nsuFormatOpenArray(T14_, T15_, 2);
	T13_ = rawNewString((T16_ ? T16_->Sup.len : 0) + 15);
appendString(T13_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_138));
appendString(T13_, T16_);
	unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, (T13_ ? T13_->Sup.len : 0) + 0));
appendString((*Result).Field0, T13_);
	T17_ = (NimStringDesc*)0;
	T18_ = (NimStringDesc*)0;
	T18_ = getOrDefault__2a0cbxcfpWcXtK45m9bR5Kg((*d).config, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_136), ((NimStringDesc*) NIM_NIL));
	T19_ = (NimStringDesc*)0;
	T19_ = nsuFormatSingleElem(T18_, id);
	T20_ = (NimStringDesc*)0;
	T20_ = getOrDefault__2a0cbxcfpWcXtK45m9bR5Kg((*d).config, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_140), ((NimStringDesc*) NIM_NIL));
	T21_ = (NimStringDesc*)0;
	T21_ = nsuFormatSingleElem(T20_, id);
	T17_ = rawNewString((T19_ ? T19_->Sup.len : 0) + (T21_ ? T21_->Sup.len : 0) + 26);
appendString(T17_, T19_);
appendString(T17_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_139));
appendString(T17_, T21_);
	unsureAsgnRef((void**) (&(*Result).Field1), T17_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, renderCodeBlock__9bVWgX0SWmhEi3eHlrcMD8g_7)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA params;
	tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* m;
	tyTuple__UV3llMMYFckfui8YMBuUZA T11_;
	NimStringDesc* blockStart;
	NimStringDesc* blockEnd;
	tyArray__8ZvwQIddfpj2THRVPsFzIQ T12_;
	tyArray__8ZvwQIddfpj2THRVPsFzIQ T33_;
{	{
		if (!((*n).sons->data[((NI) 2)] == ((tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)(&params), sizeof(tyObject_CodeBlockParams__VGrTBDzO5FHLY33yjUsvkA));
	parseCodeBlockParams__0UCWvfdZ9avksgBajNgLGBw(d, n, (&params));
	m = (*(*n).sons->data[((NI) 2)]).sons->data[((NI) 0)];
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (((NI) 0) < (params.testCmd ? params.testCmd->Sup.len : 0));
		if (!(T7_)) goto LA8_;
		T7_ = !(((*d).onTestSnippet.ClP_0 == TM__vGSJrCjWQr859bqRvctRIaA_133.ClP_0 && (*d).onTestSnippet.ClE_0 == TM__vGSJrCjWQr859bqRvctRIaA_133.ClE_0));
		LA8_: ;
		if (!T7_) goto LA9_;
		(*d).onTestSnippet.ClE_0? (*d).onTestSnippet.ClP_0(d, params.filename, params.testCmd, params.status, (*m).text, (*d).onTestSnippet.ClE_0):((TM__vGSJrCjWQr859bqRvctRIaA_134)((*d).onTestSnippet.ClP_0))(d, params.filename, params.testCmd, params.status, (*m).text);
	}
	LA9_: ;
	nimZeroMem((void*)(&T11_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
	buildLinesHtmlTable__8VPefF9cpzTz1N4Guin4vxQ(d, (&params), (*m).text, (&T11_));
	blockStart = (NimStringDesc*)0;
	blockStart = T11_.Field0;
	blockEnd = (NimStringDesc*)0;
	blockEnd = T11_.Field1;
	nimZeroMem((void*)T12_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
	dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, blockStart, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_141), T12_, 0);
	{
		if (!(params.lang == ((tyEnum_SourceLanguage__LpbEPkKqvJ0VCa4hwZcOBQ) 0))) goto LA15_;
		{
			if (!(((NI) 0) < (params.langStr ? params.langStr->Sup.len : 0))) goto LA19_;
			(*d).msgHandler.ClE_0? (*d).msgHandler.ClP_0((*d).filename, ((NI) 1), ((NI) 0), ((tyEnum_MsgKind__iviJnHlj9acPYlnNRbd9bhkQ) 8), params.langStr, (*d).msgHandler.ClE_0):((TM__vGSJrCjWQr859bqRvctRIaA_142)((*d).msgHandler.ClP_0))((*d).filename, ((NI) 1), ((NI) 0), ((tyEnum_MsgKind__iviJnHlj9acPYlnNRbd9bhkQ) 8), params.langStr);
		}
		LA19_: ;
		{
			NIM_CHAR letter;
			NI i;
			NI L;
			letter = (NIM_CHAR)0;
			i = ((NI) 0);
			L = ((*m).text ? (*m).text->Sup.len : 0);
			{
				while (1) {
					if (!(i < L)) goto LA23;
					letter = (*m).text->data[i];
					escChar__KYm7vXQBjUyQAIV7FSCu5Qrstgen((*d).target, result, letter);
					i += ((NI) 1);
				} LA23: ;
			}
		}
	}
	goto LA13_;
	LA15_: ;
	{
		tyObject_GeneralTokenizer__XJrmQSLLjVmugZQb54lVWA g;
		nimZeroMem((void*)(&g), sizeof(tyObject_GeneralTokenizer__XJrmQSLLjVmugZQb54lVWA));
		g.Sup.m_type = (&NTI__XJrmQSLLjVmugZQb54lVWA_);
		initGeneralTokenizer__mu4EAfPX69bUQs62cfYLXRA((&g), (*m).text);
		{
			while (1) {
				getNextToken__9axtJQpZ5U9aGuyq519c9axprw((&g), params.lang);
				switch (g.kind) {
				case ((tyEnum_TokenClass__UcAPDGzMlzghdb9c8MB7mEw) 0):
				{
					goto LA25;
				}
				break;
				case ((tyEnum_TokenClass__UcAPDGzMlzghdb9c8MB7mEw) 1):
				case ((tyEnum_TokenClass__UcAPDGzMlzghdb9c8MB7mEw) 2):
				{
					NimStringDesc* T29_;
					T29_ = (NimStringDesc*)0;
					T29_ = substr__2yh9cer0ymNRHlOOg8P7IuA((*m).text, g.start, (NI)((NI)(g.length + g.start) - ((NI) 1)));
					unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T29_ ? T29_->Sup.len : 0) + 0));
appendString((*result), T29_);
				}
				break;
				default:
				{
					tyArray__Re75IspeoxXy2oCZHwcRrA T31_;
					NimStringDesc* T32_;
					nimZeroMem((void*)T31_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T32_ = (NimStringDesc*)0;
					T32_ = substr__2yh9cer0ymNRHlOOg8P7IuA((*m).text, g.start, (NI)((NI)(g.length + g.start) - ((NI) 1)));
					T31_[0] = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T32_, ((NI) -1));
					T31_[1] = copyString(tokenClassToStr__XoxGqeDe9c9bun9b5PoCUnzlg[(g.kind)- 0]);
					dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_143), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_144), T31_, 2);
				}
				break;
				}
			}
		} LA25: ;
		deinitGeneralTokenizer__9a3JlWX9cxQaYCTvq9c0xqGpQ_7((&g));
	}
	LA13_: ;
	nimZeroMem((void*)T33_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
	dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, blockEnd, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_145), T33_, 0);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, renderContainer__9bVWgX0SWmhEi3eHlrcMD8g_8)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	NimStringDesc* tmp;
	NimStringDesc* arg;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	tmp = ((NimStringDesc*) NIM_NIL);
	renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 2)], (&tmp));
	T1_ = (NimStringDesc*)0;
	T1_ = getArgument__TOPoj9cIRh7GBTY6PKofpTQ_3(n);
	T2_ = (NimStringDesc*)0;
	T2_ = nsuStrip(T1_, NIM_TRUE, NIM_TRUE, TM__vGSJrCjWQr859bqRvctRIaA_59);
	arg = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, T2_, ((NI) -1));
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T7_;
		if (!((arg ? arg->Sup.len : 0) == 0)) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T7_[0] = copyString(tmp);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_146), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_64), T7_, 1);
	}
	goto LA3_;
	LA5_: ;
	{
		tyArray__Re75IspeoxXy2oCZHwcRrA T9_;
		nimZeroMem((void*)T9_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T9_[0] = copyString(arg);
		T9_[1] = copyString(tmp);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_147), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_148), T9_, 2);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, renderIndexTerm__9bVWgX0SWmhEi3eHlrcMD8g_9)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	NimStringDesc* refname;
	NimStringDesc* id;
	NimStringDesc* T8_;
	NI T9_;
	NimStringDesc* T10_;
	NimStringDesc* term;
	NimStringDesc* T11_;
	NimStringDesc* T12_;
	tyArray__Re75IspeoxXy2oCZHwcRrA T13_;
	refname = rstnodeToRefname__TOPoj9cIRh7GBTY6PKofpTQ(n);
	{
		NIM_BOOL T3_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasKey__aOI3jq5GpcZWNc9aNWt3Shw((*d).seenIndexTerms, refname);
		if (!T3_) goto LA4_;
		T6_ = (NI)0;
		T6_ = getOrDefault__B9adUqknApMjE6ou13bpO8A((*d).seenIndexTerms, refname);
		X5BX5Deq___HfxZpUfki4UkuP38hbwROA((&(*d).seenIndexTerms), refname, (NI)(T6_ + ((NI) 1)));
	}
	goto LA1_;
	LA4_: ;
	{
		X5BX5Deq___HfxZpUfki4UkuP38hbwROA((&(*d).seenIndexTerms), refname, ((NI) 1));
	}
	LA1_: ;
	T8_ = (NimStringDesc*)0;
	T9_ = (NI)0;
	T9_ = getOrDefault__B9adUqknApMjE6ou13bpO8A((*d).seenIndexTerms, refname);
	T10_ = (NimStringDesc*)0;
	T10_ = nimIntToStr(T9_);
	T8_ = rawNewString((refname ? refname->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + 1);
appendString(T8_, refname);
appendChar(T8_, 95);
appendString(T8_, T10_);
	id = T8_;
	term = ((NimStringDesc*) NIM_NIL);
	renderAux__9bVWgX0SWmhEi3eHlrcMD8g_2(d, n, (&term));
	T11_ = (NimStringDesc*)0;
	T11_ = nosextractFilename((*d).filename);
	T12_ = (NimStringDesc*)0;
	T12_ = noschangeFileExt(T11_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_15));
	setIndexTerm__59a2OAWg9c9azGlf9aSfMJTaLA(d, T12_, id, term, (*d).currentSection, ((NimStringDesc*) NIM_NIL));
	nimZeroMem((void*)T13_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
	T13_[0] = copyString(id);
	T13_[1] = copyString(term);
	dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_159), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_160), T13_, 2);
}
N_LIB_PRIVATE N_NIMCALL(void, renderSmiley__9bVWgX0SWmhEi3eHlrcMD8g_10)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
	tyArray__nHXaesL0DJZHyVS07ARPRA T1_;
	NimStringDesc* T2_;
	nimZeroMem((void*)T1_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
	T2_ = (NimStringDesc*)0;
	T2_ = getOrDefault__2a0cbxcfpWcXtK45m9bR5Kg((*d).config, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_165), ((NimStringDesc*) NIM_NIL));
	T1_[0] = nsuFormatSingleElem(T2_, (*n).text);
	dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_163), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_164), T1_, 1);
}
N_LIB_PRIVATE N_NIMCALL(void, renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* n, NimStringDesc** result) {
{	{
		if (!(n == ((tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 0):
	{
		renderAux__9bVWgX0SWmhEi3eHlrcMD8g_2(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 1):
	{
		renderHeadline__9bVWgX0SWmhEi3eHlrcMD8g_3(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 2):
	{
		renderOverline__9bVWgX0SWmhEi3eHlrcMD8g_4(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 3):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_22), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_23), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 4):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_24), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_25), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 5):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_26), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_27), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 6):
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 8):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_28), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_29), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 7):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_30), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_31), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 9):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_32), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_33), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 10):
	{
		renderAux__9bVWgX0SWmhEi3eHlrcMD8g_2(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 11):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_34), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_35), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 12):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_36), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_37), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 13):
	{
		NimStringDesc* tmp;
		tmp = ((NimStringDesc*) NIM_NIL);
		{
			NI i;
			NI colontmp_;
			NI T19_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T19_ = (NI)0;
			T19_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
			colontmp_ = (NI)(T19_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA21;
					i = res;
					renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[i], (&tmp));
					res += ((NI) 1);
				} LA21: ;
			}
		}
		{
			tyArray__nHXaesL0DJZHyVS07ARPRA T26_;
			if (!!(((tmp ? tmp->Sup.len : 0) == ((NI) 0)))) goto LA24_;
			nimZeroMem((void*)T26_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
			T26_[0] = copyString(tmp);
			dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_38), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_33), T26_, 1);
		}
		LA24_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 14):
	{
		renderField__9bVWgX0SWmhEi3eHlrcMD8g_5(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 15):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_65), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_66), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 16):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_67), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_68), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 51):
	{
		renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 2)], result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 17):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_69), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_70), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 18):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_63), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_64), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 19):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_71), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_72), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 23):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_73), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_68), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 20):
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 21):
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 22):
	{
		{
			if (!NIM_TRUE) goto LA38_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_74));
		}
		LA38_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 24):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_75), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_76), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 25):
	{
		{
			if (!NIM_TRUE) goto LA44_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_77));
		}
		LA44_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 26):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_78), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_25), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 27):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_79), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_80), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 28):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_81), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_82), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 29):
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 30):
	{
		NimStringDesc* T50_;
		NimStringDesc* T51_;
		T50_ = (NimStringDesc*)0;
		T51_ = (NimStringDesc*)0;
		T51_ = texColumns__6tXalH9aB8YkuyupI8riWjQ(n);
		T50_ = rawNewString((T51_ ? T51_->Sup.len : 0) + 63);
appendString(T50_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_84));
appendString(T50_, T51_);
appendString(T50_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_86));
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_83), T50_, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 31):
	{
		{
			NI T55_;
			T55_ = (NI)0;
			T55_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
			if (!(((NI) 1) <= T55_)) goto LA56_;
			{
				if (!((*d).target == ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1))) goto LA60_;
				renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 0)], result);
				{
					NI i_2;
					NI colontmp__2;
					NI T63_;
					NI res_2;
					i_2 = (NI)0;
					colontmp__2 = (NI)0;
					T63_ = (NI)0;
					T63_ = len__bM2v46TeKfDIrVkegSIy9ag(n);
					colontmp__2 = (NI)(T63_ - ((NI) 1));
					res_2 = ((NI) 1);
					{
						while (1) {
							if (!(res_2 <= colontmp__2)) goto LA65;
							i_2 = res_2;
							unsureAsgnRef((void**) (&(*result)), resizeString((*result), 3));
appendString((*result), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_87));
							renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[i_2], result);
							res_2 += ((NI) 1);
						} LA65: ;
					}
				}
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 10));
appendString((*result), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_88));
			}
			goto LA58_;
			LA60_: ;
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 4));
appendString((*result), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_89));
				renderAux__9bVWgX0SWmhEi3eHlrcMD8g_2(d, n, result);
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 6));
appendString((*result), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_90));
			}
			LA58_: ;
		}
		LA56_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 33):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_67), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_64), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 32):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_91), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_92), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 34):
	{
		{
			if (!NIM_TRUE) goto LA72_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_93));
		}
		LA72_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 35):
	{
		{
			if (!NIM_TRUE) goto LA77_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_94));
		}
		LA77_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 36):
	{
		{
			if (!NIM_TRUE) goto LA82_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_95));
		}
		LA82_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 39):
	{
		NimStringDesc* tmp_2;
		tyArray__Re75IspeoxXy2oCZHwcRrA T85_;
		tmp_2 = ((NimStringDesc*) NIM_NIL);
		renderAux__9bVWgX0SWmhEi3eHlrcMD8g_2(d, n, (&tmp_2));
		nimZeroMem((void*)T85_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T85_[0] = copyString(tmp_2);
		T85_[1] = rstnodeToRefname__TOPoj9cIRh7GBTY6PKofpTQ(n);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_96), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_97), T85_, 2);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 37):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_98), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_99), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 38):
	{
		NimStringDesc* tmp0;
		NimStringDesc* tmp1;
		tyArray__Re75IspeoxXy2oCZHwcRrA T88_;
		tmp0 = ((NimStringDesc*) NIM_NIL);
		tmp1 = ((NimStringDesc*) NIM_NIL);
		renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 0)], (&tmp0));
		renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 1)], (&tmp1));
		nimZeroMem((void*)T88_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T88_[0] = copyString(tmp0);
		T88_[1] = copyString(tmp1);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_100), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_101), T88_, 2);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 41):
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 42):
	{
		renderAux__9bVWgX0SWmhEi3eHlrcMD8g_2(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 48):
	{
		{
			NIM_BOOL T93_;
			tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* T95_;
			tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* T98_;
			NimStringDesc* T99_;
			T93_ = (NIM_BOOL)0;
			T93_ = !(((*d).target == ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1)));
			if (!(T93_)) goto LA94_;
			T95_ = (tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg*)0;
			T95_ = lastSon__0dL43t7uo9b9ast8lG3CHj1A(n);
			T93_ = !((T95_ == 0));
			LA94_: ;
			if (!T93_) goto LA96_;
			T98_ = (tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg*)0;
			T98_ = lastSon__0dL43t7uo9b9ast8lG3CHj1A(n);
			T99_ = (NimStringDesc*)0;
			T99_ = addNodes__TOPoj9cIRh7GBTY6PKofpTQ_2(T98_);
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T99_ ? T99_->Sup.len : 0) + 0));
appendString((*result), T99_);
		}
		LA96_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 49):
	{
		{
			NIM_BOOL T103_;
			tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* T105_;
			tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg* T108_;
			NimStringDesc* T109_;
			T103_ = (NIM_BOOL)0;
			T103_ = ((*d).target == ((tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw) 1));
			if (!(T103_)) goto LA104_;
			T105_ = (tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg*)0;
			T105_ = lastSon__0dL43t7uo9b9ast8lG3CHj1A(n);
			T103_ = !((T105_ == 0));
			LA104_: ;
			if (!T103_) goto LA106_;
			T108_ = (tyObject_RstNode__CjRS2xrmuD58kdGedE3yyg*)0;
			T108_ = lastSon__0dL43t7uo9b9ast8lG3CHj1A(n);
			T109_ = (NimStringDesc*)0;
			T109_ = addNodes__TOPoj9cIRh7GBTY6PKofpTQ_2(T108_);
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T109_ ? T109_->Sup.len : 0) + 0));
appendString((*result), T109_);
		}
		LA106_: ;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 45):
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 46):
	{
		renderImage__9bVWgX0SWmhEi3eHlrcMD8g_6(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 47):
	{
		renderCodeBlock__9bVWgX0SWmhEi3eHlrcMD8g_7(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 50):
	{
		renderContainer__9bVWgX0SWmhEi3eHlrcMD8g_8(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 62):
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 52):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_149), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_149), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 40):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) NIM_NIL), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 53):
	{
		NimStringDesc* tmp0_2;
		NimStringDesc* tmp1_2;
		tyArray__Re75IspeoxXy2oCZHwcRrA T116_;
		tmp0_2 = ((NimStringDesc*) NIM_NIL);
		tmp1_2 = ((NimStringDesc*) NIM_NIL);
		renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 0)], (&tmp0_2));
		renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 1)], (&tmp1_2));
		nimZeroMem((void*)T116_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T116_[0] = copyString(tmp0_2);
		T116_[1] = copyString(tmp1_2);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_143), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_144), T116_, 2);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 54):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_150), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_151), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 55):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_152), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_153), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 57):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_154), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_155), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 58):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_156), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_92), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 59):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_157), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_158), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 56):
	{
		renderIndexTerm__9bVWgX0SWmhEi3eHlrcMD8g_9(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 61):
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 60):
	{
		renderAux__zVlkCIHCkLQV6Nm9a32Dl4w(d, n, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_161), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_162), result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 63):
	{
		renderSmiley__9bVWgX0SWmhEi3eHlrcMD8g_10(d, n, result);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 64):
	{
		NimStringDesc* T126_;
		T126_ = (NimStringDesc*)0;
		T126_ = esc__Tgq9c7oEp9c4LGF7SoXGTh8w((*d).target, (*n).text, ((NI) -1));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T126_ ? T126_->Sup.len : 0) + 0));
appendString((*result), T126_);
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 44):
	{
		(*d).hasToc = NIM_TRUE;
	}
	break;
	case ((tyEnum_RstNodeKind__Q1jM9a8f0MKlvbLZpipB3qg) 43):
	{
		unsureAsgnRef((void**) (&(*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 1))- 0]), ((NimStringDesc*) NIM_NIL));
		renderRstToOut__9bVWgX0SWmhEi3eHlrcMD8g(d, (*n).sons->data[((NI) 0)], (&(*d).meta[(((tyEnum_MetaEnum__HD14RiMbGt9aRJpE4GI3T9cg) 1))- 0]));
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, prettyLink__wqjxtEP9aQIQkUTKzbjpNkQ)(NimStringDesc* file) {
	NimStringDesc* result;
	NimStringDesc* T1_;
	result = (NimStringDesc*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = noschangeFileExt(file, ((NimStringDesc*) NIM_NIL));
	result = nsuReplaceStr(T1_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_166), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_167));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, renderTocEntry__swtKJhB7QpFMqLr9cuEw1JQ)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw e, NimStringDesc** result) {
	tyArray__Re75IspeoxXy2oCZHwcRrA T1_;
	nimZeroMem((void*)T1_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
	T1_[0] = copyString(e.refname);
	T1_[1] = copyString(e.header);
	dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_168), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_169), T1_, 2);
}
N_LIB_PRIVATE N_NIMCALL(void, renderTocEntries__lXmEBiWEMeUQB9cTe0c6XoQ)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* d, NI* j, NI lvl, NimStringDesc** result) {
	NimStringDesc* tmp;
	tmp = ((NimStringDesc*) NIM_NIL);
	{
		while (1) {
			NI T3_;
			NI a;
			T3_ = (((*d).tocPart ? (*d).tocPart->Sup.len : 0)-1);
			if (!((*j) <= T3_)) goto LA2;
			a = ((*(*d).tocPart->data[(*j)].n).level > 0? ((*(*d).tocPart->data[(*j)].n).level) : -((*(*d).tocPart->data[(*j)].n).level));
			{
				if (!(a == lvl)) goto LA6_;
				renderTocEntry__swtKJhB7QpFMqLr9cuEw1JQ(d, (*d).tocPart->data[(*j)], (&tmp));
				(*j) += ((NI) 1);
			}
			goto LA4_;
			LA6_: ;
			{
				if (!(lvl < a)) goto LA9_;
				renderTocEntries__lXmEBiWEMeUQB9cTe0c6XoQ(d, j, a, (&tmp));
			}
			goto LA4_;
			LA9_: ;
			{
				goto LA1;
			}
			LA4_: ;
		} LA2: ;
	} LA1: ;
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T16_;
		if (!(((NI) 1) < lvl)) goto LA14_;
		nimZeroMem((void*)T16_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T16_[0] = copyString(tmp);
		dispA__3GZ9bx75poGreVGlawa9aBDg((*d).target, result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_170), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_171), T16_, 1);
	}
	goto LA12_;
	LA14_: ;
	{
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (tmp ? tmp->Sup.len : 0) + 0));
appendString((*result), tmp);
	}
	LA12_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, writeIndexFile__XQaohh8v9brpMTzazPqfP6g)(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg* g, NimStringDesc* outfile) {
	{
		if (!(((NI) 0) < ((*g).theIndex ? (*g).theIndex->Sup.len : 0))) goto LA3_;
		writeFile__D6Pj9c29aCLEJP9beOWa08HYA(outfile, (*g).theIndex);
	}
	LA3_: ;
}
static N_NIMCALL(void, Marker_tySequence__5PunAJrNQYcB8dF0jau3pQ)(void* p, NI op) {
	tySequence__5PunAJrNQYcB8dF0jau3pQ* a;
	NI T1_;
	a = (tySequence__5PunAJrNQYcB8dF0jau3pQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].keyword, op);
	nimGCvisit((void*)a->data[T1_].link, op);
	nimGCvisit((void*)a->data[T1_].linkTitle, op);
	nimGCvisit((void*)a->data[T1_].linkDesc, op);
	}
}
static N_INLINE(NimStringDesc*, pop__uJq9ayjszaqUcdxv3Rz6G9bQsystem)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** s) {
	NimStringDesc* result;
	NI L;
	NI T1_;
	result = (NimStringDesc*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	result = copyString((*s)->data[L]);
	unsureAsgnRef((void**) (&(*s)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) setLengthSeqV2(&((*s))->Sup, (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) (L))));
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == ((NimStringDesc*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).prev = excHandler__rqLlY5bs9atDw2OXYqJEn5g;
	excHandler__rqLlY5bs9atDw2OXYqJEn5g = s;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDocumentationTitle__59alvxmcYHb5hQOcj69cvGPQ)(NimStringDesc* hyperlink) {
	NIM_BOOL result;
	NI T1_;
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = nsuFindChar(hyperlink, 35, ((NI) 0), ((NI) 0));
	result = (T1_ < ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, unquoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag_2)(NimStringDesc* text) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = multiReplace__bE9ctzdR0d2caO0lr9a9b8Jng(text, TM__vGSJrCjWQr859bqRvctRIaA_177, 3);
	return result;
}
static N_INLINE(void, popSafePoint)(void) {
	excHandler__rqLlY5bs9atDw2OXYqJEn5g = (*excHandler__rqLlY5bs9atDw2OXYqJEn5g).prev;
}
static N_INLINE(NI, emarkamp___Bho3MSI0G3qbEZZcjdigaQhashes)(NI h, NI val) {
	NI result;
	NU h_2;
	NU val_2;
	NU res;
	result = (NI)0;
	h_2 = ((NU) (h));
	val_2 = ((NU) (val));
	res = (NU)((NU64)(h_2) + (NU64)(val_2));
	res = (NU)((NU64)(res) + (NU64)((NU)((NU64)(res) << (NU64)(((NI) 10)))));
	res = (NU)(res ^ (NU)((NU64)(res) >> (NU64)(((NI) 6))));
	result = ((NI) (res));
	return result;
}
static N_INLINE(NI, emarkdollar___1VtZEcAzbCzFoJje5ex9aKwhashes)(NI h) {
	NI result;
	NU h_2;
	NU res;
	result = (NI)0;
	h_2 = ((NU) (h));
	res = (NU)((NU64)(h_2) + (NU64)((NU)((NU64)(h_2) << (NU64)(((NI) 3)))));
	res = (NU)(res ^ (NU)((NU64)(res) >> (NU64)(((NI) 11))));
	res = (NU)((NU64)(res) + (NU64)((NU)((NU64)(res) << (NU64)(((NI) 15)))));
	result = ((NI) (res));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__qsZ1IgNQkpu0AbMu0eEzCQ)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* x) {
	NI result;
	NI T1_;
	NI T2_;
	NI T3_;
	NI T4_;
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__6PCYkKlCNhq9cnRLnqWKkwQ((*x).keyword);
	T2_ = (NI)0;
	T2_ = hash__6PCYkKlCNhq9cnRLnqWKkwQ((*x).link);
	result = emarkamp___Bho3MSI0G3qbEZZcjdigaQhashes(T1_, T2_);
	T3_ = (NI)0;
	T3_ = hash__6PCYkKlCNhq9cnRLnqWKkwQ((*x).linkTitle);
	result = emarkamp___Bho3MSI0G3qbEZZcjdigaQhashes(result, T3_);
	T4_ = (NI)0;
	T4_ = hash__6PCYkKlCNhq9cnRLnqWKkwQ((*x).linkDesc);
	result = emarkamp___Bho3MSI0G3qbEZZcjdigaQhashes(result, T4_);
	result = emarkdollar___1VtZEcAzbCzFoJje5ex9aKwhashes(result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, readIndexDir__tb68DrT6xzF5ZfmNFMFm2Q)(NimStringDesc* dir, tyTuple__19af1Yi5wzYJHEoosvtCJdQ* Result) {
	NI L;
	tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA T236_;
	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).Field1, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).Field2.data, NIM_NIL);
	(*Result).Field2.counter = 0;
	unsureAsgnRef((void**) (&(*Result).Field0), NIM_NIL);
	initTable__I9aPNnheGFL82i9cc5xQlxyA(((NI) 32), (&(*Result).Field2));
	unsureAsgnRef((void**) (&(*Result).Field1), (tySequence__5PunAJrNQYcB8dF0jau3pQ*) newSeq((&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) 15000)));
	unsureAsgnRef((void**) (&(*Result).Field1), (tySequence__5PunAJrNQYcB8dF0jau3pQ*) setLengthSeqV2(&((*Result).Field1)->Sup, (&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) 0)));
	L = ((NI) 0);
	{
		NimStringDesc* path;
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* stack;
		NIM_BOOL checkDir;
		path = (NimStringDesc*)0;
		stack = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTI__sM4lkSb7zS6F7OVMvW9cffQ_), 1);
		asgnRef((void**) (&stack->data[0]), ((NimStringDesc*) NIM_NIL));
		checkDir = NIM_FALSE;
		{
			while (1) {
				NI T4_;
				NimStringDesc* d;
				T4_ = (stack ? stack->Sup.len : 0);
				if (!(((NI) 0) < T4_)) goto LA3;
				d = pop__uJq9ayjszaqUcdxv3Rz6G9bQsystem((&stack));
				{
					tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg k;
					NimStringDesc* p;
					NimStringDesc* colontmp_;
					DIR* d_2;
					k = (tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg)0;
					p = (NimStringDesc*)0;
					colontmp_ = (NimStringDesc*)0;
					colontmp_ = slash___gEyhbzZ1UcxyenWRLJRXNQ(dir, d);
					d_2 = opendir(nimToCStringConv(colontmp_));
					{
						if (!(d_2 == ((DIR*) NIM_NIL))) goto LA8_;
						{
							NI32 T14_;
							if (!checkDir) goto LA12_;
							T14_ = (NI32)0;
							T14_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
							raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T14_, colontmp_);
						}
						LA12_: ;
					}
					goto LA6_;
					LA8_: ;
					{
						TSafePoint TM__vGSJrCjWQr859bqRvctRIaA_173;
						pushSafePoint(&TM__vGSJrCjWQr859bqRvctRIaA_173);
						TM__vGSJrCjWQr859bqRvctRIaA_173.status = setjmp(TM__vGSJrCjWQr859bqRvctRIaA_173.context);
						if (TM__vGSJrCjWQr859bqRvctRIaA_173.status == 0) {
						{
							while (1) {
								{
									struct dirent* x;
									NimStringDesc* y;
									x = readdir(d_2);
									{
										if (!(x == ((struct dirent*) NIM_NIL))) goto LA21_;
										goto LA16;
									}
									LA21_: ;
									y = cstrToNimstr(((NCSTRING) ((*x).d_name)));
									{
										NIM_BOOL T25_;
										struct stat s;
										NimStringDesc* path_2;
										tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg k_2;
										NimStringDesc* rel_2;
										T25_ = (NIM_BOOL)0;
										T25_ = !(eqStrings(y, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_174)));
										if (!(T25_)) goto LA26_;
										T25_ = !(eqStrings(y, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_167)));
										LA26_: ;
										if (!T25_) goto LA27_;
										nimZeroMem((void*)(&s), sizeof(struct stat));
										path_2 = slash___gEyhbzZ1UcxyenWRLJRXNQ(colontmp_, y);
										{
											if (!NIM_FALSE) goto LA31_;
											y = copyString(path_2);
										}
										LA31_: ;
										k_2 = ((tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg) 0);
										{
											NimStringDesc* rel;
											if (!!(((*x).d_type == ((NI8) 0)))) goto LA35_;
											{
												if (!((*x).d_type == ((NI8) 4))) goto LA39_;
												k_2 = ((tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg) 2);
											}
											LA39_: ;
											{
												if (!((*x).d_type == ((NI8) 10))) goto LA43_;
												{
													NIM_BOOL T47_;
													T47_ = (NIM_BOOL)0;
													T47_ = nosdirExists(path_2);
													if (!T47_) goto LA48_;
													k_2 = ((tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg) 3);
												}
												goto LA45_;
												LA48_: ;
												{
													k_2 = ((tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg) 1);
												}
												LA45_: ;
											}
											LA43_: ;
											k = k_2;
											p = y;
											rel = slash___gEyhbzZ1UcxyenWRLJRXNQ(d, p);
											{
												NIM_BOOL T53_;
												NI T57_;
												NimStringDesc* T58_;
												T53_ = (NIM_BOOL)0;
												T53_ = ((12 &((NU8)1<<((NU)(k)&7U)))!=0);
												if (!(T53_)) goto LA54_;
												T53_ = ((4 &((NU8)1<<((NU)(k)&7U)))!=0);
												LA54_: ;
												if (!T53_) goto LA55_;
												stack = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(stack), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
												T57_ = stack->Sup.len++;
												T58_ = (NimStringDesc*)0;
												T58_ = stack->data[T57_]; stack->data[T57_] = copyStringRC1(rel);
												if (T58_) nimGCunrefNoCycle(T58_);
											}
											LA55_: ;
											{
												if (!((1 &((NU8)1<<((NU)(k)&7U)))!=0)) goto LA61_;
												{
													if (!NIM_FALSE) goto LA65_;
													path = rel;
												}
												goto LA63_;
												LA65_: ;
												{
													path = slash___gEyhbzZ1UcxyenWRLJRXNQ(dir, rel);
												}
												LA63_: ;
												{
													NIM_BOOL T70_;
													tySequence__5PunAJrNQYcB8dF0jau3pQ* fileEntries;
													tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg title;
													NI f;
													T70_ = (NIM_BOOL)0;
													T70_ = nsuEndsWith(path, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_175));
													if (!T70_) goto LA71_;
													fileEntries = (tySequence__5PunAJrNQYcB8dF0jau3pQ*)0;
													nimZeroMem((void*)(&title), sizeof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg));
													f = ((NI) 0);
													fileEntries = (tySequence__5PunAJrNQYcB8dF0jau3pQ*) newSeq((&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) 500));
													fileEntries = (tySequence__5PunAJrNQYcB8dF0jau3pQ*) setLengthSeqV2(&(fileEntries)->Sup, (&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) 0));
													{
														NimStringDesc* line;
														FILE* f_2;
														TSafePoint TM__vGSJrCjWQr859bqRvctRIaA_176;
														NimStringDesc* res;
														line = (NimStringDesc*)0;
														f_2 = open__cb1k9citqyT9a9brBSJAz8pkg(path, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0), ((NI) 8000));
														pushSafePoint(&TM__vGSJrCjWQr859bqRvctRIaA_176);
														TM__vGSJrCjWQr859bqRvctRIaA_176.status = setjmp(TM__vGSJrCjWQr859bqRvctRIaA_176.context);
														if (TM__vGSJrCjWQr859bqRvctRIaA_176.status == 0) {
														res = rawNewString(((NI) 80));
														{
															while (1) {
																NIM_BOOL T76_;
																T76_ = (NIM_BOOL)0;
																T76_ = readLine__FbqDHP9bu7nqCh9c04dnSOxw(f_2, (&res));
																if (!T76_) goto LA75;
																line = res;
																{
																	NI s_2;
																	s_2 = nsuFindChar(line, 9, ((NI) 0), ((NI) 0));
																	{
																		if (!(s_2 < ((NI) 0))) goto LA80_;
																		goto LA77;
																	}
																	LA80_: ;
																	fileEntries = (tySequence__5PunAJrNQYcB8dF0jau3pQ*) setLengthSeqV2(&(fileEntries)->Sup, (&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) ((NI)(f + ((NI) 1)))));
																	asgnRef((void**) (&fileEntries->data[f].keyword), substr__2yh9cer0ymNRHlOOg8P7IuA(line, ((NI) 0), (NI)(s_2 - ((NI) 1))));
																	asgnRef((void**) (&fileEntries->data[f].link), substr__iGg0RIKceRvsmvq8FUHOEw(line, (NI)(s_2 + ((NI) 1))));
																	{
																		NIM_BOOL T84_;
																		T84_ = (NIM_BOOL)0;
																		T84_ = ((title.keyword ? title.keyword->Sup.len : 0) == ((NI) 0));
																		if (!(T84_)) goto LA85_;
																		T84_ = isDocumentationTitle__59alvxmcYHb5hQOcj69cvGPQ(fileEntries->data[f].link);
																		LA85_: ;
																		if (!T84_) goto LA86_;
																		title.keyword = copyString(fileEntries->data[f].keyword);
																		title.link = copyString(fileEntries->data[f].link);
																	}
																	LA86_: ;
																	{
																		NI T90_;
																		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCols;
																		NimStringDesc* T93_;
																		T90_ = (NI)0;
																		T90_ = nsuFindChar(fileEntries->data[f].link, 9, ((NI) 0), ((NI) 0));
																		if (!(((NI) 0) < T90_)) goto LA91_;
																		extraCols = nsuSplitChar(fileEntries->data[f].link, 9, ((NI) -1));
																		T93_ = (NimStringDesc*)0;
																		T93_ = fileEntries->data[f].link; fileEntries->data[f].link = copyStringRC1(extraCols->data[((NI) 0)]);
																		if (T93_) nimGCunrefNoCycle(T93_);
																		asgnRef((void**) (&fileEntries->data[f].linkTitle), unquoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag_2(extraCols->data[((NI) 1)]));
																		asgnRef((void**) (&fileEntries->data[f].linkDesc), unquoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag_2(extraCols->data[((NI) 2)]));
																	}
																	goto LA88_;
																	LA91_: ;
																	{
																		asgnRef((void**) (&fileEntries->data[f].linkTitle), ((NimStringDesc*) NIM_NIL));
																		asgnRef((void**) (&fileEntries->data[f].linkDesc), ((NimStringDesc*) NIM_NIL));
																	}
																	LA88_: ;
																	f += ((NI) 1);
																} LA77: ;
															} LA75: ;
														}
														popSafePoint();
														}
														else {
															popSafePoint();
														}
														{
															close__fU6ZlJAtQ9bre04EDZLdGsA_3(f_2);
															if (TM__vGSJrCjWQr859bqRvctRIaA_176.status != 0) nimLeaveFinally();
														}
														if (TM__vGSJrCjWQr859bqRvctRIaA_176.status != 0) reraiseException();
													}
													{
														if (!((title.keyword ? title.keyword->Sup.len : 0) == ((NI) 0))) goto LA99_;
														{
															NI i;
															NI i_2;
															i = (NI)0;
															i_2 = ((NI) 0);
															{
																while (1) {
																	if (!(i_2 < f)) goto LA103;
																	i = i_2;
																	{
																		NimStringDesc* toc;
																		NimStringDesc* T111_;
																		NimStringDesc* T112_;
																		NimStringDesc* T113_;
																		NimStringDesc* T114_;
																		toc = fileEntries->data[i].linkTitle;
																		{
																			NIM_BOOL T107_;
																			T107_ = (NIM_BOOL)0;
																			T107_ = (((NI) 0) < (toc ? toc->Sup.len : 0));
																			if (!(T107_)) goto LA108_;
																			T107_ = ((NU8)(toc->data[((NI) 0)]) == (NU8)(32));
																			LA108_: ;
																			if (!T107_) goto LA109_;
																			goto LA104;
																		}
																		LA109_: ;
																		unsureAsgnRef((void**) (&(*Result).Field1), (tySequence__5PunAJrNQYcB8dF0jau3pQ*) setLengthSeqV2(&((*Result).Field1)->Sup, (&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) ((NI)(L + ((NI) 1))))));
																		T111_ = (NimStringDesc*)0;
																		T111_ = (*Result).Field1->data[L].keyword; (*Result).Field1->data[L].keyword = copyStringRC1(fileEntries->data[i].keyword);
																		if (T111_) nimGCunrefNoCycle(T111_);
																		T112_ = (NimStringDesc*)0;
																		T112_ = (*Result).Field1->data[L].link; (*Result).Field1->data[L].link = copyStringRC1(fileEntries->data[i].link);
																		if (T112_) nimGCunrefNoCycle(T112_);
																		T113_ = (NimStringDesc*)0;
																		T113_ = (*Result).Field1->data[L].linkTitle; (*Result).Field1->data[L].linkTitle = copyStringRC1(fileEntries->data[i].linkTitle);
																		if (T113_) nimGCunrefNoCycle(T113_);
																		T114_ = (NimStringDesc*)0;
																		T114_ = (*Result).Field1->data[L].linkDesc; (*Result).Field1->data[L].linkDesc = copyStringRC1(fileEntries->data[i].linkDesc);
																		if (T114_) nimGCunrefNoCycle(T114_);
																		L += ((NI) 1);
																	} LA104: ;
																	i_2 += ((NI) 1);
																} LA103: ;
															}
														}
														{
															NI T117_;
															NimStringDesc* x_2;
															NI i_3;
															T117_ = (fileEntries ? fileEntries->Sup.len : 0);
															if (!(((NI) 0) < T117_)) goto LA118_;
															x_2 = copyString(fileEntries->data[((NI) 0)].link);
															i_3 = nsuFindChar(x_2, 35, ((NI) 0), ((NI) 0));
															{
																if (!(((NI) 0) < i_3)) goto LA122_;
																x_2 = substr__2yh9cer0ymNRHlOOg8P7IuA(x_2, ((NI) 0), (NI)(i_3 - ((NI) 1)));
															}
															LA122_: ;
															{
																NimStringDesc* T128_;
																NI T129_;
																NimStringDesc* T130_;
																if (!!((i_3 == ((NI) 0)))) goto LA126_;
																T128_ = (NimStringDesc*)0;
																T128_ = noschangeFileExt(x_2, ((NimStringDesc*) NIM_NIL));
																unsureAsgnRef((void**) (&(*Result).Field0), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*Result).Field0), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_)));
																T129_ = (*Result).Field0->Sup.len++;
																T130_ = (NimStringDesc*)0;
																T130_ = (*Result).Field0->data[T129_]; (*Result).Field0->data[T129_] = copyStringRC1(T128_);
																if (T130_) nimGCunrefNoCycle(T130_);
															}
															LA126_: ;
														}
														LA118_: ;
													}
													goto LA97_;
													LA99_: ;
													{
														NimStringDesc* T132_;
														NI T133_;
														NimStringDesc* T134_;
														T132_ = (NimStringDesc*)0;
														T133_ = (NI)0;
														T133_ = len__XkMbL52cqyBSUFesQIX9bTA((*Result).Field2);
														T134_ = (NimStringDesc*)0;
														T134_ = nimIntToStr(T133_);
														T132_ = rawNewString((T134_ ? T134_->Sup.len : 0) + 8);
appendString(T132_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_180));
appendString(T132_, T134_);
														title.linkTitle = T132_;
														X5BX5Deq___7WMJi0xLR1wauzIPHncLMA((&(*Result).Field2), (&title), fileEntries);
													}
													LA97_: ;
												}
												LA71_: ;
											}
											LA61_: ;
											goto LA18;
										}
										LA35_: ;
										{
											int T137_;
											T137_ = (int)0;
											T137_ = lstat(nimToCStringConv(path_2), (&s));
											if (!(T137_ < ((NI32) 0))) goto LA138_;
											goto LA16;
										}
										LA138_: ;
										{
											NIM_BOOL T142_;
											T142_ = (NIM_BOOL)0;
											T142_ = S_ISDIR(s.st_mode);
											if (!T142_) goto LA143_;
											k_2 = ((tyEnum_PathComponent__9c1SIU9cO1wHcl09b703A9cDrg) 2);
										}
										goto LA140_;
										LA143_: ;
										{
											NIM_BOOL T146_;
											T146_ = (NIM_BOOL)0;
											T146_ = S_ISLNK(s.st_mode);
											if (!T146_) goto LA147_;
											k_2 = getSymlinkFileKind__wTnLPNAWjgwVnuiJ9ax0ZGQ(path_2);
										}
										goto LA140_;
										LA147_: ;
										LA140_: ;
										k = k_2;
										p = y;
										rel_2 = slash___gEyhbzZ1UcxyenWRLJRXNQ(d, p);
										{
											NIM_BOOL T151_;
											NI T155_;
											NimStringDesc* T156_;
											T151_ = (NIM_BOOL)0;
											T151_ = ((12 &((NU8)1<<((NU)(k)&7U)))!=0);
											if (!(T151_)) goto LA152_;
											T151_ = ((4 &((NU8)1<<((NU)(k)&7U)))!=0);
											LA152_: ;
											if (!T151_) goto LA153_;
											stack = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(stack), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
											T155_ = stack->Sup.len++;
											T156_ = (NimStringDesc*)0;
											T156_ = stack->data[T155_]; stack->data[T155_] = copyStringRC1(rel_2);
											if (T156_) nimGCunrefNoCycle(T156_);
										}
										LA153_: ;
										{
											if (!((1 &((NU8)1<<((NU)(k)&7U)))!=0)) goto LA159_;
											{
												if (!NIM_FALSE) goto LA163_;
												path = rel_2;
											}
											goto LA161_;
											LA163_: ;
											{
												path = slash___gEyhbzZ1UcxyenWRLJRXNQ(dir, rel_2);
											}
											LA161_: ;
											{
												NIM_BOOL T168_;
												tySequence__5PunAJrNQYcB8dF0jau3pQ* fileEntries_2;
												tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg title_2;
												NI f_3;
												T168_ = (NIM_BOOL)0;
												T168_ = nsuEndsWith(path, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_175));
												if (!T168_) goto LA169_;
												fileEntries_2 = (tySequence__5PunAJrNQYcB8dF0jau3pQ*)0;
												nimZeroMem((void*)(&title_2), sizeof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg));
												f_3 = ((NI) 0);
												fileEntries_2 = (tySequence__5PunAJrNQYcB8dF0jau3pQ*) newSeq((&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) 500));
												fileEntries_2 = (tySequence__5PunAJrNQYcB8dF0jau3pQ*) setLengthSeqV2(&(fileEntries_2)->Sup, (&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) 0));
												{
													NimStringDesc* line_2;
													FILE* f_4;
													TSafePoint TM__vGSJrCjWQr859bqRvctRIaA_181;
													NimStringDesc* res_2;
													line_2 = (NimStringDesc*)0;
													f_4 = open__cb1k9citqyT9a9brBSJAz8pkg(path, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0), ((NI) 8000));
													pushSafePoint(&TM__vGSJrCjWQr859bqRvctRIaA_181);
													TM__vGSJrCjWQr859bqRvctRIaA_181.status = setjmp(TM__vGSJrCjWQr859bqRvctRIaA_181.context);
													if (TM__vGSJrCjWQr859bqRvctRIaA_181.status == 0) {
													res_2 = rawNewString(((NI) 80));
													{
														while (1) {
															NIM_BOOL T174_;
															T174_ = (NIM_BOOL)0;
															T174_ = readLine__FbqDHP9bu7nqCh9c04dnSOxw(f_4, (&res_2));
															if (!T174_) goto LA173;
															line_2 = res_2;
															{
																NI s_3;
																s_3 = nsuFindChar(line_2, 9, ((NI) 0), ((NI) 0));
																{
																	if (!(s_3 < ((NI) 0))) goto LA178_;
																	goto LA175;
																}
																LA178_: ;
																fileEntries_2 = (tySequence__5PunAJrNQYcB8dF0jau3pQ*) setLengthSeqV2(&(fileEntries_2)->Sup, (&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) ((NI)(f_3 + ((NI) 1)))));
																asgnRef((void**) (&fileEntries_2->data[f_3].keyword), substr__2yh9cer0ymNRHlOOg8P7IuA(line_2, ((NI) 0), (NI)(s_3 - ((NI) 1))));
																asgnRef((void**) (&fileEntries_2->data[f_3].link), substr__iGg0RIKceRvsmvq8FUHOEw(line_2, (NI)(s_3 + ((NI) 1))));
																{
																	NIM_BOOL T182_;
																	T182_ = (NIM_BOOL)0;
																	T182_ = ((title_2.keyword ? title_2.keyword->Sup.len : 0) == ((NI) 0));
																	if (!(T182_)) goto LA183_;
																	T182_ = isDocumentationTitle__59alvxmcYHb5hQOcj69cvGPQ(fileEntries_2->data[f_3].link);
																	LA183_: ;
																	if (!T182_) goto LA184_;
																	title_2.keyword = copyString(fileEntries_2->data[f_3].keyword);
																	title_2.link = copyString(fileEntries_2->data[f_3].link);
																}
																LA184_: ;
																{
																	NI T188_;
																	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCols_2;
																	NimStringDesc* T191_;
																	T188_ = (NI)0;
																	T188_ = nsuFindChar(fileEntries_2->data[f_3].link, 9, ((NI) 0), ((NI) 0));
																	if (!(((NI) 0) < T188_)) goto LA189_;
																	extraCols_2 = nsuSplitChar(fileEntries_2->data[f_3].link, 9, ((NI) -1));
																	T191_ = (NimStringDesc*)0;
																	T191_ = fileEntries_2->data[f_3].link; fileEntries_2->data[f_3].link = copyStringRC1(extraCols_2->data[((NI) 0)]);
																	if (T191_) nimGCunrefNoCycle(T191_);
																	asgnRef((void**) (&fileEntries_2->data[f_3].linkTitle), unquoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag_2(extraCols_2->data[((NI) 1)]));
																	asgnRef((void**) (&fileEntries_2->data[f_3].linkDesc), unquoteIndexColumn__Hchmde6CO0ano09cqrnA4Ag_2(extraCols_2->data[((NI) 2)]));
																}
																goto LA186_;
																LA189_: ;
																{
																	asgnRef((void**) (&fileEntries_2->data[f_3].linkTitle), ((NimStringDesc*) NIM_NIL));
																	asgnRef((void**) (&fileEntries_2->data[f_3].linkDesc), ((NimStringDesc*) NIM_NIL));
																}
																LA186_: ;
																f_3 += ((NI) 1);
															} LA175: ;
														} LA173: ;
													}
													popSafePoint();
													}
													else {
														popSafePoint();
													}
													{
														close__fU6ZlJAtQ9bre04EDZLdGsA_3(f_4);
														if (TM__vGSJrCjWQr859bqRvctRIaA_181.status != 0) nimLeaveFinally();
													}
													if (TM__vGSJrCjWQr859bqRvctRIaA_181.status != 0) reraiseException();
												}
												{
													if (!((title_2.keyword ? title_2.keyword->Sup.len : 0) == ((NI) 0))) goto LA197_;
													{
														NI i_4;
														NI i_5;
														i_4 = (NI)0;
														i_5 = ((NI) 0);
														{
															while (1) {
																if (!(i_5 < f_3)) goto LA201;
																i_4 = i_5;
																{
																	NimStringDesc* toc_2;
																	NimStringDesc* T209_;
																	NimStringDesc* T210_;
																	NimStringDesc* T211_;
																	NimStringDesc* T212_;
																	toc_2 = fileEntries_2->data[i_4].linkTitle;
																	{
																		NIM_BOOL T205_;
																		T205_ = (NIM_BOOL)0;
																		T205_ = (((NI) 0) < (toc_2 ? toc_2->Sup.len : 0));
																		if (!(T205_)) goto LA206_;
																		T205_ = ((NU8)(toc_2->data[((NI) 0)]) == (NU8)(32));
																		LA206_: ;
																		if (!T205_) goto LA207_;
																		goto LA202;
																	}
																	LA207_: ;
																	unsureAsgnRef((void**) (&(*Result).Field1), (tySequence__5PunAJrNQYcB8dF0jau3pQ*) setLengthSeqV2(&((*Result).Field1)->Sup, (&NTI__5PunAJrNQYcB8dF0jau3pQ_), ((NI) ((NI)(L + ((NI) 1))))));
																	T209_ = (NimStringDesc*)0;
																	T209_ = (*Result).Field1->data[L].keyword; (*Result).Field1->data[L].keyword = copyStringRC1(fileEntries_2->data[i_4].keyword);
																	if (T209_) nimGCunrefNoCycle(T209_);
																	T210_ = (NimStringDesc*)0;
																	T210_ = (*Result).Field1->data[L].link; (*Result).Field1->data[L].link = copyStringRC1(fileEntries_2->data[i_4].link);
																	if (T210_) nimGCunrefNoCycle(T210_);
																	T211_ = (NimStringDesc*)0;
																	T211_ = (*Result).Field1->data[L].linkTitle; (*Result).Field1->data[L].linkTitle = copyStringRC1(fileEntries_2->data[i_4].linkTitle);
																	if (T211_) nimGCunrefNoCycle(T211_);
																	T212_ = (NimStringDesc*)0;
																	T212_ = (*Result).Field1->data[L].linkDesc; (*Result).Field1->data[L].linkDesc = copyStringRC1(fileEntries_2->data[i_4].linkDesc);
																	if (T212_) nimGCunrefNoCycle(T212_);
																	L += ((NI) 1);
																} LA202: ;
																i_5 += ((NI) 1);
															} LA201: ;
														}
													}
													{
														NI T215_;
														NimStringDesc* x_3;
														NI i_6;
														T215_ = (fileEntries_2 ? fileEntries_2->Sup.len : 0);
														if (!(((NI) 0) < T215_)) goto LA216_;
														x_3 = copyString(fileEntries_2->data[((NI) 0)].link);
														i_6 = nsuFindChar(x_3, 35, ((NI) 0), ((NI) 0));
														{
															if (!(((NI) 0) < i_6)) goto LA220_;
															x_3 = substr__2yh9cer0ymNRHlOOg8P7IuA(x_3, ((NI) 0), (NI)(i_6 - ((NI) 1)));
														}
														LA220_: ;
														{
															NimStringDesc* T226_;
															NI T227_;
															NimStringDesc* T228_;
															if (!!((i_6 == ((NI) 0)))) goto LA224_;
															T226_ = (NimStringDesc*)0;
															T226_ = noschangeFileExt(x_3, ((NimStringDesc*) NIM_NIL));
															unsureAsgnRef((void**) (&(*Result).Field0), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*Result).Field0), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_)));
															T227_ = (*Result).Field0->Sup.len++;
															T228_ = (NimStringDesc*)0;
															T228_ = (*Result).Field0->data[T227_]; (*Result).Field0->data[T227_] = copyStringRC1(T226_);
															if (T228_) nimGCunrefNoCycle(T228_);
														}
														LA224_: ;
													}
													LA216_: ;
												}
												goto LA195_;
												LA197_: ;
												{
													NimStringDesc* T230_;
													NI T231_;
													NimStringDesc* T232_;
													T230_ = (NimStringDesc*)0;
													T231_ = (NI)0;
													T231_ = len__XkMbL52cqyBSUFesQIX9bTA((*Result).Field2);
													T232_ = (NimStringDesc*)0;
													T232_ = nimIntToStr(T231_);
													T230_ = rawNewString((T232_ ? T232_->Sup.len : 0) + 8);
appendString(T230_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_180));
appendString(T230_, T232_);
													title_2.linkTitle = T230_;
													X5BX5Deq___7WMJi0xLR1wauzIPHncLMA((&(*Result).Field2), (&title_2), fileEntries_2);
												}
												LA195_: ;
											}
											LA169_: ;
										}
										LA159_: ;
									}
									LA27_: ;
								} LA18: ;
							}
						} LA16: ;
						popSafePoint();
						}
						else {
							popSafePoint();
						}
						{
							int T235_;
							T235_ = (int)0;
							T235_ = closedir(d_2);
							(void)(T235_);
							if (TM__vGSJrCjWQr859bqRvctRIaA_173.status != 0) nimLeaveFinally();
						}
						if (TM__vGSJrCjWQr859bqRvctRIaA_173.status != 0) reraiseException();
					}
					LA6_: ;
				}
				checkDir = NIM_FALSE;
			} LA3: ;
		}
	}
	nimZeroMem((void*)(&T236_), sizeof(tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA));
	T236_.ClP_0 = ((TM__vGSJrCjWQr859bqRvctRIaA_182) (cmp__NAicU5bAGXmkx2NJujGi7g)); T236_.ClE_0 = NIM_NIL;
	sort__v7Qa2ifMjpImR01uviBTZg((*Result).Field0->data, ((*Result).Field0 ? (*Result).Field0->Sup.len : 0), T236_, ((tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA) 1));
}
static N_INLINE(NIM_BOOL, isFilled__5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__cfr1IhGZltviVbdLwYvoIw)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* a, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* b) {
	NI result;
	result = (NI)0;
	result = nsuCmpIgnoreStyle((*a).keyword, (*b).keyword);
	{
		if (!(result == ((NI) 0))) goto LA3_;
		result = nsuCmpIgnoreStyle((*a).link, (*b).link);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, generateDocumentationJumps__XPDBgoAkOtN37XXG3qoa3w)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ docs) {
	NimStringDesc* result;
	tySequence__5PunAJrNQYcB8dF0jau3pQ* titles;
	tySequence__5PunAJrNQYcB8dF0jau3pQ* resultX60gensym79_;
	tyProc__RGoYgsiJtkrXoyibDk6Gzw T16_;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* chunks;
	NimStringDesc* T24_;
	NimStringDesc* T25_;
	result = (NimStringDesc*)0;
	result = copyString(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_183));
	resultX60gensym79_ = NIM_NIL;
	{
		tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg xX60gensym79_;
		NI L;
		nimZeroMem((void*)(&xX60gensym79_), sizeof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg));
		L = len__XkMbL52cqyBSUFesQIX9bTA(docs);
		{
			NI h;
			NI colontmp_;
			NI T3_;
			NI res;
			h = (NI)0;
			colontmp_ = (NI)0;
			T3_ = ((docs.data ? docs.data->Sup.len : 0)-1);
			colontmp_ = T3_;
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA5;
					h = res;
					{
						NIM_BOOL T8_;
						NI T11_;
						NimStringDesc* T12_;
						NimStringDesc* T13_;
						NimStringDesc* T14_;
						NimStringDesc* T15_;
						T8_ = (NIM_BOOL)0;
						T8_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(docs.data->data[h].Field0);
						if (!T8_) goto LA9_;
						xX60gensym79_.keyword = docs.data->data[h].Field1.keyword;
						xX60gensym79_.link = docs.data->data[h].Field1.link;
						xX60gensym79_.linkTitle = docs.data->data[h].Field1.linkTitle;
						xX60gensym79_.linkDesc = docs.data->data[h].Field1.linkDesc;
						resultX60gensym79_ = (tySequence__5PunAJrNQYcB8dF0jau3pQ*) incrSeqV3((TGenericSeq*)(resultX60gensym79_), (&NTI__5PunAJrNQYcB8dF0jau3pQ_));
						T11_ = resultX60gensym79_->Sup.len++;
						T12_ = (NimStringDesc*)0;
						T12_ = resultX60gensym79_->data[T11_].keyword; resultX60gensym79_->data[T11_].keyword = copyStringRC1(xX60gensym79_.keyword);
						if (T12_) nimGCunrefNoCycle(T12_);
						T13_ = (NimStringDesc*)0;
						T13_ = resultX60gensym79_->data[T11_].link; resultX60gensym79_->data[T11_].link = copyStringRC1(xX60gensym79_.link);
						if (T13_) nimGCunrefNoCycle(T13_);
						T14_ = (NimStringDesc*)0;
						T14_ = resultX60gensym79_->data[T11_].linkTitle; resultX60gensym79_->data[T11_].linkTitle = copyStringRC1(xX60gensym79_.linkTitle);
						if (T14_) nimGCunrefNoCycle(T14_);
						T15_ = (NimStringDesc*)0;
						T15_ = resultX60gensym79_->data[T11_].linkDesc; resultX60gensym79_->data[T11_].linkDesc = copyStringRC1(xX60gensym79_.linkDesc);
						if (T15_) nimGCunrefNoCycle(T15_);
					}
					LA9_: ;
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	genericSeqAssign((&titles), resultX60gensym79_, (&NTI__5PunAJrNQYcB8dF0jau3pQ_));
	nimZeroMem((void*)(&T16_), sizeof(tyProc__RGoYgsiJtkrXoyibDk6Gzw));
	T16_.ClP_0 = ((TM__vGSJrCjWQr859bqRvctRIaA_184) (cmp__cfr1IhGZltviVbdLwYvoIw)); T16_.ClE_0 = NIM_NIL;
	sort__XRcGInRuI9c8vJ3atSUnJRA(titles->data, (titles ? titles->Sup.len : 0), T16_, ((tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA) 1));
	chunks = NIM_NIL;
	{
		tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* title;
		NI i;
		NI L_2;
		NI T18_;
		title = (tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg*)0;
		i = ((NI) 0);
		T18_ = (titles ? titles->Sup.len : 0);
		L_2 = T18_;
		{
			while (1) {
				NimStringDesc* T21_;
				NI T22_;
				NimStringDesc* T23_;
				if (!(i < L_2)) goto LA20;
				title = (&titles->data[i]);
				T21_ = (NimStringDesc*)0;
				T21_ = rawNewString(((*title).link ? (*title).link->Sup.len : 0) + ((*title).keyword ? (*title).keyword->Sup.len : 0) + 15);
appendString(T21_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_185));
appendString(T21_, (*title).link);
appendString(T21_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_186));
appendString(T21_, (*title).keyword);
appendString(T21_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_187));
				chunks = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(chunks), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				T22_ = chunks->Sup.len++;
				T23_ = (NimStringDesc*)0;
				T23_ = chunks->data[T22_]; chunks->data[T22_] = copyStringRC1(T21_);
				if (T23_) nimGCunrefNoCycle(T23_);
				i += ((NI) 1);
			} LA20: ;
		}
	}
	T24_ = (NimStringDesc*)0;
	T25_ = (NimStringDesc*)0;
	T25_ = nsuJoinSep(chunks->data, (chunks ? chunks->Sup.len : 0), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_188));
	T24_ = rawNewString((T25_ ? T25_->Sup.len : 0) + 6);
appendString(T24_, T25_);
appendString(T24_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_189));
	result = resizeString(result, (T24_ ? T24_->Sup.len : 0) + 0);
appendString(result, T24_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, generateModuleJumps__l4r77qGmI5lROD0W69bqm9bg)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* modules) {
	NimStringDesc* result;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* chunks;
	NimStringDesc* T9_;
	NimStringDesc* T10_;
	result = (NimStringDesc*)0;
	result = copyString(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_191));
	chunks = NIM_NIL;
	{
		NimStringDesc** name;
		NI i;
		NI L;
		NI T2_;
		name = (NimStringDesc**)0;
		i = ((NI) 0);
		T2_ = (modules ? modules->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				tyArray__Re75IspeoxXy2oCZHwcRrA T5_;
				NimStringDesc* T6_;
				NI T7_;
				NimStringDesc* T8_;
				if (!(i < L)) goto LA4;
				name = (&modules->data[i]);
				nimZeroMem((void*)T5_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T5_[0] = copyString((*name));
				T5_[1] = prettyLink__wqjxtEP9aQIQkUTKzbjpNkQ((*name));
				T6_ = (NimStringDesc*)0;
				T6_ = nsuFormatOpenArray(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_192), T5_, 2);
				chunks = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(chunks), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				T7_ = chunks->Sup.len++;
				T8_ = (NimStringDesc*)0;
				T8_ = chunks->data[T7_]; chunks->data[T7_] = copyStringRC1(T6_);
				if (T8_) nimGCunrefNoCycle(T8_);
				i += ((NI) 1);
			} LA4: ;
		}
	}
	T9_ = (NimStringDesc*)0;
	T10_ = (NimStringDesc*)0;
	T10_ = nsuJoinSep(chunks->data, (chunks ? chunks->Sup.len : 0), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_188));
	T9_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 6);
appendString(T9_, T10_);
appendString(T9_, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_189));
	result = resizeString(result, (T9_ ? T9_->Sup.len : 0) + 0);
appendString(result, T9_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, ltminus___Ru5aRxpF3DVJvrrEdK89aWg)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* a, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* b) {
	unsureAsgnRef((void**) (&(*a).keyword), (*b).keyword);
	unsureAsgnRef((void**) (&(*a).link), (*b).link);
	unsureAsgnRef((void**) (&(*a).linkTitle), (*b).linkTitle);
	unsureAsgnRef((void**) (&(*a).linkDesc), (*b).linkDesc);
}
N_LIB_PRIVATE N_NIMCALL(void, sortIndex__9a9cA1hoRT9bpo9aO79cDjEtWXA)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* a, NI aLen_0) {
	NI n;
	NI h;
	n = aLen_0;
	h = ((NI) 1);
	{
		while (1) {
			h = (NI)((NI)(((NI) 3) * h) + ((NI) 1));
			{
				if (!(n < h)) goto LA5_;
				goto LA1;
			}
			LA5_: ;
		}
	} LA1: ;
	{
		while (1) {
			h = (NI)(h / ((NI) 3));
			{
				NI i;
				NI colontmp_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = (NI)(n - ((NI) 1));
				res = h;
				{
					while (1) {
						tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg v;
						NI j;
						if (!(res <= colontmp_)) goto LA11;
						i = res;
						nimZeroMem((void*)(&v), sizeof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg));
						ltminus___Ru5aRxpF3DVJvrrEdK89aWg((&v), (&a[i]));
						j = i;
						{
							while (1) {
								NI T14_;
								T14_ = (NI)0;
								T14_ = cmp__cfr1IhGZltviVbdLwYvoIw((&a[(NI)(j - h)]), (&v));
								if (!(((NI) 0) <= T14_)) goto LA13;
								ltminus___Ru5aRxpF3DVJvrrEdK89aWg((&a[j]), (&a[(NI)(j - h)]));
								j = (NI)(j - h);
								{
									if (!(j < h)) goto LA17_;
									goto LA12;
								}
								LA17_: ;
							} LA13: ;
						} LA12: ;
						ltminus___Ru5aRxpF3DVJvrrEdK89aWg((&a[j]), (&v));
						res += ((NI) 1);
					} LA11: ;
				}
			}
			{
				if (!(h == ((NI) 1))) goto LA21_;
				goto LA7;
			}
			LA21_: ;
		}
	} LA7: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, escapeLink__CG3Pm1f26Xv9bcO1ymY7HaA_2)(NimStringDesc* s) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = rawNewString(((NI) ((NI)((s ? s->Sup.len : 0) + (NI)((NI64)((s ? s->Sup.len : 0)) >> (NU64)(((NI) 2)))))));
	{
		NIM_CHAR c;
		NI i;
		NI L;
		c = (NIM_CHAR)0;
		i = ((NI) 0);
		L = (s ? s->Sup.len : 0);
		{
			while (1) {
				if (!(i < L)) goto LA3;
				c = s->data[i];
				switch (((NU8)(c))) {
				case 97 ... 122:
				case 65 ... 90:
				case 48 ... 57:
				case 45:
				case 46:
				case 95:
				case 126:
				{
					result = addChar(result, c);
				}
				break;
				case 35:
				case 47:
				{
					result = addChar(result, c);
				}
				break;
				default:
				{
					NimStringDesc* T7_;
					result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_195));
					T7_ = (NimStringDesc*)0;
					T7_ = toHex__TwQ1R2wlkmY9ak7KGbc718A(((NU8)(c)), ((NI) 2));
					result = resizeString(result, (T7_ ? T7_->Sup.len : 0) + 0);
appendString(result, T7_);
				}
				break;
				}
				i += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, generateSymbolIndex__5iRfVY0N1Vl19aH6haiuKlQ)(tySequence__5PunAJrNQYcB8dF0jau3pQ* symbols) {
	NimStringDesc* result;
	NI i;
	result = (NimStringDesc*)0;
	result = copyString(((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_194));
	i = ((NI) 0);
	{
		while (1) {
			NI T3_;
			NimStringDesc* keyword;
			NimStringDesc* cleanedKeyword;
			tyArray__Re75IspeoxXy2oCZHwcRrA T4_;
			NI j;
			T3_ = (symbols ? symbols->Sup.len : 0);
			if (!(i < T3_)) goto LA2;
			keyword = symbols->data[i].keyword;
			cleanedKeyword = escapeLink__CG3Pm1f26Xv9bcO1ymY7HaA_2(keyword);
			nimZeroMem((void*)T4_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T4_[0] = copyString(keyword);
			T4_[1] = copyString(cleanedKeyword);
			nsuAddf((&result), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_196), T4_, 2);
			j = i;
			{
				while (1) {
					NIM_BOOL T7_;
					NI T8_;
					NimStringDesc* url;
					NimStringDesc* text;
					NimStringDesc* desc;
					T7_ = (NIM_BOOL)0;
					T8_ = (symbols ? symbols->Sup.len : 0);
					T7_ = (j < T8_);
					if (!(T7_)) goto LA9_;
					T7_ = eqStrings(keyword, symbols->data[j].keyword);
					LA9_: ;
					if (!T7_) goto LA6;
					url = escapeLink__CG3Pm1f26Xv9bcO1ymY7HaA_2(symbols->data[j].link);
					{
						if (!(((NI) 0) < (symbols->data[j].linkTitle ? symbols->data[j].linkTitle->Sup.len : 0))) goto LA12_;
						text = symbols->data[j].linkTitle;
					}
					goto LA10_;
					LA12_: ;
					{
						text = url;
					}
					LA10_: ;
					{
						if (!(((NI) 0) < (symbols->data[j].linkDesc ? symbols->data[j].linkDesc->Sup.len : 0))) goto LA17_;
						desc = symbols->data[j].linkDesc;
					}
					goto LA15_;
					LA17_: ;
					{
						desc = ((NimStringDesc*) NIM_NIL);
					}
					LA15_: ;
					{
						tyArray__24KAM9afIUgUaqBaEBB6r9bg T24_;
						if (!(((NI) 0) < (desc ? desc->Sup.len : 0))) goto LA22_;
						nimZeroMem((void*)T24_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
						T24_[0] = copyString(url);
						T24_[1] = copyString(text);
						T24_[2] = copyString(desc);
						nsuAddf((&result), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_197), T24_, 3);
					}
					goto LA20_;
					LA22_: ;
					{
						tyArray__Re75IspeoxXy2oCZHwcRrA T26_;
						nimZeroMem((void*)T26_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
						T26_[0] = copyString(url);
						T26_[1] = copyString(text);
						nsuAddf((&result), ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_198), T26_, 2);
					}
					LA20_: ;
					j += ((NI) 1);
				} LA6: ;
			}
			result = resizeString(result, 11);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_199));
			i = j;
		} LA2: ;
	}
	result = resizeString(result, 5);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_200));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mergeIndexes__gnBYZcMG5WPYB3f83P6f9ag)(NimStringDesc* dir) {
	NimStringDesc* result;
	tyTuple__19af1Yi5wzYJHEoosvtCJdQ T1_;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* modules;
	tySequence__5PunAJrNQYcB8dF0jau3pQ* symbols;
	tyObject_Table__XC01wkRgzAyOjTiapde7hQ docs;
	result = (NimStringDesc*)0;
	nimZeroMem((void*)(&T1_), sizeof(tyTuple__19af1Yi5wzYJHEoosvtCJdQ));
	readIndexDir__tb68DrT6xzF5ZfmNFMFm2Q(dir, (&T1_));
	modules = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*)0;
	genericSeqAssign((&modules), T1_.Field0, (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
	symbols = (tySequence__5PunAJrNQYcB8dF0jau3pQ*)0;
	genericSeqAssign((&symbols), T1_.Field1, (&NTI__5PunAJrNQYcB8dF0jau3pQ_));
	nimZeroMem((void*)(&docs), sizeof(tyObject_Table__XC01wkRgzAyOjTiapde7hQ));
	genericSeqAssign((&docs.data), T1_.Field2.data, (&NTI__wAC0kXbVGkLoWP8vdi0sUw_));
	docs.counter = T1_.Field2.counter;
	result = ((NimStringDesc*) NIM_NIL);
	{
		NI T4_;
		NimStringDesc* T7_;
		T4_ = (NI)0;
		T4_ = len__XkMbL52cqyBSUFesQIX9bTA(docs);
		if (!(((NI) 0) < T4_)) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = generateDocumentationJumps__XPDBgoAkOtN37XXG3qoa3w(docs);
		result = resizeString(result, (T7_ ? T7_->Sup.len : 0) + 0);
appendString(result, T7_);
		result = resizeString(result, 5);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_190));
	}
	LA5_: ;
	{
		NI T10_;
		NimStringDesc* T13_;
		T10_ = (modules ? modules->Sup.len : 0);
		if (!(((NI) 0) < T10_)) goto LA11_;
		T13_ = (NimStringDesc*)0;
		T13_ = generateModuleJumps__l4r77qGmI5lROD0W69bqm9bg(modules);
		result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
appendString(result, T13_);
		result = resizeString(result, 5);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_190));
	}
	LA11_: ;
	{
		NI T16_;
		NimStringDesc* T19_;
		T16_ = (symbols ? symbols->Sup.len : 0);
		if (!(((NI) 0) < T16_)) goto LA17_;
		sortIndex__9a9cA1hoRT9bpo9aO79cDjEtWXA(symbols->data, (symbols ? symbols->Sup.len : 0));
		result = resizeString(result, 21);
appendString(result, ((NimStringDesc*) &TM__vGSJrCjWQr859bqRvctRIaA_193));
		T19_ = (NimStringDesc*)0;
		T19_ = generateSymbolIndex__5iRfVY0N1Vl19aH6haiuKlQ(symbols);
		result = resizeString(result, (T19_ ? T19_->Sup.len : 0) + 0);
appendString(result, T19_);
	}
	LA17_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, docutils_rstgenDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__vGSJrCjWQr859bqRvctRIaA_2_18[18];
static TNimNode* TM__vGSJrCjWQr859bqRvctRIaA_3_2[2];
NI TM__vGSJrCjWQr859bqRvctRIaA_5;
static char* NIM_CONST TM__vGSJrCjWQr859bqRvctRIaA_4[2] = {
"outHtml", 
"outLatex"};
static TNimNode* TM__vGSJrCjWQr859bqRvctRIaA_6_3[3];
static TNimNode* TM__vGSJrCjWQr859bqRvctRIaA_7_2[2];
static TNimNode* TM__vGSJrCjWQr859bqRvctRIaA_172_4[4];
static TNimNode TM__vGSJrCjWQr859bqRvctRIaA_0[34];

/* section: NIM_merge_TYPE_INIT3 */
NTI__yF9cB1II0vYb2F0YKmIiArg_.size = sizeof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg);
NTI__yF9cB1II0vYb2F0YKmIiArg_.align = NIM_ALIGNOF(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg);
NTI__yF9cB1II0vYb2F0YKmIiArg_.kind = 17;
NTI__yF9cB1II0vYb2F0YKmIiArg_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
TM__vGSJrCjWQr859bqRvctRIaA_2_18[0] = &TM__vGSJrCjWQr859bqRvctRIaA_0[1];
NTI__lDlBg9cTod71s9abpUj82lsw_.size = sizeof(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw);
NTI__lDlBg9cTod71s9abpUj82lsw_.align = NIM_ALIGNOF(tyEnum_OutputTarget__lDlBg9cTod71s9abpUj82lsw);
NTI__lDlBg9cTod71s9abpUj82lsw_.kind = 14;
NTI__lDlBg9cTod71s9abpUj82lsw_.base = 0;
NTI__lDlBg9cTod71s9abpUj82lsw_.flags = 3;
for (TM__vGSJrCjWQr859bqRvctRIaA_5 = 0; TM__vGSJrCjWQr859bqRvctRIaA_5 < 2; TM__vGSJrCjWQr859bqRvctRIaA_5++) {
TM__vGSJrCjWQr859bqRvctRIaA_0[TM__vGSJrCjWQr859bqRvctRIaA_5+2].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[TM__vGSJrCjWQr859bqRvctRIaA_5+2].offset = TM__vGSJrCjWQr859bqRvctRIaA_5;
TM__vGSJrCjWQr859bqRvctRIaA_0[TM__vGSJrCjWQr859bqRvctRIaA_5+2].name = TM__vGSJrCjWQr859bqRvctRIaA_4[TM__vGSJrCjWQr859bqRvctRIaA_5];
TM__vGSJrCjWQr859bqRvctRIaA_3_2[TM__vGSJrCjWQr859bqRvctRIaA_5] = &TM__vGSJrCjWQr859bqRvctRIaA_0[TM__vGSJrCjWQr859bqRvctRIaA_5+2];
}
TM__vGSJrCjWQr859bqRvctRIaA_0[4].len = 2; TM__vGSJrCjWQr859bqRvctRIaA_0[4].kind = 2; TM__vGSJrCjWQr859bqRvctRIaA_0[4].sons = &TM__vGSJrCjWQr859bqRvctRIaA_3_2[0];
NTI__lDlBg9cTod71s9abpUj82lsw_.node = &TM__vGSJrCjWQr859bqRvctRIaA_0[4];
TM__vGSJrCjWQr859bqRvctRIaA_0[1].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[1].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, target);
TM__vGSJrCjWQr859bqRvctRIaA_0[1].typ = (&NTI__lDlBg9cTod71s9abpUj82lsw_);
TM__vGSJrCjWQr859bqRvctRIaA_0[1].name = "target";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[1] = &TM__vGSJrCjWQr859bqRvctRIaA_0[5];
TM__vGSJrCjWQr859bqRvctRIaA_0[5].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[5].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, config);
TM__vGSJrCjWQr859bqRvctRIaA_0[5].typ = (&NTI__n9cmoMXcDs47wYDFGEXuCfw_);
TM__vGSJrCjWQr859bqRvctRIaA_0[5].name = "config";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[2] = &TM__vGSJrCjWQr859bqRvctRIaA_0[6];
TM__vGSJrCjWQr859bqRvctRIaA_0[6].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[6].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, splitAfter);
TM__vGSJrCjWQr859bqRvctRIaA_0[6].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__vGSJrCjWQr859bqRvctRIaA_0[6].name = "splitAfter";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[3] = &TM__vGSJrCjWQr859bqRvctRIaA_0[7];
TM__vGSJrCjWQr859bqRvctRIaA_0[7].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[7].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, listingCounter);
TM__vGSJrCjWQr859bqRvctRIaA_0[7].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__vGSJrCjWQr859bqRvctRIaA_0[7].name = "listingCounter";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[4] = &TM__vGSJrCjWQr859bqRvctRIaA_0[8];
NTI__z7kal23LlR1mL50YJIPMCw_.size = sizeof(tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw);
NTI__z7kal23LlR1mL50YJIPMCw_.align = NIM_ALIGNOF(tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw);
NTI__z7kal23LlR1mL50YJIPMCw_.kind = 18;
NTI__z7kal23LlR1mL50YJIPMCw_.base = 0;
NTI__z7kal23LlR1mL50YJIPMCw_.flags = 2;
TM__vGSJrCjWQr859bqRvctRIaA_6_3[0] = &TM__vGSJrCjWQr859bqRvctRIaA_0[10];
TM__vGSJrCjWQr859bqRvctRIaA_0[10].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[10].offset = offsetof(tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw, n);
TM__vGSJrCjWQr859bqRvctRIaA_0[10].typ = (&NTI__eiDrOE3AS6QEbCsY2gtdWQ_);
TM__vGSJrCjWQr859bqRvctRIaA_0[10].name = "n";
TM__vGSJrCjWQr859bqRvctRIaA_6_3[1] = &TM__vGSJrCjWQr859bqRvctRIaA_0[11];
TM__vGSJrCjWQr859bqRvctRIaA_0[11].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[11].offset = offsetof(tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw, refname);
TM__vGSJrCjWQr859bqRvctRIaA_0[11].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[11].name = "refname";
TM__vGSJrCjWQr859bqRvctRIaA_6_3[2] = &TM__vGSJrCjWQr859bqRvctRIaA_0[12];
TM__vGSJrCjWQr859bqRvctRIaA_0[12].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[12].offset = offsetof(tyObject_TocEntry__z7kal23LlR1mL50YJIPMCw, header);
TM__vGSJrCjWQr859bqRvctRIaA_0[12].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[12].name = "header";
TM__vGSJrCjWQr859bqRvctRIaA_0[9].len = 3; TM__vGSJrCjWQr859bqRvctRIaA_0[9].kind = 2; TM__vGSJrCjWQr859bqRvctRIaA_0[9].sons = &TM__vGSJrCjWQr859bqRvctRIaA_6_3[0];
NTI__z7kal23LlR1mL50YJIPMCw_.node = &TM__vGSJrCjWQr859bqRvctRIaA_0[9];
NTI__b7kA8pLABz0wMAUNGYo6Wg_.size = sizeof(tySequence__b7kA8pLABz0wMAUNGYo6Wg*);
NTI__b7kA8pLABz0wMAUNGYo6Wg_.align = NIM_ALIGNOF(tySequence__b7kA8pLABz0wMAUNGYo6Wg*);
NTI__b7kA8pLABz0wMAUNGYo6Wg_.kind = 24;
NTI__b7kA8pLABz0wMAUNGYo6Wg_.base = (&NTI__z7kal23LlR1mL50YJIPMCw_);
NTI__b7kA8pLABz0wMAUNGYo6Wg_.flags = 2;
NTI__b7kA8pLABz0wMAUNGYo6Wg_.marker = Marker_tySequence__b7kA8pLABz0wMAUNGYo6Wg;
TM__vGSJrCjWQr859bqRvctRIaA_0[8].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[8].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, tocPart);
TM__vGSJrCjWQr859bqRvctRIaA_0[8].typ = (&NTI__b7kA8pLABz0wMAUNGYo6Wg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[8].name = "tocPart";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[5] = &TM__vGSJrCjWQr859bqRvctRIaA_0[13];
TM__vGSJrCjWQr859bqRvctRIaA_0[13].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[13].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, hasToc);
TM__vGSJrCjWQr859bqRvctRIaA_0[13].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__vGSJrCjWQr859bqRvctRIaA_0[13].name = "hasToc";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[6] = &TM__vGSJrCjWQr859bqRvctRIaA_0[14];
TM__vGSJrCjWQr859bqRvctRIaA_0[14].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[14].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, theIndex);
TM__vGSJrCjWQr859bqRvctRIaA_0[14].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[14].name = "theIndex";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[7] = &TM__vGSJrCjWQr859bqRvctRIaA_0[15];
TM__vGSJrCjWQr859bqRvctRIaA_0[15].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[15].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, options);
TM__vGSJrCjWQr859bqRvctRIaA_0[15].typ = (&NTI__triPNwGxgWAG1ULojVLJPA_);
TM__vGSJrCjWQr859bqRvctRIaA_0[15].name = "options";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[8] = &TM__vGSJrCjWQr859bqRvctRIaA_0[16];
TM__vGSJrCjWQr859bqRvctRIaA_0[16].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[16].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, findFile);
TM__vGSJrCjWQr859bqRvctRIaA_0[16].typ = (&NTI__oFHfEKFsiYTMAy9a42cSiKw_);
TM__vGSJrCjWQr859bqRvctRIaA_0[16].name = "findFile";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[9] = &TM__vGSJrCjWQr859bqRvctRIaA_0[17];
TM__vGSJrCjWQr859bqRvctRIaA_0[17].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[17].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, msgHandler);
TM__vGSJrCjWQr859bqRvctRIaA_0[17].typ = (&NTI__BnbLegyGxTOhIgncw6Jqfg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[17].name = "msgHandler";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[10] = &TM__vGSJrCjWQr859bqRvctRIaA_0[18];
TM__vGSJrCjWQr859bqRvctRIaA_0[18].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[18].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, outDir);
TM__vGSJrCjWQr859bqRvctRIaA_0[18].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[18].name = "outDir";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[11] = &TM__vGSJrCjWQr859bqRvctRIaA_0[19];
TM__vGSJrCjWQr859bqRvctRIaA_0[19].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[19].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, destFile);
TM__vGSJrCjWQr859bqRvctRIaA_0[19].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[19].name = "destFile";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[12] = &TM__vGSJrCjWQr859bqRvctRIaA_0[20];
TM__vGSJrCjWQr859bqRvctRIaA_0[20].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[20].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, filename);
TM__vGSJrCjWQr859bqRvctRIaA_0[20].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[20].name = "filename";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[13] = &TM__vGSJrCjWQr859bqRvctRIaA_0[21];
NTI__C9cQfUOxfT2Mk6yT19cPu9aIA_.size = sizeof(tyArray__C9cQfUOxfT2Mk6yT19cPu9aIA);
NTI__C9cQfUOxfT2Mk6yT19cPu9aIA_.align = NIM_ALIGNOF(tyArray__C9cQfUOxfT2Mk6yT19cPu9aIA);
NTI__C9cQfUOxfT2Mk6yT19cPu9aIA_.kind = 16;
NTI__C9cQfUOxfT2Mk6yT19cPu9aIA_.base = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
NTI__C9cQfUOxfT2Mk6yT19cPu9aIA_.flags = 2;
TM__vGSJrCjWQr859bqRvctRIaA_0[21].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[21].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, meta);
TM__vGSJrCjWQr859bqRvctRIaA_0[21].typ = (&NTI__C9cQfUOxfT2Mk6yT19cPu9aIA_);
TM__vGSJrCjWQr859bqRvctRIaA_0[21].name = "meta";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[14] = &TM__vGSJrCjWQr859bqRvctRIaA_0[22];
TM__vGSJrCjWQr859bqRvctRIaA_0[22].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[22].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, currentSection);
TM__vGSJrCjWQr859bqRvctRIaA_0[22].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[22].name = "currentSection";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[15] = &TM__vGSJrCjWQr859bqRvctRIaA_0[23];
TM__vGSJrCjWQr859bqRvctRIaA_0[23].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[23].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, seenIndexTerms);
TM__vGSJrCjWQr859bqRvctRIaA_0[23].typ = (&NTI__i55W8RrwGKsG9cl0sAKxgkQ_);
TM__vGSJrCjWQr859bqRvctRIaA_0[23].name = "seenIndexTerms";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[16] = &TM__vGSJrCjWQr859bqRvctRIaA_0[24];
TM__vGSJrCjWQr859bqRvctRIaA_0[24].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[24].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, id);
TM__vGSJrCjWQr859bqRvctRIaA_0[24].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__vGSJrCjWQr859bqRvctRIaA_0[24].name = "id";
TM__vGSJrCjWQr859bqRvctRIaA_2_18[17] = &TM__vGSJrCjWQr859bqRvctRIaA_0[25];
NTI__XtNNqpdSSaHFEnbiw4OQrw_.size = sizeof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
NTI__XtNNqpdSSaHFEnbiw4OQrw_.align = NIM_ALIGNOF(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
NTI__XtNNqpdSSaHFEnbiw4OQrw_.kind = 18;
NTI__XtNNqpdSSaHFEnbiw4OQrw_.base = 0;
TM__vGSJrCjWQr859bqRvctRIaA_7_2[0] = &TM__vGSJrCjWQr859bqRvctRIaA_0[27];
TM__vGSJrCjWQr859bqRvctRIaA_0[27].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[27].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field0);
TM__vGSJrCjWQr859bqRvctRIaA_0[27].typ = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
TM__vGSJrCjWQr859bqRvctRIaA_0[27].name = "Field0";
TM__vGSJrCjWQr859bqRvctRIaA_7_2[1] = &TM__vGSJrCjWQr859bqRvctRIaA_0[28];
TM__vGSJrCjWQr859bqRvctRIaA_0[28].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[28].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field1);
TM__vGSJrCjWQr859bqRvctRIaA_0[28].typ = (&NTI__HsJiUUcO9cHBdUCi0HwkSTA_);
TM__vGSJrCjWQr859bqRvctRIaA_0[28].name = "Field1";
TM__vGSJrCjWQr859bqRvctRIaA_0[26].len = 2; TM__vGSJrCjWQr859bqRvctRIaA_0[26].kind = 2; TM__vGSJrCjWQr859bqRvctRIaA_0[26].sons = &TM__vGSJrCjWQr859bqRvctRIaA_7_2[0];
NTI__XtNNqpdSSaHFEnbiw4OQrw_.node = &TM__vGSJrCjWQr859bqRvctRIaA_0[26];
TM__vGSJrCjWQr859bqRvctRIaA_0[25].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[25].offset = offsetof(tyObject_RstGenerator__yF9cB1II0vYb2F0YKmIiArg, onTestSnippet);
TM__vGSJrCjWQr859bqRvctRIaA_0[25].typ = (&NTI__XtNNqpdSSaHFEnbiw4OQrw_);
TM__vGSJrCjWQr859bqRvctRIaA_0[25].name = "onTestSnippet";
TM__vGSJrCjWQr859bqRvctRIaA_0[0].len = 18; TM__vGSJrCjWQr859bqRvctRIaA_0[0].kind = 2; TM__vGSJrCjWQr859bqRvctRIaA_0[0].sons = &TM__vGSJrCjWQr859bqRvctRIaA_2_18[0];
NTI__yF9cB1II0vYb2F0YKmIiArg_.node = &TM__vGSJrCjWQr859bqRvctRIaA_0[0];
NTI__G9ccBDFWfr9aYnLgXTNGDHDg_.size = sizeof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg);
NTI__G9ccBDFWfr9aYnLgXTNGDHDg_.align = NIM_ALIGNOF(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg);
NTI__G9ccBDFWfr9aYnLgXTNGDHDg_.kind = 18;
NTI__G9ccBDFWfr9aYnLgXTNGDHDg_.base = 0;
NTI__G9ccBDFWfr9aYnLgXTNGDHDg_.flags = 2;
TM__vGSJrCjWQr859bqRvctRIaA_172_4[0] = &TM__vGSJrCjWQr859bqRvctRIaA_0[30];
TM__vGSJrCjWQr859bqRvctRIaA_0[30].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[30].offset = offsetof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg, keyword);
TM__vGSJrCjWQr859bqRvctRIaA_0[30].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[30].name = "keyword";
TM__vGSJrCjWQr859bqRvctRIaA_172_4[1] = &TM__vGSJrCjWQr859bqRvctRIaA_0[31];
TM__vGSJrCjWQr859bqRvctRIaA_0[31].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[31].offset = offsetof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg, link);
TM__vGSJrCjWQr859bqRvctRIaA_0[31].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[31].name = "link";
TM__vGSJrCjWQr859bqRvctRIaA_172_4[2] = &TM__vGSJrCjWQr859bqRvctRIaA_0[32];
TM__vGSJrCjWQr859bqRvctRIaA_0[32].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[32].offset = offsetof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg, linkTitle);
TM__vGSJrCjWQr859bqRvctRIaA_0[32].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[32].name = "linkTitle";
TM__vGSJrCjWQr859bqRvctRIaA_172_4[3] = &TM__vGSJrCjWQr859bqRvctRIaA_0[33];
TM__vGSJrCjWQr859bqRvctRIaA_0[33].kind = 1;
TM__vGSJrCjWQr859bqRvctRIaA_0[33].offset = offsetof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg, linkDesc);
TM__vGSJrCjWQr859bqRvctRIaA_0[33].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__vGSJrCjWQr859bqRvctRIaA_0[33].name = "linkDesc";
TM__vGSJrCjWQr859bqRvctRIaA_0[29].len = 4; TM__vGSJrCjWQr859bqRvctRIaA_0[29].kind = 2; TM__vGSJrCjWQr859bqRvctRIaA_0[29].sons = &TM__vGSJrCjWQr859bqRvctRIaA_172_4[0];
NTI__G9ccBDFWfr9aYnLgXTNGDHDg_.node = &TM__vGSJrCjWQr859bqRvctRIaA_0[29];
NTI__5PunAJrNQYcB8dF0jau3pQ_.size = sizeof(tySequence__5PunAJrNQYcB8dF0jau3pQ*);
NTI__5PunAJrNQYcB8dF0jau3pQ_.align = NIM_ALIGNOF(tySequence__5PunAJrNQYcB8dF0jau3pQ*);
NTI__5PunAJrNQYcB8dF0jau3pQ_.kind = 24;
NTI__5PunAJrNQYcB8dF0jau3pQ_.base = (&NTI__G9ccBDFWfr9aYnLgXTNGDHDg_);
NTI__5PunAJrNQYcB8dF0jau3pQ_.flags = 2;
NTI__5PunAJrNQYcB8dF0jau3pQ_.marker = Marker_tySequence__5PunAJrNQYcB8dF0jau3pQ;
}

