/* Generated by Nim Compiler v0.19.0 */
/*   (c) 2018 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.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
typedef struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw tyObject_Target_9abOl5DLX8suLujOaHSvGzw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q;
typedef struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA tySequence_PJMRIt5QxCm6bRaVyQ5CGA;
typedef struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence_7lEisrXlQEzwtUKW5pzRCw tySequence_7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ tySequence_Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence_4eRCaZmrYLLw2k30GPTiMw tySequence_4eRCaZmrYLLw2k30GPTiMw;
typedef struct tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ tySequence_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw tySequence_pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A;
typedef struct tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw;
typedef struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA;
typedef struct tySequence_sII3pVVRkIdBZ2HDPdZddA tySequence_sII3pVVRkIdBZ2HDPdZddA;
typedef struct tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg;
typedef struct tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ;
typedef struct tySequence_9brg1xNurxcus33lU4IE1Dw tySequence_9brg1xNurxcus33lU4IE1Dw;
typedef struct tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q;
typedef struct tySequence_Ef05srmQTDulnBdXR4Ja6Q tySequence_Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A;
typedef struct tySequence_vhmj4KkIKPinmRXny9c2Q6Q tySequence_vhmj4KkIKPinmRXny9c2Q6Q;
typedef struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ tySequence_DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ;
typedef struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ tySequence_XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA;
typedef struct tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw;
typedef struct tySequence_eW29aEKsgOrJUkJmVmw30lg tySequence_eW29aEKsgOrJUkJmVmw30lg;
typedef struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyTuple_wROVfG5RQYpjEAhvO3LqdQ tyTuple_wROVfG5RQYpjEAhvO3LqdQ;
typedef struct tySequence_P9c6Y5h4sjjYLVGti5AELHg tySequence_P9c6Y5h4sjjYLVGti5AELHg;
typedef struct tySequence_WwUFq9cJ2xKRlsAWVEHyPRg tySequence_WwUFq9cJ2xKRlsAWVEHyPRg;
typedef struct tySequence_oUyaggHmIX9bpJcMeoG6lpA tySequence_oUyaggHmIX9bpJcMeoG6lpA;
typedef struct tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg;
typedef struct tySequence_jwzrUFjG9akTIJTBBFvvqxw tySequence_jwzrUFjG9akTIJTBBFvvqxw;
typedef struct tyObject_TBlock_GFhahvekTq3dDOkWyhchMA tyObject_TBlock_GFhahvekTq3dDOkWyhchMA;
typedef struct tyObject_TMergeSections_crELyef4WlnFCK8sExutkA tyObject_TMergeSections_crELyef4WlnFCK8sExutkA;
typedef struct tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g;
typedef struct tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag;
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 tyTuple_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg;
typedef struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct tyTuple_aTNxDjHI7v9cq37xS7PT7jA tyTuple_aTNxDjHI7v9cq37xS7PT7jA;
typedef struct tyTuple_XOVT24GHXwqiEj5GCsEGCA tyTuple_XOVT24GHXwqiEj5GCsEGCA;
typedef NU8 tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg;
typedef NU8 tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU32 tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
typedef NU64 tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU8 tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA {
tySequence_7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence_PJMRIt5QxCm6bRaVyQ5CGA* msgContext;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence_Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw;
typedef NU8 tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg {
tySequence_4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc_QYEVXrYc9beQ379crS3rzqRA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA;
typedef NU8 tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc_22mgIiTBBoqNe1T0FSw9ahQ;
struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw {
tyObject_Target_9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw selectedGC;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ features;
NimStringDesc* arguments;
NIM_BOOL helpWritten;
tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg enableNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg disableNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg foreignPackageNotes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg notes;
tySet_tyEnum_TMsgKind_ZQWti4neSCb9bXB2tK1JcKg mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NI32 projectMainIdx;
NimStringDesc* command;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NIM_BOOL keepComments;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* ccompilerpath;
tySequence_pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc_QYEVXrYc9beQ379crS3rzqRA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA writelnHook;
tyProc_22mgIiTBBoqNe1T0FSw9ahQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
};
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;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
typedef NimStringDesc* tyArray_IgBcQZSkSYWgypAN2G9aUCg[3];
typedef NU8 tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg;
typedef NimStringDesc* tyArray_popwAbp3uuRZiC4rZbYrXw[18];
struct tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw {
  RootObj Sup;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_pujFC2IN5RzE4MXkqaMD9aQ[18];
typedef NU8 tySet_tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q;
struct tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA {
tySequence_sII3pVVRkIdBZ2HDPdZddA* data;
NI counter;
};
typedef NI tyArray_emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg {
NI elems;
NI counter;
NI max;
tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* head;
tySequence_9brg1xNurxcus33lU4IE1Dw* data;
tyArray_emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A {
NI counter;
tySequence_vhmj4KkIKPinmRXny9c2Q6Q* data;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_MxT2Arb3Nlp7V9bRITO3dvg[10];
struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ {
tySequence_XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
};
struct tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw {
NIM_BOOL enabled;
FILE* f;
NimStringDesc* buf;
};
struct tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A {
  tyObject_TPassContext_ZmGcnZ1NlGbjfV1h4uuYdw Sup;
tyArray_pujFC2IN5RzE4MXkqaMD9aQ s;
tySet_tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q flags;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module;
NimStringDesc* filename;
NimStringDesc* cfilename;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmpBase;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA typeCache;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA forwTypeCache;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredThings;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredProtos;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* headerFiles;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA typeInfoMarker;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* initProc;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* preInitProc;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* typeStack;
tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A dataCache;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* forwardedProcs;
NI typeNodes;
NI nimTypes;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typeNodesName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nimTypesName;
NI labels;
tyArray_MxT2Arb3Nlp7V9bRITO3dvg extensionLoaders;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* injectStmt;
tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ sigConflicts;
tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g;
tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw ndi;
};
struct tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainModProcs;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainModInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* otherModsInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainDatInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mapping;
tySequence_eW29aEKsgOrJUkJmVmw30lg* modules;
NI forwardedProcsCounter;
tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* generatedHeader;
NI breakPointId;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* breakpoints;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA typeInfoMarker;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph;
NI strVersion;
NI seqVersion;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nimtv;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* nimtvDeps;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg nimtvDeclared;
};
typedef NU8 tyArray_qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple_wROVfG5RQYpjEAhvO3LqdQ {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* Field2;
};
typedef NI tyArray_9agrCtWKhCnWWMJpKKugJag[16];
struct tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ {
tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* next;
NI key;
tyArray_9agrCtWKhCnWWMJpKKugJag bits;
};
struct tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg {
tySequence_jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
};
struct tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q {
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
NIM_BOOL beforeRetNeeded;
NIM_BOOL threadVarAccessed;
NIM_BOOL hasCurFramePointer;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q currLineInfo;
tySequence_P9c6Y5h4sjjYLVGti5AELHg* nestedTryStmts;
tySequence_WwUFq9cJ2xKRlsAWVEHyPRg* finallySafePoints;
NI labels;
tySequence_oUyaggHmIX9bpJcMeoG6lpA* blocks;
NI breakIdx;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
NI maxFrameLen;
tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* module;
NI withinLoop;
NI splitDecls;
NI gcFrameId;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* gcFrameType;
tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg sigConflicts;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_c9b9aKKmyKnqxZD8lAny45jg[3];
struct tyObject_TBlock_GFhahvekTq3dDOkWyhchMA {
NI id;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* label;
tyArray_c9b9aKKmyKnqxZD8lAny45jg sections;
NIM_BOOL isLoop;
NI16 nestedTryStmts;
NI16 nestedExceptStmts;
NI16 frameLen;
};
struct tyObject_TMergeSections_crELyef4WlnFCK8sExutkA {
tyArray_pujFC2IN5RzE4MXkqaMD9aQ f;
tyArray_c9b9aKKmyKnqxZD8lAny45jg p;
};
typedef NU8 tyEnum_FileMode_fVUBHvW79bXUw1j55Oo9avSQ;
struct tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag {
  RootObj Sup;
NI bufpos;
NCSTRING buf;
NI bufLen;
tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g* stream;
NI lineNumber;
NI sentinel;
NI lineStart;
NI offsetBase;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** 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_SiRwrEKZdLgxqz9a9aoVBglg[512];
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_SiRwrEKZdLgxqz9a9aoVBglg 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;
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;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyfile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
struct tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg {
NI h;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* key;
NI val;
};
struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyTuple_aTNxDjHI7v9cq37xS7PT7jA {
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* Field0;
NIM_BOOL Field1;
};
struct tyTuple_XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q data[SEQ_DECL_SIZE];
};
struct tySequence_7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple_xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence_4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple_QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
struct tySequence_sII3pVVRkIdBZ2HDPdZddA {
  TGenericSeq Sup;
  tyTuple_wROVfG5RQYpjEAhvO3LqdQ data[SEQ_DECL_SIZE];
};
struct tySequence_9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence_Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence_vhmj4KkIKPinmRXny9c2Q6Q {
  TGenericSeq Sup;
  tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg data[SEQ_DECL_SIZE];
};
struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct tySequence_eW29aEKsgOrJUkJmVmw30lg {
  TGenericSeq Sup;
  tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* data[SEQ_DECL_SIZE];
};
struct tySequence_P9c6Y5h4sjjYLVGti5AELHg {
  TGenericSeq Sup;
  tyTuple_aTNxDjHI7v9cq37xS7PT7jA data[SEQ_DECL_SIZE];
};
struct tySequence_WwUFq9cJ2xKRlsAWVEHyPRg {
  TGenericSeq Sup;
  tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* data[SEQ_DECL_SIZE];
};
struct tySequence_oUyaggHmIX9bpJcMeoG6lpA {
  TGenericSeq Sup;
  tyObject_TBlock_GFhahvekTq3dDOkWyhchMA data[SEQ_DECL_SIZE];
};
struct tySequence_jwzrUFjG9akTIJTBBFvvqxw {
  TGenericSeq Sup;
  tyTuple_XOVT24GHXwqiEj5GCsEGCA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rope_yShmEg9cffWxI7s5XzEKBow)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, add_yG4AKzsBRS1W4MANDlXQeg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, writeTypeCache_7ozV1nDPxH000kmPalubIw)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA a, NimStringDesc** s);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_2Mfumf6CnyNlShDWdIgobwsystem)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL, isFilled_IxXD1UAPoEehVDW9cv9cRaewtables)(NI hcode);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, encodeStr_fnpFTBPI8YDkXyVTnD89aFw)(NimStringDesc* s, NimStringDesc** result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__cjda4doS9ccFOjsWsGu9aa2A)(tyArray_qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__4KNdcWAONkpTKQgUR8XiZQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, writeIntSet_F9cOdjZWdQIVR7nKLDaSwUw)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* a, NimStringDesc** s);
N_LIB_PRIVATE N_NIMCALL(void, encodeVInt_UxDO4XNnIGIEXt1v5wvZJQ)(NI x, NimStringDesc** result);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, s_oPjlsf0lwosYuh6KXhkqLQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s);
N_LIB_PRIVATE N_NIMCALL(void, readMergeSections_SkJF1FEO0K3zrbuQ9bO4UlQ)(NimStringDesc* cfilename, tyObject_TMergeSections_crELyef4WlnFCK8sExutkA* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g*, llStreamOpen_BGY1V0iiaakSOL4Ih3HgLg)(NimStringDesc* filename, tyEnum_FileMode_fVUBHvW79bXUw1j55Oo9avSQ mode);
N_LIB_PRIVATE N_NIMCALL(void, openBaseLexer_cAsXlGfoG4L2VBz7HzfTiw)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L, tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g* inputstream, NI bufLen);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_LIB_PRIVATE N_NIMCALL(void, skipUntilCmd_4ml4fAAb6aU9algT0grEPGw)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L);
N_LIB_PRIVATE N_NIMCALL(NI, handleCR_MgVyABgIk9bfITlYYenxwIw)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(NI, handleLF_MgVyABgIk9bfITlYYenxwIw_3)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(void, readKey_pVcBo5FrQ8Mjtn8Kpp1jaw)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L, NimStringDesc** result);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA)(NimStringDesc* msg);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, skipWhite_4ml4fAAb6aU9algT0grEPGw_2)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, readVerbatimSection_Dfh2HdkGfgVIwA9c10yqLNA)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEndMark_JH83PaopWtsSemeuqSts6A)(NCSTRING buf, NI pos);
static N_INLINE(NI, find_tCRmV7Gq76tJkr9bbrdsTfQccgmerge)(tyArray_popwAbp3uuRZiC4rZbYrXw a, NimStringDesc* item);
static N_INLINE(NI, find_i4ExzexSWa72wBCd9bhPMJAccgmerge)(tyArray_IgBcQZSkSYWgypAN2G9aUCg a, NimStringDesc* item);
N_LIB_PRIVATE N_NIMCALL(void, closeBaseLexer_RZcso2r4MAr3lCTkQ4n75Q_2)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__mFDAEkd1kysB0V9aBd20A9aA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_fCDI7oO1NNVXXURtxSzsRw)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
extern TNimType NTI_jTxk7Uc2dfr9aTDL2dZhO9ag_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_2, "\012/*\011", 4);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_3, "NIM_merge_PROC_LOCALS", 21);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_4, "NIM_merge_PROC_INIT", 19);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_5, "NIM_merge_PROC_BODY", 19);
NIM_CONST tyArray_IgBcQZSkSYWgypAN2G9aUCg CProcSectionNames_CFc65xAsTDyk1IJIOKvV1w = {((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_3),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_4),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_5)}
;
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_6, ":*/\012", 4);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_7, "/*\011NIM_merge_END:*/\012", 20);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_8, "NIM_merge_HEADERS", 17);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_9, "NIM_merge_FORWARD_TYPES", 23);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_10, "NIM_merge_TYPES", 15);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_11, "NIM_merge_SEQ_TYPES", 19);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_12, "NIM_merge_FIELD_INFO", 20);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_13, "NIM_merge_TYPE_INFO", 19);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_14, "NIM_merge_PROC_HEADERS", 22);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_15, "NIM_merge_VARS", 14);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_16, "NIM_merge_DATA", 14);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_17, "NIM_merge_PROCS", 15);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_18, "NIM_merge_INIT_PROC", 19);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_19, "NIM_merge_TYPE_INIT1", 20);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_20, "NIM_merge_TYPE_INIT2", 20);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_21, "NIM_merge_TYPE_INIT3", 20);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_22, "NIM_merge_DEBUG_INIT", 20);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_23, "NIM_merge_DYNLIB_INIT", 21);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_24, "NIM_merge_DYNLIB_DEINIT", 23);
NIM_CONST tyArray_popwAbp3uuRZiC4rZbYrXw CFileSectionNames_Nw5Vq9cKTP76D9bnQrn5ErRw = {((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_8),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_9),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_10),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_11),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_12),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_13),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_14),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_15),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_16),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_17),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_18),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_19),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_20),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_21),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_22),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_23),
((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_24)}
;
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_25, "/*\011NIM_merge_INFO:\012", 19);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_26, "typeCache:{", 11);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_27, "declared:{", 10);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_28, "labels:", 7);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_29, " flags:", 7);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_30, "\012*/", 3);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_31, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgmerge.nim(178, 31) `false` ccgmerge: \':\' expected", 117);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_32, "NIM_merge_INFO", 14);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_33, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgmerge.nim(160, 15) `false` ccgmerge: expected: /*\011NIM_merge"
"_END:*/", 134);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_34, "/*\011NIM_merge_END:*/", 19);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_35, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgmerge.nim(274, 19) `false` ccgmerge: unknown section: ", 122);
STRING_LITERAL(TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_36, "/Users/andreasrumpf-mac/projects/build_nim_xz/build/Nim/compile"
"r/ccgmerge.nim(276, 15) `false` ccgmerge: \'*/\' expected", 118);

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionStart_otaTb0ytiYCWgsXTIvijfg)(tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg ps, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((10 &(1U<<((NU)((*conf).symbolFiles)&7U)))!=0)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) NIM_NIL));
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_2));
		add_yG4AKzsBRS1W4MANDlXQeg(&result, CProcSectionNames_CFc65xAsTDyk1IJIOKvV1w[(ps)- 0]);
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_6));
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2)(tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg ps, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((10 &(1U<<((NU)((*conf).symbolFiles)&7U)))!=0)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_7));
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionStart_KYNwN8RXzjqIkzxFSwHsxw)(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg fs, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((10 &(1U<<((NU)((*conf).symbolFiles)&7U)))!=0)) goto LA3_;
		result = NIM_NIL;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_2));
		add_yG4AKzsBRS1W4MANDlXQeg(&result, CFileSectionNames_Nw5Vq9cKTP76D9bnQrn5ErRw[(fs)- 0]);
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_6));
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2)(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg fs, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((10 &(1U<<((NU)((*conf).symbolFiles)&7U)))!=0)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_7));
	}
	LA3_: ;
	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_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}

