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

/* section: NIM_merge_HEADERS */

#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

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

/* section: NIM_merge_FORWARD_TYPES */
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
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 tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
typedef struct tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw;
typedef struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g;
typedef struct tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tySequence__shxop0zPIs5Ec3k71aCLuQ tySequence__shxop0zPIs5Ec3k71aCLuQ;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
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__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;

/* section: NIM_merge_TYPES */
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
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__tNFrR3kRuS1FSwuiLGoSSA* 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_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU8 tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg[9];
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
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__oL9coyIA2VDTGdUcur9aL9bew;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg modifiedyNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg cmdlineNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg foreignPackageNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg notes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg warningAsErrors;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NIM_BOOL lastMsgWasDot;
NI32 projectMainIdx;
NI32 projectMainIdx2;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
NimStringDesc* docCmd;
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__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
NimStringDesc* cppCustomNamespace;
tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
};
typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
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;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag {
  RootObj Sup;
NI bufpos;
NCSTRING buf;
NimStringDesc* bufStorage;
NI bufLen;
tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stream;
NI lineNumber;
NI sentinel;
NI lineStart;
NI offsetBase;
};
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, void* ClE_0);
void* ClE_0;
} tyProc__pIuD7iLYdwrBMntVRm61ZA;
struct tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw {
  tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag Sup;
NI32 fileIdx;
NI indentAhead;
NI currLineIndent;
NIM_BOOL strongSpaces;
NIM_BOOL allowTabs;
tyProc__pIuD7iLYdwrBMntVRm61ZA errorHandler;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ;
typedef NU8 tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog;
struct tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA {
tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ tokType;
NI indent;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
NI64 iNumber;
NF fNumber;
tyEnum_NumericalBase__thnLAz9aJwaXPrSfSppUBog base;
NI8 strongSpaceA;
NI8 strongSpaceB;
NimStringDesc* literal;
NI line;
NI col;
};
typedef NU8 tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ;
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, void* buf, NI bufLen, void* ClE_0);
void* ClE_0;
} tyProc__9cZV5JMJLsdOPMv55VbpOVg;
struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g {
  RootObj Sup;
tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
tyProc__9cZV5JMJLsdOPMv55VbpOVg repl;
};
typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
typedef NU8 tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw;
typedef NU8 tySet_tyEnum_MsgFlag__BzRTaQ6LrPDZKEKt9bswkOQ;
typedef NU8 tySet_tyEnum_FormatFlag__F4vlKAV4d0Kt9aXmu9cVNBrg;
typedef NU8 tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA;
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 NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
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* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
NimStringDesc* customArgs;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__shxop0zPIs5Ec3k71aCLuQ {
  TGenericSeq Sup;
  NIM_BOOL data[SEQ_DECL_SIZE];
};
struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple__z822nu9bFF1AlQnLrHjdwpA 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__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(void, setDefaultLibpath__CQGypz7djD4eDZIXokhWpg_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, newSeq__jtFooNiUXrUQkXZQ3LMOCQ)(NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSystemConfigPath__20ZvyukzMEoGWloXckQXaw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getPrefixDir__oltK69akg0xLqkR2ITKbomg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___QVqo5OOQAdrjFqBsPctklw)(NimStringDesc* base, NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___0U8YTiSB6NvFwgvyimFN2Q)(NimStringDesc* base, NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg)(NimStringDesc* filename, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*, llStreamOpen__knWUQJsEzojha6AJCi6LcA)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode);
N_LIB_PRIVATE N_NIMCALL(void, initToken__hOE5pLJGKF2PYhldDgGvPQ)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* L);
N_LIB_PRIVATE N_NIMCALL(void, openLexer__iF0HRQJbanfrtJmOXxkqaQ)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* lex, NimStringDesc* filename, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, confTok__W4gKaCvrF9aDDQwS5wfkwow)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(void, rawGetTok__9aV9cE1HeiD7SKKtdj1FAFoQ)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, parseDirective__W4gKaCvrF9aDDQwS5wfkwow_2)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichKeyword__sZUQNPhNGEM8MllfcWvRiw)(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* id);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_NIMCALL(void, Marker_tySequence__shxop0zPIs5Ec3k71aCLuQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, evalppIf__9cvPH9boBSwUugkLl7vS9bThQ)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseExpr__9cvPH9boBSwUugkLl7vS9bThQ_2)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAndExpr__9cvPH9boBSwUugkLl7vS9bThQ_3)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAtom__9cvPH9boBSwUugkLl7vS9bThQ_4)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, lexMessage__EGsrb8R3hrhCHPuIqcgh1w)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__jkXTnxDf8MX1Pmks3s0XxA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(void, jumpToDirective__cYFLL3iLB72tl9aoG4p9cCWw)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw dest, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doElse__W4gKaCvrF9aDDQwS5wfkwow_3)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doElif__W4gKaCvrF9aDDQwS5wfkwow_4)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, doEnd__hVIBgfsggmb6JZ45rh5cNA)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
N_LIB_PRIVATE N_NIMCALL(void, msgWriteln__PO49anyWCbe63GYNOs9cVuvg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* s, tySet_tyEnum_MsgFlag__BzRTaQ6LrPDZKEKt9bswkOQ flags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nstFormat)(NimStringDesc* f, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, tySet_tyEnum_FormatFlag__F4vlKAV4d0Kt9aXmu9cVNBrg flags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___PB6jYA2RGAC8IiD19cWHRSA)(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, putEnv__YVZCqlK3fKyVR367JpYgKA)(NimStringDesc* key, NimStringDesc* val);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getEnv__hhED57tMl0Iaa5bOg9cJaig)(NimStringDesc* key, NimStringDesc* default_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, parseAssignment__W4gKaCvrF9aDDQwS5wfkwow_5)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack);
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__9ceZor1TgjCqfqvmTLxHipAlexer)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__NPagzbOMpGo9aqJmfnDrITg)(NI32 fileInfoIdx, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(void, checkSymbol__pxUSQJmMAjZDYpiVRMyMeA)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, processSwitch__DS57z9bPOnpy1Lyf6Fyb2vA)(NimStringDesc* switch_0, NimStringDesc* arg, tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA pass, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, closeLexer__DwtnSrPK9cWJ9csJe89cdABpA)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* lex);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
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);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___YYHMY7OZpnNmtTBJy5X3VA)(NimStringDesc* x, NimStringDesc* y);
N_LIB_PRIVATE N_NIMCALL(void, runNimScript__9aK66nKYiNl2TBdU36GDs9aA)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* scriptName, NIM_BOOL freshDefines, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetConfigDir)(void);
static N_INLINE(NIM_BOOL, isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosisRootDir)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__2yh9cer0ymNRHlOOg8P7IuA)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__Q6JNH4uRwLyZrj0dJakHew)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___UCoYdHlZt2oxX9ceSn0adYg)(NimStringDesc* x, NimStringDesc* y);

