/* Generated by Nim Compiler v1.4.0 */
/*   (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>
#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 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ tySequence__bWZXqEvLFwhLvAqSRoFNgQ;
typedef struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA;
typedef struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw tyObject_Table__IioUJGdqPI6xC7S7QF8MBw;
typedef struct tySequence__Qr6E8eH7btq79cFKGaJfGLw tySequence__Qr6E8eH7btq79cFKGaJfGLw;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__PzqTLBFNawCGiqTk0UORYw tySequence__PzqTLBFNawCGiqTk0UORYw;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tySequence__DL2Id9b2SwHghZpjvWsUcAw tySequence__DL2Id9b2SwHghZpjvWsUcAw;
typedef struct tyTuple__CHGVxU5ophQHfZDcth7p1w tyTuple__CHGVxU5ophQHfZDcth7p1w;
typedef struct tySequence__76wc9cnTOK9c6epudv8uYE0w tySequence__76wc9cnTOK9c6epudv8uYE0w;
typedef struct tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q;
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 tySequence__AK3cQuijuQxFGdWA8l9a9aYA tySequence__AK3cQuijuQxFGdWA8l9a9aYA;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__quA39a2QdEQU9cSEIUSibApQ tyTuple__quA39a2QdEQU9cSEIUSibApQ;
typedef struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple__euPCXX9bc3XzndEhYlqNS7g tyTuple__euPCXX9bc3XzndEhYlqNS7g;
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;

/* section: NIM_merge_TYPES */
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
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_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
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_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__OLX364rHC66WkzRbMp49aQg[64];
typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__6GDJmNRiFxkWAAdMgUie8g[70];
struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA {
char dummy;
};
struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw {
tySequence__Qr6E8eH7btq79cFKGaJfGLw* data;
NI counter;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, tyProc__c6vdo1yHyj19b9bS17tijS2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__d5yEkT9aXkAtHvVerr7IeCQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(void, tyProc__sP1I7TbCn358eLy9bX4IphA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__3TeLOx1euAsRk3YCaQCuPg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* actual);
struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* modules;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg deps;
tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* usageSym;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* owners;
tySequence__bWZXqEvLFwhLvAqSRoFNgQ* methods;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* systemModule;
tyArray__OLX364rHC66WkzRbMp49aQg sysTypes;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
tyArray__6GDJmNRiFxkWAAdMgUie8g intTypeCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opContains;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opNot;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA incr;
tyObject_Table__IioUJGdqPI6xC7S7QF8MBw canonTypes;
tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc__c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
tyProc__d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
tyProc__sP1I7TbCn358eLy9bX4IphA recordStmt;
tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence__PzqTLBFNawCGiqTk0UORYw* passes;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinition;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinitionResolveForward;
tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onUsage;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
tyProc__sP1I7TbCn358eLy9bX4IphA strongSemCheck;
tyProc__3TeLOx1euAsRk3YCaQCuPg compatibleProps;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyTuple__CHGVxU5ophQHfZDcth7p1w {
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg Field0;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg Field1;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pnode;
NI id;
NI idx;
NI lowLink;
NIM_BOOL onStack;
tySequence__76wc9cnTOK9c6epudv8uYE0w* kids;
NI hAQ;
NI hIS;
NI hB;
NI hCmd;
};
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 NU tyArray__cC4ce9cdvDKtIpar5g9cDejA[16];
struct tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ {
tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* next;
NI key;
tyArray__cC4ce9cdvDKtIpar5g9cDejA bits;
};
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* x, tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* y, void* ClE_0);
void* ClE_0;
} tyProc__WrsL3l9cLQ31FpOtAGcGovA;
typedef NU8 tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA;
typedef N_CLOSURE_PTR(NI, TM__wGDfi9c1BEw7VBzRnDQgLpQ_9) (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* x, tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* y, void* ClE_0);
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple__quA39a2QdEQU9cSEIUSibApQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__8ooe5vdoqmvpHnfXV29bP3w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple__euPCXX9bc3XzndEhYlqNS7g {
tyProc__8ooe5vdoqmvpHnfXV29bP3w Field0;
tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__DL2Id9b2SwHghZpjvWsUcAw {
  TGenericSeq Sup;
  tyTuple__CHGVxU5ophQHfZDcth7p1w data[SEQ_DECL_SIZE];
};
struct tySequence__76wc9cnTOK9c6epudv8uYE0w {
  TGenericSeq Sup;
  tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* data[SEQ_DECL_SIZE];
};
struct tySequence__AK3cQuijuQxFGdWA8l9a9aYA {
  TGenericSeq Sup;
  tySequence__76wc9cnTOK9c6epudv8uYE0w* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ {
  TGenericSeq Sup;
  tyTuple__quA39a2QdEQU9cSEIUSibApQ data[SEQ_DECL_SIZE];
};
struct tySequence__Qr6E8eH7btq79cFKGaJfGLw {
  TGenericSeq Sup;
  tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__PzqTLBFNawCGiqTk0UORYw {
  TGenericSeq Sup;
  tyTuple__euPCXX9bc3XzndEhYlqNS7g data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasForbiddenPragma__QIHxP9aHKAIpWu3E0oiiONQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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);
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(void, initIntSet__n8oDZMn19bEdodSnrBQB9a1Q)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, splitSections__Ydu9bY9bKLkBUE0Ph8YGkV9bg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, expandIncludes__f6opa6EYhh0IqorrrfgDqg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* modulePath, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* includedFiles);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasIncludes__QIHxP9aHKAIpWu3E0oiiONQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI32, checkModuleName__fDy39b69bb9cFVEyPkMJp3GTg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL doLocalError);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
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(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toMsgFilename__eX9aCxa5NfPq9alDDS1zYbvw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, includeModule__KT74AZK8B9bGaazZVJqBE4A)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NI32 fileIdx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, parseFile__HSBHiITVPKlv327uAC12yw)(NI32 fileIdx, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(void, addDep__cCI0fqtTipEqkPEycgnc9cg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 dep);
N_LIB_PRIVATE N_NIMCALL(void, addIncludeDep__sRGnaJBZsj1fPp3iXseulA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI32 module, NI32 includeFile);
N_LIB_PRIVATE N_NIMCALL(void, excl__jENnK9c9bPE73pKmo2vYjpqg_2)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tySequence__DL2Id9b2SwHghZpjvWsUcAw*, newSeq__WnGNywQL9aJqHo8aAYvktgQ)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* declares, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* uses, NIM_BOOL topLevel);
N_LIB_PRIVATE N_NIMCALL(void, addDecl__qCO3hgGiY7pqZX3XlARn0w)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* declares);
N_LIB_PRIVATE N_NIMCALL(void, incl__jENnK9c9bPE73pKmo2vYjpqg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, accQuoted__fp73k52v83pnBAJRbJAZKw)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__9coBOmdXN09be4rJvXK6fQGQ)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(tySequence__76wc9cnTOK9c6epudv8uYE0w*, buildGraph__l1rQixGqVPrOr9aCWQMBrWw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__DL2Id9b2SwHghZpjvWsUcAw* deps);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__OiD2O9bS9cMtitswLivRUn5g)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*, newDepN__XaQski0zL4giy3TLeFookg)(NI id, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pnode);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
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(void, nimGCunrefRC1)(void* p);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasBody__B4TcFoMDWZUYH2FU5h9bJHg)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasBody__QIHxP9aHKAIpWu3E0oiiONQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCommand__B4TcFoMDWZUYH2FU5h9bJHg_2)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCommand__QIHxP9aHKAIpWu3E0oiiONQ_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasImportStmt__B4TcFoMDWZUYH2FU5h9bJHg_3)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasImportStmt__QIHxP9aHKAIpWu3E0oiiONQ_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasAccQuotedDef__B4TcFoMDWZUYH2FU5h9bJHg_4)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasAccQuotedDef__QIHxP9aHKAIpWu3E0oiiONQ_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasAccQuoted__QIHxP9aHKAIpWu3E0oiiONQ_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, intersects__8Gx51ToIYYxUPWqAYrrAKg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s1, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s2);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__R6uRTGpl30Ofaw4Ni3vawA)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tySequence__AK3cQuijuQxFGdWA8l9a9aYA*, getStrongComponents__N6M3Dh4hz2dG37nYvFu4rg)(tySequence__76wc9cnTOK9c6epudv8uYE0w** g);
N_LIB_PRIVATE N_NIMCALL(void, strongConnect__1hP01ICoCybbFvI8jHdjIg)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q** v, NI* idx, tySequence__76wc9cnTOK9c6epudv8uYE0w** s, tySequence__AK3cQuijuQxFGdWA8l9a9aYA** res);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tySequence__76wc9cnTOK9c6epudv8uYE0w*, newSeq__HX0fzMkXaVGbpAg39bd9bk9ag)(NI len);
static N_INLINE(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*, pop__IQjTOeK0Ndjm0ns4zcluIAsystem)(tySequence__76wc9cnTOK9c6epudv8uYE0w** s);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_NIMCALL(void, Marker_tySequence__AK3cQuijuQxFGdWA8l9a9aYA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, mergeSections__xvaSMx9bQereWHQhLVKr7Qw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tySequence__AK3cQuijuQxFGdWA8l9a9aYA* comps, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res);
N_LIB_PRIVATE N_NIMCALL(tySequence__76wc9cnTOK9c6epudv8uYE0w*, sorted__Ts2pk9ca7fHEXfn1pvOuyMw)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q** a, NI aLen_0, tyProc__WrsL3l9cLQ31FpOtAGcGovA cmp, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order);
N_LIB_PRIVATE N_NIMCALL(NI, colonanonymous___5UhjfFLUaHWMEdht39clQLw)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* xX60gensym50_, tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* yX60gensym50_);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__sulHEHLaDujOhOm0ckj5uA)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, haveSameKind__dV5rxFg9a5znXdd39a9c5E8mg)(tySequence__76wc9cnTOK9c6epudv8uYE0w* dns);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);