static N_INLINE(void, nimSetMem_2Mfumf6CnyNlShDWdIgobwsystem)(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_2Mfumf6CnyNlShDWdIgobwsystem(p, ((int) 0), size);
}

static N_INLINE(NIM_BOOL, isFilled_IxXD1UAPoEehVDW9cv9cRaewtables)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, writeTypeCache_7ozV1nDPxH000kmPalubIw)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA a, NimStringDesc** s) {
	NI i;
	i = ((NI) 0);
	{
		tyArray_qtqsWM5aXmcpMIVmvq3kAA id;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* value;
		nimZeroMem((void*)id, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
		value = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		{
			NI h;
			NI colontmp_;
			NI T3_;
			NI res;
			h = (NI)0;
			colontmp_ = (NI)0;
			T3_ = ((a.data ? a.data->Sup.len : 0)-1);
			colontmp_ = T3_;
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA5;
					h = res;
					{
						NIM_BOOL T8_;
						NimStringDesc* T16_;
						NimStringDesc* T17_;
						T8_ = (NIM_BOOL)0;
						T8_ = isFilled_IxXD1UAPoEehVDW9cv9cRaewtables(a.data->data[h].Field0);
						if (!T8_) goto LA9_;
						nimCopyMem((void*)id, (NIM_CONST void*)a.data->data[h].Field1, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
						value = a.data->data[h].Field2;
						{
							if (!(i == ((NI) 10))) goto LA13_;
							i = ((NI) 0);
							unsureAsgnRef((void**) (&(*s)), addChar((*s), 10));
						}
						goto LA11_;
						LA13_: ;
						{
							unsureAsgnRef((void**) (&(*s)), addChar((*s), 32));
						}
						LA11_: ;
						T16_ = (NimStringDesc*)0;
						T16_ = dollar__cjda4doS9ccFOjsWsGu9aa2A(id);
						encodeStr_fnpFTBPI8YDkXyVTnD89aFw(T16_, s);
						unsureAsgnRef((void**) (&(*s)), addChar((*s), 58));
						T17_ = (NimStringDesc*)0;
						T17_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(value);
						encodeStr_fnpFTBPI8YDkXyVTnD89aFw(T17_, s);
						i += ((NI) 1);
					}
					LA9_: ;
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	unsureAsgnRef((void**) (&(*s)), addChar((*s), 125));
}

N_LIB_PRIVATE N_NIMCALL(void, writeIntSet_F9cOdjZWdQIVR7nKLDaSwUw)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* a, NimStringDesc** s) {
	NI i;
	i = ((NI) 0);
	{
		NI x;
		x = (NI)0;
		{
			if (!((*a).elems <= ((NI) 34))) goto LA4_;
			{
				NI i_2;
				NI colontmp_;
				NI i_3;
				i_2 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = (*a).elems;
				i_3 = ((NI) 0);
				{
					while (1) {
						if (!(i_3 < colontmp_)) goto LA8;
						i_2 = i_3;
						x = (*a).a[(i_2)- 0];
						{
							if (!(i == ((NI) 10))) goto LA11_;
							i = ((NI) 0);
							unsureAsgnRef((void**) (&(*s)), addChar((*s), 10));
						}
						goto LA9_;
						LA11_: ;
						{
							unsureAsgnRef((void**) (&(*s)), addChar((*s), 32));
						}
						LA9_: ;
						encodeVInt_UxDO4XNnIGIEXt1v5wvZJQ(x, s);
						i += ((NI) 1);
						i_3 += ((NI) 1);
					} LA8: ;
				}
			}
		}
		goto LA2_;
		LA4_: ;
		{
			tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* r;
			r = (*a).head;
			{
				while (1) {
					NI i_4;
					if (!!((r == NIM_NIL))) goto LA16;
					i_4 = ((NI) 0);
					{
						while (1) {
							NI w;
							NI j;
							if (!(i_4 <= ((NI) 15))) goto LA18;
							w = (*r).bits[(i_4)- 0];
							j = ((NI) 0);
							{
								while (1) {
									if (!!((w == ((NI) 0)))) goto LA20;
									{
										if (!!(((NI)(w & ((NI) 1)) == ((NI) 0)))) goto LA23_;
										x = (NI)((NI)((NU32)((*r).key) << (NU32)(((NI) 9))) | (NI)((NU32)((NI)((NU32)(i_4) << (NU32)(((NI) 5)))) + (NU32)(j)));
										{
											if (!(i == ((NI) 10))) goto LA27_;
											i = ((NI) 0);
											unsureAsgnRef((void**) (&(*s)), addChar((*s), 10));
										}
										goto LA25_;
										LA27_: ;
										{
											unsureAsgnRef((void**) (&(*s)), addChar((*s), 32));
										}
										LA25_: ;
										encodeVInt_UxDO4XNnIGIEXt1v5wvZJQ(x, s);
										i += ((NI) 1);
									}
									LA23_: ;
									j += ((NI) 1);
									w = (NI)((NU32)(w) >> (NU32)(((NI) 1)));
								} LA20: ;
							}
							i_4 += ((NI) 1);
						} LA18: ;
					}
					r = (*r).next;
				} LA16: ;
			}
		}
		LA2_: ;
	}
	unsureAsgnRef((void**) (&(*s)), addChar((*s), 125));
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genMergeInfo_KvulhR9b3jYRAtMO06J1PXQ)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* s;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((10 &(1U<<((NU)((*(*(*m).g).config).symbolFiles)&7U)))!=0))) goto LA3_;
		result = NIM_NIL;
		goto BeforeRet_;
	}
	LA3_: ;
	s = copyString(((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_25));
	s = resizeString(s, 11);
appendString(s, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_26));
	writeTypeCache_7ozV1nDPxH000kmPalubIw((*m).typeCache, (&s));
	s = resizeString(s, 10);