/* section: NIM_merge_DATA */
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_2, "config", 6);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_3, "etc/nim", 7);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_4, "/etc/nim", 8);
extern TNimType NTI__JC9bQ4bKzkuzV9bdqS4ju8yw_;
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_5, "@", 1);
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
N_LIB_PRIVATE TNimType NTI__shxop0zPIs5Ec3k71aCLuQ_;
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_6, "expected closing \')\'", 20);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_7, "expected \':\'", 12);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_8, "expected @if", 12);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_9, "expected @end", 13);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_10, "putenv", 6);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_11, "prependenv", 10);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_12, "appendenv", 9);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_13, "invalid directive: \'$1\'", 23);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_14, "-", 1);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_15, "--", 2);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_16, "expected identifier, but got: ", 30);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_17, "expected closing \']\'", 20);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_18, "%=", 2);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_19, "&", 1);
extern TNimType NTI__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_20, "nim.cfg", 7);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_21, "config.nims", 11);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_22, "nim", 3);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_23, "nimcfg", 6);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_24, "nim.cfg", 7);
extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_26, "/home/runner/work/nightlies/nightlies/nim/compiler/nimconf.nim", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__6P25SLSLz0kOcUlvm51BiA_25 = {((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_26),
((NI) 292),
((NI) 14)}
;
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_27, "nims", 4);
STRING_LITERAL(TM__6P25SLSLz0kOcUlvm51BiA_28, "nimsuggest", 10);

/* section: NIM_merge_VARS */
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;