/* section: NIM_merge_DATA */
STRING_LITERAL(TM__wGDfi9c1BEw7VBzRnDQgLpQ_2, "push", 4);
STRING_LITERAL(TM__wGDfi9c1BEw7VBzRnDQgLpQ_3, "recursive dependency: \'$1\'", 26);
STRING_LITERAL(TM__wGDfi9c1BEw7VBzRnDQgLpQ_5, "/home/runner/work/nightlies/nightlies/nim/compiler/reorder.nim", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__wGDfi9c1BEw7VBzRnDQgLpQ_4 = {((NimStringDesc*) &TM__wGDfi9c1BEw7VBzRnDQgLpQ_5),
((NI) 133),
((NI) 22)}
;
N_LIB_PRIVATE TNimType NTI__CHGVxU5ophQHfZDcth7p1w_;
extern TNimType NTI__PQrmFm4BXFkFSVOUl1ojSg_;
STRING_LITERAL(TM__wGDfi9c1BEw7VBzRnDQgLpQ_7, "pragma", 6);
N_LIB_PRIVATE TNimType NTI__eVONEEaK4II8kv8La51d2Q_;
extern TNimType NTI__fKfcLzXYiz5jNu3NH3Tv8Q_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
N_LIB_PRIVATE TNimType NTI__OiD2O9bS9cMtitswLivRUn5g_;
extern TNimType NTI__76wc9cnTOK9c6epudv8uYE0w_;
N_LIB_PRIVATE TNimType NTI__AK3cQuijuQxFGdWA8l9a9aYA_;
STRING_LITERAL(TM__wGDfi9c1BEw7VBzRnDQgLpQ_10, "Circular dependency detected. `codeReordering` pragma may not b"
"e able to reorder some nodes properely", 101);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__wGDfi9c1BEw7VBzRnDQgLpQ_11 = {((NimStringDesc*) &TM__wGDfi9c1BEw7VBzRnDQgLpQ_5),
((NI) 209),
((NI) 15)}
;

/* section: NIM_merge_VARS */
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;

/* section: NIM_merge_PROCS */
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasForbiddenPragma__QIHxP9aHKAIpWu3E0oiiONQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					a = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T7_;
						NIM_BOOL T8_;
						T7_ = (NIM_BOOL)0;
						T8_ = (NIM_BOOL)0;
						T8_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90));
						if (!(T8_)) goto LA9_;
						T8_ = ((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
						LA9_: ;
						T7_ = T8_;
						if (!(T7_)) goto LA10_;
						T7_ = eqStrings((*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__wGDfi9c1BEw7VBzRnDQgLpQ_2));
						LA10_: ;
						if (!T7_) goto LA11_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	}BeforeRet_: ;
	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(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, splitSections__Ydu9bY9bKLkBUE0Ph8YGkV9bg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					a = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T7_;
						NI T9_;
						T7_ = (NIM_BOOL)0;
						T7_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101));
						if (!(T7_)) goto LA8_;
						T9_ = (NI)0;
						T9_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
						T7_ = (((NI) 1) < T9_);
						LA8_: ;
						if (!T7_) goto LA10_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
							b = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(a);
								i_4 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
										if (!(i_4 < colontmp__2)) goto LA15;
										i_3 = i_4;
										b = (*a)._kind_6.sons->data[i_3];
										s = newNode__PMZ27S9ai4FB3gXOMDXvwsQ((*a).kind);
										(*s).info = (*b).info;
										add__P8dDSotTW25BkfbyspojGg(s, b);
										add__P8dDSotTW25BkfbyspojGg(result, s);
										i_4 += ((NI) 1);
									} LA15: ;
								}
							}
						}
					}
					goto LA5_;
					LA10_: ;
					{
						add__P8dDSotTW25BkfbyspojGg(result, a);
					}
					LA5_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasIncludes__QIHxP9aHKAIpWu3E0oiiONQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121))) goto LA7_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, includeModule__KT74AZK8B9bGaazZVJqBE4A)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NI32 fileIdx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = parseFile__HSBHiITVPKlv327uAC12yw(fileIdx, (*graph).cache, (*graph).config);
	addDep__cCI0fqtTipEqkPEycgnc9cg(graph, s, fileIdx);
	addIncludeDep__sRGnaJBZsj1fPp3iXseulA(graph, ((NI32) ((*s).position)), fileIdx);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, expandIncludes__f6opa6EYhh0IqorrrfgDqg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* modulePath, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* includedFiles) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasIncludes__QIHxP9aHKAIpWu3E0oiiONQ_2(n);
		if (!!(T3_)) goto LA4_;
		result = n;
		goto BeforeRet_;
	}
	LA4_: ;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA9;
					i = i_2;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121))) goto LA12_;
						{
							NI i_3;
							NI colontmp__2;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(a);
							i_4 = ((NI) 0);
							{
								while (1) {
									NI32 f;
									if (!(i_4 < colontmp__2)) goto LA16;
									i_3 = i_4;
									f = checkModuleName__fDy39b69bb9cFVEyPkMJp3GTg((*graph).config, (*a)._kind_6.sons->data[i_3], NIM_TRUE);
									{
										if (!!((f == ((NI32) -1)))) goto LA19_;
										{
											NIM_BOOL T23_;
											tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* T26_;
											NimStringDesc* T27_;
											NimStringDesc* T28_;
											T23_ = (NIM_BOOL)0;
											T23_ = containsOrIncl__VFt0uM7bgfJ5age9alOsU9cg(includedFiles, ((NI) (f)));
											if (!T23_) goto LA24_;
											T26_ = (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*)0;
											T26_ = (*graph).config;
											T27_ = (NimStringDesc*)0;
											T27_ = toMsgFilename__eX9aCxa5NfPq9alDDS1zYbvw((*graph).config, f);
											T28_ = (NimStringDesc*)0;
											T28_ = nsuFormatSingleElem(((NimStringDesc*) &TM__wGDfi9c1BEw7VBzRnDQgLpQ_3), T27_);
											liMessage__Q6JNH4uRwLyZrj0dJakHew(T26_, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T28_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__wGDfi9c1BEw7VBzRnDQgLpQ_4, NIM_FALSE);
										}
										goto LA21_;
										LA24_: ;
										{
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nnn;
											nn = includeModule__KT74AZK8B9bGaazZVJqBE4A(graph, module, f);
											nnn = expandIncludes__f6opa6EYhh0IqorrrfgDqg(graph, module, nn, modulePath, includedFiles);
											excl__jENnK9c9bPE73pKmo2vYjpqg_2(includedFiles, ((NI) (f)));
											{
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
												b = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												{
													NI i_5;
													NI colontmp__3;
													NI i_6;
													i_5 = (NI)0;
													colontmp__3 = (NI)0;
													colontmp__3 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(nnn);
													i_6 = ((NI) 0);
													{
														while (1) {
															if (!(i_6 < colontmp__3)) goto LA33;
															i_5 = i_6;
															b = (*nnn)._kind_6.sons->data[i_5];
															add__P8dDSotTW25BkfbyspojGg(result, b);
															i_6 += ((NI) 1);
														} LA33: ;
													}
												}
											}
										}
										LA21_: ;
									}
									LA19_: ;
									i_4 += ((NI) 1);
								} LA16: ;
							}
						}
					}
					goto LA10_;
					LA12_: ;
					{
						add__P8dDSotTW25BkfbyspojGg(result, a);
					}
					LA10_: ;
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__M04YC71iJg1N7gBF3HZTngsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, accQuoted__fp73k52v83pnBAJRbJAZKw)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* result;
	NimStringDesc* id;
	result = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	id = ((NimStringDesc*) NIM_NIL);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				x = (*n)._kind_6.sons->data[i];
				switch ((*x).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
				{
					id = resizeString(id, ((*(*x)._kind_5.ident).s ? (*(*x)._kind_5.ident).s->Sup.len : 0) + 0);
appendString(id, (*(*x)._kind_5.ident).s);
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
				{
					id = resizeString(id, ((*(*(*x)._kind_4.sym).name).s ? (*(*(*x)._kind_4.sym).name).s->Sup.len : 0) + 0);
appendString(id, (*(*(*x)._kind_4.sym).name).s);
				}
				break;
				default:
				{
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = getIdent__9coBOmdXN09be4rJvXK6fQGQ(cache, id);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addDecl__qCO3hgGiY7pqZX3XlARn0w)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* declares) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		addDecl__qCO3hgGiY7pqZX3XlARn0w(cache, (*n)._kind_6.sons->data[((NI) 1)], declares);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		addDecl__qCO3hgGiY7pqZX3XlARn0w(cache, (*n)._kind_6.sons->data[((NI) 0)], declares);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		incl__jENnK9c9bPE73pKmo2vYjpqg(declares, (*(*n)._kind_5.ident).Sup.id);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		incl__jENnK9c9bPE73pKmo2vYjpqg(declares, (*(*(*n)._kind_4.sym).name).Sup.id);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* a;
		a = accQuoted__fp73k52v83pnBAJRbJAZKw(cache, n);
		incl__jENnK9c9bPE73pKmo2vYjpqg(declares, (*a).Sup.id);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 151):
	{
		addDecl__qCO3hgGiY7pqZX3XlARn0w(cache, (*n)._kind_6.sons->data[((NI) 0)], declares);
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* declares, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* uses, NIM_BOOL topLevel) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		{
			if (!topLevel) goto LA4_;
			addDecl__qCO3hgGiY7pqZX3XlARn0w(cache, (*n)._kind_6.sons->data[((NI) 0)], declares);
		}
		LA4_: ;
		{
			NI i;
			NI res;
			i = (NI)0;
			res = ((NI) 1);
			{
				while (1) {
					if (!(res <= ((NI) 6))) goto LA8;
					i = res;
					computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g(cache, (*n)._kind_6.sons->data[i], declares, uses, NIM_FALSE);
					res += ((NI) 1);
				} LA8: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 124):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_2;
				NI colontmp_;
				NI i_3;
				i_2 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_3 = ((NI) 0);
				{
					while (1) {
						if (!(i_3 < colontmp_)) goto LA13;
						i_2 = i_3;
						a = (*n)._kind_6.sons->data[i_2];
						{
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA16_;
							{
								NI j;
								NI colontmp__2;
								NI T19_;
								NI i_4;
								j = (NI)0;
								colontmp__2 = (NI)0;
								T19_ = (NI)0;
								T19_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
								colontmp__2 = (NI)(T19_ - ((NI) 2));
								i_4 = ((NI) 0);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA21;
										j = i_4;
										{
											if (!topLevel) goto LA24_;
											addDecl__qCO3hgGiY7pqZX3XlARn0w(cache, (*a)._kind_6.sons->data[j], declares);
										}
										LA24_: ;
										i_4 += ((NI) 1);
									} LA21: ;
								}
							}
							{
								NI j_2;
								NI colontmp__3;
								NI colontmp__4;
								NI T27_;
								NI i_5;
								j_2 = (NI)0;
								colontmp__3 = (NI)0;
								colontmp__4 = (NI)0;
								T27_ = (NI)0;
								T27_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
								colontmp__3 = (NI)(T27_ - ((NI) 2));
								colontmp__4 = len__P89cqdlERShb9alU3iC0yj8wast(a);
								i_5 = colontmp__3;
								{
									while (1) {
										if (!(i_5 < colontmp__4)) goto LA29;
										j_2 = i_5;
										computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g(cache, (*a)._kind_6.sons->data[j_2], declares, uses, NIM_FALSE);
										i_5 += ((NI) 1);
									} LA29: ;
								}
							}
						}
						LA16_: ;
						i_3 += ((NI) 1);
					} LA13: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
			a_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_6;
				NI colontmp__5;
				NI i_7;
				i_6 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_7 = ((NI) 0);
				{
					while (1) {
						if (!(i_7 < colontmp__5)) goto LA34;
						i_6 = i_7;
						a_2 = (*n)._kind_6.sons->data[i_6];
						{
							NI T37_;
							T37_ = (NI)0;
							T37_ = len__P89cqdlERShb9alU3iC0yj8wast(a_2);
							if (!(((NI) 3) <= T37_)) goto LA38_;
							{
								if (!topLevel) goto LA42_;
								addDecl__qCO3hgGiY7pqZX3XlARn0w(cache, (*a_2)._kind_6.sons->data[((NI) 0)], declares);
							}
							LA42_: ;
							{
								NI i_8;
								NI colontmp__6;
								NI i_9;
								i_8 = (NI)0;
								colontmp__6 = (NI)0;
								colontmp__6 = len__P89cqdlERShb9alU3iC0yj8wast(a_2);
								i_9 = ((NI) 1);
								{
									while (1) {
										if (!(i_9 < colontmp__6)) goto LA46;
										i_8 = i_9;
										{
											if (!((*(*a_2)._kind_6.sons->data[i_8]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150))) goto LA49_;
											{
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__7;
												b = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												colontmp__7 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												colontmp__7 = (*a_2)._kind_6.sons->data[i_8];
												{
													NI i_10;
													NI colontmp__8;
													NI i_11;
													i_10 = (NI)0;
													colontmp__8 = (NI)0;
													colontmp__8 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(colontmp__7);
													i_11 = ((NI) 0);
													{
														while (1) {
															if (!(i_11 < colontmp__8)) goto LA54;
															i_10 = i_11;
															b = (*colontmp__7)._kind_6.sons->data[i_10];
															{
																if (!topLevel) goto LA57_;
																addDecl__qCO3hgGiY7pqZX3XlARn0w(cache, b, declares);
															}
															LA57_: ;
															i_11 += ((NI) 1);
														} LA54: ;
													}
												}
											}
										}
										goto LA47_;
										LA49_: ;
										{
											computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g(cache, (*a_2)._kind_6.sons->data[i_8], declares, uses, NIM_FALSE);
										}
										LA47_: ;
										i_9 += ((NI) 1);
									} LA46: ;
								}
							}
						}
						LA38_: ;
						i_7 += ((NI) 1);
					} LA34: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
	{
		{
			NI i_12;
			NI colontmp__9;
			NI i_13;
			i_12 = (NI)0;
			colontmp__9 = (NI)0;
			colontmp__9 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_13 = ((NI) 1);
			{
				while (1) {
					if (!(i_13 < colontmp__9)) goto LA63;
					i_12 = i_13;
					computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g(cache, (*n)._kind_6.sons->data[i_12], declares, uses, NIM_FALSE);
					i_13 += ((NI) 1);
				} LA63: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		incl__jENnK9c9bPE73pKmo2vYjpqg(uses, (*(*n)._kind_5.ident).Sup.id);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		incl__jENnK9c9bPE73pKmo2vYjpqg(uses, (*(*(*n)._kind_4.sym).name).Sup.id);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T67_;
		T67_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T67_ = accQuoted__fp73k52v83pnBAJRbJAZKw(cache, n);
		incl__jENnK9c9bPE73pKmo2vYjpqg(uses, (*T67_).Sup.id);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
	{
		incl__jENnK9c9bPE73pKmo2vYjpqg(uses, (*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).Sup.id);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	{
		{
			NI i_14;
			NI colontmp__10;
			NI i_15;
			i_14 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_15 = ((NI) 0);
			{
				while (1) {
					if (!(i_15 < colontmp__10)) goto LA72;
					i_14 = i_15;
					computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g(cache, (*n)._kind_6.sons->data[i_14], declares, uses, topLevel);
					i_15 += ((NI) 1);
				} LA72: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_3;
		a_3 = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T76_;
			NIM_BOOL T77_;
			T76_ = (NIM_BOOL)0;
			T77_ = (NIM_BOOL)0;
			T77_ = ((*a_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
			if (!(T77_)) goto LA78_;
			T77_ = ((*(*a_3)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
			LA78_: ;
			T76_ = T77_;
			if (!(T76_)) goto LA79_;
			T76_ = eqStrings((*(*(*a_3)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__wGDfi9c1BEw7VBzRnDQgLpQ_7));
			LA79_: ;
			if (!T76_) goto LA80_;
			{
				if (!topLevel) goto LA84_;
				addDecl__qCO3hgGiY7pqZX3XlARn0w(cache, (*a_3)._kind_6.sons->data[((NI) 1)], declares);
			}
			LA84_: ;
		}
		goto LA74_;
		LA80_: ;
		{
			{
				NI i_16;
				NI colontmp__11;
				NI i_17;
				i_16 = (NI)0;
				colontmp__11 = (NI)0;
				colontmp__11 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_17 = ((NI) 0);
				{
					while (1) {
						if (!(i_17 < colontmp__11)) goto LA89;
						i_16 = i_17;
						computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g(cache, (*n)._kind_6.sons->data[i_16], declares, uses, NIM_FALSE);
						i_17 += ((NI) 1);
					} LA89: ;
				}
			}
		}
		LA74_: ;
	}
	break;
	default:
	{
		{
			NI i_18;
			NI colontmp__12;
			NI i_19;
			i_18 = (NI)0;
			colontmp__12 = (NI)0;
			colontmp__12 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_19 = ((NI) 0);
			{
				while (1) {
					if (!(i_19 < colontmp__12)) goto LA93;
					i_18 = i_19;
					computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g(cache, (*n)._kind_6.sons->data[i_18], declares, uses, NIM_FALSE);
					i_19 += ((NI) 1);
				} LA93: ;
			}
		}
	}
	break;
	}
}
static N_NIMCALL(void, Marker_tyRef__OiD2O9bS9cMtitswLivRUn5g)(void* p, NI op) {
	tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* a;
	a = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*)p;
	nimGCvisit((void*)(*a).pnode, op);
	nimGCvisit((void*)(*a).kids, op);
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(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(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(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(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(void, nimGCunrefRC1)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*, newDepN__XaQski0zL4giy3TLeFookg)(NI id, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pnode) {
	tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* result;
	result = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*)0;
	result = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*) newObj((&NTI__OiD2O9bS9cMtitswLivRUn5g_), sizeof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q));
	(*result).id = id;
	asgnRef((void**) (&(*result).pnode), pnode);
	(*result).idx = ((NI) -1);
	(*result).lowLink = ((NI) -1);
	(*result).onStack = NIM_FALSE;
	if ((*result).kids) { nimGCunrefRC1((*result).kids); (*result).kids = NIM_NIL; }
	(*result).hAQ = ((NI) -1);
	(*result).hIS = ((NI) -1);
	(*result).hB = ((NI) -1);
	(*result).hCmd = ((NI) -1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasBody__QIHxP9aHKAIpWu3E0oiiONQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		result = ((*(*n)._kind_6.sons->data[(NI)(T3_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA8;
						i = i_2;
						a = (*n)._kind_6.sons->data[i];
						{
							NIM_BOOL T11_;
							T11_ = (NIM_BOOL)0;
							T11_ = hasBody__QIHxP9aHKAIpWu3E0oiiONQ_3(a);
							if (!T11_) goto LA12_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA12_: ;
						i_2 += ((NI) 1);
					} LA8: ;
				}
			}
		}
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasBody__B4TcFoMDWZUYH2FU5h9bJHg)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).hB < ((NI) 0))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = hasBody__QIHxP9aHKAIpWu3E0oiiONQ_3((*n).pnode);
		(*n).hB = T5_;
	}
	LA3_: ;
	result = (((*n).hB) != 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCommand__QIHxP9aHKAIpWu3E0oiiONQ_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA6;
						i = i_2;
						a = (*n)._kind_6.sons->data[i];
						{
							NIM_BOOL T9_;
							T9_ = (NIM_BOOL)0;
							T9_ = hasCommand__QIHxP9aHKAIpWu3E0oiiONQ_4(a);
							if (!T9_) goto LA10_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA10_: ;
						i_2 += ((NI) 1);
					} LA6: ;
				}
			}
		}
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCommand__B4TcFoMDWZUYH2FU5h9bJHg_2)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).hCmd < ((NI) 0))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = hasCommand__QIHxP9aHKAIpWu3E0oiiONQ_4((*n).pnode);
		(*n).hCmd = T5_;
	}
	LA3_: ;
	result = (((*n).hCmd) != 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasImportStmt__QIHxP9aHKAIpWu3E0oiiONQ_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 117):
	{
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA6;
						i = i_2;
						a = (*n)._kind_6.sons->data[i];
						{
							NIM_BOOL T9_;
							T9_ = (NIM_BOOL)0;
							T9_ = hasImportStmt__QIHxP9aHKAIpWu3E0oiiONQ_5(a);
							if (!T9_) goto LA10_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA10_: ;
						i_2 += ((NI) 1);
					} LA6: ;
				}
			}
		}
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasImportStmt__B4TcFoMDWZUYH2FU5h9bJHg_3)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).hIS < ((NI) 0))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = hasImportStmt__QIHxP9aHKAIpWu3E0oiiONQ_5((*n).pnode);
		(*n).hIS = T5_;
	}
	LA3_: ;
	result = (((*n).hIS) != 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasAccQuoted__QIHxP9aHKAIpWu3E0oiiONQ_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					a = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = hasAccQuoted__QIHxP9aHKAIpWu3E0oiiONQ_7(a);
						if (!T11_) goto LA12_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA12_: ;
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasAccQuotedDef__QIHxP9aHKAIpWu3E0oiiONQ_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = hasAccQuoted__QIHxP9aHKAIpWu3E0oiiONQ_7((*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA6;
						i = i_2;
						a = (*n)._kind_6.sons->data[i];
						{
							NIM_BOOL T9_;
							T9_ = (NIM_BOOL)0;
							T9_ = hasAccQuotedDef__QIHxP9aHKAIpWu3E0oiiONQ_6(a);
							if (!T9_) goto LA10_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA10_: ;
						i_2 += ((NI) 1);
					} LA6: ;
				}
			}
		}
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasAccQuotedDef__B4TcFoMDWZUYH2FU5h9bJHg_4)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).hAQ < ((NI) 0))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = hasAccQuotedDef__QIHxP9aHKAIpWu3E0oiiONQ_6((*n).pnode);
		(*n).hAQ = T5_;
	}
	LA3_: ;
	result = (((*n).hAQ) != 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, intersects__8Gx51ToIYYxUPWqAYrrAKg)(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s1, tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg* s2) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI a;
		a = (NI)0;
		{
			if (!((*s1).elems <= ((NI) 34))) goto LA4_;
			{
				NI i;
				NI i_2;
				i = (NI)0;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < (*s1).elems)) goto LA8;
						i = i_2;
						a = (*s1).a[(i)- 0];
						{
							NIM_BOOL T11_;
							T11_ = (NIM_BOOL)0;
							T11_ = contains__R6uRTGpl30Ofaw4Ni3vawA(s2, a);
							if (!T11_) goto LA12_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA12_: ;
						i_2 += ((NI) 1);
					} LA8: ;
				}
			}
		}
		goto LA2_;
		LA4_: ;
		{
			tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* r;
			r = (*s1).head;
			{
				while (1) {
					NI i_3;
					if (!!((r == NIM_NIL))) goto LA16;
					i_3 = ((NI) 0);
					{
						while (1) {
							NU w;
							NI j;
							if (!(i_3 <= ((NI) 15))) goto LA18;
							w = (*r).bits[(i_3)- 0];
							j = ((NI) 0);
							{
								while (1) {
									if (!!((w == ((NU) 0)))) goto LA20;
									{
										NI T25_;
										if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA23_;
										T25_ = (NI)0;
										T25_ = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((NI)((NU32)(i_3) << (NU32)(((NI) 5))), j);
										a = (NI)((NI)((NU32)((*r).key) << (NU32)(((NI) 9))) | T25_);
										{
											NIM_BOOL T28_;
											T28_ = (NIM_BOOL)0;
											T28_ = contains__R6uRTGpl30Ofaw4Ni3vawA(s2, a);
											if (!T28_) goto LA29_;
											result = NIM_TRUE;
											goto BeforeRet_;
										}
										LA29_: ;
									}
									LA23_: ;
									j += ((NI) 1);
									w = (NU)((NU32)(w) >> (NU32)(((NI) 1)));
								} LA20: ;
							}
							i_3 += ((NI) 1);
						} LA18: ;
					}
					r = (*r).next;
				} LA16: ;
			}
		}
		LA2_: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__76wc9cnTOK9c6epudv8uYE0w*, buildGraph__l1rQixGqVPrOr9aCWQMBrWw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__DL2Id9b2SwHghZpjvWsUcAw* deps) {
	tySequence__76wc9cnTOK9c6epudv8uYE0w* result;
	NI T1_;
	result = (tySequence__76wc9cnTOK9c6epudv8uYE0w*)0;
	T1_ = (deps ? deps->Sup.len : 0);
	result = (tySequence__76wc9cnTOK9c6epudv8uYE0w*)nimNewSeqOfCap((&NTI__76wc9cnTOK9c6epudv8uYE0w_), ((NI) (T1_)));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (deps ? deps->Sup.len : 0);
		colontmp_ = T3_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* T6_;
				NI T7_;
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				T6_ = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*)0;
				T6_ = newDepN__XaQski0zL4giy3TLeFookg(i, (*n)._kind_6.sons->data[i]);
				result = (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)(result), (&NTI__76wc9cnTOK9c6epudv8uYE0w_));
				T7_ = result->Sup.len++;
				asgnRef((void**) (&result->data[T7_]), T6_);
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	{
		NI i_3;
		NI colontmp__2;
		NI T9_;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		T9_ = (deps ? deps->Sup.len : 0);
		colontmp__2 = T9_;
		i_4 = ((NI) 0);
		{
			while (1) {
				tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* ni;
				tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg uses;
				NIM_BOOL niHasBody;
				NIM_BOOL niHasCmd;
				if (!(i_4 < colontmp__2)) goto LA11;
				i_3 = i_4;
				ni = result->data[i_3];
				nimZeroMem((void*)(&uses), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
				nimCopyMem((void*)(&uses), (NIM_CONST void*)(&deps->data[i_3].Field1), sizeof(uses));
				niHasBody = hasBody__B4TcFoMDWZUYH2FU5h9bJHg(ni);
				niHasCmd = hasCommand__B4TcFoMDWZUYH2FU5h9bJHg_2(ni);
				{
					NI j;
					NI colontmp__3;
					NI T13_;
					NI i_5;
					j = (NI)0;
					colontmp__3 = (NI)0;
					T13_ = (deps ? deps->Sup.len : 0);
					colontmp__3 = T13_;
					i_5 = ((NI) 0);
					{
						while (1) {
							if (!(i_5 < colontmp__3)) goto LA15;
							j = i_5;
							{
								tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* nj;
								tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg declares;
								{
									if (!(i_3 == j)) goto LA19_;
									goto LA16;
								}
								LA19_: ;
								nj = result->data[j];
								nimZeroMem((void*)(&declares), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
								nimCopyMem((void*)(&declares), (NIM_CONST void*)(&deps->data[j].Field0), sizeof(declares));
								{
									NIM_BOOL T23_;
									NIM_BOOL T24_;
									NI T29_;
									T23_ = (NIM_BOOL)0;
									T24_ = (NIM_BOOL)0;
									T24_ = (j < i_3);
									if (!(T24_)) goto LA25_;
									T24_ = hasCommand__B4TcFoMDWZUYH2FU5h9bJHg_2(nj);
									LA25_: ;
									T23_ = T24_;
									if (!(T23_)) goto LA26_;
									T23_ = niHasCmd;
									LA26_: ;
									if (!T23_) goto LA27_;
									asgnRef((void**) (&(*ni).kids), (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)((*ni).kids), (&NTI__76wc9cnTOK9c6epudv8uYE0w_)));
									T29_ = (*ni).kids->Sup.len++;
									asgnRef((void**) (&(*ni).kids->data[T29_]), nj);
								}
								goto LA21_;
								LA27_: ;
								{
									NIM_BOOL T31_;
									NI T35_;
									T31_ = (NIM_BOOL)0;
									T31_ = (j < i_3);
									if (!(T31_)) goto LA32_;
									T31_ = hasImportStmt__B4TcFoMDWZUYH2FU5h9bJHg_3(nj);
									LA32_: ;
									if (!T31_) goto LA33_;
									asgnRef((void**) (&(*ni).kids), (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)((*ni).kids), (&NTI__76wc9cnTOK9c6epudv8uYE0w_)));
									T35_ = (*ni).kids->Sup.len++;
									asgnRef((void**) (&(*ni).kids->data[T35_]), nj);
								}
								goto LA21_;
								LA33_: ;
								{
									NIM_BOOL T37_;
									NIM_BOOL T38_;
									NI T43_;
									T37_ = (NIM_BOOL)0;
									T38_ = (NIM_BOOL)0;
									T38_ = (j < i_3);
									if (!(T38_)) goto LA39_;
									T38_ = niHasBody;
									LA39_: ;
									T37_ = T38_;
									if (!(T37_)) goto LA40_;
									T37_ = hasAccQuotedDef__B4TcFoMDWZUYH2FU5h9bJHg_4(nj);
									LA40_: ;
									if (!T37_) goto LA41_;
									asgnRef((void**) (&(*ni).kids), (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)((*ni).kids), (&NTI__76wc9cnTOK9c6epudv8uYE0w_)));
									T43_ = (*ni).kids->Sup.len++;
									asgnRef((void**) (&(*ni).kids->data[T43_]), nj);
								}
								goto LA21_;
								LA41_: ;
								{
									NIM_BOOL T45_;
									NIM_BOOL T46_;
									NIM_BOOL T47_;
									NIM_BOOL T50_;
									NI T54_;
									T45_ = (NIM_BOOL)0;
									T46_ = (NIM_BOOL)0;
									T47_ = (NIM_BOOL)0;
									T47_ = (j < i_3);
									if (!(T47_)) goto LA48_;
									T47_ = niHasBody;
									LA48_: ;
									T46_ = T47_;
									if (!(T46_)) goto LA49_;
									T50_ = (NIM_BOOL)0;
									T50_ = hasBody__B4TcFoMDWZUYH2FU5h9bJHg(nj);
									T46_ = !(T50_);
									LA49_: ;
									T45_ = T46_;
									if (!(T45_)) goto LA51_;
									T45_ = intersects__8Gx51ToIYYxUPWqAYrrAKg((&deps->data[i_3].Field0), (&declares));
									LA51_: ;
									if (!T45_) goto LA52_;
									asgnRef((void**) (&(*ni).kids), (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)((*ni).kids), (&NTI__76wc9cnTOK9c6epudv8uYE0w_)));
									T54_ = (*ni).kids->Sup.len++;
									asgnRef((void**) (&(*ni).kids->data[T54_]), nj);
								}
								goto LA21_;
								LA52_: ;
								{
									{
										NI d;
										d = (NI)0;
										{
											if (!(declares.elems <= ((NI) 34))) goto LA59_;
											{
												NI i_6;
												NI i_7;
												i_6 = (NI)0;
												i_7 = ((NI) 0);
												{
													while (1) {
														if (!(i_7 < declares.elems)) goto LA63;
														i_6 = i_7;
														d = declares.a[(i_6)- 0];
														{
															NIM_BOOL T66_;
															NI T69_;
															T66_ = (NIM_BOOL)0;
															T66_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&uses), d);
															if (!T66_) goto LA67_;
															asgnRef((void**) (&(*ni).kids), (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)((*ni).kids), (&NTI__76wc9cnTOK9c6epudv8uYE0w_)));
															T69_ = (*ni).kids->Sup.len++;
															asgnRef((void**) (&(*ni).kids->data[T69_]), nj);
														}
														LA67_: ;
														i_7 += ((NI) 1);
													} LA63: ;
												}
											}
										}
										goto LA57_;
										LA59_: ;
										{
											tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* r;
											r = declares.head;
											{
												while (1) {
													NI i_8;
													if (!!((r == NIM_NIL))) goto LA72;
													i_8 = ((NI) 0);
													{
														while (1) {
															NU w;
															NI j_2;
															if (!(i_8 <= ((NI) 15))) goto LA74;
															w = (*r).bits[(i_8)- 0];
															j_2 = ((NI) 0);
															{
																while (1) {
																	if (!!((w == ((NU) 0)))) goto LA76;
																	{
																		NI T81_;
																		if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA79_;
																		T81_ = (NI)0;
																		T81_ = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((NI)((NU32)(i_8) << (NU32)(((NI) 5))), j_2);
																		d = (NI)((NI)((NU32)((*r).key) << (NU32)(((NI) 9))) | T81_);
																		{
																			NIM_BOOL T84_;
																			NI T87_;
																			T84_ = (NIM_BOOL)0;
																			T84_ = contains__R6uRTGpl30Ofaw4Ni3vawA((&uses), d);
																			if (!T84_) goto LA85_;
																			asgnRef((void**) (&(*ni).kids), (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)((*ni).kids), (&NTI__76wc9cnTOK9c6epudv8uYE0w_)));
																			T87_ = (*ni).kids->Sup.len++;
																			asgnRef((void**) (&(*ni).kids->data[T87_]), nj);
																		}
																		LA85_: ;
																	}
																	LA79_: ;
																	j_2 += ((NI) 1);
																	w = (NU)((NU32)(w) >> (NU32)(((NI) 1)));
																} LA76: ;
															}
															i_8 += ((NI) 1);
														} LA74: ;
													}
													r = (*r).next;
												} LA72: ;
											}
										}
										LA57_: ;
									}
								}
								LA21_: ;
							} LA16: ;
							i_5 += ((NI) 1);
						} LA15: ;
					}
				}
				i_4 += ((NI) 1);
			} LA11: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*, pop__IQjTOeK0Ndjm0ns4zcluIAsystem)(tySequence__76wc9cnTOK9c6epudv8uYE0w** s) {
	tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* result;
	NI L;
	NI T1_;
	result = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	result = (*s)->data[L];
	unsureAsgnRef((void**) (&(*s)), (tySequence__76wc9cnTOK9c6epudv8uYE0w*) setLengthSeqV2(&((*s))->Sup, (&NTI__76wc9cnTOK9c6epudv8uYE0w_), ((NI) (L))));
	return result;
}
static N_NIMCALL(void, Marker_tySequence__AK3cQuijuQxFGdWA8l9a9aYA)(void* p, NI op) {
	tySequence__AK3cQuijuQxFGdWA8l9a9aYA* a;
	NI T1_;
	a = (tySequence__AK3cQuijuQxFGdWA8l9a9aYA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_], op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, strongConnect__1hP01ICoCybbFvI8jHdjIg)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q** v, NI* idx, tySequence__76wc9cnTOK9c6epudv8uYE0w** s, tySequence__AK3cQuijuQxFGdWA8l9a9aYA** res) {
	NI T1_;
	(*(*v)).idx = (*idx);
	(*(*v)).lowLink = (*idx);
	(*idx) += ((NI) 1);
	unsureAsgnRef((void**) (&(*s)), (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)((*s)), (&NTI__76wc9cnTOK9c6epudv8uYE0w_)));
	T1_ = (*s)->Sup.len++;
	asgnRef((void**) (&(*s)->data[T1_]), (*v));
	(*(*v)).onStack = NIM_TRUE;
	{
		tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q** w;
		NI i;
		NI L;
		NI T3_;
		w = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q**)0;
		i = ((NI) 0);
		T3_ = ((*(*v)).kids ? (*(*v)).kids->Sup.len : 0);
		L = T3_;
		{
			while (1) {
				if (!(i < L)) goto LA5;
				w = &(*(*v)).kids->data[i];
				{
					if (!((*(*w)).idx < ((NI) 0))) goto LA8_;
					strongConnect__1hP01ICoCybbFvI8jHdjIg(w, idx, s, res);
					(*(*v)).lowLink = (((*(*v)).lowLink <= (*(*w)).lowLink) ? (*(*v)).lowLink : (*(*w)).lowLink);
				}
				goto LA6_;
				LA8_: ;
				{
					if (!(*(*w)).onStack) goto LA11_;
					(*(*v)).lowLink = (((*(*v)).lowLink <= (*(*w)).idx) ? (*(*v)).lowLink : (*(*w)).idx);
				}
				goto LA6_;
				LA11_: ;
				LA6_: ;
				i += ((NI) 1);
			} LA5: ;
		}
	}
	{
		tySequence__76wc9cnTOK9c6epudv8uYE0w* comp;
		NI T24_;
		if (!((*(*v)).lowLink == (*(*v)).idx)) goto LA15_;
		comp = newSeq__HX0fzMkXaVGbpAg39bd9bk9ag(((NI) 0));
		{
			while (1) {
				tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* w_2;
				NI T19_;
				w_2 = pop__IQjTOeK0Ndjm0ns4zcluIAsystem(s);
				(*w_2).onStack = NIM_FALSE;
				comp = (tySequence__76wc9cnTOK9c6epudv8uYE0w*) incrSeqV3((TGenericSeq*)(comp), (&NTI__76wc9cnTOK9c6epudv8uYE0w_));
				T19_ = comp->Sup.len++;
				asgnRef((void**) (&comp->data[T19_]), w_2);
				{
					if (!((*w_2).id == (*(*v)).id)) goto LA22_;
					goto LA17;
				}
				LA22_: ;
			}
		} LA17: ;
		unsureAsgnRef((void**) (&(*res)), (tySequence__AK3cQuijuQxFGdWA8l9a9aYA*) incrSeqV3((TGenericSeq*)((*res)), (&NTI__AK3cQuijuQxFGdWA8l9a9aYA_)));
		T24_ = (*res)->Sup.len++;
		genericSeqAssign((&(*res)->data[T24_]), comp, (&NTI__76wc9cnTOK9c6epudv8uYE0w_));
	}
	LA15_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__AK3cQuijuQxFGdWA8l9a9aYA*, getStrongComponents__N6M3Dh4hz2dG37nYvFu4rg)(tySequence__76wc9cnTOK9c6epudv8uYE0w** g) {
	tySequence__AK3cQuijuQxFGdWA8l9a9aYA* result;
	tySequence__76wc9cnTOK9c6epudv8uYE0w* s;
	NI idx;
	result = (tySequence__AK3cQuijuQxFGdWA8l9a9aYA*)0;
	s = (tySequence__76wc9cnTOK9c6epudv8uYE0w*)0;
	idx = ((NI) 0);
	{
		tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q** v;
		NI i;
		NI L;
		NI T2_;
		v = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q**)0;
		i = ((NI) 0);
		T2_ = ((*g) ? (*g)->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				v = &(*g)->data[i];
				{
					if (!((*(*v)).idx < ((NI) 0))) goto LA7_;
					strongConnect__1hP01ICoCybbFvI8jHdjIg(v, (&idx), (&s), (&result));
				}
				LA7_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, colonanonymous___5UhjfFLUaHWMEdht39clQLw)(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* xX60gensym50_, tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* yX60gensym50_) {
	NI result;
	tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q* it;
	NI aX60gensym50_;
	NI bX60gensym50_;
	result = (NI)0;
	it = xX60gensym50_;
	aX60gensym50_ = (*it).id;
	it = yX60gensym50_;
	bX60gensym50_ = (*it).id;
	result = cmp__sulHEHLaDujOhOm0ckj5uA(aX60gensym50_, bX60gensym50_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, haveSameKind__dV5rxFg9a5znXdd39a9c5E8mg)(tySequence__76wc9cnTOK9c6epudv8uYE0w* dns) {
	NIM_BOOL result;
	tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
{	result = (NIM_BOOL)0;
	result = NIM_TRUE;
	kind = (*(*dns->data[((NI) 0)]).pnode).kind;
	{
		tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q** dn;
		NI i;
		NI L;
		NI T2_;
		dn = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q**)0;
		i = ((NI) 0);
		T2_ = (dns ? dns->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				dn = &dns->data[i];
				{
					if (!!(((*(*(*dn)).pnode).kind == kind))) goto LA7_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA7_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeSections__xvaSMx9bQereWHQhLVKr7Qw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tySequence__AK3cQuijuQxFGdWA8l9a9aYA* comps, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res) {
	{
		tySequence__76wc9cnTOK9c6epudv8uYE0w** c;
		NI i;
		NI L;
		NI T2_;
		c = (tySequence__76wc9cnTOK9c6epudv8uYE0w**)0;
		i = ((NI) 0);
		T2_ = (comps ? comps->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				c = (&comps->data[i]);
				{
					NI T7_;
					T7_ = ((*c) ? (*c)->Sup.len : 0);
					if (!(T7_ == ((NI) 1))) goto LA8_;
					add__P8dDSotTW25BkfbyspojGg(res, (*(*c)->data[((NI) 0)]).pnode);
				}
				goto LA5_;
				LA8_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fstn;
					tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
					tySequence__76wc9cnTOK9c6epudv8uYE0w* cs;
					tySequence__76wc9cnTOK9c6epudv8uYE0w* resultX60gensym50_;
					tyProc__WrsL3l9cLQ31FpOtAGcGovA T11_;
					fstn = (*(*c)->data[((NI) 0)]).pnode;
					kind = (*fstn).kind;
					nimZeroMem((void*)(&T11_), sizeof(tyProc__WrsL3l9cLQ31FpOtAGcGovA));
					T11_.ClP_0 = ((TM__wGDfi9c1BEw7VBzRnDQgLpQ_9) (colonanonymous___5UhjfFLUaHWMEdht39clQLw)); T11_.ClE_0 = NIM_NIL;
					resultX60gensym50_ = sorted__Ts2pk9ca7fHEXfn1pvOuyMw((*c)->data, ((*c) ? (*c)->Sup.len : 0), T11_, ((tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA) 1));
					cs = resultX60gensym50_;
					{
						NIM_BOOL T14_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sn;
						T14_ = (NIM_BOOL)0;
						T14_ = (kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98) || kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101));
						if (!(T14_)) goto LA15_;
						T14_ = haveSameKind__dV5rxFg9a5znXdd39a9c5E8mg(cs);
						LA15_: ;
						if (!T14_) goto LA16_;
						sn = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(kind);
						{
							tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q** dn;
							NI i_2;
							NI L_2;
							NI T19_;
							dn = (tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q**)0;
							i_2 = ((NI) 0);
							T19_ = (cs ? cs->Sup.len : 0);
							L_2 = T19_;
							{
								while (1) {
									if (!(i_2 < L_2)) goto LA21;
									dn = &cs->data[i_2];
									add__P8dDSotTW25BkfbyspojGg(sn, (*(*(*dn)).pnode)._kind_6.sons->data[((NI) 0)]);
									i_2 += ((NI) 1);
								} LA21: ;
							}
						}
						add__P8dDSotTW25BkfbyspojGg(res, sn);
					}
					goto LA12_;
					LA16_: ;
					{
						NimStringDesc* wmsg;
						NI i_3;
						wmsg = copyString(((NimStringDesc*) &TM__wGDfi9c1BEw7VBzRnDQgLpQ_10));
						liMessage__Q6JNH4uRwLyZrj0dJakHew(conf, (*(*cs->data[((NI) 0)]).pnode).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 51), wmsg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__wGDfi9c1BEw7VBzRnDQgLpQ_11, NIM_FALSE);
						i_3 = ((NI) 0);
						{
							while (1) {
								NI T25_;
								T25_ = (cs ? cs->Sup.len : 0);
								if (!(i_3 < T25_)) goto LA24;
								{
									tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw ckind;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sn_2;
									if (!((*(*cs->data[i_3]).pnode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98) || (*(*cs->data[i_3]).pnode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101))) goto LA28_;
									ckind = (*(*cs->data[i_3]).pnode).kind;
									sn_2 = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(ckind);
									add__P8dDSotTW25BkfbyspojGg(sn_2, (*(*cs->data[i_3]).pnode)._kind_6.sons->data[((NI) 0)]);
									i_3 += ((NI) 1);
									{
										while (1) {
											NIM_BOOL T32_;
											NI T33_;
											T32_ = (NIM_BOOL)0;
											T33_ = (cs ? cs->Sup.len : 0);
											T32_ = (i_3 < T33_);
											if (!(T32_)) goto LA34_;
											T32_ = ((*(*cs->data[i_3]).pnode).kind == ckind);
											LA34_: ;
											if (!T32_) goto LA31;
											add__P8dDSotTW25BkfbyspojGg(sn_2, (*(*cs->data[i_3]).pnode)._kind_6.sons->data[((NI) 0)]);
											i_3 += ((NI) 1);
										} LA31: ;
									}
									add__P8dDSotTW25BkfbyspojGg(res, sn_2);
								}
								goto LA26_;
								LA28_: ;
								{
									add__P8dDSotTW25BkfbyspojGg(res, (*cs->data[i_3]).pnode);
									i_3 += ((NI) 1);
								}
								LA26_: ;
							} LA24: ;
						}
					}
					LA12_: ;
				}
				LA5_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, reorder__dPQvgwMzPGcmvu0B3gQwMg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg includedFiles;
	NimStringDesc* mpath;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
	tySequence__DL2Id9b2SwHghZpjvWsUcAw* deps;
	NI T7_;
	tySequence__76wc9cnTOK9c6epudv8uYE0w* g;
	tySequence__AK3cQuijuQxFGdWA8l9a9aYA* comps;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasForbiddenPragma__QIHxP9aHKAIpWu3E0oiiONQ(n);
		if (!T3_) goto LA4_;
		result = n;
		goto BeforeRet_;
	}
	LA4_: ;
	nimZeroMem((void*)(&includedFiles), sizeof(tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&includedFiles));
	mpath = toFullPath__VW1RaR1l9c9bPnJxr1KuvIrg((*graph).config, ((NI32) ((*module).position)));
	T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T6_ = expandIncludes__f6opa6EYhh0IqorrrfgDqg(graph, module, n, mpath, (&includedFiles));
	n_2 = splitSections__Ydu9bY9bKLkBUE0Ph8YGkV9bg(T6_);
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n_2).info);
	T7_ = (NI)0;
	T7_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
	deps = newSeq__WnGNywQL9aJqHo8aAYvktgQ(((NI) (T7_)));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
				if (!(i_2 < colontmp_)) goto LA10;
				i = i_2;
				initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&deps->data[i].Field0));
				initIntSet__n8oDZMn19bEdodSnrBQB9a1Q((&deps->data[i].Field1));
				T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T11_ = (*n_2)._kind_6.sons->data[i];
				computeDeps__vAMkuM9c4ZbJkI9cP86jVs6g((*graph).cache, T11_, (&deps->data[i].Field0), (&deps->data[i].Field1), NIM_TRUE);
				i_2 += ((NI) 1);
			} LA10: ;
		}
	}
	g = buildGraph__l1rQixGqVPrOr9aCWQMBrWw(n_2, deps);
	comps = getStrongComponents__N6M3Dh4hz2dG37nYvFu4rg((&g));
	mergeSections__xvaSMx9bQereWHQhLVKr7Qw((*graph).config, comps, result);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_reorderDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__wGDfi9c1BEw7VBzRnDQgLpQ_6_2[2];