appendString(s, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_27));
	writeIntSet_F9cOdjZWdQIVR7nKLDaSwUw((&(*m).declaredThings), (&s));
	s = resizeString(s, 7);
appendString(s, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_28));
	encodeVInt_UxDO4XNnIGIEXt1v5wvZJQ(((NI) ((*m).labels)), (&s));
	s = resizeString(s, 7);
appendString(s, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_29));
	encodeVInt_UxDO4XNnIGIEXt1v5wvZJQ(((NI) ((*m).flags)), (&s));
	s = resizeString(s, 3);
appendString(s, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_30));
	result = rope_yShmEg9cffWxI7s5XzEKBow(s);
	}BeforeRet_: ;
	return result;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, s_oPjlsf0lwosYuh6KXhkqLQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result;
	NI T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	result = &(*p).blocks->data[(NI)(T1_ - ((NI) 1))].sections[(s)- 0];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, mergeRequired_tI6nnTYCo9bEon9bDwT7wZEg)(tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= ((NI) 10))) goto LA3;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				{
					if (!!(((*m).s[(i)- 0] == NIM_NIL))) goto LA6_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA6_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg i_2;
		NI res_2;
		i_2 = (tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg)0;
		res_2 = ((NI) 0);
		{
			while (1) {
				if (!(res_2 <= ((NI) 2))) goto LA10;
				i_2 = ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) (res_2));
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T13_;
					T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T13_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).initProc, i_2);
					if (!!(((*T13_) == NIM_NIL))) goto LA14_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA14_: ;
				res_2 += ((NI) 1);
			} LA10: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, skipUntilCmd_4ml4fAAb6aU9algT0grEPGw)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L) {
	NI pos;
	pos = (*L).bufpos;
	{
		while (1) {
			switch (((NU8)((*L).buf[pos]))) {
			case 13:
			{
				pos = handleCR_MgVyABgIk9bfITlYYenxwIw(L, pos);
			}
			break;
			case 10:
			{
				pos = handleLF_MgVyABgIk9bfITlYYenxwIw_3(L, pos);
			}
			break;
			case 0:
			{
				goto LA1;
			}
			break;
			case 47:
			{
				{
					NIM_BOOL T9_;
					T9_ = (NIM_BOOL)0;
					T9_ = ((NU8)((*L).buf[(NI)(pos + ((NI) 1))]) == (NU8)(42));
					if (!(T9_)) goto LA10_;
					T9_ = ((NU8)((*L).buf[(NI)(pos + ((NI) 2))]) == (NU8)(9));
					LA10_: ;
					if (!T9_) goto LA11_;
					pos += ((NI) 3);
					goto LA1;
				}
				LA11_: ;
				pos += ((NI) 1);
			}
			break;
			default:
			{
				pos += ((NI) 1);
			}
			break;
			}
		}
	} LA1: ;
	(*L).bufpos = pos;
}