/* section: NIM_merge_PROCS */
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSystemConfigPath__20ZvyukzMEoGWloXckQXaw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename) {
	NimStringDesc* result;
	NimStringDesc* p;
	NimStringDesc* T1_;
	result = (NimStringDesc*)0;
	p = getPrefixDir__oltK69akg0xLqkR2ITKbomg(conf);
	T1_ = (NimStringDesc*)0;
	T1_ = slash___0U8YTiSB6NvFwgvyimFN2Q(p, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_2));
	result = slash___QVqo5OOQAdrjFqBsPctklw(T1_, filename);
	{
		NIM_BOOL T4_;
		NimStringDesc* T7_;
		T4_ = (NIM_BOOL)0;
		T4_ = nosfileExists(result);
		if (!!(T4_)) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = slash___0U8YTiSB6NvFwgvyimFN2Q(p, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_3));
		result = slash___QVqo5OOQAdrjFqBsPctklw(T7_, filename);
	}
	LA5_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = nosfileExists(result);
		if (!!(T10_)) goto LA11_;
		result = slash___QVqo5OOQAdrjFqBsPctklw(((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_4), filename);
	}
	LA11_: ;
	return result;
}
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(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__JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(void, ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	rawGetTok__9aV9cE1HeiD7SKKtdj1FAFoQ(L, tok);
	{
		while (1) {
			if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 110))) goto LA2;
			rawGetTok__9aV9cE1HeiD7SKKtdj1FAFoQ(L, tok);
		} LA2: ;
	}
}
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__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(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__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tySequence__shxop0zPIs5Ec3k71aCLuQ)(void* p, NI op) {
	tySequence__shxop0zPIs5Ec3k71aCLuQ* a;
	NI T1_;
	a = (tySequence__shxop0zPIs5Ec3k71aCLuQ*)p;
	T1_ = (NI)0;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAtom__9cvPH9boBSwUugkLl7vS9bThQ_4)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 89))) goto LA3_;
		ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
		result = parseExpr__9cvPH9boBSwUugkLl7vS9bThQ_2(L, tok, config);
		{
			if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 90))) goto LA7_;
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
		}
		goto LA5_;
		LA7_: ;
		{
			lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_6));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T13_;
		if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 45))) goto LA11_;
		ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
		T13_ = (NIM_BOOL)0;
		T13_ = parseAtom__9cvPH9boBSwUugkLl7vS9bThQ_4(L, tok, config);
		result = !(T13_);
	}
	goto LA1_;
	LA11_: ;
	{
		result = isDefined__jkXTnxDf8MX1Pmks3s0XxA(config, (*(*tok).ident).s);
		ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseAndExpr__9cvPH9boBSwUugkLl7vS9bThQ_3)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = parseAtom__9cvPH9boBSwUugkLl7vS9bThQ_4(L, tok, config);
	{
		while (1) {
			NIM_BOOL b;
			NIM_BOOL T3_;
			if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 4))) goto LA2;
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			b = parseAtom__9cvPH9boBSwUugkLl7vS9bThQ_4(L, tok, config);
			T3_ = (NIM_BOOL)0;
			T3_ = result;
			if (!(T3_)) goto LA4_;
			T3_ = b;
			LA4_: ;
			result = T3_;
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseExpr__9cvPH9boBSwUugkLl7vS9bThQ_2)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = parseAndExpr__9cvPH9boBSwUugkLl7vS9bThQ_3(L, tok, config);
	{
		while (1) {
			NIM_BOOL b;
			NIM_BOOL T3_;
			if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 49))) goto LA2;
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			b = parseAndExpr__9cvPH9boBSwUugkLl7vS9bThQ_3(L, tok, config);
			T3_ = (NIM_BOOL)0;
			T3_ = result;
			if (T3_) goto LA4_;
			T3_ = b;
			LA4_: ;
			result = T3_;
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, evalppIf__9cvPH9boBSwUugkLl7vS9bThQ)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	result = parseExpr__9cvPH9boBSwUugkLl7vS9bThQ_2(L, tok, config);
	{
		if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA3_;
		ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	}
	goto LA1_;
	LA3_: ;
	{
		lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_7));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, doElse__W4gKaCvrF9aDDQwS5wfkwow_3)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {
	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_8));
	}
	LA4_: ;
	ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	{
		if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103))) goto LA8_;
		ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	}
	LA8_: ;
	{
		NI T12_;
		T12_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(*condStack)->data[T12_]) goto LA13_;
		jumpToDirective__cYFLL3iLB72tl9aoG4p9cCWw(L, tok, ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 0), config, condStack);
	}
	LA13_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, doElif__W4gKaCvrF9aDDQwS5wfkwow_4)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {
	NIM_BOOL res;
	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_8));
	}
	LA4_: ;
	res = evalppIf__9cvPH9boBSwUugkLl7vS9bThQ(L, tok, config);
	{
		NIM_BOOL T8_;
		NI T9_;
		T8_ = (NIM_BOOL)0;
		T9_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		T8_ = (*condStack)->data[T9_];
		if (T8_) goto LA10_;
		T8_ = !(res);
		LA10_: ;
		if (!T8_) goto LA11_;
		jumpToDirective__cYFLL3iLB72tl9aoG4p9cCWw(L, tok, ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 1), config, condStack);
	}
	goto LA6_;
	LA11_: ;
	{
		NI T14_;
		T14_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		(*condStack)->data[T14_] = NIM_TRUE;
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, doEnd__hVIBgfsggmb6JZ45rh5cNA)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {
	NI T6_;
	{
		NI T3_;
		T3_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		if (!(T3_ < ((NI) 0))) goto LA4_;
		lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_8));
	}
	LA4_: ;
	ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	T6_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
	unsureAsgnRef((void**) (&(*condStack)), (tySequence__shxop0zPIs5Ec3k71aCLuQ*) setLengthSeqV2(&((*condStack))->Sup, (&NTI__shxop0zPIs5Ec3k71aCLuQ_), ((NI) (T6_))));
}
N_LIB_PRIVATE N_NIMCALL(void, jumpToDirective__cYFLL3iLB72tl9aoG4p9cCWw)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw dest, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {
	NI nestedIfs;
	nestedIfs = ((NI) 0);
	{
		while (1) {
			{
				NIM_BOOL T5_;
				tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T9_;
				T5_ = (NIM_BOOL)0;
				T5_ = !(((*tok).ident == ((tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*) NIM_NIL)));
				if (!(T5_)) goto LA6_;
				T5_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_5));
				LA6_: ;
				if (!T5_) goto LA7_;
				ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
				T9_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
				T9_ = whichKeyword__sZUQNPhNGEM8MllfcWvRiw((*tok).ident);
				switch (T9_) {
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 29):
				{
					nestedIfs += ((NI) 1);
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 20):
				{
					{
						NIM_BOOL T14_;
						T14_ = (NIM_BOOL)0;
						T14_ = (dest == ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 1));
						if (!(T14_)) goto LA15_;
						T14_ = (nestedIfs == ((NI) 0));
						LA15_: ;
						if (!T14_) goto LA16_;
						doElse__W4gKaCvrF9aDDQwS5wfkwow_3(L, tok, config, condStack);
						goto LA1;
					}
					LA16_: ;
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 19):
				{
					{
						NIM_BOOL T21_;
						T21_ = (NIM_BOOL)0;
						T21_ = (dest == ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 1));
						if (!(T21_)) goto LA22_;
						T21_ = (nestedIfs == ((NI) 0));
						LA22_: ;
						if (!T21_) goto LA23_;
						doElif__W4gKaCvrF9aDDQwS5wfkwow_4(L, tok, config, condStack);
						goto LA1;
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 21):
				{
					{
						if (!(nestedIfs == ((NI) 0))) goto LA28_;
						doEnd__hVIBgfsggmb6JZ45rh5cNA(L, tok, condStack);
						goto LA1;
					}
					LA28_: ;
					{
						if (!(((NI) 0) < nestedIfs)) goto LA32_;
						nestedIfs -= ((NI) 1);
					}
					LA32_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			}
			goto LA3_;
			LA7_: ;
			{
				if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1))) goto LA36_;
				lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_9));
			}
			goto LA3_;
			LA36_: ;
			{
				ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			}
			LA3_: ;
		}
	} LA1: ;
}
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__M04YC71iJg1N7gBF3HZTngsystem)(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__M04YC71iJg1N7gBF3HZTngsystem(((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, parseDirective__W4gKaCvrF9aDDQwS5wfkwow_2)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {
	tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T1_;
	ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	T1_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
	T1_ = whichKeyword__sZUQNPhNGEM8MllfcWvRiw((*tok).ident);
	switch (T1_) {
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 29):
	{
		NI T3_;
		NIM_BOOL res;
		NI T4_;
		T3_ = ((*condStack) ? (*condStack)->Sup.len : 0);
		unsureAsgnRef((void**) (&(*condStack)), (tySequence__shxop0zPIs5Ec3k71aCLuQ*) setLengthSeqV2(&((*condStack))->Sup, (&NTI__shxop0zPIs5Ec3k71aCLuQ_), ((NI) ((NI)(T3_ + ((NI) 1))))));
		res = evalppIf__9cvPH9boBSwUugkLl7vS9bThQ(L, tok, config);
		T4_ = (((*condStack) ? (*condStack)->Sup.len : 0)-1);
		(*condStack)->data[T4_] = res;
		{
			if (!!(res)) goto LA7_;
			jumpToDirective__cYFLL3iLB72tl9aoG4p9cCWw(L, tok, ((tyEnum_TJumpDest__cqZXj5qWN1LkH2B3t29cnfw) 1), config, condStack);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 19):
	{
		doElif__W4gKaCvrF9aDDQwS5wfkwow_4(L, tok, config, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 20):
	{
		doElse__W4gKaCvrF9aDDQwS5wfkwow_3(L, tok, config, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 21):
	{
		doEnd__hVIBgfsggmb6JZ45rh5cNA(L, tok, condStack);
	}
	break;
	case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 205):
	{
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
		T13_ = (NimStringDesc*)0;
		T13_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
		T14_ = (NimStringDesc*)0;
		T14_ = nstFormat(T13_, (*config).configVars, 5);
		msgWriteln__PO49anyWCbe63GYNOs9cVuvg(config, T14_, 0);
		ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	}
	break;
	default:
	{
		NimStringDesc* T16_;
		T16_ = (NimStringDesc*)0;
		T16_ = nsuNormalize((*(*tok).ident).s);
		if (eqStrings(T16_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_10))) goto LA17_;
		if (eqStrings(T16_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_11))) goto LA18_;
		if (eqStrings(T16_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_12))) goto LA19_;
		goto LA20_;
		LA17_: ;
		{
			NimStringDesc* key;
			NimStringDesc* T23_;
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			key = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			T23_ = (NimStringDesc*)0;
			T23_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			putEnv__YVZCqlK3fKyVR367JpYgKA(key, T23_);
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
		}
		goto LA21_;
		LA18_: ;
		{
			NimStringDesc* key_2;
			NimStringDesc* T25_;
			NimStringDesc* T26_;
			NimStringDesc* T27_;
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			key_2 = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			T25_ = (NimStringDesc*)0;
			T26_ = (NimStringDesc*)0;
			T26_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			T27_ = (NimStringDesc*)0;
			T27_ = getEnv__hhED57tMl0Iaa5bOg9cJaig(key_2, ((NimStringDesc*) NIM_NIL));
			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + (T27_ ? T27_->Sup.len : 0) + 0);
appendString(T25_, T26_);
appendString(T25_, T27_);
			putEnv__YVZCqlK3fKyVR367JpYgKA(key_2, T25_);
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
		}
		goto LA21_;
		LA19_: ;
		{
			NimStringDesc* key_3;
			NimStringDesc* T29_;
			NimStringDesc* T30_;
			NimStringDesc* T31_;
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			key_3 = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
			T29_ = (NimStringDesc*)0;
			T30_ = (NimStringDesc*)0;
			T30_ = getEnv__hhED57tMl0Iaa5bOg9cJaig(key_3, ((NimStringDesc*) NIM_NIL));
			T31_ = (NimStringDesc*)0;
			T31_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + (T31_ ? T31_->Sup.len : 0) + 0);
appendString(T29_, T30_);
appendString(T29_, T31_);
			putEnv__YVZCqlK3fKyVR367JpYgKA(key_3, T29_);
			ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
		}
		goto LA21_;
		LA20_: ;
		{
			NimStringDesc* T33_;
			NimStringDesc* T34_;
			T33_ = (NimStringDesc*)0;
			T33_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			T34_ = (NimStringDesc*)0;
			T34_ = nsuFormatSingleElem(((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_13), T33_);
			lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T34_);
		}
		LA21_: ;
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, confTok__W4gKaCvrF9aDDQwS5wfkwow)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {
	ppGetTok__yzuWQEjD9bKqpO9cBczZQbuw(L, tok);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !(((*tok).ident == ((tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*) NIM_NIL)));
			if (!(T3_)) goto LA4_;
			T3_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_5));
			LA4_: ;
			if (!T3_) goto LA2;
			parseDirective__W4gKaCvrF9aDDQwS5wfkwow_2(L, tok, config, condStack);
		} LA2: ;
	}
}
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__9ceZor1TgjCqfqvmTLxHipAlexer)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	result = newLineInfo__NPagzbOMpGo9aqJmfnDrITg((*L).fileIdx, (*tok).line, (*tok).col);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkSymbol__pxUSQJmMAjZDYpiVRMyMeA)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok) {
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!!(((*tok).tokType >= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 2) && (*tok).tokType <= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 73) || (*tok).tokType >= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 83) && (*tok).tokType <= ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 85)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar___PB6jYA2RGAC8IiD19cWHRSA(tok);
		T5_ = rawNewString((T6_ ? T6_->Sup.len : 0) + 30);