static TNimNode* TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[10];
static TNimNode TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[14];

/* section: NIM_merge_TYPE_INIT3 */
NTI__CHGVxU5ophQHfZDcth7p1w_.size = sizeof(tyTuple__CHGVxU5ophQHfZDcth7p1w);
NTI__CHGVxU5ophQHfZDcth7p1w_.align = NIM_ALIGNOF(tyTuple__CHGVxU5ophQHfZDcth7p1w);
NTI__CHGVxU5ophQHfZDcth7p1w_.kind = 18;
NTI__CHGVxU5ophQHfZDcth7p1w_.base = 0;
NTI__CHGVxU5ophQHfZDcth7p1w_.flags = 2;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_6_2[0] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[1];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[1].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[1].offset = offsetof(tyTuple__CHGVxU5ophQHfZDcth7p1w, Field0);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[1].typ = (&NTI__PQrmFm4BXFkFSVOUl1ojSg_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[1].name = "Field0";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_6_2[1] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[2];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[2].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[2].offset = offsetof(tyTuple__CHGVxU5ophQHfZDcth7p1w, Field1);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[2].typ = (&NTI__PQrmFm4BXFkFSVOUl1ojSg_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[2].name = "Field1";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[0].len = 2; TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[0].kind = 2; TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[0].sons = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_6_2[0];
NTI__CHGVxU5ophQHfZDcth7p1w_.node = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[0];
NTI__eVONEEaK4II8kv8La51d2Q_.size = sizeof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q);
NTI__eVONEEaK4II8kv8La51d2Q_.align = NIM_ALIGNOF(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q);
NTI__eVONEEaK4II8kv8La51d2Q_.kind = 18;
NTI__eVONEEaK4II8kv8La51d2Q_.base = 0;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[0] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[4];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[4].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[4].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, pnode);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[4].typ = (&NTI__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[4].name = "pnode";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[1] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[5];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[5].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[5].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, id);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[5].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[5].name = "id";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[2] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[6];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[6].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[6].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, idx);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[6].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[6].name = "idx";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[3] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[7];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[7].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[7].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, lowLink);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[7].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[7].name = "lowLink";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[4] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[8];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[8].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[8].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, onStack);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[8].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[8].name = "onStack";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[5] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[9];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[9].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[9].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, kids);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[9].typ = (&NTI__76wc9cnTOK9c6epudv8uYE0w_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[9].name = "kids";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[6] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[10];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[10].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[10].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, hAQ);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[10].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[10].name = "hAQ";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[7] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[11];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[11].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[11].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, hIS);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[11].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[11].name = "hIS";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[8] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[12];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[12].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[12].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, hB);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[12].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[12].name = "hB";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[9] = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[13];
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[13].kind = 1;
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[13].offset = offsetof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q, hCmd);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[13].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[13].name = "hCmd";
TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[3].len = 10; TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[3].kind = 2; TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[3].sons = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_8_10[0];
NTI__eVONEEaK4II8kv8La51d2Q_.node = &TM__wGDfi9c1BEw7VBzRnDQgLpQ_0[3];
NTI__OiD2O9bS9cMtitswLivRUn5g_.size = sizeof(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*);
NTI__OiD2O9bS9cMtitswLivRUn5g_.align = NIM_ALIGNOF(tyObject_DepNcolonObjectType___eVONEEaK4II8kv8La51d2Q*);
NTI__OiD2O9bS9cMtitswLivRUn5g_.kind = 22;
NTI__OiD2O9bS9cMtitswLivRUn5g_.base = (&NTI__eVONEEaK4II8kv8La51d2Q_);
NTI__OiD2O9bS9cMtitswLivRUn5g_.marker = Marker_tyRef__OiD2O9bS9cMtitswLivRUn5g;
NTI__AK3cQuijuQxFGdWA8l9a9aYA_.size = sizeof(tySequence__AK3cQuijuQxFGdWA8l9a9aYA*);
NTI__AK3cQuijuQxFGdWA8l9a9aYA_.align = NIM_ALIGNOF(tySequence__AK3cQuijuQxFGdWA8l9a9aYA*);
NTI__AK3cQuijuQxFGdWA8l9a9aYA_.kind = 24;
NTI__AK3cQuijuQxFGdWA8l9a9aYA_.base = (&NTI__76wc9cnTOK9c6epudv8uYE0w_);
NTI__AK3cQuijuQxFGdWA8l9a9aYA_.flags = 2;
NTI__AK3cQuijuQxFGdWA8l9a9aYA_.marker = Marker_tySequence__AK3cQuijuQxFGdWA8l9a9aYA;
}