N_LIB_PRIVATE N_NIMCALL(void, readKey_pVcBo5FrQ8Mjtn8Kpp1jaw)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L, NimStringDesc** result) {
	NI pos;
	NCSTRING buf;
	pos = (*L).bufpos;
	buf = (*L).buf;
	unsureAsgnRef((void**) (&(*result)), setLengthStr((*result), ((NI) 0)));
	{
		while (1) {
			if (!(((NU8)(buf[pos])) >= ((NU8)(97)) && ((NU8)(buf[pos])) <= ((NU8)(122)) || ((NU8)(buf[pos])) >= ((NU8)(65)) && ((NU8)(buf[pos])) <= ((NU8)(90)) || ((NU8)(buf[pos])) >= ((NU8)(48)) && ((NU8)(buf[pos])) <= ((NU8)(57)) || ((NU8)(buf[pos])) == ((NU8)(95)))) goto LA2;
			unsureAsgnRef((void**) (&(*result)), addChar((*result), buf[pos]));
			pos += ((NI) 1);
		} LA2: ;
	}
	{
		if (!!(((NU8)(buf[pos]) == (NU8)(58)))) goto LA5_;
		{
			if (!NIM_TRUE) goto LA9_;
			failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_31));
		}
		LA9_: ;
	}
	LA5_: ;
	(*L).bufpos = (NI)(pos + ((NI) 1));
}

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_DCrUjdaMvFDHaR1hs7sQGwropes)(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_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, skipWhite_4ml4fAAb6aU9algT0grEPGw_2)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L) {
	NI pos;
	pos = (*L).bufpos;
	{
		while (1) {
			switch (((NU8)((*L).buf[pos]))) {
			case 13:
			{
				pos = handleCR_MgVyABgIk9bfITlYYenxwIw(L, pos);
			}
			break;
			case 10:
			{
				pos = handleLF_MgVyABgIk9bfITlYYenxwIw_3(L, pos);
			}
			break;
			case 32:
			{
				pos += ((NI) 1);
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	(*L).bufpos = pos;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEndMark_JH83PaopWtsSemeuqSts6A)(NCSTRING buf, NI pos) {
	NIM_BOOL result;
	NI s;
	result = (NIM_BOOL)0;
	s = ((NI) 0);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = (s < ((NI) 19));
			if (!(T3_)) goto LA4_;
			T3_ = ((NU8)(buf[(NI)(pos + s)]) == (NU8)(((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_34)->data[s]));
			LA4_: ;
			if (!T3_) goto LA2;
			s += ((NI) 1);
		} LA2: ;
	}
	result = (s == ((NI) 19));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, readVerbatimSection_Dfh2HdkGfgVIwA9c10yqLNA)(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag* L) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI pos;
	NCSTRING buf;
	NimStringDesc* r;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	pos = (*L).bufpos;
	buf = (*L).buf;
	r = rawNewString(((NI) 30000));
	{
		while (1) {
			switch (((NU8)(buf[pos]))) {
			case 13:
			{
				pos = handleCR_MgVyABgIk9bfITlYYenxwIw(L, pos);
				buf = (*L).buf;
				r = addChar(r, 10);
			}
			break;
			case 10:
			{
				pos = handleLF_MgVyABgIk9bfITlYYenxwIw_3(L, pos);
				buf = (*L).buf;
				r = addChar(r, 10);
			}
			break;
			case 0:
			{
				{
					if (!NIM_TRUE) goto LA8_;
					failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_33));
				}
				LA8_: ;
				goto LA1;
			}
			break;
			default:
			{
				{
					NIM_BOOL T13_;
					T13_ = (NIM_BOOL)0;
					T13_ = atEndMark_JH83PaopWtsSemeuqSts6A(buf, pos);
					if (!T13_) goto LA14_;
					pos += ((NI) 19);
					goto LA1;
				}
				LA14_: ;
				r = addChar(r, buf[pos]);
				pos += ((NI) 1);
			}
			break;
			}
		}
	} LA1: ;
	(*L).bufpos = pos;
	result = rope_yShmEg9cffWxI7s5XzEKBow(r);
	return result;
}