appendString(T5_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_16));
appendString(T5_, T6_);
		lexMessage__EGsrb8R3hrhCHPuIqcgh1w(L, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T5_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseAssignment__W4gKaCvrF9aDDQwS5wfkwow_5)(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw* L, tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA* tok, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tySequence__shxop0zPIs5Ec3k71aCLuQ** condStack) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	NimStringDesc* s;
	NimStringDesc* val;
	NIM_BOOL percent;
	NIM_BOOL T24_;
	{
		if (!!(((*tok).ident == ((tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*) NIM_NIL)))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_14));
			if (T7_) goto LA8_;
			T7_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_15));
			LA8_: ;
			if (!T7_) goto LA9_;
			confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
		}
		LA9_: ;
	}
	LA3_: ;
	info = getLineInfo__9ceZor1TgjCqfqvmTLxHipAlexer((&(*L)), (&(*tok)));
	checkSymbol__pxUSQJmMAjZDYpiVRMyMeA((&(*L)), (&(*tok)));
	s = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
	confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
	val = ((NimStringDesc*) NIM_NIL);
	{
		while (1) {
			NimStringDesc* T13_;
			if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 106))) goto LA12;
			s = addChar(s, 46);
			confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
			checkSymbol__pxUSQJmMAjZDYpiVRMyMeA((&(*L)), (&(*tok)));
			T13_ = (NimStringDesc*)0;
			T13_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			s = resizeString(s, (T13_ ? T13_->Sup.len : 0) + 0);
appendString(s, T13_);
			confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
		} LA12: ;
	}
	{
		NimStringDesc* T18_;
		if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 91))) goto LA16_;
		confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
		checkSymbol__pxUSQJmMAjZDYpiVRMyMeA((&(*L)), (&(*tok)));
		val = addChar(val, 91);
		T18_ = (NimStringDesc*)0;
		T18_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
		val = resizeString(val, (T18_ ? T18_->Sup.len : 0) + 0);
appendString(val, T18_);
		confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
		{
			if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 92))) goto LA21_;
			confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
		}
		goto LA19_;
		LA21_: ;
		{
			lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&(*L)), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_17));
		}
		LA19_: ;
		val = addChar(val, 93);
	}
	LA16_: ;
	T24_ = (NIM_BOOL)0;
	T24_ = !(((*tok).ident == ((tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*) NIM_NIL)));
	if (!(T24_)) goto LA25_;
	T24_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_18));
	LA25_: ;
	percent = T24_;
	{
		NIM_BOOL T28_;
		NimStringDesc* T36_;
		T28_ = (NIM_BOOL)0;
		T28_ = ((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103) || (*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105));
		if (T28_) goto LA29_;
		T28_ = percent;
		LA29_: ;
		if (!T28_) goto LA30_;
		{
			if (!(((NI) 0) < (val ? val->Sup.len : 0))) goto LA34_;
			val = addChar(val, 58);
		}
		LA34_: ;
		confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
		checkSymbol__pxUSQJmMAjZDYpiVRMyMeA((&(*L)), (&(*tok)));
		T36_ = (NimStringDesc*)0;
		T36_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
		val = resizeString(val, (T36_ ? T36_->Sup.len : 0) + 0);
appendString(val, T36_);
		confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
		{
			NimStringDesc* T41_;
			NimStringDesc* T42_;
			if (!((*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 103) || (*tok).tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 105))) goto LA39_;
			T41_ = (NimStringDesc*)0;
			T41_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			val = resizeString(val, (T41_ ? T41_->Sup.len : 0) + 0);
appendString(val, T41_);
			confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
			checkSymbol__pxUSQJmMAjZDYpiVRMyMeA((&(*L)), (&(*tok)));
			T42_ = (NimStringDesc*)0;
			T42_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
			val = resizeString(val, (T42_ ? T42_->Sup.len : 0) + 0);
appendString(val, T42_);
			confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
		}
		LA39_: ;
		{
			while (1) {
				NIM_BOOL T45_;
				NimStringDesc* T47_;
				T45_ = (NIM_BOOL)0;
				T45_ = !(((*tok).ident == ((tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*) NIM_NIL)));
				if (!(T45_)) goto LA46_;
				T45_ = eqStrings((*(*tok).ident).s, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_19));
				LA46_: ;
				if (!T45_) goto LA44;
				confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
				checkSymbol__pxUSQJmMAjZDYpiVRMyMeA((&(*L)), (&(*tok)));
				T47_ = (NimStringDesc*)0;
				T47_ = dollar___PB6jYA2RGAC8IiD19cWHRSA((&(*tok)));
				val = resizeString(val, (T47_ ? T47_->Sup.len : 0) + 0);
appendString(val, T47_);
				confTok__W4gKaCvrF9aDDQwS5wfkwow(L, tok, config, condStack);
			} LA44: ;
		}
	}
	LA30_: ;
	{
		NimStringDesc* T52_;
		if (!percent) goto LA50_;
		T52_ = (NimStringDesc*)0;
		T52_ = nstFormat(val, (*config).configVars, 3);
		processSwitch__DS57z9bPOnpy1Lyf6Fyb2vA(s, T52_, ((tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA) 2), info, config);
	}
	goto LA48_;
	LA50_: ;
	{
		processSwitch__DS57z9bPOnpy1Lyf6Fyb2vA(s, val, ((tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA) 2), info, config);
	}
	LA48_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg)(NimStringDesc* filename, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config) {
	NIM_BOOL result;
	tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw L;
	tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA tok;
	tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stream;
{	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&L), sizeof(tyObject_Lexer__JC9bQ4bKzkuzV9bdqS4ju8yw));
	L.Sup.Sup.m_type = (&NTI__JC9bQ4bKzkuzV9bdqS4ju8yw_);
	nimZeroMem((void*)(&tok), sizeof(tyObject_Token__sNMaWRTImjqfh1DU9cmdQkA));
	stream = (tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*)0;
	stream = llStreamOpen__knWUQJsEzojha6AJCi6LcA(filename, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0));
	{
		tySequence__shxop0zPIs5Ec3k71aCLuQ* condStack;
		if (!!((stream == ((tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*) NIM_NIL)))) goto LA3_;
		initToken__hOE5pLJGKF2PYhldDgGvPQ((&tok));
		openLexer__iF0HRQJbanfrtJmOXxkqaQ((&L), filename, stream, cache, config);
		tok.tokType = ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1);
		condStack = NIM_NIL;
		confTok__W4gKaCvrF9aDDQwS5wfkwow((&L), (&tok), config, (&condStack));
		{
			while (1) {
				if (!!((tok.tokType == ((tyEnum_TokType__5VVBIL7Ozj1cc9akK23jAGQ) 1)))) goto LA6;
				parseAssignment__W4gKaCvrF9aDDQwS5wfkwow_5((&L), (&tok), config, (&condStack));
			} LA6: ;
		}
		{
			NI T9_;
			T9_ = (condStack ? condStack->Sup.len : 0);
			if (!(((NI) 0) < T9_)) goto LA10_;
			lexMessage__EGsrb8R3hrhCHPuIqcgh1w((&L), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_9));
		}
		LA10_: ;
		closeLexer__DwtnSrPK9cWJ9csJe89cdABpA((&L));
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((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) 8));
	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_);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA)(NimStringDesc* filename) {
	NimStringDesc* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	result = (NimStringDesc*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = nosgetConfigDir();
	T2_ = (NimStringDesc*)0;
	T2_ = slash___0U8YTiSB6NvFwgvyimFN2Q(T1_, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_22));
	result = slash___QVqo5OOQAdrjFqBsPctklw(T2_, filename);
	return result;
}
static N_INLINE(NIM_BOOL, isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils)(NimStringDesc* x) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((x ? x->Sup.len : 0) == ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, loadConfigs__YEwEmZgkg9cjY353WcQKcEQ)(NimStringDesc* cfg, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
	NimStringDesc* pd;
	setDefaultLibpath__CQGypz7djD4eDZIXokhWpg_3(conf);
	configFiles = newSeq__jtFooNiUXrUQkXZQ3LMOCQ(((NI) 0));
	{
		NimStringDesc* configPathX60gensym15_;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0))) goto LA3_;
		configPathX60gensym15_ = getSystemConfigPath__20ZvyukzMEoGWloXckQXaw(conf, cfg);
		{
			NIM_BOOL T7_;
			NI T10_;
			NimStringDesc* T11_;
			T7_ = (NIM_BOOL)0;
			T7_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym15_, cache, conf);
			if (!T7_) goto LA8_;
			configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
			T10_ = configFiles->Sup.len++;
			T11_ = (NimStringDesc*)0;
			T11_ = configFiles->data[T10_]; configFiles->data[T10_] = copyStringRC1(configPathX60gensym15_);
			if (T11_) nimGCunrefNoCycle(T11_);
		}
		LA8_: ;
		{
			NIM_BOOL T14_;
			NimStringDesc* pX60gensym16_;
			T14_ = (NIM_BOOL)0;
			T14_ = eqeq___YYHMY7OZpnNmtTBJy5X3VA(cfg, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_20));
			if (!T14_) goto LA15_;
			pX60gensym16_ = getSystemConfigPath__20ZvyukzMEoGWloXckQXaw(conf, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_21));
			{
				NIM_BOOL T19_;
				NI T22_;
				NimStringDesc* T23_;
				T19_ = (NIM_BOOL)0;
				T19_ = nosfileExists(pX60gensym16_);
				if (!T19_) goto LA20_;
				configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				T22_ = configFiles->Sup.len++;
				T23_ = (NimStringDesc*)0;
				T23_ = configFiles->data[T22_]; configFiles->data[T22_] = copyStringRC1(pX60gensym16_);
				if (T23_) nimGCunrefNoCycle(T23_);
				runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym16_, NIM_FALSE, conf);
			}
			LA20_: ;
		}
		LA15_: ;
	}
	LA3_: ;
	{
		NimStringDesc* configPathX60gensym18_;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 18))&63U)))!=0))) goto LA26_;
		configPathX60gensym18_ = getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA(cfg);
		{
			NIM_BOOL T30_;
			NI T33_;
			NimStringDesc* T34_;
			T30_ = (NIM_BOOL)0;
			T30_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym18_, cache, conf);
			if (!T30_) goto LA31_;
			configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
			T33_ = configFiles->Sup.len++;
			T34_ = (NimStringDesc*)0;
			T34_ = configFiles->data[T33_]; configFiles->data[T33_] = copyStringRC1(configPathX60gensym18_);
			if (T34_) nimGCunrefNoCycle(T34_);
		}
		LA31_: ;
		{
			NIM_BOOL T37_;
			NimStringDesc* pX60gensym19_;
			T37_ = (NIM_BOOL)0;
			T37_ = eqeq___YYHMY7OZpnNmtTBJy5X3VA(cfg, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_20));
			if (!T37_) goto LA38_;
			pX60gensym19_ = getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA(((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_21));
			{
				NIM_BOOL T42_;
				NI T45_;
				NimStringDesc* T46_;
				T42_ = (NIM_BOOL)0;
				T42_ = nosfileExists(pX60gensym19_);
				if (!T42_) goto LA43_;
				configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				T45_ = configFiles->Sup.len++;
				T46_ = (NimStringDesc*)0;
				T46_ = configFiles->data[T45_]; configFiles->data[T45_] = copyStringRC1(pX60gensym19_);
				if (T46_) nimGCunrefNoCycle(T46_);
				runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym19_, NIM_FALSE, conf);
			}
			LA43_: ;
		}
		LA38_: ;
	}
	LA26_: ;
	{
		NIM_BOOL T49_;
		T49_ = (NIM_BOOL)0;
		T49_ = isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils((*conf).projectPath);
		if (!!(T49_)) goto LA50_;
		pd = (*conf).projectPath;
	}
	goto LA47_;
	LA50_: ;
	{
		pd = nosgetCurrentDir();
	}
	LA47_: ;
	{
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 19))&63U)))!=0))) goto LA55_;
		{
			NimStringDesc* dir;
			NimStringDesc* colontmp_;
			dir = (NimStringDesc*)0;
			colontmp_ = (NimStringDesc*)0;
			colontmp_ = pd;
			{
				NimStringDesc* current;
				if (!NIM_FALSE) goto LA60_;
				current = copyString(colontmp_);
				{
					NimStringDesc* configPathX60gensym21_;
					if (!NIM_FALSE) goto LA64_;
					dir = colontmp_;
					configPathX60gensym21_ = slash___QVqo5OOQAdrjFqBsPctklw(dir, cfg);
					{
						NIM_BOOL T68_;
						NI T71_;
						NimStringDesc* T72_;
						T68_ = (NIM_BOOL)0;
						T68_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym21_, cache, conf);
						if (!T68_) goto LA69_;
						configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
						T71_ = configFiles->Sup.len++;
						T72_ = (NimStringDesc*)0;
						T72_ = configFiles->data[T71_]; configFiles->data[T71_] = copyStringRC1(configPathX60gensym21_);
						if (T72_) nimGCunrefNoCycle(T72_);
					}
					LA69_: ;
					{
						NIM_BOOL T75_;
						NimStringDesc* pX60gensym22_;
						T75_ = (NIM_BOOL)0;
						T75_ = eqeq___YYHMY7OZpnNmtTBJy5X3VA(cfg, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_20));
						if (!T75_) goto LA76_;
						pX60gensym22_ = slash___QVqo5OOQAdrjFqBsPctklw(dir, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_21));
						{
							NIM_BOOL T80_;
							NI T83_;
							NimStringDesc* T84_;
							T80_ = (NIM_BOOL)0;
							T80_ = nosfileExists(pX60gensym22_);
							if (!T80_) goto LA81_;
							configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
							T83_ = configFiles->Sup.len++;
							T84_ = (NimStringDesc*)0;
							T84_ = configFiles->data[T83_]; configFiles->data[T83_] = copyStringRC1(pX60gensym22_);
							if (T84_) nimGCunrefNoCycle(T84_);
							runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym22_, NIM_FALSE, conf);
						}
						LA81_: ;
					}
					LA76_: ;
				}
				LA64_: ;
				{
					while (1) {
						NimStringDesc* configPathX60gensym21__2;
						{
							NIM_BOOL T89_;
							T89_ = (NIM_BOOL)0;
							T89_ = nosisRootDir(current);
							if (!T89_) goto LA90_;
							goto LA85;
						}
						LA90_: ;
						current = nosparentDir(current);
						dir = current;
						configPathX60gensym21__2 = slash___QVqo5OOQAdrjFqBsPctklw(dir, cfg);
						{
							NIM_BOOL T94_;
							NI T97_;
							NimStringDesc* T98_;
							T94_ = (NIM_BOOL)0;
							T94_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym21__2, cache, conf);
							if (!T94_) goto LA95_;
							configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
							T97_ = configFiles->Sup.len++;
							T98_ = (NimStringDesc*)0;
							T98_ = configFiles->data[T97_]; configFiles->data[T97_] = copyStringRC1(configPathX60gensym21__2);
							if (T98_) nimGCunrefNoCycle(T98_);
						}
						LA95_: ;
						{
							NIM_BOOL T101_;
							NimStringDesc* pX60gensym22__2;
							T101_ = (NIM_BOOL)0;
							T101_ = eqeq___YYHMY7OZpnNmtTBJy5X3VA(cfg, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_20));
							if (!T101_) goto LA102_;
							pX60gensym22__2 = slash___QVqo5OOQAdrjFqBsPctklw(dir, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_21));
							{
								NIM_BOOL T106_;
								NI T109_;
								NimStringDesc* T110_;
								T106_ = (NIM_BOOL)0;
								T106_ = nosfileExists(pX60gensym22__2);
								if (!T106_) goto LA107_;
								configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
								T109_ = configFiles->Sup.len++;
								T110_ = (NimStringDesc*)0;
								T110_ = configFiles->data[T109_]; configFiles->data[T109_] = copyStringRC1(pX60gensym22__2);
								if (T110_) nimGCunrefNoCycle(T110_);
								runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym22__2, NIM_FALSE, conf);
							}
							LA107_: ;
						}
						LA102_: ;
					}
				} LA85: ;
			}
			goto LA58_;
			LA60_: ;
			{
				{
					NI i;
					NI colontmp__2;
					NI res;
					i = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = (NI)((colontmp_ ? colontmp_->Sup.len : 0) - ((NI) 2));
					res = ((NI) 0);
					{
						while (1) {
							if (!(res <= colontmp__2)) goto LA114;
							i = res;
							{
								NIM_BOOL T117_;
								NIM_BOOL T119_;
								NimStringDesc* configPathX60gensym21__3;
								T117_ = (NIM_BOOL)0;
								T117_ = (((NU8)(colontmp_->data[i])) == ((NU8)(47)) || ((NU8)(colontmp_->data[i])) == ((NU8)(47)));
								if (!(T117_)) goto LA118_;
								T119_ = (NIM_BOOL)0;
								T119_ = (i == ((NI) 0));
								if (T119_) goto LA120_;
								T119_ = !((((NU8)(colontmp_->data[(NI)(i - ((NI) 1))])) == ((NU8)(47)) || ((NU8)(colontmp_->data[(NI)(i - ((NI) 1))])) == ((NU8)(47))));
								LA120_: ;
								T117_ = T119_;
								LA118_: ;
								if (!T117_) goto LA121_;
								dir = substr__2yh9cer0ymNRHlOOg8P7IuA(colontmp_, ((NI) 0), i);
								configPathX60gensym21__3 = slash___QVqo5OOQAdrjFqBsPctklw(dir, cfg);
								{
									NIM_BOOL T125_;
									NI T128_;
									NimStringDesc* T129_;
									T125_ = (NIM_BOOL)0;
									T125_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym21__3, cache, conf);
									if (!T125_) goto LA126_;
									configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
									T128_ = configFiles->Sup.len++;
									T129_ = (NimStringDesc*)0;
									T129_ = configFiles->data[T128_]; configFiles->data[T128_] = copyStringRC1(configPathX60gensym21__3);
									if (T129_) nimGCunrefNoCycle(T129_);
								}
								LA126_: ;
								{
									NIM_BOOL T132_;
									NimStringDesc* pX60gensym22__3;
									T132_ = (NIM_BOOL)0;
									T132_ = eqeq___YYHMY7OZpnNmtTBJy5X3VA(cfg, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_20));
									if (!T132_) goto LA133_;
									pX60gensym22__3 = slash___QVqo5OOQAdrjFqBsPctklw(dir, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_21));
									{
										NIM_BOOL T137_;
										NI T140_;
										NimStringDesc* T141_;
										T137_ = (NIM_BOOL)0;
										T137_ = nosfileExists(pX60gensym22__3);
										if (!T137_) goto LA138_;
										configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
										T140_ = configFiles->Sup.len++;
										T141_ = (NimStringDesc*)0;
										T141_ = configFiles->data[T140_]; configFiles->data[T140_] = copyStringRC1(pX60gensym22__3);
										if (T141_) nimGCunrefNoCycle(T141_);
										runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym22__3, NIM_FALSE, conf);
									}
									LA138_: ;
								}
								LA133_: ;
							}
							LA121_: ;
							res += ((NI) 1);
						} LA114: ;
					}
				}
				{
					NimStringDesc* configPathX60gensym21__4;
					if (!NIM_FALSE) goto LA144_;
					dir = colontmp_;
					configPathX60gensym21__4 = slash___QVqo5OOQAdrjFqBsPctklw(dir, cfg);
					{
						NIM_BOOL T148_;
						NI T151_;
						NimStringDesc* T152_;
						T148_ = (NIM_BOOL)0;
						T148_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym21__4, cache, conf);
						if (!T148_) goto LA149_;
						configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
						T151_ = configFiles->Sup.len++;
						T152_ = (NimStringDesc*)0;
						T152_ = configFiles->data[T151_]; configFiles->data[T151_] = copyStringRC1(configPathX60gensym21__4);
						if (T152_) nimGCunrefNoCycle(T152_);
					}
					LA149_: ;
					{
						NIM_BOOL T155_;
						NimStringDesc* pX60gensym22__4;
						T155_ = (NIM_BOOL)0;
						T155_ = eqeq___YYHMY7OZpnNmtTBJy5X3VA(cfg, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_20));
						if (!T155_) goto LA156_;
						pX60gensym22__4 = slash___QVqo5OOQAdrjFqBsPctklw(dir, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_21));
						{
							NIM_BOOL T160_;
							NI T163_;
							NimStringDesc* T164_;
							T160_ = (NIM_BOOL)0;
							T160_ = nosfileExists(pX60gensym22__4);
							if (!T160_) goto LA161_;
							configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
							T163_ = configFiles->Sup.len++;
							T164_ = (NimStringDesc*)0;
							T164_ = configFiles->data[T163_]; configFiles->data[T163_] = copyStringRC1(pX60gensym22__4);
							if (T164_) nimGCunrefNoCycle(T164_);
							runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym22__4, NIM_FALSE, conf);
						}
						LA161_: ;
					}
					LA156_: ;
				}
				LA144_: ;
			}
			LA58_: ;
		}
	}
	LA55_: ;
	{
		NimStringDesc* configPathX60gensym24_;
		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 17))&63U)))!=0))) goto LA167_;
		configPathX60gensym24_ = slash___QVqo5OOQAdrjFqBsPctklw(pd, cfg);
		{
			NIM_BOOL T171_;
			NI T174_;
			NimStringDesc* T175_;
			T171_ = (NIM_BOOL)0;
			T171_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym24_, cache, conf);
			if (!T171_) goto LA172_;
			configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
			T174_ = configFiles->Sup.len++;
			T175_ = (NimStringDesc*)0;
			T175_ = configFiles->data[T174_]; configFiles->data[T174_] = copyStringRC1(configPathX60gensym24_);
			if (T175_) nimGCunrefNoCycle(T175_);
		}
		LA172_: ;
		{
			NimStringDesc* projectConfig;
			NimStringDesc* configPathX60gensym26_;
			if (!!((((*conf).projectName ? (*conf).projectName->Sup.len : 0) == ((NI) 0)))) goto LA178_;
			projectConfig = noschangeFileExt((*conf).projectFull, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_23));
			{
				NIM_BOOL T182_;
				T182_ = (NIM_BOOL)0;
				T182_ = nosfileExists(projectConfig);
				if (!!(T182_)) goto LA183_;
				projectConfig = noschangeFileExt((*conf).projectFull, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_24));
			}
			LA183_: ;
			configPathX60gensym26_ = projectConfig;
			{
				NIM_BOOL T187_;
				NI T190_;
				NimStringDesc* T191_;
				T187_ = (NIM_BOOL)0;
				T187_ = readConfigFile__WGk9b9cMkjqLCtaEjFZBmykg(configPathX60gensym26_, cache, conf);
				if (!T187_) goto LA188_;
				configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				T190_ = configFiles->Sup.len++;
				T191_ = (NimStringDesc*)0;
				T191_ = configFiles->data[T190_]; configFiles->data[T190_] = copyStringRC1(configPathX60gensym26_);
				if (T191_) nimGCunrefNoCycle(T191_);
			}
			LA188_: ;
		}
		LA178_: ;
		{
			NIM_BOOL T194_;
			NimStringDesc* pX60gensym27_;
			T194_ = (NIM_BOOL)0;
			T194_ = eqeq___YYHMY7OZpnNmtTBJy5X3VA(cfg, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_20));
			if (!T194_) goto LA195_;
			pX60gensym27_ = slash___QVqo5OOQAdrjFqBsPctklw(pd, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_21));
			{
				NIM_BOOL T199_;
				NI T202_;
				NimStringDesc* T203_;
				T199_ = (NIM_BOOL)0;
				T199_ = nosfileExists(pX60gensym27_);
				if (!T199_) goto LA200_;
				configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				T202_ = configFiles->Sup.len++;
				T203_ = (NimStringDesc*)0;
				T203_ = configFiles->data[T202_]; configFiles->data[T202_] = copyStringRC1(pX60gensym27_);
				if (T203_) nimGCunrefNoCycle(T203_);
				runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym27_, NIM_FALSE, conf);
			}
			LA200_: ;
		}
		LA195_: ;
	}
	LA167_: ;
	{
		NimStringDesc** filename;
		NI i_2;
		NI L;
		NI T205_;
		filename = (NimStringDesc**)0;
		i_2 = ((NI) 0);
		T205_ = (configFiles ? configFiles->Sup.len : 0);
		L = T205_;
		{
			while (1) {
				if (!(i_2 < L)) goto LA207;
				filename = (&configFiles->data[i_2]);
				liMessage__Q6JNH4uRwLyZrj0dJakHew(conf, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 65), (*filename), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__6P25SLSLz0kOcUlvm51BiA_25, NIM_FALSE);
				i_2 += ((NI) 1);
			} LA207: ;
		}
	}
	{
		NimStringDesc* scriptFile;
		scriptFile = noschangeFileExt((*conf).projectFull, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_27));
		{
			NimStringDesc* pX60gensym33_;
			if (!!(eqStrings((*conf).command, ((NimStringDesc*) &TM__6P25SLSLz0kOcUlvm51BiA_28)))) goto LA211_;
			pX60gensym33_ = scriptFile;
			{
				NIM_BOOL T215_;
				NI T218_;
				NimStringDesc* T219_;
				T215_ = (NIM_BOOL)0;
				T215_ = nosfileExists(pX60gensym33_);
				if (!T215_) goto LA216_;
				configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
				T218_ = configFiles->Sup.len++;
				T219_ = (NimStringDesc*)0;
				T219_ = configFiles->data[T218_]; configFiles->data[T218_] = copyStringRC1(pX60gensym33_);
				if (T219_) nimGCunrefNoCycle(T219_);
				runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym33_, NIM_FALSE, conf);
			}
			LA216_: ;
		}
		goto LA209_;
		LA211_: ;
		{
			{
				NIM_BOOL T223_;
				NimStringDesc* pX60gensym35_;
				T223_ = (NIM_BOOL)0;
				T223_ = eqeq___UCoYdHlZt2oxX9ceSn0adYg(scriptFile, (*conf).projectFull);
				if (!!(T223_)) goto LA224_;
				pX60gensym35_ = scriptFile;
				{
					NIM_BOOL T228_;
					NI T231_;
					NimStringDesc* T232_;
					T228_ = (NIM_BOOL)0;
					T228_ = nosfileExists(pX60gensym35_);
					if (!T228_) goto LA229_;
					configFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(configFiles), (&NTI__sM4lkSb7zS6F7OVMvW9cffQ_));
					T231_ = configFiles->Sup.len++;
					T232_ = (NimStringDesc*)0;
					T232_ = configFiles->data[T231_]; configFiles->data[T231_] = copyStringRC1(pX60gensym35_);
					if (T232_) nimGCunrefNoCycle(T232_);
					runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym35_, NIM_FALSE, conf);
				}
				LA229_: ;
			}
			goto LA221_;
			LA224_: ;
			{
			}
			LA221_: ;
		}
		LA209_: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_nimconfDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT3 */
NTI__shxop0zPIs5Ec3k71aCLuQ_.size = sizeof(tySequence__shxop0zPIs5Ec3k71aCLuQ*);
NTI__shxop0zPIs5Ec3k71aCLuQ_.align = NIM_ALIGNOF(tySequence__shxop0zPIs5Ec3k71aCLuQ*);
NTI__shxop0zPIs5Ec3k71aCLuQ_.kind = 24;
NTI__shxop0zPIs5Ec3k71aCLuQ_.base = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
NTI__shxop0zPIs5Ec3k71aCLuQ_.flags = 2;
NTI__shxop0zPIs5Ec3k71aCLuQ_.marker = Marker_tySequence__shxop0zPIs5Ec3k71aCLuQ;
}