static N_INLINE(NI, find_tCRmV7Gq76tJkr9bbrdsTfQccgmerge)(tyArray_popwAbp3uuRZiC4rZbYrXw a, NimStringDesc* item) {
	NI result;
{	result = (NI)0;
	{
		NimStringDesc* i;
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i_2;
		i = (NimStringDesc*)0;
		i_2 = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 0);
		{
			if (!(i_2 <= ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 17))) goto LA4_;
			{
				while (1) {
					i = a[(i_2)- 0];
					{
						if (!eqStrings(i, item)) goto LA10_;
						goto BeforeRet_;
					}
					LA10_: ;
					result += ((NI) 1);
					{
						if (!(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 17) <= i_2)) goto LA14_;
						goto LA6;
					}
					LA14_: ;
					i_2 += ((NI) 1);
				}
			} LA6: ;
		}
		LA4_: ;
	}
	result = ((NI) -1);
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, find_i4ExzexSWa72wBCd9bhPMJAccgmerge)(tyArray_IgBcQZSkSYWgypAN2G9aUCg a, NimStringDesc* item) {
	NI result;
{	result = (NI)0;
	{
		NimStringDesc* i;
		tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg i_2;
		i = (NimStringDesc*)0;
		i_2 = ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0);
		{
			if (!(i_2 <= ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))) goto LA4_;
			{
				while (1) {
					i = a[(i_2)- 0];
					{
						if (!eqStrings(i, item)) goto LA10_;
						goto BeforeRet_;
					}
					LA10_: ;
					result += ((NI) 1);
					{
						if (!(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2) <= i_2)) goto LA14_;
						goto LA6;
					}
					LA14_: ;
					i_2 += ((NI) 1);
				}
			} LA6: ;
		}
		LA4_: ;
	}
	result = ((NI) -1);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, readMergeSections_SkJF1FEO0K3zrbuQ9bO4UlQ)(NimStringDesc* cfilename, tyObject_TMergeSections_crELyef4WlnFCK8sExutkA* m) {
	tyObject_TLLStream_a5oZYQ9aTktYME2449ayEi6g* s;
	tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag L;
	NimStringDesc* k;
{	s = llStreamOpen_BGY1V0iiaakSOL4Ih3HgLg(cfilename, ((tyEnum_FileMode_fVUBHvW79bXUw1j55Oo9avSQ) 0));
	{
		if (!(s == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)(&L), sizeof(tyObject_TBaseLexer_jTxk7Uc2dfr9aTDL2dZhO9ag));
	L.Sup.m_type = (&NTI_jTxk7Uc2dfr9aTDL2dZhO9ag_);
	openBaseLexer_cAsXlGfoG4L2VBz7HzfTiw((&L), s, ((NI) 8192));
	k = rawNewString(((NI) 23));
	{
		while (1) {
			skipUntilCmd_4ml4fAAb6aU9algT0grEPGw((&L));
			{
				if (!((NU8)(L.buf[L.bufpos]) == (NU8)(0))) goto LA9_;
				goto LA5;
			}
			LA9_: ;
			readKey_pVcBo5FrQ8Mjtn8Kpp1jaw((&L), (&k));
			{
				if (!eqStrings(k, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_32))) goto LA13_;
			}
			goto LA11_;
			LA13_: ;
			{
				NIM_BOOL T16_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* verbatim;
				NI sectionA;
				T16_ = (NIM_BOOL)0;
				T16_ = ((NU8)(L.buf[L.bufpos]) == (NU8)(42));
				if (!(T16_)) goto LA17_;
				T16_ = ((NU8)(L.buf[(NI)(L.bufpos + ((NI) 1))]) == (NU8)(47));
				LA17_: ;
				if (!T16_) goto LA18_;
				L.bufpos += ((NI) 2);
				skipWhite_4ml4fAAb6aU9algT0grEPGw_2((&L));
				verbatim = readVerbatimSection_Dfh2HdkGfgVIwA9c10yqLNA((&L));
				skipWhite_4ml4fAAb6aU9algT0grEPGw_2((&L));
				sectionA = find_tCRmV7Gq76tJkr9bbrdsTfQccgmerge(CFileSectionNames_Nw5Vq9cKTP76D9bnQrn5ErRw, k);
				{
					NIM_BOOL T22_;
					T22_ = (NIM_BOOL)0;
					T22_ = (((NI) 0) < sectionA);
					if (!(T22_)) goto LA23_;
					T22_ = (sectionA <= ((NI) 17));
					LA23_: ;
					if (!T22_) goto LA24_;
					unsureAsgnRef((void**) (&(*m).f[(sectionA)- 0]), verbatim);
				}
				goto LA20_;
				LA24_: ;
				{
					NI sectionB;
					sectionB = find_i4ExzexSWa72wBCd9bhPMJAccgmerge(CProcSectionNames_CFc65xAsTDyk1IJIOKvV1w, k);
					{
						NIM_BOOL T29_;
						T29_ = (NIM_BOOL)0;
						T29_ = (((NI) 0) <= sectionB);
						if (!(T29_)) goto LA30_;
						T29_ = (sectionB <= ((NI) 2));
						LA30_: ;
						if (!T29_) goto LA31_;
						unsureAsgnRef((void**) (&(*m).p[(sectionB)- 0]), verbatim);
					}
					goto LA27_;
					LA31_: ;
					{
						{
							NimStringDesc* T38_;
							if (!NIM_TRUE) goto LA36_;
							T38_ = (NimStringDesc*)0;
							T38_ = rawNewString((k ? k->Sup.len : 0) + 122);
appendString(T38_, ((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_35));
appendString(T38_, k);
							failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(T38_);
						}
						LA36_: ;
					}
					LA27_: ;
				}
				LA20_: ;
			}
			goto LA11_;
			LA18_: ;
			{
				{
					if (!NIM_TRUE) goto LA42_;
					failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_2Rn8oKP4r6cTXdnwFQ9cUjQ_36));
				}
				LA42_: ;
			}
			LA11_: ;
		}
	} LA5: ;
	closeBaseLexer_RZcso2r4MAr3lCTkQ4n75Q_2((&L));
	}BeforeRet_: ;
}

static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (ptrdiff_t) (usr))) - (NU32)(((NI)sizeof(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result;
}

static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
		if (!!((src == NIM_NIL))) goto LA3_;
		c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		(*c).refcount += ((NI) 8);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c_2;
		if (!!(((*dest) == NIM_NIL))) goto LA7_;
		c_2 = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		{
			(*c_2).refcount -= ((NI) 8);
			if (!((NU32)((*c_2).refcount) < (NU32)(((NI) 8)))) goto LA11_;
			rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c_2);
		}
		LA11_: ;
	}
	LA7_: ;
	(*dest) = src;
}

N_LIB_PRIVATE N_NIMCALL(void, mergeFiles_dx5FrFzzoyK0pxKs3VgXfA)(NimStringDesc* cfilename, tyObject_TCGen_Y9bjLcB6gcGcdtqht0fRR0A* m) {
	tyObject_TMergeSections_crELyef4WlnFCK8sExutkA old;
	nimZeroMem((void*)(&old), sizeof(tyObject_TMergeSections_crELyef4WlnFCK8sExutkA));
	readMergeSections_SkJF1FEO0K3zrbuQ9bO4UlQ(cfilename, (&old));
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= ((NI) 17))) goto LA3;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) (res));
				asgnRefNoCycle((void**) (&(*m).s[(i)- 0]), amp__mFDAEkd1kysB0V9aBd20A9aA(old.f[(i)- 0], (*m).s[(i)- 0]));
				res += ((NI) 1);
			} LA3: ;
		}
	}
	{
		tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg i_2;
		NI res_2;
		i_2 = (tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg)0;
		res_2 = ((NI) 0);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T7_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T8_;
				if (!(res_2 <= ((NI) 2))) goto LA6;
				i_2 = ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) (res_2));
				T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T7_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).initProc, i_2);
				T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T8_ = s_oPjlsf0lwosYuh6KXhkqLQcgen((*m).initProc, i_2);
				unsureAsgnRef((void**) (&(*T7_)), amp__mFDAEkd1kysB0V9aBd20A9aA(old.p[(i_2)- 0], (*T8_)));
				res_2 += ((NI) 1);
			} LA6: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_ccgmergeInit000)(void) {
{
	TFrame FR_; FR_.len = 0;
}
}

N_LIB_PRIVATE N_NIMCALL(void, compiler_ccgmergeDatInit000)(void) {
}

