text: /* Generated by Nim Compiler v1.6.2 */
  #define NIM_INTBITS 64
  
  #include "nimbase.h"
  #include <string.h>
  #include <setjmp.h>
  #include <stdio.h>
  #include <glob.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
  #define nimfr_(x, y)
  #define nimln_(x, y)
  typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
  typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
  typedef struct tyTuple__yByxe8FSFNTgs4tcAkTYag tyTuple__yByxe8FSFNTgs4tcAkTYag;
  typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
  typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
  typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
  typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
  typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
  typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
  typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
  typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
  typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
  typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
  typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
  typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
  typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
  typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
  typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
  typedef struct tyTuple__5L3fCt9bX0gyEcO30ervPLw tyTuple__5L3fCt9bX0gyEcO30ervPLw;
  typedef struct tyTuple__eCO8mA2VZCpG2fD1wGsc8Q tyTuple__eCO8mA2VZCpG2fD1wGsc8Q;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
  typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
  typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
  typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
  typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
  typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
  typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
  typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
  typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
  typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
  typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
  typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
  typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
  typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
  typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
  typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
  typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
  typedef struct tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw;
  typedef struct tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog;
  typedef struct tySequence__4eQHGndY6XBYpFOH09apV8Q tySequence__4eQHGndY6XBYpFOH09apV8Q;
  typedef struct Exception Exception;
  typedef struct RootObj RootObj;
  typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
  typedef struct TSafePoint TSafePoint;
  typedef struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q;
  typedef struct tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ;
  typedef struct tyTuple__jq7X5k7hWG0tdTZTDkiyGQ tyTuple__jq7X5k7hWG0tdTZTDkiyGQ;
  typedef struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg;
  typedef struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g tySequence__MlAD6nAPq9bHKla9cWiIZP0g;
  typedef struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ tySequence__oLpBKXzW3hF9aCVMo5EymfQ;
  typedef struct tyTuple__d8cOxWret6fRDupvUsyoyw tyTuple__d8cOxWret6fRDupvUsyoyw;
  typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
  typedef struct tyTuple__awOivLjlO76sGdHY7nQUjQ tyTuple__awOivLjlO76sGdHY7nQUjQ;
  typedef struct tyTuple__YOdO3R1J4biIW9bY9agwbAQw tyTuple__YOdO3R1J4biIW9bY9agwbAQw;
  typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
  typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
  typedef struct tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg;
  typedef struct tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg;
  typedef struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
  typedef struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA;
  typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
  typedef struct tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw;
  typedef struct tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw;
  typedef struct tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA;
  typedef struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ tySequence__6H5Oh5UUvVCLiakt9aTwtUQ;
  typedef struct tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ;
  typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
  typedef struct tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ;
  typedef struct tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg;
  typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
  typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
  typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
  typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
  struct TGenericSeq {
  NI len;
  NI reserved;
  };
  struct NimStringDesc {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
  struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
  NimStringDesc* nimname;
  NimStringDesc* cname;
  NimStringDesc* obj;
  tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
  NimStringDesc* customArgs;
  };
  struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  };
  typedef NU8 tySet_tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg;
  struct tyTuple__yByxe8FSFNTgs4tcAkTYag {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  NimStringDesc* Field3;
  NimStringDesc* Field4;
  NimStringDesc* Field5;
  NimStringDesc* Field6;
  NimStringDesc* Field7;
  NimStringDesc* Field8;
  NimStringDesc* Field9;
  NimStringDesc* Field10;
  NimStringDesc* Field11;
  NimStringDesc* Field12;
  NimStringDesc* Field13;
  NimStringDesc* Field14;
  NimStringDesc* Field15;
  NimStringDesc* Field16;
  NimStringDesc* Field17;
  NimStringDesc* Field18;
  NimStringDesc* Field19;
  NimStringDesc* Field20;
  tySet_tyEnum_TInfoCCProp__49cn73TjZ7Rt9b8QCAU8tLNg Field21;
  };
  typedef tyTuple__yByxe8FSFNTgs4tcAkTYag tyArray__sa9aJ6U8e9b7Bj4Yq8itsR8w[11];
  typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
  typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
  typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
  struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
  tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
  tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
  tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
  tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
  NI intSize;
  NI floatSize;
  NI ptrSize;
  NimStringDesc* tnl;
  };
  typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
  typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
  struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
  NU16 line;
  NI16 col;
  NI32 fileIndex;
  };
  typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
  struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
  tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
  NI counter;
  };
  struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
  NIM_BOOL trackPosAttached;
  tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
  tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
  tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
  tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
  NI32 systemFileIdx;
  };
  typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
  typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
  typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
  typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
  typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
  struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
  tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
  NI counter;
  };
  typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
  typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
  typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
  typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
  typedef NU8 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug[11];
  struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
  NI Field0;
  NI Field1;
  NI Field2;
  };
  typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
  void* ClE_0;
  } tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
  void* ClE_0;
  } tyProc__k2HFjxisIgDALbEUFojxaQ;
  typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
  void* ClE_0;
  } tyProc__oL9coyIA2VDTGdUcur9aL9bew;
  struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
  tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
  tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
  NI linesCompiled;
  tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
  tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
  tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
  tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
  NimStringDesc* unitSep;
  NI evalTemplateCounter;
  NI evalMacroCounter;
  NI8 exitcode;
  tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
  NimStringDesc* cmdInput;
  NIM_BOOL projectIsCmd;
  NIM_BOOL implicitCmd;
  tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
  tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
  NIM_BOOL hintProcessingDots;
  NI verbosity;
  NI numberOfProcessors;
  NF lastCmdTime;
  tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
  NI spellSuggestMax;
  tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
  NimStringDesc* headerFile;
  tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
  tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
  NimStringDesc* arguments;
  tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
  NIM_BOOL oldNewlines;
  tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug modifiedyNotes;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug cmdlineNotes;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug foreignPackageNotes;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug notes;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug warningAsErrors;
  tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug mainPackageNotes;
  NI mainPackageId;
  NI errorCounter;
  NI hintCounter;
  NI warnCounter;
  NI errorMax;
  NI maxLoopIterationsVM;
  NIM_BOOL isVmTrace;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
  NimStringDesc* outFile;
  NimStringDesc* outDir;
  NimStringDesc* jsonBuildFile;
  NimStringDesc* prefixDir;
  NimStringDesc* libpath;
  NimStringDesc* nimcacheDir;
  tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
  NimStringDesc* projectName;
  NimStringDesc* projectPath;
  NimStringDesc* projectFull;
  NIM_BOOL projectIsStdin;
  tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug lastMsgWasDot;
  NI32 projectMainIdx;
  NI32 projectMainIdx2;
  NimStringDesc* command;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
  NimStringDesc* commandLine;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
  NIM_BOOL keepComments;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
  NimStringDesc* docSeeSrcUrl;
  NimStringDesc* docRoot;
  NimStringDesc* docCmd;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
  NimStringDesc* linkOptionsCmd;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
  NimStringDesc* linkOptions;
  NimStringDesc* compileOptions;
  NimStringDesc* cCompilerPath;
  tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
  tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
  NI suggestVersion;
  NI suggestMaxResults;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
  tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
  tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
  NimStringDesc* cppCustomNamespace;
  NimStringDesc* nimMainPrefix;
  tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
  };
  typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
  typedef NU8 tyArray__YtcvxHNKV4YiecPE9ap1mcA[20];
  typedef NU8 tySet_tyEnum_TInfoOSProp__thetQwB9agpeQ13qFmAcWhg;
  struct tyTuple__5L3fCt9bX0gyEcO30ervPLw {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  NimStringDesc* Field3;
  NimStringDesc* Field4;
  NimStringDesc* Field5;
  NimStringDesc* Field6;
  NimStringDesc* Field7;
  NimStringDesc* Field8;
  NimStringDesc* Field9;
  NimStringDesc* Field10;
  NimStringDesc* Field11;
  tySet_tyEnum_TInfoOSProp__thetQwB9agpeQ13qFmAcWhg Field12;
  };
  typedef tyTuple__5L3fCt9bX0gyEcO30ervPLw tyArray__VbVuAPt8GSIPhx9amVJ0MyA[32];
  typedef NU8 tyEnum_Endianness__0BVYNY0K9cz7BUPI3AnbEQw;
  struct tyTuple__eCO8mA2VZCpG2fD1wGsc8Q {
  NimStringDesc* Field0;
  NI Field1;
  tyEnum_Endianness__0BVYNY0K9cz7BUPI3AnbEQw Field2;
  NI Field3;
  NI Field4;
  };
  typedef tyTuple__eCO8mA2VZCpG2fD1wGsc8Q tyArray__9cwFB2SXj9aw9cyLiDbvSiBEg[26];
  typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
  typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
  typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
  typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
  struct TNimType {
  NI size;
  NI align;
  tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
  tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
  tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
  };
  typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
  struct TNimNode {
  tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
  typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
  typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
  struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
  NimStringDesc* Field0;
  NI Field1;
  NI Field2;
  };
  typedef NU8 tyEnum_TInfoOSProp__thetQwB9agpeQ13qFmAcWhg;
  typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
  typedef NU8 tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
  typedef NimStringDesc* tyArray__rmMMhDIqORJzUU5zqeitSQ[16];
  typedef NimStringDesc* tyArray__68WB4OcBspSFyW4LY9cOceA[18];
  typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
  typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
  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;
  };
  struct tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw {
  tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ a;
  tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ b;
  };
  typedef NU8 tyEnum_TSystemCC__ZeHvrqzZ3PwBFstnv8kDYg;
  struct tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog {
  NimStringDesc* cacheVersion;
  NimStringDesc* outputFile;
  tySequence__4eQHGndY6XBYpFOH09apV8Q* compile;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* link;
  NimStringDesc* linkcmd;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
  NIM_BOOL stdinInput;
  NIM_BOOL projectIsCmd;
  NimStringDesc* cmdInput;
  NimStringDesc* currentDir;
  NimStringDesc* cmdline;
  tySequence__4eQHGndY6XBYpFOH09apV8Q* depfiles;
  NimStringDesc* nimexe;
  };
  struct RootObj {
  TNimType* m_type;
  };
  struct Exception {
    RootObj Sup;
  Exception* parent;
  NCSTRING name;
  NimStringDesc* message;
  tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
  Exception* up;
  };
  struct TSafePoint {
  TSafePoint* prev;
  NI status;
  jmp_buf context;
  };
  struct tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ {
  NIM_BOOL allowExtraKeys;
  NIM_BOOL allowMissingKeys;
  };
  struct tyTuple__jq7X5k7hWG0tdTZTDkiyGQ {
  NimStringDesc* Field0;
  tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field1;
  };
  typedef NU8 tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg;
  struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg {
  tySequence__MlAD6nAPq9bHKla9cWiIZP0g* data;
  NI counter;
  NI first;
  NI last;
  };
  struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q {
  NIM_BOOL isUnquoted;
  tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg kind;
  union{
  struct {NimStringDesc* str;
  } _kind_1;
  struct {NI64 num;
  } _kind_2;
  struct {NF fnum;
  } _kind_3;
  struct {NIM_BOOL bval;
  } _kind_4;
  struct {tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg fields;
  } _kind_6;
  struct {tySequence__oLpBKXzW3hF9aCVMo5EymfQ* elems;
  } _kind_7;
  };
  };
  struct tyTuple__d8cOxWret6fRDupvUsyoyw {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field2;
  };
  struct tyTuple__UV3llMMYFckfui8YMBuUZA {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  };
  struct tyTuple__awOivLjlO76sGdHY7nQUjQ {
  NI Field0;
  NI Field1;
  NimStringDesc* Field2;
  tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field3;
  };
  struct tyTuple__YOdO3R1J4biIW9bY9agwbAQw {
  NI Field0;
  NI Field1;
  NI Field2;
  NimStringDesc* Field3;
  tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field4;
  };
  struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
  NimStringDesc* Field0;
  NI Field1;
  };
  typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
  struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA {
    RootObj Sup;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* left;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* right;
  NI L;
  NimStringDesc* data;
  };
  typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__JiWwrsTRC6xqNlGcBthSVA[1];
  struct tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg {
    RootObj Sup;
  NI colonstate_;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* prettyCmds1;
  tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf2;
  };
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (NI idx, void* ClE_0);
  void* ClE_0;
  } tyProc__SqRJqa5aOiKB4EuKlKh9asA;
  typedef NU8 tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug;
  struct tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg {
    RootObj Sup;
  NI colonstate_;
  tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf1;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds2;
  };
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, void* ClE_0);
  void* ClE_0;
  } tyProc__oudJckli4GdxAXLVzBBlAw;
  struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
    Exception Sup;
  };
  struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA {
    tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
  NI32 errorCode;
  };
  typedef NimStringDesc* tyArray__sMpvt1sOxOJ3LFGulnbeMQ[4];
  typedef NU8 tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg;
  struct tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw {
    RootObj Sup;
  NI nanosecond;
  NI second;
  NI minute;
  NI hour;
  NI monthdayZero;
  NI monthZero;
  NI year;
  tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg weekday;
  NI yearday;
  NIM_BOOL isDst;
  tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* timezone;
  NI utcOffset;
  };
  struct tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA {
  tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* patterns;
  NimStringDesc* formatStr;
  };
  typedef NimStringDesc* tyArray__3hurAvNmIXWWeqMzKryr2A[12];
  typedef NimStringDesc* tyArray__O9c55L7dGQruaGz5nJ2r4rA[7];
  struct tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ {
  tyArray__3hurAvNmIXWWeqMzKryr2A MMM;
  tyArray__3hurAvNmIXWWeqMzKryr2A MMMM;
  tyArray__O9c55L7dGQruaGz5nJ2r4rA ddd;
  tyArray__O9c55L7dGQruaGz5nJ2r4rA dddd;
  };
  typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
  typedef struct {
  N_NIMCALL_PTR(NimStringDesc*, ClP_0) (NimStringDesc* x, void* ClE_0);
  void* ClE_0;
  } tyProc__oFHfEKFsiYTMAy9a42cSiKw;
  typedef N_CLOSURE_PTR(NimStringDesc*, TM__OyL9acDBDoBfMwa5zb1Y88w_205) (NimStringDesc* x);
  typedef N_CLOSURE_PTR(NimStringDesc*, TM__OyL9acDBDoBfMwa5zb1Y88w_207) (NimStringDesc* x, void* ClE_0);
  typedef NU8 tySet_tyEnum_CopyFlag__pdzel23GjJ9cPFw8c5ldeRA;
  struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
  NimStringDesc* fullPath;
  NimStringDesc* projPath;
  NimStringDesc* shortName;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
  NimStringDesc* dirtyFile;
  NimStringDesc* hash;
  NIM_BOOL dirty;
  };
  typedef NU8 tyEnum_EnumMode__VBQLiQclXYpinosAjWkfrg;
  typedef NU8 tyEnum_JsonNodeMode__UTXRaEPTjXpNdVaD9bbN0bQ;
  struct tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ {
  tyEnum_EnumMode__VBQLiQclXYpinosAjWkfrg enumMode;
  tyEnum_JsonNodeMode__UTXRaEPTjXpNdVaD9bbN0bQ jsonNodeMode;
  };
  struct tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg {
    RootObj Sup;
  NI colonstate_;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* prettyCmds1;
  tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf2;
  };
  typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
  struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
  NimStringDesc* Field1;
  };
  struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
  NI Field0;
  NimStringDesc* Field1;
  NI32 Field2;
  };
  struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
  NI Field0;
  NimStringDesc* Field1;
  };
  struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
  NCSTRING procname;
  NI line;
  NCSTRING filename;
  };
  struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
    TGenericSeq Sup;
    tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
  };
  struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
    TGenericSeq Sup;
    NimStringDesc* data[SEQ_DECL_SIZE];
  };
  struct tySequence__4eQHGndY6XBYpFOH09apV8Q {
    TGenericSeq Sup;
    tyTuple__UV3llMMYFckfui8YMBuUZA data[SEQ_DECL_SIZE];
  };
  struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ {
    TGenericSeq Sup;
    tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* data[SEQ_DECL_SIZE];
  };
  struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ {
    TGenericSeq Sup;
    NU8 data[SEQ_DECL_SIZE];
  };
  struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
    TGenericSeq Sup;
    tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
  };
  struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
    TGenericSeq Sup;
    tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
  };
  struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
    TGenericSeq Sup;
    tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
  };
  struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
    TGenericSeq Sup;
    tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
  };
  struct tySequence__uB9b75OUPRENsBAu4AnoePA {
    TGenericSeq Sup;
    tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
  };
  struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g {
    TGenericSeq Sup;
    tyTuple__awOivLjlO76sGdHY7nQUjQ data[SEQ_DECL_SIZE];
  };
  static N_INLINE(void, nimZeroMem)(void* p, NI size);
  static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
  N_LIB_PRIVATE N_NIMCALL(void, splitFile__pathutils_26)(NimStringDesc* x, tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* Result);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toObjFile__extccomp_718)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
  static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
  static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
  static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeCfilePath__extccomp_713)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cfile, NIM_BOOL createSubDir);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeGeneratedFilePath__options_4240)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* f, NIM_BOOL createSubDir);
  N_LIB_PRIVATE N_NIMCALL(void, addExternalFileToCompile__extccomp_1066)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* c);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringDesc* filename);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, externalFileChanged__extccomp_1050)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* cfile);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toGeneratedFile__options_4235)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path, NimStringDesc* ext);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, withPackageName__options_4173)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path);
  N_LIB_PRIVATE N_NIMCALL(void, footprint__extccomp_1046)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* cfile, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
  N_LIB_PRIVATE N_NIMCALL(void, secureHash__stdZsha49_840)(NIM_CHAR* str, NI strLen_0, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___stdZsha49_879)(tyArray__YtcvxHNKV4YiecPE9ap1mcA self);
  N_LIB_PRIVATE N_NIMCALL(void, secureHashFile__stdZsha49_871)(NimStringDesc* filename, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileCFileCmd__extccomp_997)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* cfile, NIM_BOOL isMainFile, NIM_BOOL produceOutput);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cFileSpecificOptions__extccomp_844)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* nimname, NimStringDesc* fullNimFile);
  N_LIB_PRIVATE N_NIMCALL(NI, nsuFindStr)(NimStringDesc* s, NimStringDesc* sub, NI start, NI last);
  N_LIB_PRIVATE N_NIMCALL(void, addOpt__extccomp_687)(NimStringDesc** dest, NimStringDesc* src);
  static N_INLINE(NIM_CHAR*, X5BX5D___system_7372)(NimStringDesc** s, NI i);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
  N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, existsConfigVar__options_4015)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* key);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getConfigVar__options_4019)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* key, NimStringDesc* default_0);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getDebug__extccomp_823)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getConfigVar__extccomp_627)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c, NimStringDesc* suffix);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
  static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOptSpeed__extccomp_819)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOptSize__extccomp_827)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOrDefault__pureZstrtabs_173)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key, NimStringDesc* default_0);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, useCpp__extccomp_906)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cfile);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuEndsWith)(NimStringDesc* s, NimStringDesc* suffix);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompilerExe__extccomp_921)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA compiler, NimStringDesc* cfile);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getEnv__pureZos_418)(NimStringDesc* key, NimStringDesc* default_0);
  N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(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);
  static N_INLINE(NIM_BOOL, needsExeExt__extccomp_891)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosaddFileExt)(NimStringDesc* filename, NimStringDesc* ext);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn__options_569)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nospquoteShell)(NimStringDesc* s);
  static N_INLINE(NIM_BOOL, noAbsolutePaths__extccomp_831)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head, NimStringDesc* tail);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosextractFilename)(NimStringDesc* path);
  static N_INLINE(NIM_BOOL, isEmpty__options_4495)(NimStringDesc* x);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getPrefixDir__options_4061)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, envFlags__extccomp_914)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(void, nsuAddf)(NimStringDesc** s, NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, vccplatform__extccomp_872)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
  static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
  static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_389)(FILE** f, NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize);
  N_LIB_PRIVATE N_NIMCALL(void, parseSecureHash__stdZsha49_912)(NimStringDesc* hash, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readLine__systemZio_271)(FILE* f);
  N_LIB_PRIVATE N_NIMCALL(void, close__systemZio_217)(FILE* f);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___stdZsha49_920)(tyArray__YtcvxHNKV4YiecPE9ap1mcA a, tyArray__YtcvxHNKV4YiecPE9ap1mcA b);
  static N_INLINE(void, writeLine__msgs_432)(FILE* f, NimStringDesc** x, NI xLen_0);
  N_LIB_PRIVATE N_NIMCALL(void, write__systemZio_205)(FILE* f, NimStringDesc* s);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nostryRemoveFile)(NimStringDesc* file);
  N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
  static N_INLINE(void, asgnRef)(void** dest, void* src);
  static N_INLINE(void, incRef__system_5317)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5279)(void* usr);
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
  static N_INLINE(void, decRef__system_5324)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
  static N_INLINE(void, rtlAddZCT__system_5322)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5273)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
  N_LIB_PRIVATE N_NIMCALL(void, insert__extccomp_757)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** x, NimStringDesc* item, NI i);
  N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
  static N_INLINE(void, nimGCunrefNoCycle)(void* p);
  static N_INLINE(NIM_BOOL, contains__extccomp_612)(tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw s, tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ value);
  static N_INLINE(tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw, dotdot___extccomp_591)(tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ a, tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ b);
  N_LIB_PRIVATE N_NIMCALL(tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA, nameToCC__extccomp_521)(NimStringDesc* name);
  N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, listCCnames__extccomp_552)(void);
  N_LIB_PRIVATE N_NIMCALL(void, undefSymbol__condsyms_8)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols, NimStringDesc* symbol);
  N_LIB_PRIVATE N_NIMCALL(void, defineSymbol__condsyms_4)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols, NimStringDesc* symbol, NimStringDesc* value);
  N_LIB_PRIVATE N_NIMCALL(void, nstPut)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key, NimStringDesc* val);
  N_LIB_PRIVATE N_NIMCALL(void, addCompileOption__extccomp_693)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* option);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, absOutFile__options_4038)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  static N_INLINE(void, pushSafePoint)(TSafePoint* s);
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_1838)(tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog* a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___pureZjson_2044)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b);
  N_LIB_PRIVATE N_NOINLINE(void, raiseJsonException__stdZjsonutils_168)(NimStringDesc* condStr, NimStringDesc* msg);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___stdZjsonutils_407)(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ x);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__pureZjson_3152)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NimStringDesc* key);
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__stdZjsonutils_566)(NimStringDesc** a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt);
  static N_INLINE(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, X5BX5D___pureZjson_3043)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NimStringDesc* name);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**, X5BX5D___pureZjson_2638)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___stdZjsonutils_504)(tyTuple__d8cOxWret6fRDupvUsyoyw x);
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_1952)(tySequence__4eQHGndY6XBYpFOH09apV8Q** a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt);
  N_LIB_PRIVATE N_NIMCALL(NI, len__pureZjson_2989)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* n);
  N_LIB_PRIVATE N_NIMCALL(tySequence__oLpBKXzW3hF9aCVMo5EymfQ*, getElems__pureZjson_207)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* n, tySequence__oLpBKXzW3hF9aCVMo5EymfQ* default_0);
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_2004)(tyTuple__UV3llMMYFckfui8YMBuUZA* a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt);
  static N_INLINE(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, X5BX5D___pureZjson_3118)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NI index);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___extccomp_2058)(tyTuple__awOivLjlO76sGdHY7nQUjQ* x);
  N_LIB_PRIVATE N_NIMCALL(void, addQuoted__extccomp_2078)(NimStringDesc** s, NI x);
  static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
  N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
  N_LIB_PRIVATE N_NIMCALL(void, addQuoted__pureZos_449)(NimStringDesc** s, NimStringDesc* x);
  N_LIB_PRIVATE N_NIMCALL(void, addQuoted__stdZjsonutils_444)(NimStringDesc** s, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* x);
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_2140)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt);
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_2260)(NIM_BOOL* a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, to__extccomp_2271)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node);
  N_LIB_PRIVATE N_NIMCALL(void, initFromJson__pureZjson_5264)(NIM_BOOL* dst, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* jsonNode, NimStringDesc** jsonPath);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___extccomp_2429)(tyTuple__YOdO3R1J4biIW9bY9agwbAQw* x);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, parseFile__pureZjson_5228)(NimStringDesc* filename);
  static N_INLINE(void, popSafePoint)(void);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
  static N_INLINE(Exception*, nimBorrowCurrentException)(void);
  static N_INLINE(void, popCurrentException)(void);
  N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___extccomp_2541)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y);
  static N_INLINE(void*, seqToPtr__extccomp_2556)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x);
  N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, newSeq__systemZio_501)(NI len);
  N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetAppFilename)(void);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___pathutils_89)(NimStringDesc* base, NimStringDesc* f);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getNimcacheDir__options_4183)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(void, execCmdEx__pureZosproc_1148)(NimStringDesc* command, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, NimStringDesc* workingDir, NimStringDesc* input, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result);
  N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__ropes_109)(NimStringDesc* s);
  N_LIB_PRIVATE N_NIMCALL(void, add__ropes_159)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
  N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genMappingFiles__extccomp_2628)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tySequence__pK3qSsBZwdXd6qyUMkd5Jw* list);
  N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___extccomp_2636)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
  N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, runtimeFormat__ropes_271)(NimStringDesc* frmt, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
  N_LIB_PRIVATE N_NIMCALL(void, add__ropes_162)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuEscape)(NimStringDesc* s, NimStringDesc* prefix, NimStringDesc* suffix);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileOptions__extccomp_869)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkOptions__extccomp_880)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___extccomp_2658)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope__ropes_241)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* head, NimStringDesc* filename);
  N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
  static N_NIMCALL(void, Marker_tyRef__CqlAb69bkfxaejoSKDwhYYA)(void* p, NI op);
  N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
  N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_1258)(NI idx, void* ClE_0);
  N_LIB_PRIVATE N_NIMCALL(void, flushDot__msgs_17)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, displayProgressCC__extccomp_1234)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path, NimStringDesc* compileCmd);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasHint__options_517)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug note);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, demanglePackageName__options_4170)(NimStringDesc* path);
  N_LIB_PRIVATE N_NIMCALL(void, nossplitFile)(NimStringDesc* path, tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* Result);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___options_4373)(NimStringDesc* x);
  N_LIB_PRIVATE N_NIMCALL(void, execCmdsInParallel__extccomp_1155)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds, tyProc__SqRJqa5aOiKB4EuKlKh9asA prettyCb);
  static N_NIMCALL(void, Marker_tyRef__pkCPBZYDmG8KoijaqNdsQw)(void* p, NI op);
  N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_1161)(NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, void* ClE_0);
  N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
  N_LIB_PRIVATE N_NIMCALL(NI, nospcountProcessors)(void);
  N_LIB_PRIVATE N_NIMCALL(NI, execWithEcho__extccomp_795)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cmd, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg);
  N_LIB_PRIVATE N_NIMCALL(NI, nospexecCmd)(NimStringDesc* command);
  static N_INLINE(Exception*, getCurrentException)(void);
  N_LIB_PRIVATE N_NIMCALL(NI, nospexecProcesses)(NimStringDesc** cmds, NI cmdsLen_0, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, NI n, tyProc__SqRJqa5aOiKB4EuKlKh9asA beforeRunEvent, tyProc__oudJckli4GdxAXLVzBBlAw afterRunEvent);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getObjFilePath__extccomp_1223)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* f);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, hcrLinkTargetName__extccomp_1227)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* objFile, NIM_BOOL isMain);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkCmd__extccomp_1094)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* output, NimStringDesc* objfiles, NIM_BOOL isDllBuild, NIM_BOOL removeStaticFile);
  N_LIB_PRIVATE N_NIMCALL(void, nosremoveFile)(NimStringDesc* file);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkerExe__extccomp_985)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA compiler);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVSCompatible__extccomp_575)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(void, now__pureZtimes_1467)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__extccomp_1121)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__pureZtimes_2989)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA f, tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ* loc);
  static N_INLINE(NI, nanosecond__pureZtimes_1065)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt);
  static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
  N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
  static N_INLINE(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, map__extccomp_1369)(NimStringDesc** s, NI sLen_0, tyProc__oFHfEKFsiYTMAy9a42cSiKw op);
  N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, colonanonymous___extccomp_1365)(NimStringDesc* curr);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s, NimStringDesc* sub, NimStringDesc* by);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, prepareToWriteOutput__options_4058)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(void, copyFileWithPermissions__pureZos_1453)(NimStringDesc* source, NimStringDesc* dest, NIM_BOOL ignorePermissionErrors, tySet_tyEnum_CopyFlag__pdzel23GjJ9cPFw8c5ldeRA options);
  N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, getExtraCmds__extccomp_1146)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* output);
  N_LIB_PRIVATE N_NIMCALL(void, linkViaResponseFile__extccomp_1188)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cmd);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7766)(NimStringDesc* s, NI first);
  N_LIB_PRIVATE N_NIMCALL(void, writeFile__systemZio_474)(NimStringDesc* filename, NimStringDesc* content);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceChar)(NimStringDesc* s, NIM_CHAR sub, NIM_CHAR by);
  N_LIB_PRIVATE N_NIMCALL(void, execLinkCmd__extccomp_1150)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* linkCmd);
  N_LIB_PRIVATE N_NIMCALL(void, execExternalProgram__extccomp_808)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cmd, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7754)(NimStringDesc* s, NI first, NI last);
  N_LIB_PRIVATE N_NIMCALL(void, generateScript__extccomp_812)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* script);
  N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q*, newSeq__extccomp_1547)(NI len);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, quoteShellCommand__pureZos_601)(NimStringDesc** args, NI argsLen_0);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_2279)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, jsonBuildInstructionsFile__extccomp_1477)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, pretty__pureZjson_4461)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NI indent);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1675)(tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog* a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, newJObject__pureZjson_92)(void);
  static N_INLINE(void, X5BX5Deq___pureZjson_1923)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val);
  N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___pureZjson_287)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__stdZjsonutils_603)(NimStringDesc* a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1696)(tySequence__4eQHGndY6XBYpFOH09apV8Q* a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, newJArray__pureZjson_123)(void);
  N_LIB_PRIVATE N_NIMCALL(void, add__pureZjson_222)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* father, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* child);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1724)(tyTuple__UV3llMMYFckfui8YMBuUZA a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1745)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1773)(NIM_BOOL a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt);
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, percent___pureZjson_1816)(NIM_BOOL b);
  N_LIB_PRIVATE N_NIMCALL(tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ, initToJsonOptions__stdZjsonutils_33)(void);
  static N_NIMCALL(void, Marker_tyRef__pVfTg3qma4yzaBk4IsIEzQ)(void* p, NI op);
  N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStackTrace__system_2521)(Exception* e);
  N_LIB_PRIVATE N_NIMCALL(void, quit__system_7184)(NimStringDesc* errormsg, NI errorcode) __attribute__((noreturn));
  N_LIB_PRIVATE N_NIMCALL(void, noscreateDir)(NimStringDesc* dir);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
  N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_2604)(NI idx, void* ClE_0);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_2, ".", 1);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_3, "gcc", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_4, "o", 1);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_5, " -O3 -fno-ident", 15);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_6, " -Os -fno-ident", 15);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_7, "g++", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_8, "-c $options $include -o $objfile $file", 38);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_9, " -mwindows", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_10, " -shared", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_11, "ar rcs $libfile $objfiles", 25);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_12, "$buildgui $builddll -o $exefile $objfiles $options", 50);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_13, " -I", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_14, " -L", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_15, " -l$1", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_16, "-fPIC", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_17, "asm($1);$n", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_18, "$1 $3 $2 ", 9);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_19, "-Wa,-acdl=$asmfile -g -fverbose-asm -masm=intel", 47);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_20, "-std=gnu++14 -funsigned-char", 28);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_21, "switch_gcc", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_22, " -O3 ", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_23, " -Os ", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_24, "aarch64-none-elf-gcc", 20);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_25, "aarch64-none-elf-g++", 20);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_26, "-w -MMD -MP -MF $dfile -c $options $include -o $objfile $file", 61);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_27, "aarch64-none-elf-gcc-ar rcs $libfile $objfiles", 46);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_28, "$buildgui $builddll -Wl,-Map,$mapfile -o $exefile $objfiles $options", 68);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_29, "-fPIE", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_30, "llvm_gcc", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_31, "llvm-gcc", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_32, "llvm-g++", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_33, "llvm-ar rcs $libfile $objfiles", 30);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_34, "clang", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_35, "clang++", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_36, "bcc", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_37, "obj", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_38, " -O3 -6 ", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_39, " -O1 -6 ", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_40, "bcc32c", 6);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_41, "cpp32c", 6);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_42, "-c $options $include -o$objfile $file", 37);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_43, " -tW", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_44, " -tWD", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_45, "bcc32", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_46, "$options $buildgui $builddll -e$exefile $objfiles", 49);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_47, "__asm{$n$1$n}$n", 15);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_48, "$1 $2", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_49, "vcc", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_50, " /Ogityb2 ", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_51, " /O1 ", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_52, "cl", 2);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_53, "/c$vccplatform $options $include /nologo /Fo$objfile $file", 58);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_54, " /SUBSYSTEM:WINDOWS user32.lib ", 31);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_55, " /LD", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_56, "lib /OUT:$libfile $objfiles", 27);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_57, "$builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options", 70);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_58, " /I", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_59, " /LIBPATH:", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_60, " $1.lib", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_61, " /RTC1 /Z7 ", 11);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_62, "$3$n$1 $2", 9);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_63, "/Fa$asmfile", 11);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_64, "tcc", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_65, "-Wl,-subsystem=gui", 18);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_66, "-o $exefile $options $buildgui $builddll $objfiles", 50);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_67, " -g ", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_68, "env", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_69, " -O1 ", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_70, "-c $ccenvflags $options $include -o $objfile $file", 50);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_71, " -shared ", 9);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_72, "-o $exefile $buildgui $builddll $objfiles $options", 50);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_73, "icl", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_74, "icc", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_75, "clang_cl", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_76, "clang-cl", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_77, "-fuse-ld=lld $builddll$vccplatform /Fe$exefile $objfiles $buildgui /nologo $options", 83);
  N_LIB_PRIVATE NIM_CONST tyArray__sa9aJ6U8e9b7Bj4Yq8itsR8w CC__extccomp_508 = {{((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_3),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_4),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_5),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_6),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_3),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_7),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_8),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_9),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_10),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_11),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_12),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_13),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_14),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_15),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_16),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_17),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_18),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_19),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_20),
  183}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_21),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_4),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_22),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_23),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_24),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_25),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_26),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_9),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_10),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_27),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_24),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_28),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_13),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_14),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_15),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_29),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_17),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_18),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_19),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_20),
  183}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_30),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_4),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_5),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_6),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_31),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_32),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_8),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_9),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_10),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_33),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_12),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_13),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_14),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_15),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_16),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_17),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_18),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_19),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_20),
  183}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_34),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_4),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_5),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_6),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_34),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_35),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_8),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_9),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_10),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_33),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_12),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_13),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_14),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_15),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_16),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_17),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_18),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_19),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_20),
  183}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_36),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_37),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_38),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_39),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_40),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_41),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_42),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_43),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_44),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_45),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_46),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_13),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_47),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_48),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  151}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_49),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_37),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_50),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_51),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_52),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_52),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_53),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_54),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_55),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_56),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_52),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_57),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_58),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_59),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_60),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_61),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_47),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_62),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_63),
  ((NimStringDesc*) NIM_NIL),
  76}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_64),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_4),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_64),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_8),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_65),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_10),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_64),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_66),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_13),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_67),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_17),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_48),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_19),
  ((NimStringDesc*) NIM_NIL),
  35}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_68),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_4),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_22),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_69),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_70),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_71),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_72),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_13),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_47),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_48),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) NIM_NIL),
  32}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_73),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_37),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_50),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_51),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_73),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_52),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_53),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_54),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_55),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_56),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_73),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_57),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_58),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_59),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_60),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_61),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_47),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_62),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_63),
  ((NimStringDesc*) NIM_NIL),
  76}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_74),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_4),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_5),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_6),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_74),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_7),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_8),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_9),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_10),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_11),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_74),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_12),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_13),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_14),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_15),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_16),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_17),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_18),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_19),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_20),
  183}
  ,
  {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_75),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_37),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_50),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_51),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_76),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_76),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_53),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_54),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_55),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_56),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_76),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_77),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_58),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_59),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_60),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_61),
  ((NimStringDesc*) NIM_NIL),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_47),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_62),
  ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_63),
  ((NimStringDesc*) NIM_NIL),
  76}
  }
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_78, "sha1", 4);
  extern NIM_CONST tyArray__VbVuAPt8GSIPhx9amVJ0MyA OS__platform_504;
  extern NIM_CONST tyArray__9cwFB2SXj9aw9cyLiDbvSiBEg CPU__platform_691;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_79, " ", 1);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_80, ".debug", 6);
  extern TNimType NTItbackend__4OBsgZ9cscH2JLUE5Wcz01g_;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_81, ".options.debug", 14);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_82, ".speed", 6);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_83, ".options.speed", 14);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_84, ".size", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_85, ".options.size", 13);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_86, ".always", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_87, ".c", 2);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_88, ".exe", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_89, "CXX", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_90, "CC", 2);
  extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__lineinfos_280;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_91, "Compiler \'$1\' doesn\'t support the requested target", 50);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_93, "/home/runner/work/nightlies/nightlies/nim/compiler/extccomp.nim", 63);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_92 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 506),
  ((NI) 14)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_94, "exe", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_95, ".d", 2);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_96, "dfile", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_97, "file", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_98, "objfile", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_99, "options", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_100, "include", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_101, "nim", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_102, "lib", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_103, "ccenvflags", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_104, "CXXFLAGS", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_105, "CFLAGS", 6);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_106, ".asm", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_107, "asmfile", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_108, "Produced assembler here: ", 25);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_109 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 610),
  ((NI) 18)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_110, "Couldn\'t produce assembler listing for the selected C compiler: ", 64);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_111 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 613),
  ((NI) 18)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_112, "vccplatform", 11);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_113, "vccexe.exe", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_114, " --platform:x86", 15);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_115, " --platform:arm", 15);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_116, " --platform:amd64", 17);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_117, "\012", 1);
  extern TNimType NTIcfilelist__pK3qSsBZwdXd6qyUMkd5Jw_;
  extern TNimType NTIcfile__i9cKq1ZGd1wgagjUEHLVFtg_;
  extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_118, "unknown C compiler: \'$1\'. Available options are: $2", 51);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_119, ", ", 2);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_120 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 335),
  ((NI) 14)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_121, ".options.always", 15);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_122, ".path", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_123, "true", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_125, "\012not (b == nil)", 15);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_126, "BuildCache", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_127, "b.kind == JObject", 17);
  extern TNimType NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_128, "cacheVersion", 12);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_129, "false", 5);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_130, "outputFile", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_131, "compile", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_132, "seq[(string, string)]", 21);
  extern TNimType NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_133, "(string, string)", 16);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_134, "b.kind == JArray", 16);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_135, "b.len == i", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_136, "(", 1);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_137, "nil", 3);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_138, ",", 1);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_139, ")", 1);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_140, "link", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_141, "seq[string]", 11);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_142, "linkcmd", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_143, "extraCmds", 9);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_144, "configFiles", 11);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_145, "stdinInput", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_146, "bool", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_147, "projectIsCmd", 12);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_148, "cmdInput", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_149, "currentDir", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_150, "cmdline", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_151, "depfiles", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_152, "nimexe", 6);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_153, "ok`gensym14", 11);
  extern TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
  extern TNimType NTIoserror__BeJgrOdDsczOwEWOZbRfKA_;
  extern TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_154, "Warning: JSON processing failed for: $#\012", 40);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_155, "D20210525T193831", 16);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_156, "json", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_158, " --version", 10);
  static NIM_CONST tyTuple__XOVT24GHXwqiEj5GCsEGCA TM__OyL9acDBDoBfMwa5zb1Y88w_159 = {((NimStringDesc*) NIM_NIL),
  ((NI) 1)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_160, "[C_Files]\012", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_161, "--file:r\"$1\"$N", 14);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_162, "\012[C_Compiler]\012Flags=", 20);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_163, "__dummy__", 9);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_164, "\"", 1);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_165, "\012[Linker]\012Flags=", 16);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_166, ".options.linker", 15);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_167, "\012[Environment]\012libpath=", 23);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_168, "\012[Symbols]$n$1", 14);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_169, "mapping.txt", 11);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_170, "could not write to file: ", 25);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_171 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 1055),
  ((NI) 14)}
  ;
  extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
  N_LIB_PRIVATE TNimType NTIobject__H6RAoT9avhFKpqIMlTu5GHg_;
  extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
  extern TNimType NTIconfigref__a8lycfSA25OQltN3OMeBsA_;
  N_LIB_PRIVATE TNimType NTIrefobject__CqlAb69bkfxaejoSKDwhYYA_;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_173, "CC: $1", 6);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_174, ": ", 2);
  N_LIB_PRIVATE TNimType NTIobject__4Ms6MGgcp8EDnUBSlKFk9bg_;
  N_LIB_PRIVATE TNimType NTIrefobject__pkCPBZYDmG8KoijaqNdsQw_;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_176, "execution of an external compiler program \'", 43);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_177, "\' failed with exit code: ", 25);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_178, "\012\012", 2);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_179 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 784),
  ((NI) 16)}
  ;
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_181 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 398),
  ((NI) 12)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_182, "invocation of external compiler program failed. ", 48);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_183 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 764),
  ((NI) 16)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_184, "execution of an external program failed: \'$1\'", 45);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_185 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 766),
  ((NI) 16)}
  ;
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_186 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 793),
  ((NI) 18)}
  ;
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_188 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 801),
  ((NI) 16)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_189, "libfile", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_190, "objfiles", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_191, ".linkerexe", 10);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_192, ".map", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_193, ".linkTmpl", 9);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_194, "builddll", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_195, "mapfile", 7);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_196, "buildgui", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_197, "exefile", 7);
  extern TNimType NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_;
  static NIM_CONST struct {
    TGenericSeq Sup;
    NU8 data[16];
  } TM__OyL9acDBDoBfMwa5zb1Y88w_198 = {{16, 16 | NIM_STRLIT_FLAG}, {((NU8) 13),
  ((NU8) 33),
  ((NU8) 1),
  ((NU8) 45),
  ((NU8) 22),
  ((NU8) 33),
  ((NU8) 1),
  ((NU8) 45),
  ((NU8) 7),
  ((NU8) 33),
  ((NU8) 1),
  ((NU8) 45),
  ((NU8) 9),
  ((NU8) 33),
  ((NU8) 1),
  ((NU8) 45)}};
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_199, "MMMM-yyyy-HH-mm-", 16);
  N_LIB_PRIVATE NIM_CONST tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA f2__extccomp_1126 = {((tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*)&TM__OyL9acDBDoBfMwa5zb1Y88w_198), ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_199)}
  ;
  extern NIM_CONST tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ DefaultLocale__pureZtimes_1628;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_200, ".pdb", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_201, " /link /PDB:", 12);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_202, " /Zi /FS /Od", 12);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_203, ".*.pdb", 6);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_206, "Link", 4);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_208, "_linkerArgs.txt", 15);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_211 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 403),
  ((NI) 14)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_212, "invocation of external linker program failed. ", 46);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_213, " @", 2);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_214, "compile_", 8);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_215 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 411),
  ((NI) 14)}
  ;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_216, "nimBetterRun", 12);
  N_LIB_PRIVATE TNimType NTIobject__Bm6R75AmpN9bn4rYIfcheUg_;
  N_LIB_PRIVATE TNimType NTIrefobject__pVfTg3qma4yzaBk4IsIEzQ_;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_219, "nimDebug", 8);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_220, "options.nim(634, 14) `false` ", 29);
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_221, "\012caught exception:\012$#\012stacktrace:\012$#error evaluating JSON file: $#", 66);
  extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q gCmdLineInfo__msgs_404;
  STRING_LITERAL(TM__OyL9acDBDoBfMwa5zb1Y88w_222, "jsonscript command outputFile \'$1\' must match \'$2\' which was specified during --compileOnly, see \"outputFile\" entry in \'$3\' ", 124);
  static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__OyL9acDBDoBfMwa5zb1Y88w_223 = {((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_93),
  ((NI) 1022),
  ((NI) 15)}
  ;
  extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5226;
  extern TSafePoint* excHandler__system_2565;
  extern TSafePoint* excHandler__system_2565;
  extern TSafePoint* excHandler__system_2565;
  extern TSafePoint* excHandler__system_2565;
  extern Exception* currException__system_2566;
  extern Exception* currException__system_2566;
  extern Exception* currException__system_2566;
  extern Exception* currException__system_2566;
  static N_INLINE(void, nimSetMem__systemZmemory_7)(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__systemZmemory_7(p, ((int) 0), size);
  }
  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__system_1727)(void* dest, void* source, NI size) {
  	nimCopyMem(dest, source, size);
  }
  static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
  	{
  		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
  		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
  		(*dest).Sup.len += (*src).Sup.len;
  	}
  	LA3_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toObjFile__extccomp_718)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename) {
  	NimStringDesc* result;
  	NimStringDesc* T1_;
  	result = NIM_NIL;
  	T1_ = NIM_NIL;
  	T1_ = rawNewString((filename ? filename->Sup.len : 0) + (CC__extccomp_508[((*conf).cCompiler)- 1].Field1 ? CC__extccomp_508[((*conf).cCompiler)- 1].Field1->Sup.len : 0) + 1);
  appendString(T1_, filename);
  appendString(T1_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_2));
  appendString(T1_, CC__extccomp_508[((*conf).cCompiler)- 1].Field1);
  	result = T1_;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeCfilePath__extccomp_713)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cfile, NIM_BOOL createSubDir) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	result = completeGeneratedFilePath__options_4240(conf, cfile, createSubDir);
  	return result;
  }
  static N_INLINE(NIM_CHAR*, X5BX5D___system_7372)(NimStringDesc** s, NI i) {
  	NIM_CHAR* result;
  	result = (NIM_CHAR*)0;
  	result = (&(*s)->data[(NI)(((*s) ? (*s)->Sup.len : 0) - i)]);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, addOpt__extccomp_687)(NimStringDesc** dest, NimStringDesc* src) {
  	{
  		NIM_BOOL T3_;
  		NIM_CHAR* T5_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = (((*dest) ? (*dest)->Sup.len : 0) == ((NI) 0));
  		if (T3_) goto LA4_;
  		T5_ = (NIM_CHAR*)0;
  		T5_ = X5BX5D___system_7372(dest, ((NI) 1));
  		T3_ = !(((NU8)((*T5_)) == (NU8)(32)));
  		LA4_: ;
  		if (!T3_) goto LA6_;
  		unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), 1));
  appendString((*dest), ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  	}
  	LA6_: ;
  	unsureAsgnRef((void**) (&(*dest)), resizeString((*dest), (src ? src->Sup.len : 0) + 0));
  appendString((*dest), src);
  }
  static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
  	(*dest).data[(*dest).Sup.len] = c;
  	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
  	(*dest).Sup.len += ((NI) 1);
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getConfigVar__extccomp_627)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c, NimStringDesc* suffix) {
  	NimStringDesc* result;
  	NimStringDesc* fullSuffix;
  {	result = NIM_NIL;
  	fullSuffix = copyString(suffix);
  	switch ((*conf).backend) {
  	case ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 2):
  	case ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 3):
  	case ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 4):
  	{
  		NimStringDesc* T2_;
  		T2_ = NIM_NIL;
  		T2_ = rawNewString((reprEnum((NI)(*conf).backend, (&NTItbackend__4OBsgZ9cscH2JLUE5Wcz01g_)) ? reprEnum((NI)(*conf).backend, (&NTItbackend__4OBsgZ9cscH2JLUE5Wcz01g_))->Sup.len : 0) + (suffix ? suffix->Sup.len : 0) + 1);
  appendString(T2_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_2));
  appendString(T2_, reprEnum((NI)(*conf).backend, (&NTItbackend__4OBsgZ9cscH2JLUE5Wcz01g_)));
  appendString(T2_, suffix);
  		fullSuffix = T2_;
  	}
  	break;
  	case ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 1):
  	{
  	}
  	break;
  	case ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 0):
  	{
  		result = ((NimStringDesc*) NIM_NIL);
  		goto BeforeRet_;
  	}
  	break;
  	}
  	{
  		NIM_BOOL T7_;
  		NIM_BOOL T8_;
  		NimStringDesc* fullCCname;
  		NimStringDesc* T13_;
  		T7_ = (NIM_BOOL)0;
  		T8_ = (NIM_BOOL)0;
  		T8_ = !(((*conf).target.hostOS == (*conf).target.targetOS));
  		if (T8_) goto LA9_;
  		T8_ = !(((*conf).target.hostCPU == (*conf).target.targetCPU));
  		LA9_: ;
  		T7_ = T8_;
  		if (!(T7_)) goto LA10_;
  		T7_ = !((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 4))&63U)))!=0));
  		LA10_: ;
  		if (!T7_) goto LA11_;
  		T13_ = NIM_NIL;
  		T13_ = rawNewString((CPU__platform_691[((*conf).target.targetCPU)- 1].Field0 ? CPU__platform_691[((*conf).target.targetCPU)- 1].Field0->Sup.len : 0) + (OS__platform_504[((*conf).target.targetOS)- 1].Field0 ? OS__platform_504[((*conf).target.targetOS)- 1].Field0->Sup.len : 0) + (CC__extccomp_508[(c)- 1].Field0 ? CC__extccomp_508[(c)- 1].Field0->Sup.len : 0) + (fullSuffix ? fullSuffix->Sup.len : 0) + 2);
  appendString(T13_, CPU__platform_691[((*conf).target.targetCPU)- 1].Field0);
  appendChar(T13_, 46);
  appendString(T13_, OS__platform_504[((*conf).target.targetOS)- 1].Field0);
  appendChar(T13_, 46);
  appendString(T13_, CC__extccomp_508[(c)- 1].Field0);
  appendString(T13_, fullSuffix);
  		fullCCname = T13_;
  		result = getConfigVar__options_4019(conf, fullCCname, ((NimStringDesc*) NIM_NIL));
  		{
  			NimStringDesc* T18_;
  			if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA16_;
  			T18_ = NIM_NIL;
  			T18_ = rawNewString((CC__extccomp_508[(c)- 1].Field0 ? CC__extccomp_508[(c)- 1].Field0->Sup.len : 0) + (fullSuffix ? fullSuffix->Sup.len : 0) + 0);
  appendString(T18_, CC__extccomp_508[(c)- 1].Field0);
  appendString(T18_, fullSuffix);
  			result = getConfigVar__options_4019(conf, T18_, ((NimStringDesc*) NIM_NIL));
  		}
  		LA16_: ;
  	}
  	goto LA5_;
  	LA11_: ;
  	{
  		NimStringDesc* T20_;
  		T20_ = NIM_NIL;
  		T20_ = rawNewString((CC__extccomp_508[(c)- 1].Field0 ? CC__extccomp_508[(c)- 1].Field0->Sup.len : 0) + (fullSuffix ? fullSuffix->Sup.len : 0) + 0);
  appendString(T20_, CC__extccomp_508[(c)- 1].Field0);
  appendString(T20_, fullSuffix);
  		result = getConfigVar__options_4019(conf, T20_, ((NimStringDesc*) NIM_NIL));
  	}
  	LA5_: ;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getDebug__extccomp_823)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	result = getConfigVar__extccomp_627(conf, c, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_81));
  	{
  		if (!((result ? result->Sup.len : 0) == 0)) goto LA3_;
  		result = copyString(CC__extccomp_508[(c)- 1].Field15);
  	}
  	LA3_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOptSpeed__extccomp_819)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	result = getConfigVar__extccomp_627(conf, c, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_83));
  	{
  		if (!((result ? result->Sup.len : 0) == 0)) goto LA3_;
  		result = copyString(CC__extccomp_508[(c)- 1].Field2);
  	}
  	LA3_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getOptSize__extccomp_827)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	result = getConfigVar__extccomp_627(conf, c, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_85));
  	{
  		if (!((result ? result->Sup.len : 0) == 0)) goto LA3_;
  		result = copyString(CC__extccomp_508[(c)- 1].Field3);
  	}
  	LA3_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cFileSpecificOptions__extccomp_844)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* nimname, NimStringDesc* fullNimFile) {
  	NimStringDesc* result;
  	NimStringDesc* key_4;
  	NimStringDesc* T48_;
  	NimStringDesc* T55_;
  	result = NIM_NIL;
  	result = copyString((*conf).compileOptions);
  	{
  		NimStringDesc** option;
  		NI i;
  		NI L;
  		NI T2_;
  		option = (NimStringDesc**)0;
  		i = ((NI) 0);
  		T2_ = ((*conf).compileOptionsCmd ? (*conf).compileOptionsCmd->Sup.len : 0);
  		L = T2_;
  		{
  			while (1) {
  				if (!(i < L)) goto LA4;
  				option = (&(*conf).compileOptionsCmd->data[i]);
  				{
  					NI T7_;
  					T7_ = (NI)0;
  					T7_ = nsuFindStr(result, (*option), ((NI) 0), ((NI) 0));
  					if (!(T7_ < ((NI) 0))) goto LA8_;
  					addOpt__extccomp_687((&result), (*option));
  				}
  				LA8_: ;
  				i += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	{
  		NimStringDesc* key;
  		NimStringDesc* T14_;
  		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 6))&63U)))!=0)) goto LA12_;
  		T14_ = NIM_NIL;
  		T14_ = rawNewString((nimname ? nimname->Sup.len : 0) + 6);
  appendString(T14_, nimname);
  appendString(T14_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_80));
  		key = T14_;
  		{
  			NIM_BOOL T17_;
  			NimStringDesc* T20_;
  			T17_ = (NIM_BOOL)0;
  			T17_ = existsConfigVar__options_4015(conf, key);
  			if (!T17_) goto LA18_;
  			T20_ = NIM_NIL;
  			T20_ = getConfigVar__options_4019(conf, key, ((NimStringDesc*) NIM_NIL));
  			addOpt__extccomp_687((&result), T20_);
  		}
  		goto LA15_;
  		LA18_: ;
  		{
  			NimStringDesc* T22_;
  			T22_ = NIM_NIL;
  			T22_ = getDebug__extccomp_823(conf, (*conf).cCompiler);
  			addOpt__extccomp_687((&result), T22_);
  		}
  		LA15_: ;
  	}
  	LA12_: ;
  	{
  		NimStringDesc* key_2;
  		NimStringDesc* T27_;
  		if (!(((*conf).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 15))&31U)))!=0)) goto LA25_;
  		T27_ = NIM_NIL;
  		T27_ = rawNewString((nimname ? nimname->Sup.len : 0) + 6);
  appendString(T27_, nimname);
  appendString(T27_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_82));
  		key_2 = T27_;
  		{
  			NIM_BOOL T30_;
  			NimStringDesc* T33_;
  			T30_ = (NIM_BOOL)0;
  			T30_ = existsConfigVar__options_4015(conf, key_2);
  			if (!T30_) goto LA31_;
  			T33_ = NIM_NIL;
  			T33_ = getConfigVar__options_4019(conf, key_2, ((NimStringDesc*) NIM_NIL));
  			addOpt__extccomp_687((&result), T33_);
  		}
  		goto LA28_;
  		LA31_: ;
  		{
  			NimStringDesc* T35_;
  			T35_ = NIM_NIL;
  			T35_ = getOptSpeed__extccomp_819(conf, (*conf).cCompiler);
  			addOpt__extccomp_687((&result), T35_);
  		}
  		LA28_: ;
  	}
  	goto LA23_;
  	LA25_: ;
  	{
  		NimStringDesc* key_3;
  		NimStringDesc* T39_;
  		if (!(((*conf).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA37_;
  		T39_ = NIM_NIL;
  		T39_ = rawNewString((nimname ? nimname->Sup.len : 0) + 5);
  appendString(T39_, nimname);
  appendString(T39_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_84));
  		key_3 = T39_;
  		{
  			NIM_BOOL T42_;
  			NimStringDesc* T45_;
  			T42_ = (NIM_BOOL)0;
  			T42_ = existsConfigVar__options_4015(conf, key_3);
  			if (!T42_) goto LA43_;
  			T45_ = NIM_NIL;
  			T45_ = getConfigVar__options_4019(conf, key_3, ((NimStringDesc*) NIM_NIL));
  			addOpt__extccomp_687((&result), T45_);
  		}
  		goto LA40_;
  		LA43_: ;
  		{
  			NimStringDesc* T47_;
  			T47_ = NIM_NIL;
  			T47_ = getOptSize__extccomp_827(conf, (*conf).cCompiler);
  			addOpt__extccomp_687((&result), T47_);
  		}
  		LA40_: ;
  	}
  	goto LA23_;
  	LA37_: ;
  	LA23_: ;
  	T48_ = NIM_NIL;
  	T48_ = rawNewString((nimname ? nimname->Sup.len : 0) + 7);
  appendString(T48_, nimname);
  appendString(T48_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_86));
  	key_4 = T48_;
  	{
  		NIM_BOOL T51_;
  		NimStringDesc* T54_;
  		T51_ = (NIM_BOOL)0;
  		T51_ = existsConfigVar__options_4015(conf, key_4);
  		if (!T51_) goto LA52_;
  		T54_ = NIM_NIL;
  		T54_ = getConfigVar__options_4019(conf, key_4, ((NimStringDesc*) NIM_NIL));
  		addOpt__extccomp_687((&result), T54_);
  	}
  	LA52_: ;
  	T55_ = NIM_NIL;
  	T55_ = getOrDefault__pureZstrtabs_173((*conf).cfileSpecificOptions, fullNimFile, ((NimStringDesc*) NIM_NIL));
  	addOpt__extccomp_687((&result), T55_);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, useCpp__extccomp_906)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cfile) {
  	NIM_BOOL result;
  	NIM_BOOL T1_;
  	NIM_BOOL T3_;
  	result = (NIM_BOOL)0;
  	T1_ = (NIM_BOOL)0;
  	T1_ = ((*conf).backend == ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 2));
  	if (!(T1_)) goto LA2_;
  	T3_ = (NIM_BOOL)0;
  	T3_ = nsuEndsWith(cfile, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_87));
  	T1_ = !(T3_);
  	LA2_: ;
  	result = T1_;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompilerExe__extccomp_921)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA compiler, NimStringDesc* cfile) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	{
  		if (!(compiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 8))) goto LA3_;
  		{
  			NIM_BOOL T7_;
  			T7_ = (NIM_BOOL)0;
  			T7_ = useCpp__extccomp_906(conf, cfile);
  			if (!T7_) goto LA8_;
  			result = getEnv__pureZos_418(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_89), ((NimStringDesc*) NIM_NIL));
  		}
  		goto LA5_;
  		LA8_: ;
  		{
  			result = getEnv__pureZos_418(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_90), ((NimStringDesc*) NIM_NIL));
  		}
  		LA5_: ;
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		{
  			NIM_BOOL T14_;
  			T14_ = (NIM_BOOL)0;
  			T14_ = useCpp__extccomp_906(conf, cfile);
  			if (!T14_) goto LA15_;
  			result = copyString(CC__extccomp_508[(compiler)- 1].Field5);
  		}
  		goto LA12_;
  		LA15_: ;
  		{
  			result = copyString(CC__extccomp_508[(compiler)- 1].Field4);
  		}
  		LA12_: ;
  	}
  	LA1_: ;
  	{
  		NimStringDesc* T22_;
  		if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA20_;
  		T22_ = NIM_NIL;
  		T22_ = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_91), CC__extccomp_508[(compiler)- 1].Field0);
  		liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_92, NIM_FALSE);
  	}
  	LA20_: ;
  	return result;
  }
  static N_INLINE(NIM_BOOL, needsExeExt__extccomp_891)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NIM_BOOL result;
  	NIM_BOOL T1_;
  	NIM_BOOL T2_;
  	result = (NIM_BOOL)0;
  	T1_ = (NIM_BOOL)0;
  	T2_ = (NIM_BOOL)0;
  	T2_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 10))&63U)))!=0);
  	if (!(T2_)) goto LA3_;
  	T2_ = ((*conf).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 2));
  	LA3_: ;
  	T1_ = T2_;
  	if (T1_) goto LA4_;
  	T1_ = ((*conf).target.hostOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 2));
  	LA4_: ;
  	result = T1_;
  	return result;
  }
  static N_INLINE(NIM_BOOL, noAbsolutePaths__extccomp_831)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = !((((*conf).globalOptions & 3072) == 0));
  	return result;
  }
  static N_INLINE(NIM_BOOL, isEmpty__options_4495)(NimStringDesc* x) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = ((x ? x->Sup.len : 0) == ((NI) 0));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, envFlags__extccomp_914)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	{
  		if (!((*conf).backend == ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 2))) goto LA3_;
  		result = getEnv__pureZos_418(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_104), ((NimStringDesc*) NIM_NIL));
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = getEnv__pureZos_418(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_105), ((NimStringDesc*) NIM_NIL));
  	}
  	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__system_1735)(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__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, vccplatform__extccomp_872)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	{
  		NimStringDesc* exe;
  		if (!((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 6))) goto LA3_;
  		exe = getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_88));
  		{
  			NimStringDesc* T7_;
  			T7_ = NIM_NIL;
  			T7_ = nosextractFilename(exe);
  			if (!eqStrings(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_113), T7_)) goto LA8_;
  			switch ((*conf).target.targetCPU) {
  			case ((tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag) 1):
  			{
  				result = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_114));
  			}
  			break;
  			case ((tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag) 14):
  			{
  				result = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_115));
  			}
  			break;
  			case ((tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag) 11):
  			{
  				result = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_116));
  			}
  			break;
  			default:
  			{
  				result = ((NimStringDesc*) NIM_NIL);
  			}
  			break;
  			}
  		}
  		LA8_: ;
  	}
  	LA3_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileCFileCmd__extccomp_997)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* cfile, NIM_BOOL isMainFile, NIM_BOOL produceOutput) {
  	NimStringDesc* result;
  	tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA c;
  	NimStringDesc* options;
  	NimStringDesc* T1_;
  	NimStringDesc* exe;
  	NimStringDesc* compilePattern;
  	NimStringDesc* includeCmd;
  	NimStringDesc* T32_;
  	NimStringDesc* T33_;
  	tyArray__Re75IspeoxXy2oCZHwcRrA T46_;
  	NimStringDesc* T47_;
  	NimStringDesc* cf;
  	NimStringDesc* objfile;
  	NimStringDesc* dfile;
  	NimStringDesc* T72_;
  	NimStringDesc* cfsh;
  	tyArray__rmMMhDIqORJzUU5zqeitSQ T73_;
  	NimStringDesc* T74_;
  	tyArray__68WB4OcBspSFyW4LY9cOceA T97_;
  	NimStringDesc* T98_;
  	result = NIM_NIL;
  	c = (*conf).cCompiler;
  	T1_ = NIM_NIL;
  	T1_ = noschangeFileExt((*cfile).cname, ((NimStringDesc*) NIM_NIL));
  	options = cFileSpecificOptions__extccomp_844(conf, (*cfile).nimname, T1_);
  	{
  		NIM_BOOL T4_;
  		NimStringDesc* T7_;
  		T4_ = (NIM_BOOL)0;
  		T4_ = useCpp__extccomp_906(conf, (*cfile).cname);
  		if (!T4_) goto LA5_;
  		T7_ = NIM_NIL;
  		T7_ = rawNewString((CC__extccomp_508[(c)- 1].Field20 ? CC__extccomp_508[(c)- 1].Field20->Sup.len : 0) + (options ? options->Sup.len : 0) + 1);
  appendString(T7_, CC__extccomp_508[(c)- 1].Field20);
  appendChar(T7_, 32);
  appendString(T7_, options);
  		options = T7_;
  	}
  	LA5_: ;
  	exe = getConfigVar__extccomp_627(conf, c, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_88));
  	{
  		if (!((exe ? exe->Sup.len : 0) == ((NI) 0))) goto LA10_;
  		exe = getCompilerExe__extccomp_921(conf, c, (*cfile).cname);
  	}
  	LA10_: ;
  	{
  		NIM_BOOL T14_;
  		T14_ = (NIM_BOOL)0;
  		T14_ = needsExeExt__extccomp_891(conf);
  		if (!T14_) goto LA15_;
  		exe = nosaddFileExt(exe, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_94));
  	}
  	LA15_: ;
  	{
  		NIM_BOOL T19_;
  		NIM_BOOL T20_;
  		NIM_BOOL T22_;
  		NimStringDesc* T27_;
  		T19_ = (NIM_BOOL)0;
  		T20_ = (NIM_BOOL)0;
  		T20_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0);
  		if (T20_) goto LA21_;
  		T22_ = (NIM_BOOL)0;
  		T22_ = hcrOn__options_569(conf);
  		if (!(T22_)) goto LA23_;
  		T22_ = !(isMainFile);
  		LA23_: ;
  		T20_ = T22_;
  		LA21_: ;
  		T19_ = T20_;
  		if (!(T19_)) goto LA24_;
  		T19_ = ((OS__platform_504[((*conf).target.targetOS)- 1].Field12 &((NU8)1<<((NU)(((tyEnum_TInfoOSProp__thetQwB9agpeQ13qFmAcWhg) 0))&7U)))!=0);
  		LA24_: ;
  		if (!T19_) goto LA25_;
  		T27_ = NIM_NIL;
  		T27_ = rawNewString((CC__extccomp_508[(c)- 1].Field16 ? CC__extccomp_508[(c)- 1].Field16->Sup.len : 0) + 1);
  appendChar(T27_, 32);
  appendString(T27_, CC__extccomp_508[(c)- 1].Field16);
  		options = resizeString(options, (T27_ ? T27_->Sup.len : 0) + 0);
  appendString(options, T27_);
  	}
  	LA25_: ;
  	{
  		if (!!((((*cfile).customArgs ? (*cfile).customArgs->Sup.len : 0) == 0))) goto LA30_;
  		options = addChar(options, 32);
  		options = resizeString(options, ((*cfile).customArgs ? (*cfile).customArgs->Sup.len : 0) + 0);
  appendString(options, (*cfile).customArgs);
  	}
  	LA30_: ;
  	compilePattern = NIM_NIL;
  	T32_ = NIM_NIL;
  	T33_ = NIM_NIL;
  	T33_ = nospquoteShell((*conf).libpath);
  	T32_ = rawNewString((CC__extccomp_508[(c)- 1].Field12 ? CC__extccomp_508[(c)- 1].Field12->Sup.len : 0) + (T33_ ? T33_->Sup.len : 0) + 0);
  appendString(T32_, CC__extccomp_508[(c)- 1].Field12);
  appendString(T32_, T33_);
  	includeCmd = T32_;
  	{
  		NIM_BOOL T36_;
  		T36_ = (NIM_BOOL)0;
  		T36_ = noAbsolutePaths__extccomp_831(conf);
  		if (!!(T36_)) goto LA37_;
  		{
  			NimStringDesc** includeDir;
  			NI i;
  			NI L;
  			NI T40_;
  			includeDir = (NimStringDesc**)0;
  			i = ((NI) 0);
  			T40_ = ((*conf).cIncludes ? (*conf).cIncludes->Sup.len : 0);
  			L = T40_;
  			{
  				while (1) {
  					tyArray__Re75IspeoxXy2oCZHwcRrA T43_;
  					NimStringDesc* T44_;
  					if (!(i < L)) goto LA42;
  					includeDir = (&(*conf).cIncludes->data[i]);
  					nimZeroMem((void*)T43_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
  					T43_[0] = copyString(CC__extccomp_508[(c)- 1].Field12);
  					T43_[1] = nospquoteShell((*includeDir));
  					T44_ = NIM_NIL;
  					T44_ = nsuJoinSep(T43_, 2, ((NimStringDesc*) NIM_NIL));
  					includeCmd = resizeString(includeCmd, (T44_ ? T44_->Sup.len : 0) + 0);
  appendString(includeCmd, T44_);
  					i += ((NI) 1);
  				} LA42: ;
  			}
  		}
  		compilePattern = nosjoinPath((*conf).cCompilerPath, exe);
  	}
  	goto LA34_;
  	LA37_: ;
  	{
  		compilePattern = getCompilerExe__extccomp_921(conf, c, (*cfile).cname);
  	}
  	LA34_: ;
  	nimZeroMem((void*)T46_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
  	T46_[0] = copyString(CC__extccomp_508[(c)- 1].Field12);
  	T46_[1] = nospquoteShell((*conf).projectPath);
  	T47_ = NIM_NIL;
  	T47_ = nsuJoinSep(T46_, 2, ((NimStringDesc*) NIM_NIL));
  	includeCmd = resizeString(includeCmd, (T47_ ? T47_->Sup.len : 0) + 0);
  appendString(includeCmd, T47_);
  	{
  		NIM_BOOL T50_;
  		T50_ = (NIM_BOOL)0;
  		T50_ = noAbsolutePaths__extccomp_831(conf);
  		if (!T50_) goto LA51_;
  		cf = nosextractFilename((*cfile).cname);
  	}
  	goto LA48_;
  	LA51_: ;
  	{
  		cf = (*cfile).cname;
  	}
  	LA48_: ;
  	{
  		NIM_BOOL T56_;
  		T56_ = (NIM_BOOL)0;
  		T56_ = isEmpty__options_4495((*cfile).obj);
  		if (!T56_) goto LA57_;
  		{
  			NIM_BOOL T61_;
  			T61_ = (NIM_BOOL)0;
  			T61_ = !((((*cfile).flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA) 1))&7U)))!=0));
  			if (T61_) goto LA62_;
  			T61_ = noAbsolutePaths__extccomp_831(conf);
  			LA62_: ;
  			if (!T61_) goto LA63_;
  			objfile = toObjFile__extccomp_718(conf, cf);
  		}
  		goto LA59_;
  		LA63_: ;
  		{
  			NimStringDesc* T66_;
  			T66_ = NIM_NIL;
  			T66_ = toObjFile__extccomp_718(conf, cf);
  			objfile = completeCfilePath__extccomp_713(conf, T66_, NIM_TRUE);
  		}
  		LA59_: ;
  	}
  	goto LA54_;
  	LA57_: ;
  	{
  		NIM_BOOL T68_;
  		T68_ = (NIM_BOOL)0;
  		T68_ = noAbsolutePaths__extccomp_831(conf);
  		if (!T68_) goto LA69_;
  		objfile = nosextractFilename((*cfile).obj);
  	}
  	goto LA54_;
  	LA69_: ;
  	{
  		objfile = (*cfile).obj;
  	}
  	LA54_: ;
  	T72_ = NIM_NIL;
  	T72_ = noschangeFileExt(objfile, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_95));
  	dfile = nospquoteShell(T72_);
  	cfsh = nospquoteShell(cf);
  	nimZeroMem((void*)T73_, sizeof(tyArray__rmMMhDIqORJzUU5zqeitSQ));
  	T73_[0] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_96));
  	T73_[1] = copyString(dfile);
  	T73_[2] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_97));
  	T73_[3] = copyString(cfsh);
  	T73_[4] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_98));
  	T73_[5] = nospquoteShell(objfile);
  	T73_[6] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_99));
  	T73_[7] = copyString(options);
  	T73_[8] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_100));
  	T73_[9] = copyString(includeCmd);
  	T73_[10] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_101));
  	T73_[11] = getPrefixDir__options_4061(conf);
  	T73_[12] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_102));
  	T73_[13] = copyString((*conf).libpath);
  	T73_[14] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_103));
  	T73_[15] = envFlags__extccomp_914(conf);
  	T74_ = NIM_NIL;
  	T74_ = nsuFormatOpenArray(compilePattern, T73_, 16);
  	result = nospquoteShell(T74_);
  	{
  		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 45))&63U)))!=0)) goto LA77_;
  		{
  			NimStringDesc* asmfile;
  			NimStringDesc* T83_;
  			tyArray__Re75IspeoxXy2oCZHwcRrA T84_;
  			NimStringDesc* T85_;
  			if (!(((NI) 0) < (CC__extccomp_508[((*conf).cCompiler)- 1].Field19 ? CC__extccomp_508[((*conf).cCompiler)- 1].Field19->Sup.len : 0))) goto LA81_;
  			T83_ = NIM_NIL;
  			T83_ = noschangeFileExt(objfile, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_106));
  			asmfile = nospquoteShell(T83_);
  			nimZeroMem((void*)T84_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
  			T84_[0] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_107));
  			T84_[1] = copyString(asmfile);
  			T85_ = NIM_NIL;
  			T85_ = nsuFormatOpenArray(CC__extccomp_508[((*conf).cCompiler)- 1].Field19, T84_, 2);
  			addOpt__extccomp_687((&result), T85_);
  			{
  				NimStringDesc* T90_;
  				if (!produceOutput) goto LA88_;
  				T90_ = NIM_NIL;
  				T90_ = rawNewString((asmfile ? asmfile->Sup.len : 0) + 25);
  appendString(T90_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_108));
  appendString(T90_, asmfile);
  				liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 99), T90_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_109, NIM_FALSE);
  			}
  			LA88_: ;
  		}
  		goto LA79_;
  		LA81_: ;
  		{
  			{
  				NimStringDesc* T96_;
  				if (!produceOutput) goto LA94_;
  				T96_ = NIM_NIL;
  				T96_ = rawNewString((CC__extccomp_508[((*conf).cCompiler)- 1].Field0 ? CC__extccomp_508[((*conf).cCompiler)- 1].Field0->Sup.len : 0) + 64);
  appendString(T96_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_110));
  appendString(T96_, CC__extccomp_508[((*conf).cCompiler)- 1].Field0);
  				liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 99), T96_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_111, NIM_FALSE);
  			}
  			LA94_: ;
  		}
  		LA79_: ;
  	}
  	LA77_: ;
  	result = addChar(result, 32);
  	nimZeroMem((void*)T97_, sizeof(tyArray__68WB4OcBspSFyW4LY9cOceA));
  	T97_[0] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_96));
  	T97_[1] = copyString(dfile);
  	T97_[2] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_97));
  	T97_[3] = copyString(cfsh);
  	T97_[4] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_98));
  	T97_[5] = nospquoteShell(objfile);
  	T97_[6] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_99));
  	T97_[7] = copyString(options);
  	T97_[8] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_100));
  	T97_[9] = copyString(includeCmd);
  	T97_[10] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_101));
  	T98_ = NIM_NIL;
  	T98_ = getPrefixDir__options_4061(conf);
  	T97_[11] = nospquoteShell(T98_);
  	T97_[12] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_102));
  	T97_[13] = nospquoteShell((*conf).libpath);
  	T97_[14] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_112));
  	T97_[15] = vccplatform__extccomp_872(conf);
  	T97_[16] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_103));
  	T97_[17] = envFlags__extccomp_914(conf);
  	nsuAddf((&result), CC__extccomp_508[(c)- 1].Field6, T97_, 18);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, footprint__extccomp_1046)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* cfile, tyArray__YtcvxHNKV4YiecPE9ap1mcA Result) {
  	NimStringDesc* T1_;
  	tyArray__YtcvxHNKV4YiecPE9ap1mcA T2_;
  	NimStringDesc* T3_;
  	NimStringDesc* T4_;
  	T1_ = NIM_NIL;
  	nimZeroMem((void*)T2_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
  	secureHashFile__stdZsha49_871((*cfile).cname, T2_);
  	T3_ = NIM_NIL;
  	T3_ = dollar___stdZsha49_879(T2_);
  	T4_ = NIM_NIL;
  	T4_ = getCompileCFileCmd__extccomp_997(conf, cfile, NIM_FALSE, NIM_FALSE);
  	T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + (OS__platform_504[((*conf).target.targetOS)- 1].Field0 ? OS__platform_504[((*conf).target.targetOS)- 1].Field0->Sup.len : 0) + (CPU__platform_691[((*conf).target.targetCPU)- 1].Field0 ? CPU__platform_691[((*conf).target.targetCPU)- 1].Field0->Sup.len : 0) + (CC__extccomp_508[((*conf).cCompiler)- 1].Field0 ? CC__extccomp_508[((*conf).cCompiler)- 1].Field0->Sup.len : 0) + (T4_ ? T4_->Sup.len : 0) + 0);
  appendString(T1_, T3_);
  appendString(T1_, OS__platform_504[((*conf).target.targetOS)- 1].Field0);
  appendString(T1_, CPU__platform_691[((*conf).target.targetCPU)- 1].Field0);
  appendString(T1_, CC__extccomp_508[((*conf).cCompiler)- 1].Field0);
  appendString(T1_, T4_);
  	secureHash__stdZsha49_840(T1_->data, (T1_ ? T1_->Sup.len : 0), Result);
  }
  static N_INLINE(void, writeLine__msgs_432)(FILE* f, NimStringDesc** x, NI xLen_0) {
  	{
  		NimStringDesc** i;
  		NI i_2;
  		i = (NimStringDesc**)0;
  		i_2 = ((NI) 0);
  		{
  			while (1) {
  				if (!(i_2 < xLen_0)) goto LA3;
  				i = (&x[i_2]);
  				write__systemZio_205(f, (*i));
  				i_2 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	write__systemZio_205(f, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_117));
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, externalFileChanged__extccomp_1050)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* cfile) {
  	NIM_BOOL result;
  	NimStringDesc* hashFile;
  	NimStringDesc* T5_;
  	tyArray__YtcvxHNKV4YiecPE9ap1mcA currentHash;
  	FILE* f;
  {	result = (NIM_BOOL)0;
  	{
  		if (!((*conf).backend == ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 3))) goto LA3_;
  		result = NIM_FALSE;
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	T5_ = NIM_NIL;
  	T5_ = withPackageName__options_4173(conf, (*cfile).cname);
  	hashFile = toGeneratedFile__options_4235(conf, T5_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_78));
  	nimZeroMem((void*)currentHash, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
  	footprint__extccomp_1046(conf, cfile, currentHash);
  	f = (FILE*)0;
  	{
  		NIM_BOOL T8_;
  		tyArray__YtcvxHNKV4YiecPE9ap1mcA oldHash;
  		NimStringDesc* T11_;
  		NIM_BOOL T12_;
  		T8_ = (NIM_BOOL)0;
  		T8_ = open__systemZio_389(&f, hashFile, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0), ((NI) -1));
  		if (!T8_) goto LA9_;
  		nimZeroMem((void*)oldHash, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
  		T11_ = NIM_NIL;
  		T11_ = readLine__systemZio_271(f);
  		parseSecureHash__stdZsha49_912(T11_, oldHash);
  		close__systemZio_217(f);
  		T12_ = (NIM_BOOL)0;
  		T12_ = eqeq___stdZsha49_920(oldHash, currentHash);
  		result = !(T12_);
  	}
  	goto LA6_;
  	LA9_: ;
  	{
  		result = NIM_TRUE;
  	}
  	LA6_: ;
  	{
  		if (!result) goto LA16_;
  		{
  			NIM_BOOL T20_;
  			tyArray__nHXaesL0DJZHyVS07ARPRA T23_;
  			T20_ = (NIM_BOOL)0;
  			T20_ = open__systemZio_389(&f, hashFile, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1), ((NI) -1));
  			if (!T20_) goto LA21_;
  			nimZeroMem((void*)T23_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
  			T23_[0] = dollar___stdZsha49_879(currentHash);
  			writeLine__msgs_432(f, T23_, 1);
  			close__systemZio_217(f);
  		}
  		LA21_: ;
  	}
  	LA16_: ;
  	}BeforeRet_: ;
  	return result;
  }
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(void, incRef__system_5317)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
  }
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5279)(void* usr) {
  	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
  	NI T1_;
  	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = (NI)0;
  	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
  	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
  	return result;
  }
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
  	return result;
  }
  static N_INLINE(void, rtlAddZCT__system_5322)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	addZCT__system_5273((&gch__system_5226.zct), c);
  }
  static N_INLINE(void, decRef__system_5324)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
  		if (!T3_) goto LA4_;
  		rtlAddZCT__system_5322(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__system_5279(src);
  		incRef__system_5317(T5_);
  	}
  	LA3_: ;
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
  		if (!!(((*dest) == NIM_NIL))) goto LA8_;
  		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T10_ = usrToCell__system_5279((*dest));
  		decRef__system_5324(T10_);
  	}
  	LA8_: ;
  	(*dest) = src;
  }
  N_LIB_PRIVATE N_NIMCALL(void, addExternalFileToCompile__extccomp_1066)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* c) {
  	NI T12_;
  	{
  		NIM_BOOL T3_;
  		NIM_BOOL T4_;
  		NIM_BOOL T7_;
  		T3_ = (NIM_BOOL)0;
  		T4_ = (NIM_BOOL)0;
  		T4_ = !((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 1))&63U)))!=0));
  		if (!(T4_)) goto LA5_;
  		T4_ = nosfileExists((*c).obj);
  		LA5_: ;
  		T3_ = T4_;
  		if (!(T3_)) goto LA6_;
  		T7_ = (NIM_BOOL)0;
  		T7_ = externalFileChanged__extccomp_1050(conf, (&(*c)));
  		T3_ = !(T7_);
  		LA6_: ;
  		if (!T3_) goto LA8_;
  		(*c).flags |= ((NU8)1)<<((((tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA) 0)) & 7);
  	}
  	goto LA1_;
  	LA8_: ;
  	{
  		NIM_BOOL T11_;
  		T11_ = (NIM_BOOL)0;
  		T11_ = nostryRemoveFile((*c).obj);
  		(void)(T11_);
  	}
  	LA1_: ;
  	asgnRef((void**) (&(*conf).toCompile), (tySequence__pK3qSsBZwdXd6qyUMkd5Jw*) incrSeqV3((TGenericSeq*)((*conf).toCompile), (&NTIcfilelist__pK3qSsBZwdXd6qyUMkd5Jw_)));
  	T12_ = (*conf).toCompile->Sup.len++;
  	genericAssign((void*)(&(*conf).toCompile->data[T12_]), (void*)(&(*c)), (&NTIcfile__i9cKq1ZGd1wgagjUEHLVFtg_));
  }
  N_LIB_PRIVATE N_NIMCALL(void, addExternalFileToCompile__extccomp_1081)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename) {
  	tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg c;
  	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T1_;
  	NimStringDesc* T2_;
  	nimZeroMem((void*)(&c), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
  	nimZeroMem((void*)(&c), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
  	nimZeroMem((void*)(&T1_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
  	splitFile__pathutils_26(filename, (&T1_));
  	c.nimname = copyString(T1_.Field1);
  	c.cname = copyString(filename);
  	T2_ = NIM_NIL;
  	T2_ = completeCfilePath__extccomp_713(conf, filename, NIM_FALSE);
  	c.obj = toObjFile__extccomp_718(conf, T2_);
  	c.flags = 2;
  	addExternalFileToCompile__extccomp_1066(conf, (&c));
  }
  static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
  	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
  	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = usrToCell__system_5279(p);
  	decRef__system_5324(T1_);
  }
  N_LIB_PRIVATE N_NIMCALL(void, insert__extccomp_757)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** x, NimStringDesc* item, NI i) {
  	NI xlX60gensym21_;
  	NI T1_;
  	NI jX60gensym21_;
  	NimStringDesc* T4_;
  	T1_ = ((*x) ? (*x)->Sup.len : 0);
  	xlX60gensym21_ = T1_;
  	unsureAsgnRef((void**) (&(*x)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) setLengthSeqV2(&((*x))->Sup, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) ((NI)(xlX60gensym21_ + ((NI) 1))))));
  	jX60gensym21_ = (NI)(xlX60gensym21_ - ((NI) 1));
  	{
  		while (1) {
  			if (!(((NI) (i)) <= jX60gensym21_)) goto LA3;
  			asgnRef((void**) (&(*x)->data[(NI)(jX60gensym21_ + ((NI) 1))]), (*x)->data[jX60gensym21_]);
  			jX60gensym21_ -= ((NI) 1);
  		} LA3: ;
  	}
  	T4_ = NIM_NIL;
  	T4_ = (*x)->data[i]; (*x)->data[i] = copyStringRC1(item);
  	if (T4_) nimGCunrefNoCycle(T4_);
  }
  N_LIB_PRIVATE N_NIMCALL(void, addExternalFileToLink__extccomp_754)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename) {
  	insert__extccomp_757((&(*conf).externalToLink), filename, ((NI) 0));
  }
  static N_INLINE(NIM_BOOL, contains__extccomp_612)(tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw s, tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ value) {
  	NIM_BOOL result;
  	NIM_BOOL T1_;
  	result = (NIM_BOOL)0;
  	T1_ = (NIM_BOOL)0;
  	T1_ = (s.a <= value);
  	if (!(T1_)) goto LA2_;
  	T1_ = (value <= s.b);
  	LA2_: ;
  	result = T1_;
  	return result;
  }
  static N_INLINE(tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw, dotdot___extccomp_591)(tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ a, tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ b) {
  	tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw result;
  	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw));
  	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw));
  	result.a = a;
  	result.b = b;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVSCompatible__extccomp_575)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NIM_BOOL result;
  	NIM_BOOL T1_;
  	NIM_BOOL T2_;
  	NIM_BOOL T5_;
  	tyObject_HSlice__7MLmFrMXlWlXV4VMUMaFZw T7_;
  {	result = (NIM_BOOL)0;
  	T1_ = (NIM_BOOL)0;
  	T2_ = (NIM_BOOL)0;
  	T2_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 6));
  	if (T2_) goto LA3_;
  	T2_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 11));
  	LA3_: ;
  	T1_ = T2_;
  	if (T1_) goto LA4_;
  	T5_ = (NIM_BOOL)0;
  	T5_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 9));
  	if (!(T5_)) goto LA6_;
  	T7_ = dotdot___extccomp_591(((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 1), ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 2));
  	T5_ = contains__extccomp_612(T7_, (*conf).target.hostOS);
  	LA6_: ;
  	T1_ = T5_;
  	LA4_: ;
  	result = T1_;
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, addCompileOptionCmd__extccomp_699)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* option) {
  	NI T1_;
  	NimStringDesc* T2_;
  	asgnRef((void**) (&(*conf).compileOptionsCmd), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*conf).compileOptionsCmd), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
  	T1_ = (*conf).compileOptionsCmd->Sup.len++;
  	T2_ = NIM_NIL;
  	T2_ = (*conf).compileOptionsCmd->data[T1_]; (*conf).compileOptionsCmd->data[T1_] = copyStringRC1(option);
  	if (T2_) nimGCunrefNoCycle(T2_);
  }
  N_LIB_PRIVATE N_NIMCALL(void, addLinkOptionCmd__extccomp_696)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* option) {
  	addOpt__extccomp_687((&(*conf).linkOptionsCmd), option);
  }
  N_LIB_PRIVATE N_NIMCALL(tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA, nameToCC__extccomp_521)(NimStringDesc* name) {
  	tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA result;
  {	result = (tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA)0;
  	{
  		tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA i;
  		NI res;
  		i = (tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA)0;
  		res = ((NI) 1);
  		{
  			while (1) {
  				if (!(res <= ((NI) 11))) goto LA3;
  				i = ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) (res));
  				{
  					NI T6_;
  					T6_ = (NI)0;
  					T6_ = nsuCmpIgnoreStyle(name, CC__extccomp_508[(i)- 1].Field0);
  					if (!(T6_ == ((NI) 0))) goto LA7_;
  					result = i;
  					goto BeforeRet_;
  				}
  				LA7_: ;
  				res += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	result = ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 0);
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, listCCnames__extccomp_552)(void) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	result = ((NimStringDesc*) NIM_NIL);
  	{
  		tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA i;
  		NI res;
  		i = (tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA)0;
  		res = ((NI) 1);
  		{
  			while (1) {
  				if (!(res <= ((NI) 11))) goto LA3;
  				i = ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) (res));
  				{
  					if (!(((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 1) < i)) goto LA6_;
  					result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  				}
  				LA6_: ;
  				result = resizeString(result, (CC__extccomp_508[(i)- 1].Field0 ? CC__extccomp_508[(i)- 1].Field0->Sup.len : 0) + 0);
  appendString(result, CC__extccomp_508[(i)- 1].Field0);
  				res += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, setCC__extccomp_649)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* ccname, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
  	(*conf).cCompiler = nameToCC__extccomp_521(ccname);
  	{
  		tyArray__Re75IspeoxXy2oCZHwcRrA T5_;
  		NimStringDesc* T6_;
  		if (!((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 0))) goto LA3_;
  		nimZeroMem((void*)T5_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
  		T5_[0] = copyString(ccname);
  		T5_[1] = listCCnames__extccomp_552();
  		T6_ = NIM_NIL;
  		T6_ = nsuFormatOpenArray(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_118), T5_, 2);
  		liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__OyL9acDBDoBfMwa5zb1Y88w_120, NIM_FALSE);
  	}
  	LA3_: ;
  	asgnRef((void**) (&(*conf).compileOptions), getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_121)));
  	asgnRef((void**) (&(*conf).linkOptions), ((NimStringDesc*) NIM_NIL));
  	asgnRef((void**) (&(*conf).cCompilerPath), getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_122)));
  	{
  		tyTuple__yByxe8FSFNTgs4tcAkTYag c;
  		tyEnum_TSystemCC__ZeHvrqzZ3PwBFstnv8kDYg i;
  		nimZeroMem((void*)(&c), sizeof(tyTuple__yByxe8FSFNTgs4tcAkTYag));
  		i = ((tyEnum_TSystemCC__ZeHvrqzZ3PwBFstnv8kDYg) 1);
  		{
  			while (1) {
  				nimCopyMem((void*)(&c), (NIM_CONST void*)(&CC__extccomp_508[(i)- 1]), sizeof(c));
  				undefSymbol__condsyms_8((*conf).symbols, c.Field0);
  				{
  					if (!(((tyEnum_TSystemCC__ZeHvrqzZ3PwBFstnv8kDYg) 11) <= i)) goto LA12_;
  					goto LA8;
  				}
  				LA12_: ;
  				i += ((NI) 1);
  			}
  		} LA8: ;
  	}
  	defineSymbol__condsyms_4((*conf).symbols, CC__extccomp_508[((*conf).cCompiler)- 1].Field0, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_123));
  }
  N_LIB_PRIVATE N_NIMCALL(void, addLinkOption__extccomp_690)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* option) {
  	addOpt__extccomp_687((&(*conf).linkOptions), option);
  }
  N_LIB_PRIVATE N_NIMCALL(void, addCompileOption__extccomp_693)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* option) {
  	{
  		NI T3_;
  		T3_ = (NI)0;
  		T3_ = nsuFindStr((*conf).compileOptions, option, ((NI) 0), ((NI) 0));
  		if (!(T3_ < ((NI) 0))) goto LA4_;
  		addOpt__extccomp_687((&(*conf).compileOptions), option);
  	}
  	LA4_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(void, addLocalCompileOption__extccomp_738)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* option, NimStringDesc* nimfile) {
  	NimStringDesc* key;
  	NimStringDesc* T1_;
  	NimStringDesc* value;
  	T1_ = NIM_NIL;
  	T1_ = withPackageName__options_4173(conf, nimfile);
  	key = completeCfilePath__extccomp_713(conf, T1_, NIM_TRUE);
  	value = getOrDefault__pureZstrtabs_173((*conf).cfileSpecificOptions, key, ((NimStringDesc*) NIM_NIL));
  	{
  		NI T4_;
  		T4_ = (NI)0;
  		T4_ = nsuFindStr(value, option, ((NI) 0), ((NI) 0));
  		if (!(T4_ < ((NI) 0))) goto LA5_;
  		addOpt__extccomp_687((&value), option);
  		nstPut((*conf).cfileSpecificOptions, key, value);
  	}
  	LA5_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(void, initVars__extccomp_706)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NimStringDesc* T8_;
  	{
  		tyTuple__yByxe8FSFNTgs4tcAkTYag c;
  		tyEnum_TSystemCC__ZeHvrqzZ3PwBFstnv8kDYg i;
  		nimZeroMem((void*)(&c), sizeof(tyTuple__yByxe8FSFNTgs4tcAkTYag));
  		i = ((tyEnum_TSystemCC__ZeHvrqzZ3PwBFstnv8kDYg) 1);
  		{
  			while (1) {
  				nimCopyMem((void*)(&c), (NIM_CONST void*)(&CC__extccomp_508[(i)- 1]), sizeof(c));
  				undefSymbol__condsyms_8((*conf).symbols, c.Field0);
  				{
  					if (!(((tyEnum_TSystemCC__ZeHvrqzZ3PwBFstnv8kDYg) 11) <= i)) goto LA6_;
  					goto LA2;
  				}
  				LA6_: ;
  				i += ((NI) 1);
  			}
  		} LA2: ;
  	}
  	defineSymbol__condsyms_4((*conf).symbols, CC__extccomp_508[((*conf).cCompiler)- 1].Field0, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_123));
  	T8_ = NIM_NIL;
  	T8_ = getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_121));
  	addCompileOption__extccomp_693(conf, T8_);
  	{
  		if (!(((*conf).cCompilerPath ? (*conf).cCompilerPath->Sup.len : 0) == ((NI) 0))) goto LA11_;
  		asgnRef((void**) (&(*conf).cCompilerPath), getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_122)));
  	}
  	LA11_: ;
  }
  static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
  	(*s).prev = excHandler__system_2565;
  	excHandler__system_2565 = s;
  }
  static N_INLINE(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, X5BX5D___pureZjson_3043)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NimStringDesc* name) {
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q** T1_;
  	result = NIM_NIL;
  	T1_ = (tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**)0;
  	T1_ = X5BX5D___pureZjson_2638((&(*node)._kind_6.fields), name);
  	result = (*T1_);
  	return result;
  }
  static N_INLINE(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, X5BX5D___pureZjson_3118)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node, NI index) {
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
  {	result = NIM_NIL;
  	result = (*node)._kind_7.elems->data[index];
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
  	addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
  }
  N_LIB_PRIVATE N_NIMCALL(void, addQuoted__extccomp_2078)(NimStringDesc** s, NI x) {
  	addInt__stdZprivateZdigitsutils_189(s, x);
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___extccomp_2058)(tyTuple__awOivLjlO76sGdHY7nQUjQ* x) {
  	NimStringDesc* result;
  	NI count;
  	result = NIM_NIL;
  	result = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_136));
  	count = ((NI) 0);
  	{
  		if (!(((NI) 0) < count)) goto LA3_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA3_: ;
  	count += ((NI) 1);
  	addQuoted__extccomp_2078((&result), (*x).Field0);
  	{
  		if (!(((NI) 0) < count)) goto LA7_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA7_: ;
  	count += ((NI) 1);
  	addQuoted__extccomp_2078((&result), (*x).Field1);
  	{
  		if (!(((NI) 0) < count)) goto LA11_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA11_: ;
  	count += ((NI) 1);
  	addQuoted__pureZos_449((&result), (*x).Field2);
  	{
  		if (!(((NI) 0) < count)) goto LA15_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA15_: ;
  	count += ((NI) 1);
  	{
  		if (!((*x).Field3 == 0)) goto LA19_;
  		result = resizeString(result, 3);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_137));
  	}
  	goto LA17_;
  	LA19_: ;
  	{
  		addQuoted__stdZjsonutils_444((&result), (*x).Field3);
  	}
  	LA17_: ;
  	{
  		if (!(count == ((NI) 1))) goto LA24_;
  		result = resizeString(result, 1);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_138));
  	}
  	LA24_: ;
  	result = resizeString(result, 1);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_139));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_2004)(tyTuple__UV3llMMYFckfui8YMBuUZA* a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt) {
  	NI i;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T12_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T13_;
  	{
  		NIM_BOOL T3_;
  		tyTuple__jq7X5k7hWG0tdTZTDkiyGQ T6_;
  		NimStringDesc* T7_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = eqeq___pureZjson_2044(b, ((tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*) NIM_NIL));
  		if (!!(!(T3_))) goto LA4_;
  		nimZeroMem((void*)(&T6_), sizeof(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ));
  		T6_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_133));
  		T6_.Field1 = b;
  		T7_ = NIM_NIL;
  		T7_ = dollar___stdZjsonutils_407(T6_);
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_125), T7_);
  	}
  	LA4_: ;
  	{
  		if (!!(((*b).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 6)))) goto LA10_;
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_134), reprEnum((NI)(*b).kind, (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_)));
  	}
  	LA10_: ;
  	i = ((NI) 0);
  	T12_ = NIM_NIL;
  	T12_ = X5BX5D___pureZjson_3118(b, i);
  	fromJson__stdZjsonutils_566((&(*a).Field0), T12_, opt);
  	i += ((NI) 1);
  	T13_ = NIM_NIL;
  	T13_ = X5BX5D___pureZjson_3118(b, i);
  	fromJson__stdZjsonutils_566((&(*a).Field1), T13_, opt);
  	i += ((NI) 1);
  	{
  		NI T16_;
  		tyTuple__awOivLjlO76sGdHY7nQUjQ T19_;
  		NimStringDesc* T20_;
  		T16_ = (NI)0;
  		T16_ = len__pureZjson_2989(b);
  		if (!!((T16_ == i))) goto LA17_;
  		nimZeroMem((void*)(&T19_), sizeof(tyTuple__awOivLjlO76sGdHY7nQUjQ));
  		T19_.Field0 = len__pureZjson_2989(b);
  		T19_.Field1 = i;
  		T19_.Field2 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_133));
  		T19_.Field3 = b;
  		T20_ = NIM_NIL;
  		T20_ = dollar___extccomp_2058((&T19_));
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_135), T20_);
  	}
  	LA17_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_1952)(tySequence__4eQHGndY6XBYpFOH09apV8Q** a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt) {
  	NI T8_;
  	{
  		NIM_BOOL T3_;
  		tyTuple__jq7X5k7hWG0tdTZTDkiyGQ T6_;
  		NimStringDesc* T7_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = eqeq___pureZjson_2044(b, ((tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*) NIM_NIL));
  		if (!!(!(T3_))) goto LA4_;
  		nimZeroMem((void*)(&T6_), sizeof(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ));
  		T6_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_132));
  		T6_.Field1 = b;
  		T7_ = NIM_NIL;
  		T7_ = dollar___stdZjsonutils_407(T6_);
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_125), T7_);
  	}
  	LA4_: ;
  	T8_ = (NI)0;
  	T8_ = len__pureZjson_2989(b);
  	unsureAsgnRef((void**) (&(*a)), (tySequence__4eQHGndY6XBYpFOH09apV8Q*) setLengthSeqV2(&((*a))->Sup, (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_), ((NI) (T8_))));
  	{
  		NI i;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val;
  		tySequence__oLpBKXzW3hF9aCVMo5EymfQ* colontmp_;
  		tySequence__oLpBKXzW3hF9aCVMo5EymfQ* T10_;
  		NI i_2;
  		NI L;
  		NI T11_;
  		i = (NI)0;
  		val = NIM_NIL;
  		colontmp_ = NIM_NIL;
  		T10_ = NIM_NIL;
  		T10_ = NIM_NIL;
  		colontmp_ = getElems__pureZjson_207(b, T10_);
  		i_2 = ((NI) 0);
  		T11_ = (colontmp_ ? colontmp_->Sup.len : 0);
  		L = T11_;
  		{
  			while (1) {
  				if (!(i_2 < L)) goto LA13;
  				i = i_2;
  				val = colontmp_->data[i_2];
  				fromJson__extccomp_2004((&(*a)->data[i]), val, opt);
  				i_2 += ((NI) 1);
  			} LA13: ;
  		}
  	}
  }
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_2140)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt) {
  	NI T8_;
  	{
  		NIM_BOOL T3_;
  		tyTuple__jq7X5k7hWG0tdTZTDkiyGQ T6_;
  		NimStringDesc* T7_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = eqeq___pureZjson_2044(b, ((tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*) NIM_NIL));
  		if (!!(!(T3_))) goto LA4_;
  		nimZeroMem((void*)(&T6_), sizeof(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ));
  		T6_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_141));
  		T6_.Field1 = b;
  		T7_ = NIM_NIL;
  		T7_ = dollar___stdZjsonutils_407(T6_);
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_125), T7_);
  	}
  	LA4_: ;
  	T8_ = (NI)0;
  	T8_ = len__pureZjson_2989(b);
  	unsureAsgnRef((void**) (&(*a)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) setLengthSeqV2(&((*a))->Sup, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) (T8_))));
  	{
  		NI i;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val;
  		tySequence__oLpBKXzW3hF9aCVMo5EymfQ* colontmp_;
  		tySequence__oLpBKXzW3hF9aCVMo5EymfQ* T10_;
  		NI i_2;
  		NI L;
  		NI T11_;
  		i = (NI)0;
  		val = NIM_NIL;
  		colontmp_ = NIM_NIL;
  		T10_ = NIM_NIL;
  		T10_ = NIM_NIL;
  		colontmp_ = getElems__pureZjson_207(b, T10_);
  		i_2 = ((NI) 0);
  		T11_ = (colontmp_ ? colontmp_->Sup.len : 0);
  		L = T11_;
  		{
  			while (1) {
  				if (!(i_2 < L)) goto LA13;
  				i = i_2;
  				val = colontmp_->data[i_2];
  				fromJson__stdZjsonutils_566((&(*a)->data[i]), val, opt);
  				i_2 += ((NI) 1);
  			} LA13: ;
  		}
  	}
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, to__extccomp_2271)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node) {
  	NIM_BOOL result;
  	NimStringDesc* jsonPath;
  	result = (NIM_BOOL)0;
  	jsonPath = ((NimStringDesc*) NIM_NIL);
  	initFromJson__pureZjson_5264((&result), node, (&jsonPath));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_2260)(NIM_BOOL* a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt) {
  	{
  		NIM_BOOL T3_;
  		tyTuple__jq7X5k7hWG0tdTZTDkiyGQ T6_;
  		NimStringDesc* T7_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = eqeq___pureZjson_2044(b, ((tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*) NIM_NIL));
  		if (!!(!(T3_))) goto LA4_;
  		nimZeroMem((void*)(&T6_), sizeof(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ));
  		T6_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_146));
  		T6_.Field1 = b;
  		T7_ = NIM_NIL;
  		T7_ = dollar___stdZjsonutils_407(T6_);
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_125), T7_);
  	}
  	LA4_: ;
  	(*a) = to__extccomp_2271(b);
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___extccomp_2429)(tyTuple__YOdO3R1J4biIW9bY9agwbAQw* x) {
  	NimStringDesc* result;
  	NI count;
  	result = NIM_NIL;
  	result = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_136));
  	count = ((NI) 0);
  	{
  		if (!(((NI) 0) < count)) goto LA3_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA3_: ;
  	count += ((NI) 1);
  	addQuoted__extccomp_2078((&result), (*x).Field0);
  	{
  		if (!(((NI) 0) < count)) goto LA7_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA7_: ;
  	count += ((NI) 1);
  	addQuoted__extccomp_2078((&result), (*x).Field1);
  	{
  		if (!(((NI) 0) < count)) goto LA11_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA11_: ;
  	count += ((NI) 1);
  	addQuoted__extccomp_2078((&result), (*x).Field2);
  	{
  		if (!(((NI) 0) < count)) goto LA15_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA15_: ;
  	count += ((NI) 1);
  	addQuoted__pureZos_449((&result), (*x).Field3);
  	{
  		if (!(((NI) 0) < count)) goto LA19_;
  		result = resizeString(result, 2);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_119));
  	}
  	LA19_: ;
  	count += ((NI) 1);
  	{
  		if (!((*x).Field4 == 0)) goto LA23_;
  		result = resizeString(result, 3);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_137));
  	}
  	goto LA21_;
  	LA23_: ;
  	{
  		addQuoted__stdZjsonutils_444((&result), (*x).Field4);
  	}
  	LA21_: ;
  	{
  		if (!(count == ((NI) 1))) goto LA28_;
  		result = resizeString(result, 1);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_138));
  	}
  	LA28_: ;
  	result = resizeString(result, 1);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_139));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, fromJson__extccomp_1838)(tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog* a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt) {
  	NI numX60gensym14_;
  	NI numMatchedX60gensym14_;
  	NIM_BOOL okX60gensym14_;
  	{
  		NIM_BOOL T3_;
  		tyTuple__jq7X5k7hWG0tdTZTDkiyGQ T6_;
  		NimStringDesc* T7_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = eqeq___pureZjson_2044(b, ((tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*) NIM_NIL));
  		if (!!(!(T3_))) goto LA4_;
  		nimZeroMem((void*)(&T6_), sizeof(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ));
  		T6_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  		T6_.Field1 = b;
  		T7_ = NIM_NIL;
  		T7_ = dollar___stdZjsonutils_407(T6_);
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_125), T7_);
  	}
  	LA4_: ;
  	{
  		if (!!(((*b).kind == ((tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg) 5)))) goto LA10_;
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_127), reprEnum((NI)(*b).kind, (&NTIjsonnodekind__RUngo7nCHe6O8aBGIcrhtg_)));
  	}
  	LA10_: ;
  	numX60gensym14_ = ((NI) 0);
  	numMatchedX60gensym14_ = ((NI) 0);
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T14_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T17_;
  		T14_ = (NIM_BOOL)0;
  		T14_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_128));
  		if (!T14_) goto LA15_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T17_ = NIM_NIL;
  		T17_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_128));
  		fromJson__stdZjsonutils_566((&(*a).cacheVersion), T17_, opt);
  	}
  	goto LA12_;
  	LA15_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA19_;
  	}
  	goto LA12_;
  	LA19_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T26_;
  			NimStringDesc* T27_;
  			if (!NIM_TRUE) goto LA24_;
  			nimZeroMem((void*)(&T26_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T26_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T26_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_128));
  			T26_.Field2 = b;
  			T27_ = NIM_NIL;
  			T27_ = dollar___stdZjsonutils_504(T26_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T27_);
  		}
  		LA24_: ;
  	}
  	LA12_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T30_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T33_;
  		T30_ = (NIM_BOOL)0;
  		T30_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_130));
  		if (!T30_) goto LA31_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T33_ = NIM_NIL;
  		T33_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_130));
  		fromJson__stdZjsonutils_566((&(*a).outputFile), T33_, opt);
  	}
  	goto LA28_;
  	LA31_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA35_;
  	}
  	goto LA28_;
  	LA35_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T42_;
  			NimStringDesc* T43_;
  			if (!NIM_TRUE) goto LA40_;
  			nimZeroMem((void*)(&T42_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T42_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T42_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_130));
  			T42_.Field2 = b;
  			T43_ = NIM_NIL;
  			T43_ = dollar___stdZjsonutils_504(T42_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T43_);
  		}
  		LA40_: ;
  	}
  	LA28_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T46_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T49_;
  		T46_ = (NIM_BOOL)0;
  		T46_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_131));
  		if (!T46_) goto LA47_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T49_ = NIM_NIL;
  		T49_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_131));
  		fromJson__extccomp_1952((&(*a).compile), T49_, opt);
  	}
  	goto LA44_;
  	LA47_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA51_;
  	}
  	goto LA44_;
  	LA51_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T58_;
  			NimStringDesc* T59_;
  			if (!NIM_TRUE) goto LA56_;
  			nimZeroMem((void*)(&T58_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T58_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T58_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_131));
  			T58_.Field2 = b;
  			T59_ = NIM_NIL;
  			T59_ = dollar___stdZjsonutils_504(T58_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T59_);
  		}
  		LA56_: ;
  	}
  	LA44_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T62_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T65_;
  		T62_ = (NIM_BOOL)0;
  		T62_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_140));
  		if (!T62_) goto LA63_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T65_ = NIM_NIL;
  		T65_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_140));
  		fromJson__extccomp_2140((&(*a).link), T65_, opt);
  	}
  	goto LA60_;
  	LA63_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA67_;
  	}
  	goto LA60_;
  	LA67_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T74_;
  			NimStringDesc* T75_;
  			if (!NIM_TRUE) goto LA72_;
  			nimZeroMem((void*)(&T74_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T74_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T74_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_140));
  			T74_.Field2 = b;
  			T75_ = NIM_NIL;
  			T75_ = dollar___stdZjsonutils_504(T74_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T75_);
  		}
  		LA72_: ;
  	}
  	LA60_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T78_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T81_;
  		T78_ = (NIM_BOOL)0;
  		T78_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_142));
  		if (!T78_) goto LA79_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T81_ = NIM_NIL;
  		T81_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_142));
  		fromJson__stdZjsonutils_566((&(*a).linkcmd), T81_, opt);
  	}
  	goto LA76_;
  	LA79_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA83_;
  	}
  	goto LA76_;
  	LA83_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T90_;
  			NimStringDesc* T91_;
  			if (!NIM_TRUE) goto LA88_;
  			nimZeroMem((void*)(&T90_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T90_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T90_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_142));
  			T90_.Field2 = b;
  			T91_ = NIM_NIL;
  			T91_ = dollar___stdZjsonutils_504(T90_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T91_);
  		}
  		LA88_: ;
  	}
  	LA76_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T94_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T97_;
  		T94_ = (NIM_BOOL)0;
  		T94_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_143));
  		if (!T94_) goto LA95_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T97_ = NIM_NIL;
  		T97_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_143));
  		fromJson__extccomp_2140((&(*a).extraCmds), T97_, opt);
  	}
  	goto LA92_;
  	LA95_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA99_;
  	}
  	goto LA92_;
  	LA99_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T106_;
  			NimStringDesc* T107_;
  			if (!NIM_TRUE) goto LA104_;
  			nimZeroMem((void*)(&T106_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T106_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T106_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_143));
  			T106_.Field2 = b;
  			T107_ = NIM_NIL;
  			T107_ = dollar___stdZjsonutils_504(T106_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T107_);
  		}
  		LA104_: ;
  	}
  	LA92_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T110_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T113_;
  		T110_ = (NIM_BOOL)0;
  		T110_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_144));
  		if (!T110_) goto LA111_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T113_ = NIM_NIL;
  		T113_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_144));
  		fromJson__extccomp_2140((&(*a).configFiles), T113_, opt);
  	}
  	goto LA108_;
  	LA111_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA115_;
  	}
  	goto LA108_;
  	LA115_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T122_;
  			NimStringDesc* T123_;
  			if (!NIM_TRUE) goto LA120_;
  			nimZeroMem((void*)(&T122_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T122_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T122_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_144));
  			T122_.Field2 = b;
  			T123_ = NIM_NIL;
  			T123_ = dollar___stdZjsonutils_504(T122_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T123_);
  		}
  		LA120_: ;
  	}
  	LA108_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T126_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T129_;
  		T126_ = (NIM_BOOL)0;
  		T126_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_145));
  		if (!T126_) goto LA127_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T129_ = NIM_NIL;
  		T129_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_145));
  		fromJson__extccomp_2260((&(*a).stdinInput), T129_, opt);
  	}
  	goto LA124_;
  	LA127_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA131_;
  	}
  	goto LA124_;
  	LA131_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T138_;
  			NimStringDesc* T139_;
  			if (!NIM_TRUE) goto LA136_;
  			nimZeroMem((void*)(&T138_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T138_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T138_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_145));
  			T138_.Field2 = b;
  			T139_ = NIM_NIL;
  			T139_ = dollar___stdZjsonutils_504(T138_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T139_);
  		}
  		LA136_: ;
  	}
  	LA124_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T142_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T145_;
  		T142_ = (NIM_BOOL)0;
  		T142_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_147));
  		if (!T142_) goto LA143_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T145_ = NIM_NIL;
  		T145_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_147));
  		fromJson__extccomp_2260((&(*a).projectIsCmd), T145_, opt);
  	}
  	goto LA140_;
  	LA143_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA147_;
  	}
  	goto LA140_;
  	LA147_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T154_;
  			NimStringDesc* T155_;
  			if (!NIM_TRUE) goto LA152_;
  			nimZeroMem((void*)(&T154_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T154_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T154_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_147));
  			T154_.Field2 = b;
  			T155_ = NIM_NIL;
  			T155_ = dollar___stdZjsonutils_504(T154_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T155_);
  		}
  		LA152_: ;
  	}
  	LA140_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T158_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T161_;
  		T158_ = (NIM_BOOL)0;
  		T158_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_148));
  		if (!T158_) goto LA159_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T161_ = NIM_NIL;
  		T161_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_148));
  		fromJson__stdZjsonutils_566((&(*a).cmdInput), T161_, opt);
  	}
  	goto LA156_;
  	LA159_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA163_;
  	}
  	goto LA156_;
  	LA163_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T170_;
  			NimStringDesc* T171_;
  			if (!NIM_TRUE) goto LA168_;
  			nimZeroMem((void*)(&T170_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T170_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T170_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_148));
  			T170_.Field2 = b;
  			T171_ = NIM_NIL;
  			T171_ = dollar___stdZjsonutils_504(T170_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T171_);
  		}
  		LA168_: ;
  	}
  	LA156_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T174_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T177_;
  		T174_ = (NIM_BOOL)0;
  		T174_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_149));
  		if (!T174_) goto LA175_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T177_ = NIM_NIL;
  		T177_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_149));
  		fromJson__stdZjsonutils_566((&(*a).currentDir), T177_, opt);
  	}
  	goto LA172_;
  	LA175_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA179_;
  	}
  	goto LA172_;
  	LA179_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T186_;
  			NimStringDesc* T187_;
  			if (!NIM_TRUE) goto LA184_;
  			nimZeroMem((void*)(&T186_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T186_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T186_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_149));
  			T186_.Field2 = b;
  			T187_ = NIM_NIL;
  			T187_ = dollar___stdZjsonutils_504(T186_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T187_);
  		}
  		LA184_: ;
  	}
  	LA172_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T190_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T193_;
  		T190_ = (NIM_BOOL)0;
  		T190_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_150));
  		if (!T190_) goto LA191_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T193_ = NIM_NIL;
  		T193_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_150));
  		fromJson__stdZjsonutils_566((&(*a).cmdline), T193_, opt);
  	}
  	goto LA188_;
  	LA191_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA195_;
  	}
  	goto LA188_;
  	LA195_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T202_;
  			NimStringDesc* T203_;
  			if (!NIM_TRUE) goto LA200_;
  			nimZeroMem((void*)(&T202_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T202_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T202_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_150));
  			T202_.Field2 = b;
  			T203_ = NIM_NIL;
  			T203_ = dollar___stdZjsonutils_504(T202_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T203_);
  		}
  		LA200_: ;
  	}
  	LA188_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T206_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T209_;
  		T206_ = (NIM_BOOL)0;
  		T206_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_151));
  		if (!T206_) goto LA207_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T209_ = NIM_NIL;
  		T209_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_151));
  		fromJson__extccomp_1952((&(*a).depfiles), T209_, opt);
  	}
  	goto LA204_;
  	LA207_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA211_;
  	}
  	goto LA204_;
  	LA211_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T218_;
  			NimStringDesc* T219_;
  			if (!NIM_TRUE) goto LA216_;
  			nimZeroMem((void*)(&T218_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T218_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T218_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_151));
  			T218_.Field2 = b;
  			T219_ = NIM_NIL;
  			T219_ = dollar___stdZjsonutils_504(T218_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T219_);
  		}
  		LA216_: ;
  	}
  	LA204_: ;
  	numX60gensym14_ += ((NI) 1);
  	{
  		NIM_BOOL T222_;
  		tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T225_;
  		T222_ = (NIM_BOOL)0;
  		T222_ = hasKey__pureZjson_3152(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_152));
  		if (!T222_) goto LA223_;
  		numMatchedX60gensym14_ += ((NI) 1);
  		T225_ = NIM_NIL;
  		T225_ = X5BX5D___pureZjson_3043(b, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_152));
  		fromJson__stdZjsonutils_566((&(*a).nimexe), T225_, opt);
  	}
  	goto LA220_;
  	LA223_: ;
  	{
  		if (!opt.allowMissingKeys) goto LA227_;
  	}
  	goto LA220_;
  	LA227_: ;
  	{
  		{
  			tyTuple__d8cOxWret6fRDupvUsyoyw T234_;
  			NimStringDesc* T235_;
  			if (!NIM_TRUE) goto LA232_;
  			nimZeroMem((void*)(&T234_), sizeof(tyTuple__d8cOxWret6fRDupvUsyoyw));
  			T234_.Field0 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  			T234_.Field1 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_152));
  			T234_.Field2 = b;
  			T235_ = NIM_NIL;
  			T235_ = dollar___stdZjsonutils_504(T234_);
  			raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_129), T235_);
  		}
  		LA232_: ;
  	}
  	LA220_: ;
  	{
  		NIM_BOOL T238_;
  		T238_ = (NIM_BOOL)0;
  		T238_ = opt.allowExtraKeys;
  		if (!(T238_)) goto LA239_;
  		T238_ = opt.allowMissingKeys;
  		LA239_: ;
  		if (!T238_) goto LA240_;
  		okX60gensym14_ = NIM_TRUE;
  	}
  	goto LA236_;
  	LA240_: ;
  	{
  		if (!opt.allowExtraKeys) goto LA243_;
  		okX60gensym14_ = (numX60gensym14_ == numMatchedX60gensym14_);
  	}
  	goto LA236_;
  	LA243_: ;
  	{
  		NI T248_;
  		if (!opt.allowMissingKeys) goto LA246_;
  		T248_ = (NI)0;
  		T248_ = len__pureZjson_2989(b);
  		okX60gensym14_ = (T248_ == numMatchedX60gensym14_);
  	}
  	goto LA236_;
  	LA246_: ;
  	{
  		NIM_BOOL T250_;
  		NI T251_;
  		T250_ = (NIM_BOOL)0;
  		T251_ = (NI)0;
  		T251_ = len__pureZjson_2989(b);
  		T250_ = (T251_ == numX60gensym14_);
  		if (!(T250_)) goto LA252_;
  		T250_ = (numX60gensym14_ == numMatchedX60gensym14_);
  		LA252_: ;
  		okX60gensym14_ = T250_;
  	}
  	LA236_: ;
  	{
  		tyTuple__YOdO3R1J4biIW9bY9agwbAQw T257_;
  		NimStringDesc* T258_;
  		if (!!(okX60gensym14_)) goto LA255_;
  		nimZeroMem((void*)(&T257_), sizeof(tyTuple__YOdO3R1J4biIW9bY9agwbAQw));
  		T257_.Field0 = len__pureZjson_2989(b);
  		T257_.Field1 = numX60gensym14_;
  		T257_.Field2 = numMatchedX60gensym14_;
  		T257_.Field3 = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_126));
  		T257_.Field4 = b;
  		T258_ = NIM_NIL;
  		T258_ = dollar___extccomp_2429((&T257_));
  		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_153), T258_);
  	}
  	LA255_: ;
  }
  static N_INLINE(void, popSafePoint)(void) {
  	excHandler__system_2565 = (*excHandler__system_2565).prev;
  }
  static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
  	Exception* result;
  	result = NIM_NIL;
  	result = currException__system_2566;
  	return result;
  }
  static N_INLINE(void, popCurrentException)(void) {
  	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
  }
  static N_INLINE(void*, seqToPtr__extccomp_2556)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x) {
  	void* result;
  	result = (void*)0;
  	result = ((void*) (x));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___extccomp_2541)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y) {
  	NIM_BOOL result;
  {	result = (NIM_BOOL)0;
  	{
  		void* T3_;
  		void* T4_;
  		T3_ = (void*)0;
  		T3_ = seqToPtr__extccomp_2556(x);
  		T4_ = (void*)0;
  		T4_ = seqToPtr__extccomp_2556(y);
  		if (!(T3_ == T4_)) goto LA5_;
  		result = NIM_TRUE;
  		goto BeforeRet_;
  	}
  	LA5_: ;
  	{
  		NI T9_;
  		NI T10_;
  		T9_ = (x ? x->Sup.len : 0);
  		T10_ = (y ? y->Sup.len : 0);
  		if (!!((T9_ == T10_))) goto LA11_;
  		result = NIM_FALSE;
  		goto BeforeRet_;
  	}
  	LA11_: ;
  	{
  		NI i;
  		NI colontmp_;
  		NI T14_;
  		NI res;
  		i = (NI)0;
  		colontmp_ = (NI)0;
  		T14_ = (x ? x->Sup.len : 0);
  		colontmp_ = (NI)(T14_ - ((NI) 1));
  		res = ((NI) 0);
  		{
  			while (1) {
  				if (!(res <= colontmp_)) goto LA16;
  				i = res;
  				{
  					if (!!(eqStrings(x->data[i], y->data[i]))) goto LA19_;
  					result = NIM_FALSE;
  					goto BeforeRet_;
  				}
  				LA19_: ;
  				res += ((NI) 1);
  			} LA16: ;
  		}
  	}
  	result = NIM_TRUE;
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, changeDetectedViaJsonBuildInstructions__extccomp_1833)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* jsonFile) {
  	NIM_BOOL result;
  	tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog bcache;
  	TSafePoint TM__OyL9acDBDoBfMwa5zb1Y88w_124;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T10_;
  	tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ T11_;
  {	result = (NIM_BOOL)0;
  	{
  		NIM_BOOL T3_;
  		NIM_BOOL T4_;
  		NimStringDesc* T6_;
  		NIM_BOOL T7_;
  		T3_ = (NIM_BOOL)0;
  		T4_ = (NIM_BOOL)0;
  		T4_ = nosfileExists(jsonFile);
  		T3_ = !(T4_);
  		if (T3_) goto LA5_;
  		T6_ = NIM_NIL;
  		T6_ = absOutFile__options_4038(conf);
  		T7_ = (NIM_BOOL)0;
  		T7_ = nosfileExists(T6_);
  		T3_ = !(T7_);
  		LA5_: ;
  		if (!T3_) goto LA8_;
  		result = NIM_TRUE;
  		goto BeforeRet_;
  	}
  	LA8_: ;
  	nimZeroMem((void*)(&bcache), sizeof(tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog));
  	pushSafePoint(&TM__OyL9acDBDoBfMwa5zb1Y88w_124);
  	TM__OyL9acDBDoBfMwa5zb1Y88w_124.status = _setjmp(TM__OyL9acDBDoBfMwa5zb1Y88w_124.context);
  	if (TM__OyL9acDBDoBfMwa5zb1Y88w_124.status == 0) {
  	T10_ = NIM_NIL;
  	T10_ = parseFile__pureZjson_5228(jsonFile);
  	nimZeroMem((void*)(&T11_), sizeof(tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ));
  	fromJson__extccomp_1838((&bcache), T10_, T11_);
  	popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_))) {
  			NimStringDesc* T14_;
  			TM__OyL9acDBDoBfMwa5zb1Y88w_124.status = 0;
  			T14_ = NIM_NIL;
  			T14_ = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_154), jsonFile);
  			write__systemZio_205(__stderrp, T14_);
  			result = NIM_TRUE;
  			popCurrentException();
  			goto BeforeRet_;
  			popCurrentException();
  		}
  	}
  	if (TM__OyL9acDBDoBfMwa5zb1Y88w_124.status != 0) reraiseException();
  	{
  		NIM_BOOL T17_;
  		NIM_BOOL T18_;
  		NIM_BOOL T19_;
  		NIM_BOOL T20_;
  		NIM_BOOL T21_;
  		NIM_BOOL T22_;
  		NIM_BOOL T23_;
  		NimStringDesc* T24_;
  		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* T26_;
  		NIM_BOOL T34_;
  		NimStringDesc* T37_;
  		NimStringDesc* T40_;
  		tyArray__YtcvxHNKV4YiecPE9ap1mcA T41_;
  		NimStringDesc* T42_;
  		T17_ = (NIM_BOOL)0;
  		T18_ = (NIM_BOOL)0;
  		T19_ = (NIM_BOOL)0;
  		T20_ = (NIM_BOOL)0;
  		T21_ = (NIM_BOOL)0;
  		T22_ = (NIM_BOOL)0;
  		T23_ = (NIM_BOOL)0;
  		T24_ = NIM_NIL;
  		T24_ = nosgetCurrentDir();
  		T23_ = !(eqStrings(bcache.currentDir, T24_));
  		if (T23_) goto LA25_;
  		T26_ = NIM_NIL;
  		{
  			tySequence__sM4lkSb7zS6F7OVMvW9cffQ* colontmp_;
  			NI iX60gensym163_;
  			tySequence__sM4lkSb7zS6F7OVMvW9cffQ* resultX60gensym163_;
  			NI T28_;
  			colontmp_ = (*conf).configFiles;
  			iX60gensym163_ = ((NI) 0);
  			T28_ = (colontmp_ ? colontmp_->Sup.len : 0);
  			resultX60gensym163_ = newSeq__systemZio_501(((NI) (T28_)));
  			{
  				NimStringDesc** it;
  				NI i;
  				NI L;
  				NI T30_;
  				it = (NimStringDesc**)0;
  				i = ((NI) 0);
  				T30_ = (colontmp_ ? colontmp_->Sup.len : 0);
  				L = T30_;
  				{
  					while (1) {
  						NimStringDesc* T33_;
  						if (!(i < L)) goto LA32;
  						it = (&colontmp_->data[i]);
  						T33_ = NIM_NIL;
  						T33_ = resultX60gensym163_->data[iX60gensym163_]; resultX60gensym163_->data[iX60gensym163_] = copyStringRC1((*it));
  						if (T33_) nimGCunrefNoCycle(T33_);
  						iX60gensym163_ += ((NI) 1);
  						i += ((NI) 1);
  					} LA32: ;
  				}
  			}
  			genericSeqAssign((&T26_), resultX60gensym163_, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  		}
  		T34_ = (NIM_BOOL)0;
  		T34_ = eqeq___extccomp_2541(bcache.configFiles, T26_);
  		T23_ = !(T34_);
  		LA25_: ;
  		T22_ = T23_;
  		if (T22_) goto LA35_;
  		T22_ = !(eqStrings(bcache.cacheVersion, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_155)));
  		LA35_: ;
  		T21_ = T22_;
  		if (T21_) goto LA36_;
  		T37_ = NIM_NIL;
  		T37_ = absOutFile__options_4038(conf);
  		T21_ = !(eqStrings(bcache.outputFile, T37_));
  		LA36_: ;
  		T20_ = T21_;
  		if (T20_) goto LA38_;
  		T20_ = !(eqStrings(bcache.cmdline, (*conf).commandLine));
  		LA38_: ;
  		T19_ = T20_;
  		if (T19_) goto LA39_;
  		T40_ = NIM_NIL;
  		T40_ = nosgetAppFilename();
  		nimZeroMem((void*)T41_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
  		secureHashFile__stdZsha49_871(T40_, T41_);
  		T42_ = NIM_NIL;
  		T42_ = dollar___stdZsha49_879(T41_);
  		T19_ = !(eqStrings(bcache.nimexe, T42_));
  		LA39_: ;
  		T18_ = T19_;
  		if (T18_) goto LA43_;
  		T18_ = !((bcache.projectIsCmd == (*conf).projectIsCmd));
  		LA43_: ;
  		T17_ = T18_;
  		if (T17_) goto LA44_;
  		T17_ = !(eqStrings((*conf).cmdInput, bcache.cmdInput));
  		LA44_: ;
  		if (!T17_) goto LA45_;
  		result = NIM_TRUE;
  		goto BeforeRet_;
  	}
  	LA45_: ;
  	{
  		NIM_BOOL T49_;
  		T49_ = (NIM_BOOL)0;
  		T49_ = bcache.stdinInput;
  		if (T49_) goto LA50_;
  		T49_ = (*conf).projectIsStdin;
  		LA50_: ;
  		if (!T49_) goto LA51_;
  		result = NIM_TRUE;
  		goto BeforeRet_;
  	}
  	LA51_: ;
  	{
  		NimStringDesc** file;
  		NimStringDesc** hash;
  		NI i_2;
  		NI L_2;
  		NI T54_;
  		file = (NimStringDesc**)0;
  		hash = (NimStringDesc**)0;
  		i_2 = ((NI) 0);
  		T54_ = (bcache.depfiles ? bcache.depfiles->Sup.len : 0);
  		L_2 = T54_;
  		{
  			while (1) {
  				if (!(i_2 < L_2)) goto LA56;
  				file = (&bcache.depfiles->data[i_2].Field0);
  				hash = (&bcache.depfiles->data[i_2].Field1);
  				{
  					tyArray__YtcvxHNKV4YiecPE9ap1mcA T59_;
  					NimStringDesc* T60_;
  					nimZeroMem((void*)T59_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
  					secureHashFile__stdZsha49_871((*file), T59_);
  					T60_ = NIM_NIL;
  					T60_ = dollar___stdZsha49_879(T59_);
  					if (!!(eqStrings(T60_, (*hash)))) goto LA61_;
  					result = NIM_TRUE;
  					goto BeforeRet_;
  				}
  				LA61_: ;
  				i_2 += ((NI) 1);
  			} LA56: ;
  		}
  	}
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, jsonBuildInstructionsFile__extccomp_1477)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NimStringDesc* result;
  	NimStringDesc* T1_;
  	NimStringDesc* T2_;
  	result = NIM_NIL;
  	T1_ = NIM_NIL;
  	T1_ = getNimcacheDir__options_4183(conf);
  	T2_ = NIM_NIL;
  	T2_ = noschangeFileExt((*conf).outFile, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_156));
  	result = slash___pathutils_89(T1_, T2_);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccHasSaneOverflow__extccomp_930)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	{
  		NimStringDesc* exe;
  		tyTuple__XOVT24GHXwqiEj5GCsEGCA T9_;
  		TSafePoint TM__OyL9acDBDoBfMwa5zb1Y88w_157;
  		NimStringDesc* T10_;
  		NimStringDesc* s;
  		NI exitCode;
  		if (!((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 1))) goto LA3_;
  		result = NIM_FALSE;
  		exe = getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_88));
  		{
  			if (!((exe ? exe->Sup.len : 0) == ((NI) 0))) goto LA7_;
  			exe = copyString(CC__extccomp_508[((*conf).cCompiler)- 1].Field4);
  		}
  		LA7_: ;
  		nimZeroMem((void*)(&T9_), sizeof(tyTuple__XOVT24GHXwqiEj5GCsEGCA));
  		pushSafePoint(&TM__OyL9acDBDoBfMwa5zb1Y88w_157);
  		TM__OyL9acDBDoBfMwa5zb1Y88w_157.status = _setjmp(TM__OyL9acDBDoBfMwa5zb1Y88w_157.context);
  		if (TM__OyL9acDBDoBfMwa5zb1Y88w_157.status == 0) {
  		T10_ = NIM_NIL;
  		T10_ = rawNewString((exe ? exe->Sup.len : 0) + 10);
  appendString(T10_, exe);
  appendString(T10_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_158));
  		execCmdEx__pureZosproc_1148(T10_, 10, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) NIM_NIL), (&T9_));
  		popSafePoint();
  		}
  		else {
  			popSafePoint();
  			{
  				TM__OyL9acDBDoBfMwa5zb1Y88w_157.status = 0;
  				T9_.Field0 = copyString(TM__OyL9acDBDoBfMwa5zb1Y88w_159.Field0);
  				T9_.Field1 = TM__OyL9acDBDoBfMwa5zb1Y88w_159.Field1;
  				popCurrentException();
  			}
  		}
  		if (TM__OyL9acDBDoBfMwa5zb1Y88w_157.status != 0) reraiseException();
  		s = NIM_NIL;
  		s = copyString(T9_.Field0);
  		exitCode = (NI)0;
  		exitCode = T9_.Field1;
  		{
  			NI i;
  			NI j;
  			if (!(exitCode == ((NI) 0))) goto LA15_;
  			i = ((NI) 0);
  			j = ((NI) 0);
  			{
  				while (1) {
  					NIM_BOOL T19_;
  					T19_ = (NIM_BOOL)0;
  					T19_ = (i < (s ? s->Sup.len : 0));
  					if (!(T19_)) goto LA20_;
  					T19_ = !(((NU8)(s->data[i]) == (NU8)(10)));
  					LA20_: ;
  					if (!T19_) goto LA18;
  					{
  						if (!(((NU8)(s->data[i])) == ((NU8)(32)) || ((NU8)(s->data[i])) == ((NU8)(9)))) goto LA23_;
  						j = (NI)(i + ((NI) 1));
  					}
  					LA23_: ;
  					i += ((NI) 1);
  				} LA18: ;
  			}
  			{
  				NI major;
  				if (!(((NI) 0) < j)) goto LA27_;
  				major = ((NI) 0);
  				{
  					while (1) {
  						NIM_BOOL T31_;
  						T31_ = (NIM_BOOL)0;
  						T31_ = (j < (s ? s->Sup.len : 0));
  						if (!(T31_)) goto LA32_;
  						T31_ = (((NU8)(s->data[j])) >= ((NU8)(48)) && ((NU8)(s->data[j])) <= ((NU8)(57)));
  						LA32_: ;
  						if (!T31_) goto LA30;
  						major = (NI)((NI)(major * ((NI) 10)) + (NI)(((NU8)(s->data[j])) - ((NI) 48)));
  						j += ((NI) 1);
  					} LA30: ;
  				}
  				{
  					NIM_BOOL T35_;
  					T35_ = (NIM_BOOL)0;
  					T35_ = (i < (s ? s->Sup.len : 0));
  					if (!(T35_)) goto LA36_;
  					T35_ = ((NU8)(s->data[j]) == (NU8)(46));
  					LA36_: ;
  					if (!T35_) goto LA37_;
  					j += ((NI) 1);
  				}
  				LA37_: ;
  				{
  					while (1) {
  						NIM_BOOL T41_;
  						T41_ = (NIM_BOOL)0;
  						T41_ = (j < (s ? s->Sup.len : 0));
  						if (!(T41_)) goto LA42_;
  						T41_ = (((NU8)(s->data[j])) >= ((NU8)(48)) && ((NU8)(s->data[j])) <= ((NU8)(57)));
  						LA42_: ;
  						if (!T41_) goto LA40;
  						j += ((NI) 1);
  					} LA40: ;
  				}
  				{
  					NIM_BOOL T45_;
  					NIM_BOOL T46_;
  					T45_ = (NIM_BOOL)0;
  					T46_ = (NIM_BOOL)0;
  					T46_ = ((NI)(j + ((NI) 1)) < (s ? s->Sup.len : 0));
  					if (!(T46_)) goto LA47_;
  					T46_ = ((NU8)(s->data[j]) == (NU8)(46));
  					LA47_: ;
  					T45_ = T46_;
  					if (!(T45_)) goto LA48_;
  					T45_ = (((NU8)(s->data[(NI)(j + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(j + ((NI) 1))])) <= ((NU8)(57)));
  					LA48_: ;
  					if (!T45_) goto LA49_;
  					result = (((NI) 5) <= major);
  				}
  				LA49_: ;
  			}
  			LA27_: ;
  		}
  		LA15_: ;
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = ((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 4));
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, addFileToCompile__extccomp_722)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* cf) {
  	NI T1_;
  	asgnRef((void**) (&(*conf).toCompile), (tySequence__pK3qSsBZwdXd6qyUMkd5Jw*) incrSeqV3((TGenericSeq*)((*conf).toCompile), (&NTIcfilelist__pK3qSsBZwdXd6qyUMkd5Jw_)));
  	T1_ = (*conf).toCompile->Sup.len++;
  	genericAssign((void*)(&(*conf).toCompile->data[T1_]), (void*)cf, (&NTIcfile__i9cKq1ZGd1wgagjUEHLVFtg_));
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___extccomp_2636)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
  	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
  	result = NIM_NIL;
  	result = runtimeFormat__ropes_271(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_161), args, argsLen_0);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, genMappingFiles__extccomp_2628)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tySequence__pK3qSsBZwdXd6qyUMkd5Jw* list) {
  	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
  	result = NIM_NIL;
  	{
  		tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* it;
  		NI i;
  		NI L;
  		NI T2_;
  		it = (tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg*)0;
  		i = ((NI) 0);
  		T2_ = (list ? list->Sup.len : 0);
  		L = T2_;
  		{
  			while (1) {
  				tyArray__JiWwrsTRC6xqNlGcBthSVA T5_;
  				tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T6_;
  				if (!(i < L)) goto LA4;
  				it = (&list->data[i]);
  				nimZeroMem((void*)T5_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
  				T5_[0] = rope__ropes_109((*it).cname);
  				T6_ = NIM_NIL;
  				T6_ = percent___extccomp_2636(T5_, 1);
  				add__ropes_159(&result, T6_);
  				i += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileOptions__extccomp_869)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	result = cFileSpecificOptions__extccomp_844(conf, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_163), ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_163));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkOptions__extccomp_880)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	NimStringDesc* result;
  	NimStringDesc* T1_;
  	result = NIM_NIL;
  	T1_ = NIM_NIL;
  	T1_ = rawNewString(((*conf).linkOptions ? (*conf).linkOptions->Sup.len : 0) + ((*conf).linkOptionsCmd ? (*conf).linkOptionsCmd->Sup.len : 0) + 2);
  appendString(T1_, (*conf).linkOptions);
  appendString(T1_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T1_, (*conf).linkOptionsCmd);
  appendString(T1_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  	result = T1_;
  	{
  		NimStringDesc** linkedLib;
  		NI i;
  		NI L;
  		NI T3_;
  		linkedLib = (NimStringDesc**)0;
  		i = ((NI) 0);
  		T3_ = ((*conf).cLinkedLibs ? (*conf).cLinkedLibs->Sup.len : 0);
  		L = T3_;
  		{
  			while (1) {
  				NimStringDesc* T6_;
  				NimStringDesc* T7_;
  				if (!(i < L)) goto LA5;
  				linkedLib = (&(*conf).cLinkedLibs->data[i]);
  				T6_ = NIM_NIL;
  				T6_ = nospquoteShell((*linkedLib));
  				T7_ = NIM_NIL;
  				T7_ = nsuFormatSingleElem(CC__extccomp_508[((*conf).cCompiler)- 1].Field14, T6_);
  				result = resizeString(result, (T7_ ? T7_->Sup.len : 0) + 0);
  appendString(result, T7_);
  				i += ((NI) 1);
  			} LA5: ;
  		}
  	}
  	{
  		NimStringDesc** libDir;
  		NI i_2;
  		NI L_2;
  		NI T9_;
  		libDir = (NimStringDesc**)0;
  		i_2 = ((NI) 0);
  		T9_ = ((*conf).cLibs ? (*conf).cLibs->Sup.len : 0);
  		L_2 = T9_;
  		{
  			while (1) {
  				tyArray__Re75IspeoxXy2oCZHwcRrA T12_;
  				NimStringDesc* T13_;
  				if (!(i_2 < L_2)) goto LA11;
  				libDir = (&(*conf).cLibs->data[i_2]);
  				nimZeroMem((void*)T12_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
  				T12_[0] = copyString(CC__extccomp_508[((*conf).cCompiler)- 1].Field13);
  				T12_[1] = nospquoteShell((*libDir));
  				T13_ = NIM_NIL;
  				T13_ = nsuJoinSep(T12_, 2, ((NimStringDesc*) NIM_NIL));
  				result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
  appendString(result, T13_);
  				i_2 += ((NI) 1);
  			} LA11: ;
  		}
  	}
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, percent___extccomp_2658)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
  	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
  	result = NIM_NIL;
  	result = runtimeFormat__ropes_271(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_168), args, argsLen_0);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, writeMapping__extccomp_2650)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* symbolMapping) {
  	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* code;
  	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T5_;
  	NimStringDesc* T6_;
  	NimStringDesc* T7_;
  	NimStringDesc* T8_;
  	NimStringDesc* T9_;
  	NimStringDesc* T10_;
  	NimStringDesc* T11_;
  	NimStringDesc* T12_;
  	tyArray__JiWwrsTRC6xqNlGcBthSVA T13_;
  	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T14_;
  	NimStringDesc* filename;
  {	{
  		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 11))&63U)))!=0))) goto LA3_;
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	code = rope__ropes_109(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_160));
  	T5_ = NIM_NIL;
  	T5_ = genMappingFiles__extccomp_2628(conf, (*conf).toCompile);
  	add__ropes_159(&code, T5_);
  	add__ropes_162(&code, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_162));
  	T6_ = NIM_NIL;
  	T6_ = getCompileOptions__extccomp_869(conf);
  	T7_ = NIM_NIL;
  	T7_ = nsuEscape(T6_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_164), ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_164));
  	add__ropes_162(&code, T7_);
  	add__ropes_162(&code, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_165));
  	T8_ = NIM_NIL;
  	T9_ = NIM_NIL;
  	T9_ = getLinkOptions__extccomp_880(conf);
  	T10_ = NIM_NIL;
  	T10_ = getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_166));
  	T8_ = rawNewString((T9_ ? T9_->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + 1);
  appendString(T8_, T9_);
  appendString(T8_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T8_, T10_);
  	T11_ = NIM_NIL;
  	T11_ = nsuEscape(T8_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_164), ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_164));
  	add__ropes_162(&code, T11_);
  	add__ropes_162(&code, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_167));
  	T12_ = NIM_NIL;
  	T12_ = nsuEscape((*conf).libpath, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_164), ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_164));
  	add__ropes_162(&code, T12_);
  	nimZeroMem((void*)T13_, sizeof(tyArray__JiWwrsTRC6xqNlGcBthSVA));
  	T13_[0] = symbolMapping;
  	T14_ = NIM_NIL;
  	T14_ = percent___extccomp_2658(T13_, 1);
  	add__ropes_159(&code, T14_);
  	filename = slash___pathutils_89((*conf).projectPath, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_169));
  	{
  		NIM_BOOL T17_;
  		NimStringDesc* T20_;
  		T17_ = (NIM_BOOL)0;
  		T17_ = writeRope__ropes_241(code, filename);
  		if (!!(T17_)) goto LA18_;
  		T20_ = NIM_NIL;
  		T20_ = rawNewString((filename ? filename->Sup.len : 0) + 25);
  appendString(T20_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_170));
  appendString(T20_, filename);
  		liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_171, NIM_FALSE);
  	}
  	LA18_: ;
  	}BeforeRet_: ;
  }
  static N_NIMCALL(void, Marker_tyRef__CqlAb69bkfxaejoSKDwhYYA)(void* p, NI op) {
  	tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg* a;
  	a = (tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg*)p;
  	nimGCvisit((void*)(*a).prettyCmds1, op);
  	nimGCvisit((void*)(*a).conf2, op);
  }
  N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_1258)(NI idx, void* ClE_0) {
  	tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg* colonenvP_;
  	colonenvP_ = (tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg*) ClE_0;
  	{
  		tyArray__nHXaesL0DJZHyVS07ARPRA T5_;
  		if (!(((NI) 0) < ((*colonenvP_).prettyCmds1->data[idx] ? (*colonenvP_).prettyCmds1->data[idx]->Sup.len : 0))) goto LA3_;
  		flushDot__msgs_17((*colonenvP_).conf2);
  		nimZeroMem((void*)T5_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
  		T5_[0] = copyString((*colonenvP_).prettyCmds1->data[idx]);
  		writeLine__msgs_432(__stderrp, T5_, 1);
  	}
  	LA3_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, displayProgressCC__extccomp_1234)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path, NimStringDesc* compileCmd) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = hasHint__options_517(conf, ((tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug) 70));
  		if (!T3_) goto LA4_;
  		{
  			NIM_BOOL T8_;
  			NimStringDesc* T12_;
  			tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T13_;
  			NimStringDesc* T14_;
  			T8_ = (NIM_BOOL)0;
  			T8_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 3))&63U)))!=0);
  			if (T8_) goto LA9_;
  			T8_ = (((NI) 1) < (*conf).verbosity);
  			LA9_: ;
  			if (!T8_) goto LA10_;
  			T12_ = NIM_NIL;
  			nimZeroMem((void*)(&T13_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
  			nossplitFile(path, (&T13_));
  			T14_ = NIM_NIL;
  			T14_ = demanglePackageName__options_4170(T13_.Field1);
  			T12_ = rawNewString((T14_ ? T14_->Sup.len : 0) + (compileCmd ? compileCmd->Sup.len : 0) + 2);
  appendString(T12_, T14_);
  appendString(T12_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_174));
  appendString(T12_, compileCmd);
  			result = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_173), T12_);
  		}
  		goto LA6_;
  		LA10_: ;
  		{
  			tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T16_;
  			NimStringDesc* T17_;
  			nimZeroMem((void*)(&T16_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
  			nossplitFile(path, (&T16_));
  			T17_ = NIM_NIL;
  			T17_ = demanglePackageName__options_4170(T16_.Field1);
  			result = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_173), T17_);
  		}
  		LA6_: ;
  	}
  	LA4_: ;
  	return result;
  }
  static N_NIMCALL(void, Marker_tyRef__pkCPBZYDmG8KoijaqNdsQw)(void* p, NI op) {
  	tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg* a;
  	a = (tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg*)p;
  	nimGCvisit((void*)(*a).conf1, op);
  	nimGCvisit((void*)(*a).cmds2, op);
  }
  N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_1161)(NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, void* ClE_0) {
  	tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg* colonenvP_;
  	NI exitCode;
  	colonenvP_ = (tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg*) ClE_0;
  	exitCode = nosppeekExitCode(p);
  	{
  		NimStringDesc* T5_;
  		NimStringDesc* T6_;
  		if (!!((exitCode == ((NI) 0)))) goto LA3_;
  		T5_ = NIM_NIL;
  		T6_ = NIM_NIL;
  		T6_ = dollar___systemZdollars_3(exitCode);
  		T5_ = rawNewString(((*colonenvP_).cmds2->data[idx] ? (*colonenvP_).cmds2->data[idx]->Sup.len : 0) + (T6_ ? T6_->Sup.len : 0) + 70);
  appendString(T5_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_176));
  appendString(T5_, (*colonenvP_).cmds2->data[idx]);
  appendString(T5_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_177));
  appendString(T5_, T6_);
  appendString(T5_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_178));
  		liMessage__msgs_1118((*colonenvP_).conf1, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_179, NIM_FALSE);
  	}
  	LA3_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(NI, execWithEcho__extccomp_795)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cmd, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg) {
  	NI result;
  	NimStringDesc* T1_;
  	result = (NI)0;
  	T1_ = NIM_NIL;
  	{
  		NIM_BOOL T4_;
  		NIM_BOOL T6_;
  		T4_ = (NIM_BOOL)0;
  		T4_ = (msg == ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 90));
  		if (!(T4_)) goto LA5_;
  		T6_ = (NIM_BOOL)0;
  		T6_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 3))&63U)))!=0);
  		if (T6_) goto LA7_;
  		T6_ = (((NI) 1) < (*conf).verbosity);
  		LA7_: ;
  		T4_ = !(T6_);
  		LA5_: ;
  		if (!T4_) goto LA8_;
  		T1_ = ((NimStringDesc*) NIM_NIL);
  	}
  	goto LA2_;
  	LA8_: ;
  	{
  		T1_ = copyString(cmd);
  	}
  	LA2_: ;
  	liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, msg, T1_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_181, NIM_FALSE);
  	result = nospexecCmd(cmd);
  	return result;
  }
  static N_INLINE(Exception*, getCurrentException)(void) {
  	Exception* result;
  	result = NIM_NIL;
  	result = currException__system_2566;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, execCmdsInParallel__extccomp_1155)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds, tyProc__SqRJqa5aOiKB4EuKlKh9asA prettyCb) {
  	tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg* colonenv_;
  	tyProc__oudJckli4GdxAXLVzBBlAw runCb;
  	tyProc__oudJckli4GdxAXLVzBBlAw T1_;
  	NI volatile res;
  	colonenv_ = NIM_NIL;
  	colonenv_ = (tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg*) newObj((&NTIrefobject__pkCPBZYDmG8KoijaqNdsQw_), sizeof(tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg));
  	(*colonenv_).Sup.m_type = (&NTIobject__4Ms6MGgcp8EDnUBSlKFk9bg_);
  	asgnRef((void**) (&(*colonenv_).conf1), conf);
  	genericSeqAssign((&(*colonenv_).cmds2), cmds, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  	nimZeroMem((void*)(&runCb), sizeof(tyProc__oudJckli4GdxAXLVzBBlAw));
  	nimZeroMem((void*)(&T1_), sizeof(tyProc__oudJckli4GdxAXLVzBBlAw));
  	T1_.ClP_0 = colonanonymous___extccomp_1161; T1_.ClE_0 = colonenv_;
  	runCb.ClE_0 = T1_.ClE_0;
  	runCb.ClP_0 = T1_.ClP_0;
  	{
  		if (!((*(*colonenv_).conf1).numberOfProcessors == ((NI) 0))) goto LA4_;
  		(*(*colonenv_).conf1).numberOfProcessors = nospcountProcessors();
  	}
  	LA4_: ;
  	res = ((NI) 0);
  	{
  		if (!((*(*colonenv_).conf1).numberOfProcessors <= ((NI) 1))) goto LA8_;
  		{
  			NI i;
  			NI colontmp_;
  			NI T11_;
  			NI res_2;
  			i = (NI)0;
  			colontmp_ = (NI)0;
  			T11_ = (((*colonenv_).cmds2 ? (*colonenv_).cmds2->Sup.len : 0)-1);
  			colontmp_ = T11_;
  			res_2 = ((NI) 0);
  			{
  				while (1) {
  					TSafePoint TM__OyL9acDBDoBfMwa5zb1Y88w_180;
  					if (!(res_2 <= colontmp_)) goto LA13;
  					i = res_2;
  					pushSafePoint(&TM__OyL9acDBDoBfMwa5zb1Y88w_180);
  					TM__OyL9acDBDoBfMwa5zb1Y88w_180.status = _setjmp(TM__OyL9acDBDoBfMwa5zb1Y88w_180.context);
  					if (TM__OyL9acDBDoBfMwa5zb1Y88w_180.status == 0) {
  					res = execWithEcho__extccomp_795((*colonenv_).conf1, (*colonenv_).cmds2->data[i], ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 89));
  					popSafePoint();
  					}
  					else {
  						popSafePoint();
  						if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_))) {
  							tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA* oseX60gensym72_;
  							Exception* T16_;
  							TM__OyL9acDBDoBfMwa5zb1Y88w_180.status = 0;
  							T16_ = NIM_NIL;
  							T16_ = getCurrentException();
  							oseX60gensym72_ = ((tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*) (T16_));
  							{
  								NimStringDesc* T21_;
  								NimStringDesc* T22_;
  								if (!NIM_TRUE) goto LA19_;
  								T21_ = NIM_NIL;
  								T22_ = NIM_NIL;
  								T22_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym72_).errorCode)));
  								T21_ = rawNewString(((*oseX60gensym72_).Sup.Sup.message ? (*oseX60gensym72_).Sup.Sup.message->Sup.len : 0) + (T22_ ? T22_->Sup.len : 0) + 49);
  appendString(T21_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_182));
  appendString(T21_, (*oseX60gensym72_).Sup.Sup.message);
  appendString(T21_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T21_, T22_);
  								liMessage__msgs_1118((*colonenv_).conf1, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_183, NIM_FALSE);
  							}
  							goto LA17_;
  							LA19_: ;
  							{
  								NimStringDesc* T24_;
  								NimStringDesc* T25_;
  								NimStringDesc* T26_;
  								T24_ = NIM_NIL;
  								T25_ = NIM_NIL;
  								T25_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym72_).errorCode)));
  								T24_ = rawNewString(((*oseX60gensym72_).Sup.Sup.message ? (*oseX60gensym72_).Sup.Sup.message->Sup.len : 0) + (T25_ ? T25_->Sup.len : 0) + 1);
  appendString(T24_, (*oseX60gensym72_).Sup.Sup.message);
  appendString(T24_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T24_, T25_);
  								T26_ = NIM_NIL;
  								T26_ = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_184), T24_);
  								liMessage__msgs_1118((*colonenv_).conf1, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_185, NIM_FALSE);
  							}
  							LA17_: ;
  							reraiseException();
  							popCurrentException();
  						}
  					}
  					if (TM__OyL9acDBDoBfMwa5zb1Y88w_180.status != 0) reraiseException();
  					{
  						NimStringDesc* T31_;
  						if (!!((res == ((NI) 0)))) goto LA29_;
  						T31_ = NIM_NIL;
  						T31_ = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_184), (*colonenv_).cmds2->data[i]);
  						liMessage__msgs_1118((*colonenv_).conf1, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T31_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_186, NIM_FALSE);
  					}
  					LA29_: ;
  					res_2 += ((NI) 1);
  				} LA13: ;
  			}
  		}
  	}
  	goto LA6_;
  	LA8_: ;
  	{
  		TSafePoint TM__OyL9acDBDoBfMwa5zb1Y88w_187;
  		pushSafePoint(&TM__OyL9acDBDoBfMwa5zb1Y88w_187);
  		TM__OyL9acDBDoBfMwa5zb1Y88w_187.status = _setjmp(TM__OyL9acDBDoBfMwa5zb1Y88w_187.context);
  		if (TM__OyL9acDBDoBfMwa5zb1Y88w_187.status == 0) {
  		res = nospexecProcesses((*colonenv_).cmds2->data, ((*colonenv_).cmds2 ? (*colonenv_).cmds2->Sup.len : 0), 26, (*(*colonenv_).conf1).numberOfProcessors, prettyCb, runCb);
  		popSafePoint();
  		}
  		else {
  			popSafePoint();
  			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_))) {
  				tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA* oseX60gensym81_;
  				Exception* T35_;
  				TM__OyL9acDBDoBfMwa5zb1Y88w_187.status = 0;
  				T35_ = NIM_NIL;
  				T35_ = getCurrentException();
  				oseX60gensym81_ = ((tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*) (T35_));
  				{
  					NimStringDesc* T40_;
  					NimStringDesc* T41_;
  					if (!NIM_TRUE) goto LA38_;
  					T40_ = NIM_NIL;
  					T41_ = NIM_NIL;
  					T41_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym81_).errorCode)));
  					T40_ = rawNewString(((*oseX60gensym81_).Sup.Sup.message ? (*oseX60gensym81_).Sup.Sup.message->Sup.len : 0) + (T41_ ? T41_->Sup.len : 0) + 49);
  appendString(T40_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_182));
  appendString(T40_, (*oseX60gensym81_).Sup.Sup.message);
  appendString(T40_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T40_, T41_);
  					liMessage__msgs_1118((*colonenv_).conf1, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T40_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_183, NIM_FALSE);
  				}
  				goto LA36_;
  				LA38_: ;
  				{
  					NimStringDesc* T43_;
  					NimStringDesc* T44_;
  					NimStringDesc* T45_;
  					T43_ = NIM_NIL;
  					T44_ = NIM_NIL;
  					T44_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym81_).errorCode)));
  					T43_ = rawNewString(((*oseX60gensym81_).Sup.Sup.message ? (*oseX60gensym81_).Sup.Sup.message->Sup.len : 0) + (T44_ ? T44_->Sup.len : 0) + 1);
  appendString(T43_, (*oseX60gensym81_).Sup.Sup.message);
  appendString(T43_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T43_, T44_);
  					T45_ = NIM_NIL;
  					T45_ = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_184), T43_);
  					liMessage__msgs_1118((*colonenv_).conf1, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T45_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_185, NIM_FALSE);
  				}
  				LA36_: ;
  				reraiseException();
  				popCurrentException();
  			}
  		}
  		if (TM__OyL9acDBDoBfMwa5zb1Y88w_187.status != 0) reraiseException();
  	}
  	LA6_: ;
  	{
  		if (!!((res == ((NI) 0)))) goto LA48_;
  		{
  			NimStringDesc* T54_;
  			NimStringDesc* T55_;
  			if (!((*(*colonenv_).conf1).numberOfProcessors <= ((NI) 1))) goto LA52_;
  			T54_ = NIM_NIL;
  			T54_ = nsuJoinSep((*colonenv_).cmds2->data, ((*colonenv_).cmds2 ? (*colonenv_).cmds2->Sup.len : 0), ((NimStringDesc*) NIM_NIL));
  			T55_ = NIM_NIL;
  			T55_ = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_184), T54_);
  			liMessage__msgs_1118((*colonenv_).conf1, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T55_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_188, NIM_FALSE);
  		}
  		LA52_: ;
  	}
  	LA48_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getObjFilePath__extccomp_1223)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* f) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = noAbsolutePaths__extccomp_831(conf);
  		if (!T3_) goto LA4_;
  		result = nosextractFilename((*f).obj);
  	}
  	goto LA1_;
  	LA4_: ;
  	{
  		result = copyString((*f).obj);
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, hcrLinkTargetName__extccomp_1227)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* objFile, NIM_BOOL isMain) {
  	NimStringDesc* result;
  	NimStringDesc* basename;
  	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T1_;
  	NimStringDesc* targetName;
  	NimStringDesc* T8_;
  	result = NIM_NIL;
  	nimZeroMem((void*)(&T1_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
  	nossplitFile(objFile, (&T1_));
  	basename = T1_.Field1;
  	{
  		NimStringDesc* T6_;
  		if (!isMain) goto LA4_;
  		T6_ = NIM_NIL;
  		T6_ = rawNewString((basename ? basename->Sup.len : 0) + 4);
  appendString(T6_, basename);
  appendString(T6_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_88));
  		targetName = T6_;
  	}
  	goto LA2_;
  	LA4_: ;
  	{
  		targetName = nsuFormatSingleElem(OS__platform_504[((*conf).target.targetOS)- 1].Field2, basename);
  	}
  	LA2_: ;
  	T8_ = NIM_NIL;
  	T8_ = getNimcacheDir__options_4183(conf);
  	result = slash___pathutils_89(T8_, targetName);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkerExe__extccomp_985)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA compiler) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	{
  		if (!(((NI) 0) < (CC__extccomp_508[(compiler)- 1].Field10 ? CC__extccomp_508[(compiler)- 1].Field10->Sup.len : 0))) goto LA3_;
  		result = copyString(CC__extccomp_508[(compiler)- 1].Field10);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		NIM_BOOL T6_;
  		T6_ = (NIM_BOOL)0;
  		T6_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 35))&63U)))!=0);
  		if (!(T6_)) goto LA7_;
  		T6_ = !(((*conf).backend == ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 2)));
  		LA7_: ;
  		if (!T6_) goto LA8_;
  		result = copyString(CC__extccomp_508[(compiler)- 1].Field5);
  	}
  	goto LA1_;
  	LA8_: ;
  	{
  		result = getCompilerExe__extccomp_921(conf, compiler, ((NimStringDesc*) NIM_NIL));
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__extccomp_1121)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	result = format__pureZtimes_2989(dt, f2__extccomp_1126, (&DefaultLocale__pureZtimes_1628));
  	return result;
  }
  static N_INLINE(NI, nanosecond__pureZtimes_1065)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
  	NI result;
  	result = (NI)0;
  	result = (*dt).nanosecond;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getLinkCmd__extccomp_1094)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* output, NimStringDesc* objfiles, NIM_BOOL isDllBuild, NIM_BOOL removeStaticFile) {
  	NimStringDesc* result;
  	result = NIM_NIL;
  	{
  		tyArray__sMpvt1sOxOJ3LFGulnbeMQ T9_;
  		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 8))&63U)))!=0)) goto LA3_;
  		{
  			if (!removeStaticFile) goto LA7_;
  			nosremoveFile(output);
  		}
  		LA7_: ;
  		nimZeroMem((void*)T9_, sizeof(tyArray__sMpvt1sOxOJ3LFGulnbeMQ));
  		T9_[0] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_189));
  		T9_[1] = nospquoteShell(output);
  		T9_[2] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_190));
  		T9_[3] = copyString(objfiles);
  		result = nsuFormatOpenArray(CC__extccomp_508[((*conf).cCompiler)- 1].Field9, T9_, 4);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		NimStringDesc* linkerExe;
  		NimStringDesc* buildgui;
  		NimStringDesc* builddll;
  		NimStringDesc* exefile;
  		NimStringDesc* mapfile;
  		NimStringDesc* T38_;
  		NimStringDesc* T39_;
  		tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T40_;
  		NimStringDesc* T41_;
  		NimStringDesc* linkOptions;
  		NimStringDesc* T42_;
  		NimStringDesc* T43_;
  		NimStringDesc* T44_;
  		NimStringDesc* linkTmpl;
  		tyArray__rmMMhDIqORJzUU5zqeitSQ T49_;
  		NimStringDesc* T50_;
  		tyArray__68WB4OcBspSFyW4LY9cOceA T51_;
  		NimStringDesc* T52_;
  		linkerExe = getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_191));
  		{
  			if (!((linkerExe ? linkerExe->Sup.len : 0) == ((NI) 0))) goto LA13_;
  			linkerExe = getLinkerExe__extccomp_985(conf, (*conf).cCompiler);
  		}
  		LA13_: ;
  		{
  			NIM_BOOL T17_;
  			T17_ = (NIM_BOOL)0;
  			T17_ = needsExeExt__extccomp_891(conf);
  			if (!T17_) goto LA18_;
  			linkerExe = nosaddFileExt(linkerExe, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_94));
  		}
  		LA18_: ;
  		{
  			NIM_BOOL T22_;
  			T22_ = (NIM_BOOL)0;
  			T22_ = noAbsolutePaths__extccomp_831(conf);
  			if (!T22_) goto LA23_;
  			result = copyString(linkerExe);
  		}
  		goto LA20_;
  		LA23_: ;
  		{
  			result = nosjoinPath((*conf).cCompilerPath, linkerExe);
  		}
  		LA20_: ;
  		{
  			NIM_BOOL T28_;
  			T28_ = (NIM_BOOL)0;
  			T28_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 9))&63U)))!=0);
  			if (!(T28_)) goto LA29_;
  			T28_ = ((*conf).target.targetOS == ((tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ) 2));
  			LA29_: ;
  			if (!T28_) goto LA30_;
  			buildgui = copyString(CC__extccomp_508[((*conf).cCompiler)- 1].Field7);
  		}
  		goto LA26_;
  		LA30_: ;
  		{
  			buildgui = ((NimStringDesc*) NIM_NIL);
  		}
  		LA26_: ;
  		{
  			if (!isDllBuild) goto LA35_;
  			builddll = copyString(CC__extccomp_508[((*conf).cCompiler)- 1].Field8);
  		}
  		goto LA33_;
  		LA35_: ;
  		{
  			builddll = ((NimStringDesc*) NIM_NIL);
  		}
  		LA33_: ;
  		exefile = nospquoteShell(output);
  		T38_ = NIM_NIL;
  		T38_ = getNimcacheDir__options_4183(conf);
  		T39_ = NIM_NIL;
  		nimZeroMem((void*)(&T40_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
  		splitFile__pathutils_26(output, (&T40_));
  		T39_ = rawNewString((T40_.Field1 ? T40_.Field1->Sup.len : 0) + 4);
  appendString(T39_, T40_.Field1);
  appendString(T39_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_192));
  		T41_ = NIM_NIL;
  		T41_ = slash___pathutils_89(T38_, T39_);
  		mapfile = nospquoteShell(T41_);
  		T42_ = NIM_NIL;
  		T43_ = NIM_NIL;
  		T43_ = getLinkOptions__extccomp_880(conf);
  		T44_ = NIM_NIL;
  		T44_ = getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_166));
  		T42_ = rawNewString((T43_ ? T43_->Sup.len : 0) + (T44_ ? T44_->Sup.len : 0) + 1);
  appendString(T42_, T43_);
  appendString(T42_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T42_, T44_);
  		linkOptions = T42_;
  		linkTmpl = getConfigVar__extccomp_627(conf, (*conf).cCompiler, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_193));
  		{
  			if (!((linkTmpl ? linkTmpl->Sup.len : 0) == ((NI) 0))) goto LA47_;
  			linkTmpl = copyString(CC__extccomp_508[((*conf).cCompiler)- 1].Field11);
  		}
  		LA47_: ;
  		nimZeroMem((void*)T49_, sizeof(tyArray__rmMMhDIqORJzUU5zqeitSQ));
  		T49_[0] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_194));
  		T49_[1] = copyString(builddll);
  		T49_[2] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_195));
  		T49_[3] = copyString(mapfile);
  		T49_[4] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_196));
  		T49_[5] = copyString(buildgui);
  		T49_[6] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_99));
  		T49_[7] = copyString(linkOptions);
  		T49_[8] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_190));
  		T49_[9] = copyString(objfiles);
  		T49_[10] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_197));
  		T49_[11] = copyString(exefile);
  		T49_[12] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_101));
  		T49_[13] = getPrefixDir__options_4061(conf);
  		T49_[14] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_102));
  		T49_[15] = copyString((*conf).libpath);
  		T50_ = NIM_NIL;
  		T50_ = nsuFormatOpenArray(result, T49_, 16);
  		result = nospquoteShell(T50_);
  		result = addChar(result, 32);
  		nimZeroMem((void*)T51_, sizeof(tyArray__68WB4OcBspSFyW4LY9cOceA));
  		T51_[0] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_194));
  		T51_[1] = copyString(builddll);
  		T51_[2] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_195));
  		T51_[3] = copyString(mapfile);
  		T51_[4] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_196));
  		T51_[5] = copyString(buildgui);
  		T51_[6] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_99));
  		T51_[7] = copyString(linkOptions);
  		T51_[8] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_190));
  		T51_[9] = copyString(objfiles);
  		T51_[10] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_197));
  		T51_[11] = copyString(exefile);
  		T51_[12] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_101));
  		T52_ = NIM_NIL;
  		T52_ = getPrefixDir__options_4061(conf);
  		T51_[13] = nospquoteShell(T52_);
  		T51_[14] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_102));
  		T51_[15] = nospquoteShell((*conf).libpath);
  		T51_[16] = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_112));
  		T51_[17] = vccplatform__extccomp_872(conf);
  		nsuAddf((&result), linkTmpl, T51_, 18);
  		{
  			NIM_BOOL T55_;
  			tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw t;
  			NimStringDesc* pdb;
  			NimStringDesc* T59_;
  			NimStringDesc* T60_;
  			NI T61_;
  			NimStringDesc* T62_;
  			NimStringDesc* T63_;
  			T55_ = (NIM_BOOL)0;
  			T55_ = hcrOn__options_569(conf);
  			if (!(T55_)) goto LA56_;
  			T55_ = isVSCompatible__extccomp_575(conf);
  			LA56_: ;
  			if (!T55_) goto LA57_;
  			nimZeroMem((void*)(&t), sizeof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw));
  			t.Sup.m_type = (&NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_);
  			now__pureZtimes_1467((&t));
  			T59_ = NIM_NIL;
  			T60_ = NIM_NIL;
  			T60_ = format__extccomp_1121((&t));
  			T61_ = (NI)0;
  			T61_ = nanosecond__pureZtimes_1065((&t));
  			T62_ = NIM_NIL;
  			T62_ = dollar___systemZdollars_3(((NI) (T61_)));
  			T59_ = rawNewString((output ? output->Sup.len : 0) + (T60_ ? T60_->Sup.len : 0) + (T62_ ? T62_->Sup.len : 0) + 5);
  appendString(T59_, output);
  appendString(T59_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_2));
  appendString(T59_, T60_);
  appendString(T59_, T62_);
  appendString(T59_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_200));
  			pdb = T59_;
  			T63_ = NIM_NIL;
  			T63_ = rawNewString((pdb ? pdb->Sup.len : 0) + 12);
  appendString(T63_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_201));
  appendString(T63_, pdb);
  			result = resizeString(result, (T63_ ? T63_->Sup.len : 0) + 0);
  appendString(result, T63_);
  		}
  		LA57_: ;
  	}
  	LA1_: ;
  	{
  		NIM_BOOL T66_;
  		T66_ = (NIM_BOOL)0;
  		T66_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 6))&63U)))!=0);
  		if (!(T66_)) goto LA67_;
  		T66_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 6));
  		LA67_: ;
  		if (!T66_) goto LA68_;
  		result = resizeString(result, 12);
  appendString(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_202));
  	}
  	LA68_: ;
  	return result;
  }
  static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
  	NCSTRING result;
  	result = (NCSTRING)0;
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = (s == ((NimStringDesc*) NIM_NIL));
  		if (T3_) goto LA4_;
  		T3_ = ((*s).Sup.len == ((NI) 0));
  		LA4_: ;
  		if (!T3_) goto LA5_;
  		result = "";
  	}
  	goto LA1_;
  	LA5_: ;
  	{
  		result = ((NCSTRING) ((*s).data));
  	}
  	LA1_: ;
  	return result;
  }
  static N_INLINE(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, map__extccomp_1369)(NimStringDesc** s, NI sLen_0, tyProc__oFHfEKFsiYTMAy9a42cSiKw op) {
  	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result;
  	result = NIM_NIL;
  	result = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) (sLen_0)));
  	{
  		NI i;
  		NI colontmp_;
  		NI i_2;
  		i = (NI)0;
  		colontmp_ = (NI)0;
  		colontmp_ = sLen_0;
  		i_2 = ((NI) 0);
  		{
  			while (1) {
  				if (!(i_2 < colontmp_)) goto LA3;
  				i = i_2;
  				asgnRef((void**) (&result->data[i]), op.ClE_0? op.ClP_0(s[i], op.ClE_0):((TM__OyL9acDBDoBfMwa5zb1Y88w_205)(op.ClP_0))(s[i]));
  				i_2 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, colonanonymous___extccomp_1365)(NimStringDesc* curr) {
  	NimStringDesc* result;
  {	result = NIM_NIL;
  	result = nsuReplaceStr(curr, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_90), ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_206));
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, getExtraCmds__extccomp_1146)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* output) {
  	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result;
  	result = NIM_NIL;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, execExternalProgram__extccomp_808)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cmd, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg) {
  	{
  		NI T3_;
  		NimStringDesc* T6_;
  		T3_ = (NI)0;
  		T3_ = execWithEcho__extccomp_795(conf, cmd, msg);
  		if (!!((T3_ == ((NI) 0)))) goto LA4_;
  		T6_ = NIM_NIL;
  		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_184), cmd);
  		liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_211, NIM_FALSE);
  	}
  	LA4_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(void, execLinkCmd__extccomp_1150)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* linkCmd) {
  	TSafePoint TM__OyL9acDBDoBfMwa5zb1Y88w_210;
  	pushSafePoint(&TM__OyL9acDBDoBfMwa5zb1Y88w_210);
  	TM__OyL9acDBDoBfMwa5zb1Y88w_210.status = _setjmp(TM__OyL9acDBDoBfMwa5zb1Y88w_210.context);
  	if (TM__OyL9acDBDoBfMwa5zb1Y88w_210.status == 0) {
  	execExternalProgram__extccomp_808(conf, linkCmd, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 90));
  	popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_))) {
  			tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA* oseX60gensym63_;
  			Exception* T3_;
  			TM__OyL9acDBDoBfMwa5zb1Y88w_210.status = 0;
  			T3_ = NIM_NIL;
  			T3_ = getCurrentException();
  			oseX60gensym63_ = ((tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*) (T3_));
  			{
  				NimStringDesc* T8_;
  				NimStringDesc* T9_;
  				if (!NIM_TRUE) goto LA6_;
  				T8_ = NIM_NIL;
  				T9_ = NIM_NIL;
  				T9_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym63_).errorCode)));
  				T8_ = rawNewString(((*oseX60gensym63_).Sup.Sup.message ? (*oseX60gensym63_).Sup.Sup.message->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + 47);
  appendString(T8_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_212));
  appendString(T8_, (*oseX60gensym63_).Sup.Sup.message);
  appendString(T8_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T8_, T9_);
  				liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T8_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_183, NIM_FALSE);
  			}
  			goto LA4_;
  			LA6_: ;
  			{
  				NimStringDesc* T11_;
  				NimStringDesc* T12_;
  				NimStringDesc* T13_;
  				T11_ = NIM_NIL;
  				T12_ = NIM_NIL;
  				T12_ = dollar___systemZdollars_3(((NI) ((*oseX60gensym63_).errorCode)));
  				T11_ = rawNewString(((*oseX60gensym63_).Sup.Sup.message ? (*oseX60gensym63_).Sup.Sup.message->Sup.len : 0) + (T12_ ? T12_->Sup.len : 0) + 1);
  appendString(T11_, (*oseX60gensym63_).Sup.Sup.message);
  appendString(T11_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T11_, T12_);
  				T13_ = NIM_NIL;
  				T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_184), T11_);
  				liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_185, NIM_FALSE);
  			}
  			LA4_: ;
  			reraiseException();
  			popCurrentException();
  		}
  	}
  	if (TM__OyL9acDBDoBfMwa5zb1Y88w_210.status != 0) reraiseException();
  }
  N_LIB_PRIVATE N_NIMCALL(void, linkViaResponseFile__extccomp_1188)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cmd) {
  	NI i;
  	NI last;
  	NimStringDesc* linkerArgs;
  	NimStringDesc* T20_;
  	NimStringDesc* args;
  	TSafePoint TM__OyL9acDBDoBfMwa5zb1Y88w_209;
  	NimStringDesc* T29_;
  	NimStringDesc* T30_;
  	i = ((NI) 0);
  	last = ((NI) 0);
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = (((NI) 0) < (cmd ? cmd->Sup.len : 0));
  		if (!(T3_)) goto LA4_;
  		T3_ = ((NU8)(cmd->data[((NI) 0)]) == (NU8)(34));
  		LA4_: ;
  		if (!T3_) goto LA5_;
  		i += ((NI) 1);
  		{
  			while (1) {
  				NIM_BOOL T9_;
  				T9_ = (NIM_BOOL)0;
  				T9_ = (i < (cmd ? cmd->Sup.len : 0));
  				if (!(T9_)) goto LA10_;
  				T9_ = !(((NU8)(cmd->data[i]) == (NU8)(34)));
  				LA10_: ;
  				if (!T9_) goto LA8;
  				i += ((NI) 1);
  			} LA8: ;
  		}
  		last = i;
  		i += ((NI) 1);
  	}
  	goto LA1_;
  	LA5_: ;
  	{
  		{
  			while (1) {
  				NIM_BOOL T14_;
  				T14_ = (NIM_BOOL)0;
  				T14_ = (i < (cmd ? cmd->Sup.len : 0));
  				if (!(T14_)) goto LA15_;
  				T14_ = !(((NU8)(cmd->data[i]) == (NU8)(32)));
  				LA15_: ;
  				if (!T14_) goto LA13;
  				i += ((NI) 1);
  			} LA13: ;
  		}
  		last = i;
  	}
  	LA1_: ;
  	{
  		while (1) {
  			NIM_BOOL T18_;
  			T18_ = (NIM_BOOL)0;
  			T18_ = (i < (cmd ? cmd->Sup.len : 0));
  			if (!(T18_)) goto LA19_;
  			T18_ = ((NU8)(cmd->data[i]) == (NU8)(32));
  			LA19_: ;
  			if (!T18_) goto LA17;
  			i += ((NI) 1);
  		} LA17: ;
  	}
  	T20_ = NIM_NIL;
  	T20_ = rawNewString(((*conf).projectName ? (*conf).projectName->Sup.len : 0) + 15);
  appendString(T20_, (*conf).projectName);
  appendString(T20_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_208));
  	linkerArgs = T20_;
  	args = substr__system_7766(cmd, i);
  	{
  		NIM_BOOL T23_;
  		NimStringDesc* T27_;
  		T23_ = (NIM_BOOL)0;
  		T23_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 1));
  		if (T23_) goto LA24_;
  		T23_ = ((*conf).cCompiler == ((tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA) 4));
  		LA24_: ;
  		if (!T23_) goto LA25_;
  		T27_ = NIM_NIL;
  		T27_ = nsuReplaceChar(args, 92, 47);
  		writeFile__systemZio_474(linkerArgs, T27_);
  	}
  	goto LA21_;
  	LA25_: ;
  	{
  		writeFile__systemZio_474(linkerArgs, args);
  	}
  	LA21_: ;
  	pushSafePoint(&TM__OyL9acDBDoBfMwa5zb1Y88w_209);
  	TM__OyL9acDBDoBfMwa5zb1Y88w_209.status = _setjmp(TM__OyL9acDBDoBfMwa5zb1Y88w_209.context);
  	if (TM__OyL9acDBDoBfMwa5zb1Y88w_209.status == 0) {
  	T29_ = NIM_NIL;
  	T30_ = NIM_NIL;
  	T30_ = substr__system_7754(cmd, ((NI) 0), last);
  	T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + (linkerArgs ? linkerArgs->Sup.len : 0) + 2);
  appendString(T29_, T30_);
  appendString(T29_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_213));
  appendString(T29_, linkerArgs);
  	execLinkCmd__extccomp_1150(conf, T29_);
  	popSafePoint();
  	}
  	else {
  		popSafePoint();
  	}
  	{
  		nosremoveFile(linkerArgs);
  		if (TM__OyL9acDBDoBfMwa5zb1Y88w_209.status != 0) nimLeaveFinally();
  	}
  	if (TM__OyL9acDBDoBfMwa5zb1Y88w_209.status != 0) reraiseException();
  }
  N_LIB_PRIVATE N_NIMCALL(void, generateScript__extccomp_812)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* script) {
  	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg T1_;
  	NimStringDesc* _;
  	NimStringDesc* name;
  	NimStringDesc* __2;
  	NimStringDesc* filename;
  	NimStringDesc* T2_;
  	NimStringDesc* T3_;
  	NimStringDesc* T4_;
  	nimZeroMem((void*)(&T1_), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
  	nossplitFile((*conf).outFile, (&T1_));
  	_ = NIM_NIL;
  	_ = T1_.Field0;
  	name = NIM_NIL;
  	name = T1_.Field1;
  	__2 = NIM_NIL;
  	__2 = T1_.Field2;
  	T2_ = NIM_NIL;
  	T2_ = getNimcacheDir__options_4183(conf);
  	T3_ = NIM_NIL;
  	T3_ = rawNewString((name ? name->Sup.len : 0) + 8);
  appendString(T3_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_214));
  appendString(T3_, name);
  	T4_ = NIM_NIL;
  	T4_ = nosaddFileExt(T3_, OS__platform_504[((*conf).target.targetOS)- 1].Field8);
  	filename = slash___pathutils_89(T2_, T4_);
  	{
  		NIM_BOOL T7_;
  		NimStringDesc* T10_;
  		T7_ = (NIM_BOOL)0;
  		T7_ = writeRope__ropes_241(script, filename);
  		if (!!(T7_)) goto LA8_;
  		T10_ = NIM_NIL;
  		T10_ = rawNewString((filename ? filename->Sup.len : 0) + 25);
  appendString(T10_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_170));
  appendString(T10_, filename);
  		liMessage__msgs_1118(conf, unknownLineInfo__lineinfos_280, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T10_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 1), TM__OyL9acDBDoBfMwa5zb1Y88w_215, NIM_FALSE);
  	}
  	LA8_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(void, callCCompiler__extccomp_1243)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg* colonenv_;
  	NimStringDesc* linkCmd;
  	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
  	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* script;
  	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds;
  	tyProc__SqRJqa5aOiKB4EuKlKh9asA prettyCb;
  	tyProc__SqRJqa5aOiKB4EuKlKh9asA T5_;
  {	colonenv_ = NIM_NIL;
  	colonenv_ = (tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg*) newObj((&NTIrefobject__CqlAb69bkfxaejoSKDwhYYA_), sizeof(tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg));
  	(*colonenv_).Sup.m_type = (&NTIobject__H6RAoT9avhFKpqIMlTu5GHg_);
  	asgnRef((void**) (&(*colonenv_).conf2), conf);
  	linkCmd = NIM_NIL;
  	extraCmds = NIM_NIL;
  	{
  		if (!(((*(*colonenv_).conf2).globalOptions & 1040) == 16)) goto LA3_;
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	script = ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL);
  	cmds = NIM_NIL;
  	asgnRef((void**) (&(*colonenv_).prettyCmds1), NIM_NIL);
  	nimZeroMem((void*)(&prettyCb), sizeof(tyProc__SqRJqa5aOiKB4EuKlKh9asA));
  	nimZeroMem((void*)(&T5_), sizeof(tyProc__SqRJqa5aOiKB4EuKlKh9asA));
  	T5_.ClP_0 = colonanonymous___extccomp_1258; T5_.ClE_0 = colonenv_;
  	prettyCb.ClE_0 = T5_.ClE_0;
  	prettyCb.ClP_0 = T5_.ClP_0;
  	{
  		NI idx;
  		tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg it;
  		NI i;
  		NI L;
  		NI T7_;
  		idx = (NI)0;
  		nimZeroMem((void*)(&it), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
  		i = ((NI) 0);
  		T7_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
  		L = T7_;
  		{
  			while (1) {
  				if (!(i < L)) goto LA9;
  				idx = i;
  				nimCopyMem((void*)(&it), (NIM_CONST void*)(&(*(*colonenv_).conf2).toCompile->data[i]), sizeof(it));
  				{
  					NimStringDesc* compileCmd;
  					NI T15_;
  					{
  						if (!((it.flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA) 0))&7U)))!=0)) goto LA13_;
  						goto LA10;
  					}
  					LA13_: ;
  					T15_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
  					compileCmd = getCompileCFileCmd__extccomp_997((*colonenv_).conf2, (&it), (idx == (NI)(T15_ - ((NI) 1))), NIM_TRUE);
  					{
  						NI T20_;
  						NimStringDesc* T21_;
  						NimStringDesc* T22_;
  						NimStringDesc* T23_;
  						NI T24_;
  						NimStringDesc* T25_;
  						if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 4))&63U)))!=0))) goto LA18_;
  						cmds = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(cmds), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  						T20_ = cmds->Sup.len++;
  						T21_ = NIM_NIL;
  						T21_ = cmds->data[T20_]; cmds->data[T20_] = copyStringRC1(compileCmd);
  						if (T21_) nimGCunrefNoCycle(T21_);
  						T22_ = NIM_NIL;
  						T22_ = dollar___options_4373(it.cname);
  						T23_ = NIM_NIL;
  						T23_ = displayProgressCC__extccomp_1234((*colonenv_).conf2, T22_, compileCmd);
  						asgnRef((void**) (&(*colonenv_).prettyCmds1), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*colonenv_).prettyCmds1), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
  						T24_ = (*colonenv_).prettyCmds1->Sup.len++;
  						T25_ = NIM_NIL;
  						T25_ = (*colonenv_).prettyCmds1->data[T24_]; (*colonenv_).prettyCmds1->data[T24_] = copyStringRC1(T23_);
  						if (T25_) nimGCunrefNoCycle(T25_);
  					}
  					LA18_: ;
  					{
  						if (!(((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 10))&63U)))!=0)) goto LA28_;
  						add__ropes_162(&script, compileCmd);
  						add__ropes_162(&script, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_117));
  					}
  					LA28_: ;
  				} LA10: ;
  				i += ((NI) 1);
  			} LA9: ;
  		}
  	}
  	{
  		if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 4))&63U)))!=0))) goto LA32_;
  		execCmdsInParallel__extccomp_1155((*colonenv_).conf2, cmds, prettyCb);
  	}
  	LA32_: ;
  	{
  		NimStringDesc* objfiles;
  		if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 5))&63U)))!=0))) goto LA36_;
  		objfiles = ((NimStringDesc*) NIM_NIL);
  		{
  			NimStringDesc** it_2;
  			NI i_2;
  			NI L_2;
  			NI T39_;
  			it_2 = (NimStringDesc**)0;
  			i_2 = ((NI) 0);
  			T39_ = ((*(*colonenv_).conf2).externalToLink ? (*(*colonenv_).conf2).externalToLink->Sup.len : 0);
  			L_2 = T39_;
  			{
  				while (1) {
  					NimStringDesc* objFile;
  					NimStringDesc* T48_;
  					NimStringDesc* T49_;
  					if (!(i_2 < L_2)) goto LA41;
  					it_2 = (&(*(*colonenv_).conf2).externalToLink->data[i_2]);
  					{
  						NIM_BOOL T44_;
  						T44_ = (NIM_BOOL)0;
  						T44_ = noAbsolutePaths__extccomp_831((*colonenv_).conf2);
  						if (!T44_) goto LA45_;
  						objFile = nosextractFilename((*it_2));
  					}
  					goto LA42_;
  					LA45_: ;
  					{
  						objFile = (*it_2);
  					}
  					LA42_: ;
  					objfiles = addChar(objfiles, 32);
  					T48_ = NIM_NIL;
  					T48_ = nosaddFileExt(objFile, CC__extccomp_508[((*(*colonenv_).conf2).cCompiler)- 1].Field1);
  					T49_ = NIM_NIL;
  					T49_ = nospquoteShell(T48_);
  					objfiles = resizeString(objfiles, (T49_ ? T49_->Sup.len : 0) + 0);
  appendString(objfiles, T49_);
  					i_2 += ((NI) 1);
  				} LA41: ;
  			}
  		}
  		{
  			NIM_BOOL T52_;
  			NI mainFileIdx;
  			NI T55_;
  			tyProc__oFHfEKFsiYTMAy9a42cSiKw T93_;
  			T52_ = (NIM_BOOL)0;
  			T52_ = hcrOn__options_569((*colonenv_).conf2);
  			if (!T52_) goto LA53_;
  			cmds = NIM_NIL;
  			T55_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
  			mainFileIdx = (NI)(T55_ - ((NI) 1));
  			{
  				NI idx_2;
  				tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg x;
  				NI i_3;
  				NI L_3;
  				NI T57_;
  				idx_2 = (NI)0;
  				nimZeroMem((void*)(&x), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
  				i_3 = ((NI) 0);
  				T57_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
  				L_3 = T57_;
  				{
  					while (1) {
  						if (!(i_3 < L_3)) goto LA59;
  						idx_2 = i_3;
  						nimCopyMem((void*)(&x), (NIM_CONST void*)(&(*(*colonenv_).conf2).toCompile->data[i_3]), sizeof(x));
  						{
  							NimStringDesc* objFile_2;
  							NIM_BOOL buildDll;
  							NimStringDesc* linkTarget;
  							NimStringDesc* T65_;
  							NimStringDesc* T66_;
  							NimStringDesc* T67_;
  							NI T68_;
  							NimStringDesc* T69_;
  							{
  								if (!((x.flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA) 0))&7U)))!=0)) goto LA63_;
  								goto LA60;
  							}
  							LA63_: ;
  							objFile_2 = getObjFilePath__extccomp_1223((*colonenv_).conf2, (&x));
  							buildDll = !((idx_2 == mainFileIdx));
  							linkTarget = hcrLinkTargetName__extccomp_1227((*colonenv_).conf2, objFile_2, !(buildDll));
  							T65_ = NIM_NIL;
  							T66_ = NIM_NIL;
  							T66_ = nospquoteShell(objFile_2);
  							T65_ = rawNewString((objfiles ? objfiles->Sup.len : 0) + (T66_ ? T66_->Sup.len : 0) + 1);
  appendString(T65_, objfiles);
  appendString(T65_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_79));
  appendString(T65_, T66_);
  							T67_ = NIM_NIL;
  							T67_ = getLinkCmd__extccomp_1094((*colonenv_).conf2, linkTarget, T65_, buildDll, NIM_TRUE);
  							cmds = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(cmds), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  							T68_ = cmds->Sup.len++;
  							T69_ = NIM_NIL;
  							T69_ = cmds->data[T68_]; cmds->data[T68_] = copyStringRC1(T67_);
  							if (T69_) nimGCunrefNoCycle(T69_);
  							{
  								NIM_BOOL T72_;
  								T72_ = (NIM_BOOL)0;
  								T72_ = isVSCompatible__extccomp_575((*colonenv_).conf2);
  								if (!T72_) goto LA73_;
  								{
  									NimStringDesc* pdb;
  									NimStringDesc* colontmp_;
  									NimStringDesc* T76_;
  									glob_t fX60gensym138_;
  									NI resX60gensym138_;
  									int T77_;
  									TSafePoint TM__OyL9acDBDoBfMwa5zb1Y88w_204;
  									pdb = NIM_NIL;
  									colontmp_ = NIM_NIL;
  									T76_ = NIM_NIL;
  									T76_ = rawNewString((objFile_2 ? objFile_2->Sup.len : 0) + 6);
  appendString(T76_, objFile_2);
  appendString(T76_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_203));
  									colontmp_ = T76_;
  									nimZeroMem((void*)(&fX60gensym138_), sizeof(glob_t));
  									resX60gensym138_ = (NI)0;
  									fX60gensym138_.gl_offs = ((NI) 0);
  									fX60gensym138_.gl_pathc = ((NI) 0);
  									fX60gensym138_.gl_pathv = ((NCSTRING*) NIM_NIL);
  									T77_ = (int)0;
  									T77_ = glob(nimToCStringConv(colontmp_), ((int) 0), NIM_NIL, (&fX60gensym138_));
  									resX60gensym138_ = ((NI) (T77_));
  									pushSafePoint(&TM__OyL9acDBDoBfMwa5zb1Y88w_204);
  									TM__OyL9acDBDoBfMwa5zb1Y88w_204.status = _setjmp(TM__OyL9acDBDoBfMwa5zb1Y88w_204.context);
  									if (TM__OyL9acDBDoBfMwa5zb1Y88w_204.status == 0) {
  									{
  										if (!(resX60gensym138_ == ((NI) 0))) goto LA80_;
  										{
  											NI iX60gensym138_;
  											NI colontmp__2;
  											NI res;
  											iX60gensym138_ = (NI)0;
  											colontmp__2 = (NI)0;
  											colontmp__2 = (NI)(fX60gensym138_.gl_pathc - ((NI) 1));
  											res = ((NI) 0);
  											{
  												while (1) {
  													NimStringDesc* pathX60gensym138_;
  													if (!(res <= colontmp__2)) goto LA84;
  													iX60gensym138_ = res;
  													pathX60gensym138_ = cstrToNimstr(fX60gensym138_.gl_pathv[iX60gensym138_]);
  													{
  														NIM_BOOL T87_;
  														NIM_BOOL T90_;
  														T87_ = (NIM_BOOL)0;
  														T87_ = nosfileExists(pathX60gensym138_);
  														if (!T87_) goto LA88_;
  														pdb = pathX60gensym138_;
  														T90_ = (NIM_BOOL)0;
  														T90_ = nostryRemoveFile(pdb);
  														(void)(T90_);
  													}
  													LA88_: ;
  													res += ((NI) 1);
  												} LA84: ;
  											}
  										}
  									}
  									LA80_: ;
  									popSafePoint();
  									}
  									else {
  										popSafePoint();
  									}
  									{
  										globfree((&fX60gensym138_));
  										if (TM__OyL9acDBDoBfMwa5zb1Y88w_204.status != 0) nimLeaveFinally();
  									}
  									if (TM__OyL9acDBDoBfMwa5zb1Y88w_204.status != 0) reraiseException();
  								}
  							}
  							LA73_: ;
  						} LA60: ;
  						i_3 += ((NI) 1);
  					} LA59: ;
  				}
  			}
  			nimZeroMem((void*)(&T93_), sizeof(tyProc__oFHfEKFsiYTMAy9a42cSiKw));
  			T93_.ClP_0 = ((TM__OyL9acDBDoBfMwa5zb1Y88w_207) (colonanonymous___extccomp_1365)); T93_.ClE_0 = NIM_NIL;
  			asgnRef((void**) (&(*colonenv_).prettyCmds1), map__extccomp_1369((*colonenv_).prettyCmds1->data, ((*colonenv_).prettyCmds1 ? (*colonenv_).prettyCmds1->Sup.len : 0), T93_));
  			execCmdsInParallel__extccomp_1155((*colonenv_).conf2, cmds, prettyCb);
  			{
  				NimStringDesc* mainObjFile;
  				NimStringDesc* src;
  				NimStringDesc* dst;
  				if (!!((((*(*colonenv_).conf2).toCompile->data[mainFileIdx].flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA) 0))&7U)))!=0))) goto LA96_;
  				mainObjFile = getObjFilePath__extccomp_1223((*colonenv_).conf2, (&(*(*colonenv_).conf2).toCompile->data[mainFileIdx]));
  				src = hcrLinkTargetName__extccomp_1227((*colonenv_).conf2, mainObjFile, NIM_TRUE);
  				dst = prepareToWriteOutput__options_4058((*colonenv_).conf2);
  				copyFileWithPermissions__pureZos_1453(src, dst, NIM_TRUE, 2);
  			}
  			LA96_: ;
  		}
  		goto LA50_;
  		LA53_: ;
  		{
  			NimStringDesc* mainOutput;
  			{
  				tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* x_2;
  				NI i_4;
  				NI L_4;
  				NI T100_;
  				x_2 = (tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg*)0;
  				i_4 = ((NI) 0);
  				T100_ = ((*(*colonenv_).conf2).toCompile ? (*(*colonenv_).conf2).toCompile->Sup.len : 0);
  				L_4 = T100_;
  				{
  					while (1) {
  						NimStringDesc* objFile_3;
  						NimStringDesc* T109_;
  						if (!(i_4 < L_4)) goto LA102;
  						x_2 = (&(*(*colonenv_).conf2).toCompile->data[i_4]);
  						{
  							NIM_BOOL T105_;
  							T105_ = (NIM_BOOL)0;
  							T105_ = noAbsolutePaths__extccomp_831((*colonenv_).conf2);
  							if (!T105_) goto LA106_;
  							objFile_3 = nosextractFilename((*x_2).obj);
  						}
  						goto LA103_;
  						LA106_: ;
  						{
  							objFile_3 = (*x_2).obj;
  						}
  						LA103_: ;
  						objfiles = addChar(objfiles, 32);
  						T109_ = NIM_NIL;
  						T109_ = nospquoteShell(objFile_3);
  						objfiles = resizeString(objfiles, (T109_ ? T109_->Sup.len : 0) + 0);
  appendString(objfiles, T109_);
  						i_4 += ((NI) 1);
  					} LA102: ;
  				}
  			}
  			{
  				if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 10))&63U)))!=0))) goto LA112_;
  				mainOutput = prepareToWriteOutput__options_4058((*colonenv_).conf2);
  			}
  			goto LA110_;
  			LA112_: ;
  			{
  				mainOutput = (*(*colonenv_).conf2).projectName;
  			}
  			LA110_: ;
  			linkCmd = getLinkCmd__extccomp_1094((*colonenv_).conf2, mainOutput, objfiles, (((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0), NIM_TRUE);
  			extraCmds = getExtraCmds__extccomp_1146((*colonenv_).conf2, mainOutput);
  			{
  				if (!!((((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 4))&63U)))!=0))) goto LA117_;
  				{
  					if (!(((NI) 32000) < (linkCmd ? linkCmd->Sup.len : 0))) goto LA121_;
  					linkViaResponseFile__extccomp_1188((*colonenv_).conf2, linkCmd);
  				}
  				goto LA119_;
  				LA121_: ;
  				{
  					execLinkCmd__extccomp_1150((*colonenv_).conf2, linkCmd);
  				}
  				LA119_: ;
  				{
  					NimStringDesc** cmd;
  					NI i_5;
  					NI L_5;
  					NI T125_;
  					cmd = (NimStringDesc**)0;
  					i_5 = ((NI) 0);
  					T125_ = (extraCmds ? extraCmds->Sup.len : 0);
  					L_5 = T125_;
  					{
  						while (1) {
  							if (!(i_5 < L_5)) goto LA127;
  							cmd = (&extraCmds->data[i_5]);
  							execExternalProgram__extccomp_808((*colonenv_).conf2, (*cmd), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 89));
  							i_5 += ((NI) 1);
  						} LA127: ;
  					}
  				}
  			}
  			LA117_: ;
  		}
  		LA50_: ;
  	}
  	goto LA34_;
  	LA36_: ;
  	{
  		linkCmd = ((NimStringDesc*) NIM_NIL);
  	}
  	LA34_: ;
  	{
  		if (!(((*(*colonenv_).conf2).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 10))&63U)))!=0)) goto LA131_;
  		add__ropes_162(&script, linkCmd);
  		add__ropes_162(&script, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_117));
  		generateScript__extccomp_812((*colonenv_).conf2, script);
  	}
  	LA131_: ;
  	}BeforeRet_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q*, newSeq__extccomp_1547)(NI len) {
  	tySequence__4eQHGndY6XBYpFOH09apV8Q* result;
  	result = NIM_NIL;
  	result = (tySequence__4eQHGndY6XBYpFOH09apV8Q*) newSeq((&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_), len);
  	return result;
  }
  static N_INLINE(void, X5BX5Deq___pureZjson_1923)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* obj, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val) {
  	X5BX5Deq___pureZjson_287((&(*obj)._kind_6.fields), key, val);
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1724)(tyTuple__UV3llMMYFckfui8YMBuUZA a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt) {
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T1_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T2_;
  	result = NIM_NIL;
  	result = newJArray__pureZjson_123();
  	T1_ = NIM_NIL;
  	T1_ = toJson__stdZjsonutils_603(a.Field0, opt);
  	add__pureZjson_222(result, T1_);
  	T2_ = NIM_NIL;
  	T2_ = toJson__stdZjsonutils_603(a.Field1, opt);
  	add__pureZjson_222(result, T2_);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1696)(tySequence__4eQHGndY6XBYpFOH09apV8Q* a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt) {
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
  	result = NIM_NIL;
  	result = newJArray__pureZjson_123();
  	{
  		tyTuple__UV3llMMYFckfui8YMBuUZA* ai;
  		NI i;
  		NI L;
  		NI T2_;
  		ai = (tyTuple__UV3llMMYFckfui8YMBuUZA*)0;
  		i = ((NI) 0);
  		T2_ = (a ? a->Sup.len : 0);
  		L = T2_;
  		{
  			while (1) {
  				tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T5_;
  				if (!(i < L)) goto LA4;
  				ai = (&a->data[i]);
  				T5_ = NIM_NIL;
  				T5_ = toJson__extccomp_1724((*ai), opt);
  				add__pureZjson_222(result, T5_);
  				i += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1745)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt) {
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
  	result = NIM_NIL;
  	result = newJArray__pureZjson_123();
  	{
  		NimStringDesc** ai;
  		NI i;
  		NI L;
  		NI T2_;
  		ai = (NimStringDesc**)0;
  		i = ((NI) 0);
  		T2_ = (a ? a->Sup.len : 0);
  		L = T2_;
  		{
  			while (1) {
  				tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T5_;
  				if (!(i < L)) goto LA4;
  				ai = (&a->data[i]);
  				T5_ = NIM_NIL;
  				T5_ = toJson__stdZjsonutils_603((*ai), opt);
  				add__pureZjson_222(result, T5_);
  				i += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1773)(NIM_BOOL a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt) {
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
  	result = NIM_NIL;
  	result = percent___pureZjson_1816(a);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__extccomp_1675)(tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog* a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt) {
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T1_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T2_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T3_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T4_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T5_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T6_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T7_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T8_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T9_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T10_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T11_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T12_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T13_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T14_;
  	result = NIM_NIL;
  	result = newJObject__pureZjson_92();
  	T1_ = NIM_NIL;
  	T1_ = toJson__stdZjsonutils_603((*a).cacheVersion, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_128), T1_);
  	T2_ = NIM_NIL;
  	T2_ = toJson__stdZjsonutils_603((*a).outputFile, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_130), T2_);
  	T3_ = NIM_NIL;
  	T3_ = toJson__extccomp_1696((*a).compile, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_131), T3_);
  	T4_ = NIM_NIL;
  	T4_ = toJson__extccomp_1745((*a).link, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_140), T4_);
  	T5_ = NIM_NIL;
  	T5_ = toJson__stdZjsonutils_603((*a).linkcmd, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_142), T5_);
  	T6_ = NIM_NIL;
  	T6_ = toJson__extccomp_1745((*a).extraCmds, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_143), T6_);
  	T7_ = NIM_NIL;
  	T7_ = toJson__extccomp_1745((*a).configFiles, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_144), T7_);
  	T8_ = NIM_NIL;
  	T8_ = toJson__extccomp_1773((*a).stdinInput, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_145), T8_);
  	T9_ = NIM_NIL;
  	T9_ = toJson__extccomp_1773((*a).projectIsCmd, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_147), T9_);
  	T10_ = NIM_NIL;
  	T10_ = toJson__stdZjsonutils_603((*a).cmdInput, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_148), T10_);
  	T11_ = NIM_NIL;
  	T11_ = toJson__stdZjsonutils_603((*a).currentDir, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_149), T11_);
  	T12_ = NIM_NIL;
  	T12_ = toJson__stdZjsonutils_603((*a).cmdline, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_150), T12_);
  	T13_ = NIM_NIL;
  	T13_ = toJson__extccomp_1696((*a).depfiles, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_151), T13_);
  	T14_ = NIM_NIL;
  	T14_ = toJson__stdZjsonutils_603((*a).nimexe, opt);
  	X5BX5Deq___pureZjson_1923(result, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_152), T14_);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, writeJsonBuildInstructions__extccomp_1496)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
  	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* linkFiles;
  	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* collectResult;
  	tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog bcache;
  	tySequence__4eQHGndY6XBYpFOH09apV8Q* collectResult_2;
  	NimStringDesc* T31_;
  	NimStringDesc* T32_;
  	NimStringDesc* T33_;
  	tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ T63_;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T64_;
  	NimStringDesc* T65_;
  	collectResult = newSeq__systemZio_501(((NI) 0));
  	{
  		NimStringDesc** it;
  		NI i;
  		NI L;
  		NI T2_;
  		it = (NimStringDesc**)0;
  		i = ((NI) 0);
  		T2_ = ((*conf).externalToLink ? (*conf).externalToLink->Sup.len : 0);
  		L = T2_;
  		{
  			while (1) {
  				NimStringDesc* it_2;
  				NimStringDesc* T10_;
  				NI T11_;
  				NimStringDesc* T12_;
  				if (!(i < L)) goto LA4;
  				it = (&(*conf).externalToLink->data[i]);
  				it_2 = copyString((*it));
  				{
  					NIM_BOOL T7_;
  					T7_ = (NIM_BOOL)0;
  					T7_ = noAbsolutePaths__extccomp_831(conf);
  					if (!T7_) goto LA8_;
  					it_2 = nosextractFilename(it_2);
  				}
  				LA8_: ;
  				T10_ = NIM_NIL;
  				T10_ = nosaddFileExt(it_2, CC__extccomp_508[((*conf).cCompiler)- 1].Field1);
  				collectResult = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(collectResult), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  				T11_ = collectResult->Sup.len++;
  				T12_ = NIM_NIL;
  				T12_ = collectResult->data[T11_]; collectResult->data[T11_] = copyStringRC1(T10_);
  				if (T12_) nimGCunrefNoCycle(T12_);
  				i += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	genericSeqAssign((&linkFiles), collectResult, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  	{
  		tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg* it_3;
  		NI i_2;
  		NI L_2;
  		NI T14_;
  		it_3 = (tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg*)0;
  		i_2 = ((NI) 0);
  		T14_ = ((*conf).toCompile ? (*conf).toCompile->Sup.len : 0);
  		L_2 = T14_;
  		{
  			while (1) {
  				NI T17_;
  				NimStringDesc* T18_;
  				if (!(i_2 < L_2)) goto LA16;
  				it_3 = (&(*conf).toCompile->data[i_2]);
  				linkFiles = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(linkFiles), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  				T17_ = linkFiles->Sup.len++;
  				T18_ = NIM_NIL;
  				T18_ = linkFiles->data[T17_]; linkFiles->data[T17_] = copyStringRC1((*it_3).obj);
  				if (T18_) nimGCunrefNoCycle(T18_);
  				i_2 += ((NI) 1);
  			} LA16: ;
  		}
  	}
  	nimZeroMem((void*)(&bcache), sizeof(tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog));
  	nimZeroMem((void*)(&bcache), sizeof(tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog));
  	bcache.cacheVersion = copyString(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_155));
  	bcache.outputFile = absOutFile__options_4038(conf);
  	collectResult_2 = newSeq__extccomp_1547(((NI) 0));
  	{
  		NI i_3;
  		tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg it_4;
  		NI i_4;
  		NI L_3;
  		NI T20_;
  		i_3 = (NI)0;
  		nimZeroMem((void*)(&it_4), sizeof(tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg));
  		i_4 = ((NI) 0);
  		T20_ = ((*conf).toCompile ? (*conf).toCompile->Sup.len : 0);
  		L_3 = T20_;
  		{
  			while (1) {
  				if (!(i_4 < L_3)) goto LA22;
  				i_3 = i_4;
  				nimCopyMem((void*)(&it_4), (NIM_CONST void*)(&(*conf).toCompile->data[i_4]), sizeof(it_4));
  				{
  					tyTuple__UV3llMMYFckfui8YMBuUZA T27_;
  					NI T28_;
  					NimStringDesc* T29_;
  					NimStringDesc* T30_;
  					if (!!(((it_4.flags &((NU8)1<<((NU)(((tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA) 0))&7U)))!=0))) goto LA25_;
  					nimZeroMem((void*)(&T27_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
  					T27_.Field0 = copyString(it_4.cname);
  					T27_.Field1 = getCompileCFileCmd__extccomp_997(conf, (&it_4), NIM_FALSE, NIM_FALSE);
  					collectResult_2 = (tySequence__4eQHGndY6XBYpFOH09apV8Q*) incrSeqV3((TGenericSeq*)(collectResult_2), (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_));
  					T28_ = collectResult_2->Sup.len++;
  					T29_ = NIM_NIL;
  					T29_ = collectResult_2->data[T28_].Field0; collectResult_2->data[T28_].Field0 = copyStringRC1(T27_.Field0);
  					if (T29_) nimGCunrefNoCycle(T29_);
  					T30_ = NIM_NIL;
  					T30_ = collectResult_2->data[T28_].Field1; collectResult_2->data[T28_].Field1 = copyStringRC1(T27_.Field1);
  					if (T30_) nimGCunrefNoCycle(T30_);
  				}
  				LA25_: ;
  				i_4 += ((NI) 1);
  			} LA22: ;
  		}
  	}
  	genericSeqAssign((&bcache.compile), collectResult_2, (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_));
  	genericSeqAssign((&bcache.link), linkFiles, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  	T31_ = NIM_NIL;
  	T31_ = absOutFile__options_4038(conf);
  	T32_ = NIM_NIL;
  	T32_ = quoteShellCommand__pureZos_601(linkFiles->data, (linkFiles ? linkFiles->Sup.len : 0));
  	bcache.linkcmd = getLinkCmd__extccomp_1094(conf, T31_, T32_, (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0), NIM_FALSE);
  	T33_ = NIM_NIL;
  	T33_ = absOutFile__options_4038(conf);
  	bcache.extraCmds = getExtraCmds__extccomp_1146(conf, T33_);
  	bcache.stdinInput = (*conf).projectIsStdin;
  	bcache.projectIsCmd = (*conf).projectIsCmd;
  	bcache.cmdInput = copyString((*conf).cmdInput);
  	{
  		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* colontmp_;
  		NI iX60gensym121_;
  		tySequence__sM4lkSb7zS6F7OVMvW9cffQ* resultX60gensym121_;
  		NI T35_;
  		colontmp_ = (*conf).configFiles;
  		iX60gensym121_ = ((NI) 0);
  		T35_ = (colontmp_ ? colontmp_->Sup.len : 0);
  		resultX60gensym121_ = newSeq__systemZio_501(((NI) (T35_)));
  		{
  			NimStringDesc** it_5;
  			NI i_5;
  			NI L_4;
  			NI T37_;
  			it_5 = (NimStringDesc**)0;
  			i_5 = ((NI) 0);
  			T37_ = (colontmp_ ? colontmp_->Sup.len : 0);
  			L_4 = T37_;
  			{
  				while (1) {
  					NimStringDesc* T40_;
  					if (!(i_5 < L_4)) goto LA39;
  					it_5 = (&colontmp_->data[i_5]);
  					T40_ = NIM_NIL;
  					T40_ = resultX60gensym121_->data[iX60gensym121_]; resultX60gensym121_->data[iX60gensym121_] = copyStringRC1((*it_5));
  					if (T40_) nimGCunrefNoCycle(T40_);
  					iX60gensym121_ += ((NI) 1);
  					i_5 += ((NI) 1);
  				} LA39: ;
  			}
  		}
  		genericSeqAssign((&bcache.configFiles), resultX60gensym121_, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  	}
  	bcache.currentDir = nosgetCurrentDir();
  	{
  		NIM_BOOL T43_;
  		tySequence__4eQHGndY6XBYpFOH09apV8Q* collectResult_3;
  		NimStringDesc* T61_;
  		tyArray__YtcvxHNKV4YiecPE9ap1mcA T62_;
  		T43_ = (NIM_BOOL)0;
  		T43_ = (((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 12))&63U)))!=0);
  		if (T43_) goto LA44_;
  		T43_ = isDefined__options_2279(conf, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_216));
  		LA44_: ;
  		if (!T43_) goto LA45_;
  		bcache.cmdline = copyString((*conf).commandLine);
  		collectResult_3 = newSeq__extccomp_1547(((NI) 0));
  		{
  			tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw* it_6;
  			NI i_6;
  			NI L_5;
  			NI T48_;
  			it_6 = (tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw*)0;
  			i_6 = ((NI) 0);
  			T48_ = ((*conf).m.fileInfos ? (*conf).m.fileInfos->Sup.len : 0);
  			L_5 = T48_;
  			{
  				while (1) {
  					NimStringDesc* path;
  					if (!(i_6 < L_5)) goto LA50;
  					it_6 = (&(*conf).m.fileInfos->data[i_6]);
  					path = (*it_6).fullPath;
  					{
  						NIM_BOOL T53_;
  						tyTuple__UV3llMMYFckfui8YMBuUZA T56_;
  						tyArray__YtcvxHNKV4YiecPE9ap1mcA T57_;
  						NI T58_;
  						NimStringDesc* T59_;
  						NimStringDesc* T60_;
  						T53_ = (NIM_BOOL)0;
  						T53_ = nosisAbsolute(path);
  						if (!T53_) goto LA54_;
  						nimZeroMem((void*)(&T56_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
  						T56_.Field0 = copyString(path);
  						nimZeroMem((void*)T57_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
  						secureHashFile__stdZsha49_871(path, T57_);
  						T56_.Field1 = dollar___stdZsha49_879(T57_);
  						collectResult_3 = (tySequence__4eQHGndY6XBYpFOH09apV8Q*) incrSeqV3((TGenericSeq*)(collectResult_3), (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_));
  						T58_ = collectResult_3->Sup.len++;
  						T59_ = NIM_NIL;
  						T59_ = collectResult_3->data[T58_].Field0; collectResult_3->data[T58_].Field0 = copyStringRC1(T56_.Field0);
  						if (T59_) nimGCunrefNoCycle(T59_);
  						T60_ = NIM_NIL;
  						T60_ = collectResult_3->data[T58_].Field1; collectResult_3->data[T58_].Field1 = copyStringRC1(T56_.Field1);
  						if (T60_) nimGCunrefNoCycle(T60_);
  					}
  					LA54_: ;
  					i_6 += ((NI) 1);
  				} LA50: ;
  			}
  		}
  		genericSeqAssign((&bcache.depfiles), collectResult_3, (&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_));
  		T61_ = NIM_NIL;
  		T61_ = nosgetAppFilename();
  		nimZeroMem((void*)T62_, sizeof(tyArray__YtcvxHNKV4YiecPE9ap1mcA));
  		secureHashFile__stdZsha49_871(T61_, T62_);
  		bcache.nimexe = dollar___stdZsha49_879(T62_);
  	}
  	LA45_: ;
  	asgnRef((void**) (&(*conf).jsonBuildFile), jsonBuildInstructionsFile__extccomp_1477(conf));
  	T63_ = initToJsonOptions__stdZjsonutils_33();
  	T64_ = NIM_NIL;
  	T64_ = toJson__extccomp_1675((&bcache), T63_);
  	T65_ = NIM_NIL;
  	T65_ = pretty__pureZjson_4461(T64_, ((NI) 2));
  	writeFile__systemZio_474((*conf).jsonBuildFile, T65_);
  }
  static N_NIMCALL(void, Marker_tyRef__pVfTg3qma4yzaBk4IsIEzQ)(void* p, NI op) {
  	tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg* a;
  	a = (tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg*)p;
  	nimGCvisit((void*)(*a).prettyCmds1, op);
  	nimGCvisit((void*)(*a).conf2, op);
  }
  N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___extccomp_2604)(NI idx, void* ClE_0) {
  	tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg* colonenvP_;
  	colonenvP_ = (tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg*) ClE_0;
  	{
  		tyArray__nHXaesL0DJZHyVS07ARPRA T5_;
  		if (!(((NI) 0) < ((*colonenvP_).prettyCmds1->data[idx] ? (*colonenvP_).prettyCmds1->data[idx]->Sup.len : 0))) goto LA3_;
  		flushDot__msgs_17((*colonenvP_).conf2);
  		nimZeroMem((void*)T5_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
  		T5_[0] = copyString((*colonenvP_).prettyCmds1->data[idx]);
  		writeLine__msgs_432(__stderrp, T5_, 1);
  	}
  	LA3_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(void, runJsonBuildInstructions__extccomp_2582)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* jsonFile) {
  	tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg* colonenv_;
  	tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog bcache;
  	TSafePoint TM__OyL9acDBDoBfMwa5zb1Y88w_218;
  	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T1_;
  	tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ T2_;
  	NimStringDesc* output;
  	NimStringDesc* T20_;
  	NimStringDesc* outputCurrent;
  	NimStringDesc* T21_;
  	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cmds;
  	tyProc__SqRJqa5aOiKB4EuKlKh9asA prettyCb;
  	tyProc__SqRJqa5aOiKB4EuKlKh9asA T30_;
  	colonenv_ = NIM_NIL;
  	colonenv_ = (tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg*) newObj((&NTIrefobject__pVfTg3qma4yzaBk4IsIEzQ_), sizeof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg));
  	(*colonenv_).Sup.m_type = (&NTIobject__Bm6R75AmpN9bn4rYIfcheUg_);
  	asgnRef((void**) (&(*colonenv_).conf2), conf);
  	nimZeroMem((void*)(&bcache), sizeof(tyObject_BuildCache__XHJLjuVXhiJ46Ktee6XNog));
  	pushSafePoint(&TM__OyL9acDBDoBfMwa5zb1Y88w_218);
  	TM__OyL9acDBDoBfMwa5zb1Y88w_218.status = _setjmp(TM__OyL9acDBDoBfMwa5zb1Y88w_218.context);
  	if (TM__OyL9acDBDoBfMwa5zb1Y88w_218.status == 0) {
  	T1_ = NIM_NIL;
  	T1_ = parseFile__pureZjson_5228(jsonFile);
  	nimZeroMem((void*)(&T2_), sizeof(tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ));
  	fromJson__extccomp_1838((&bcache), T1_, T2_);
  	popSafePoint();
  	}
  	else {
  		popSafePoint();
  		{
  			Exception* e;
  			TM__OyL9acDBDoBfMwa5zb1Y88w_218.status = 0;
  			e = getCurrentException();
  			{
  				NIM_BOOL T7_;
  				T7_ = (NIM_BOOL)0;
  				T7_ = isDefined__options_2279((*colonenv_).conf2, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_219));
  				if (!T7_) goto LA8_;
  				{
  					NimStringDesc* T14_;
  					tyArray__24KAM9afIUgUaqBaEBB6r9bg T15_;
  					NimStringDesc* T16_;
  					if (!NIM_TRUE) goto LA12_;
  					T14_ = NIM_NIL;
  					nimZeroMem((void*)T15_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
  					T15_[0] = copyString((*e).message);
  					T15_[1] = getStackTrace__system_2521(e);
  					T15_[2] = copyString(jsonFile);
  					T16_ = NIM_NIL;
  					T16_ = nsuFormatOpenArray(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_221), T15_, 3);
  					T14_ = rawNewString((T16_ ? T16_->Sup.len : 0) + 29);
  appendString(T14_, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_220));
  appendString(T14_, T16_);
  					failedAssertImpl__systemZassertions_56(T14_);
  				}
  				LA12_: ;
  			}
  			goto LA5_;
  			LA8_: ;
  			{
  				tyArray__24KAM9afIUgUaqBaEBB6r9bg T18_;
  				NimStringDesc* T19_;
  				nimZeroMem((void*)T18_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
  				T18_[0] = copyString((*e).message);
  				T18_[1] = getStackTrace__system_2521(e);
  				T18_[2] = copyString(jsonFile);
  				T19_ = NIM_NIL;
  				T19_ = nsuFormatOpenArray(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_221), T18_, 3);
  				quit__system_7184(T19_, ((NI) 1));
  			}
  			LA5_: ;
  			popCurrentException();
  		}
  	}
  	if (TM__OyL9acDBDoBfMwa5zb1Y88w_218.status != 0) reraiseException();
  	output = bcache.outputFile;
  	T20_ = NIM_NIL;
  	T20_ = nosparentDir(output);
  	noscreateDir(T20_);
  	T21_ = NIM_NIL;
  	T21_ = absOutFile__options_4038((*colonenv_).conf2);
  	outputCurrent = dollar___options_4373(T21_);
  	{
  		NIM_BOOL T24_;
  		tyArray__24KAM9afIUgUaqBaEBB6r9bg T28_;
  		NimStringDesc* T29_;
  		T24_ = (NIM_BOOL)0;
  		T24_ = !(eqStrings(output, outputCurrent));
  		if (T24_) goto LA25_;
  		T24_ = !(eqStrings(bcache.cacheVersion, ((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_155)));
  		LA25_: ;
  		if (!T24_) goto LA26_;
  		nimZeroMem((void*)T28_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
  		T28_[0] = copyString(outputCurrent);
  		T28_[1] = copyString(output);
  		T28_[2] = copyString(jsonFile);
  		T29_ = NIM_NIL;
  		T29_ = nsuFormatOpenArray(((NimStringDesc*) &TM__OyL9acDBDoBfMwa5zb1Y88w_222), T28_, 3);
  		liMessage__msgs_1118((*colonenv_).conf2, gCmdLineInfo__msgs_404, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T29_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__OyL9acDBDoBfMwa5zb1Y88w_223, NIM_FALSE);
  	}
  	LA26_: ;
  	cmds = NIM_NIL;
  	asgnRef((void**) (&(*colonenv_).prettyCmds1), NIM_NIL);
  	nimZeroMem((void*)(&prettyCb), sizeof(tyProc__SqRJqa5aOiKB4EuKlKh9asA));
  	nimZeroMem((void*)(&T30_), sizeof(tyProc__SqRJqa5aOiKB4EuKlKh9asA));
  	T30_.ClP_0 = colonanonymous___extccomp_2604; T30_.ClE_0 = colonenv_;
  	prettyCb.ClE_0 = T30_.ClE_0;
  	prettyCb.ClP_0 = T30_.ClP_0;
  	{
  		NimStringDesc** name;
  		NimStringDesc** cmd;
  		NI i;
  		NI L;
  		NI T32_;
  		name = (NimStringDesc**)0;
  		cmd = (NimStringDesc**)0;
  		i = ((NI) 0);
  		T32_ = (bcache.compile ? bcache.compile->Sup.len : 0);
  		L = T32_;
  		{
  			while (1) {
  				NI T35_;
  				NimStringDesc* T36_;
  				NimStringDesc* T37_;
  				NI T38_;
  				NimStringDesc* T39_;
  				if (!(i < L)) goto LA34;
  				name = (&bcache.compile->data[i].Field0);
  				cmd = (&bcache.compile->data[i].Field1);
  				cmds = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(cmds), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
  				T35_ = cmds->Sup.len++;
  				T36_ = NIM_NIL;
  				T36_ = cmds->data[T35_]; cmds->data[T35_] = copyStringRC1((*cmd));
  				if (T36_) nimGCunrefNoCycle(T36_);
  				T37_ = NIM_NIL;
  				T37_ = displayProgressCC__extccomp_1234((*colonenv_).conf2, (*name), (*cmd));
  				asgnRef((void**) (&(*colonenv_).prettyCmds1), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*colonenv_).prettyCmds1), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
  				T38_ = (*colonenv_).prettyCmds1->Sup.len++;
  				T39_ = NIM_NIL;
  				T39_ = (*colonenv_).prettyCmds1->data[T38_]; (*colonenv_).prettyCmds1->data[T38_] = copyStringRC1(T37_);
  				if (T39_) nimGCunrefNoCycle(T39_);
  				i += ((NI) 1);
  			} LA34: ;
  		}
  	}
  	execCmdsInParallel__extccomp_1155((*colonenv_).conf2, cmds, prettyCb);
  	execLinkCmd__extccomp_1150((*colonenv_).conf2, bcache.linkcmd);
  	{
  		NimStringDesc** cmd_2;
  		NI i_2;
  		NI L_2;
  		NI T41_;
  		cmd_2 = (NimStringDesc**)0;
  		i_2 = ((NI) 0);
  		T41_ = (bcache.extraCmds ? bcache.extraCmds->Sup.len : 0);
  		L_2 = T41_;
  		{
  			while (1) {
  				if (!(i_2 < L_2)) goto LA43;
  				cmd_2 = (&bcache.extraCmds->data[i_2]);
  				execExternalProgram__extccomp_808((*colonenv_).conf2, (*cmd_2), ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 89));
  				i_2 += ((NI) 1);
  			} LA43: ;
  		}
  	}
  }
  N_LIB_PRIVATE N_NIMCALL(void, compiler_extccompDatInit000)(void) {
  static TNimNode* TM__OyL9acDBDoBfMwa5zb1Y88w_172_3[3];
  static TNimNode* TM__OyL9acDBDoBfMwa5zb1Y88w_175_3[3];
  static TNimNode* TM__OyL9acDBDoBfMwa5zb1Y88w_217_3[3];
  static TNimNode TM__OyL9acDBDoBfMwa5zb1Y88w_0[12];
  NTIobject__H6RAoT9avhFKpqIMlTu5GHg_.size = sizeof(tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg);
  NTIobject__H6RAoT9avhFKpqIMlTu5GHg_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg);
  NTIobject__H6RAoT9avhFKpqIMlTu5GHg_.kind = 17;
  NTIobject__H6RAoT9avhFKpqIMlTu5GHg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_172_3[0] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[1];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[1].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[1].offset = offsetof(tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg, colonstate_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[1].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[1].name = ":state";
  TM__OyL9acDBDoBfMwa5zb1Y88w_172_3[1] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[2];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[2].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[2].offset = offsetof(tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg, prettyCmds1);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[2].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[2].name = "prettyCmds1";
  TM__OyL9acDBDoBfMwa5zb1Y88w_172_3[2] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[3];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[3].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[3].offset = offsetof(tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg, conf2);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[3].typ = (&NTIconfigref__a8lycfSA25OQltN3OMeBsA_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[3].name = "conf2";
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[0].len = 3; TM__OyL9acDBDoBfMwa5zb1Y88w_0[0].kind = 2; TM__OyL9acDBDoBfMwa5zb1Y88w_0[0].sons = &TM__OyL9acDBDoBfMwa5zb1Y88w_172_3[0];
  NTIobject__H6RAoT9avhFKpqIMlTu5GHg_.node = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[0];
  NTIrefobject__CqlAb69bkfxaejoSKDwhYYA_.size = sizeof(tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg*);
  NTIrefobject__CqlAb69bkfxaejoSKDwhYYA_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_callCCompiler___H6RAoT9avhFKpqIMlTu5GHg*);
  NTIrefobject__CqlAb69bkfxaejoSKDwhYYA_.kind = 22;
  NTIrefobject__CqlAb69bkfxaejoSKDwhYYA_.base = (&NTIobject__H6RAoT9avhFKpqIMlTu5GHg_);
  NTIrefobject__CqlAb69bkfxaejoSKDwhYYA_.marker = Marker_tyRef__CqlAb69bkfxaejoSKDwhYYA;
  NTIobject__4Ms6MGgcp8EDnUBSlKFk9bg_.size = sizeof(tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg);
  NTIobject__4Ms6MGgcp8EDnUBSlKFk9bg_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg);
  NTIobject__4Ms6MGgcp8EDnUBSlKFk9bg_.kind = 17;
  NTIobject__4Ms6MGgcp8EDnUBSlKFk9bg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_175_3[0] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[5];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[5].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[5].offset = offsetof(tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg, colonstate_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[5].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[5].name = ":state";
  TM__OyL9acDBDoBfMwa5zb1Y88w_175_3[1] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[6];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[6].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[6].offset = offsetof(tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg, conf1);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[6].typ = (&NTIconfigref__a8lycfSA25OQltN3OMeBsA_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[6].name = "conf1";
  TM__OyL9acDBDoBfMwa5zb1Y88w_175_3[2] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[7];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[7].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[7].offset = offsetof(tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg, cmds2);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[7].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[7].name = "cmds2";
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[4].len = 3; TM__OyL9acDBDoBfMwa5zb1Y88w_0[4].kind = 2; TM__OyL9acDBDoBfMwa5zb1Y88w_0[4].sons = &TM__OyL9acDBDoBfMwa5zb1Y88w_175_3[0];
  NTIobject__4Ms6MGgcp8EDnUBSlKFk9bg_.node = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[4];
  NTIrefobject__pkCPBZYDmG8KoijaqNdsQw_.size = sizeof(tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg*);
  NTIrefobject__pkCPBZYDmG8KoijaqNdsQw_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_execCmdsInParallel___4Ms6MGgcp8EDnUBSlKFk9bg*);
  NTIrefobject__pkCPBZYDmG8KoijaqNdsQw_.kind = 22;
  NTIrefobject__pkCPBZYDmG8KoijaqNdsQw_.base = (&NTIobject__4Ms6MGgcp8EDnUBSlKFk9bg_);
  NTIrefobject__pkCPBZYDmG8KoijaqNdsQw_.marker = Marker_tyRef__pkCPBZYDmG8KoijaqNdsQw;
  NTIobject__Bm6R75AmpN9bn4rYIfcheUg_.size = sizeof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg);
  NTIobject__Bm6R75AmpN9bn4rYIfcheUg_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg);
  NTIobject__Bm6R75AmpN9bn4rYIfcheUg_.kind = 17;
  NTIobject__Bm6R75AmpN9bn4rYIfcheUg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_217_3[0] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[9];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[9].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[9].offset = offsetof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg, colonstate_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[9].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[9].name = ":state";
  TM__OyL9acDBDoBfMwa5zb1Y88w_217_3[1] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[10];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[10].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[10].offset = offsetof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg, prettyCmds1);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[10].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[10].name = "prettyCmds1";
  TM__OyL9acDBDoBfMwa5zb1Y88w_217_3[2] = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[11];
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[11].kind = 1;
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[11].offset = offsetof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg, conf2);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[11].typ = (&NTIconfigref__a8lycfSA25OQltN3OMeBsA_);
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[11].name = "conf2";
  TM__OyL9acDBDoBfMwa5zb1Y88w_0[8].len = 3; TM__OyL9acDBDoBfMwa5zb1Y88w_0[8].kind = 2; TM__OyL9acDBDoBfMwa5zb1Y88w_0[8].sons = &TM__OyL9acDBDoBfMwa5zb1Y88w_217_3[0];
  NTIobject__Bm6R75AmpN9bn4rYIfcheUg_.node = &TM__OyL9acDBDoBfMwa5zb1Y88w_0[8];
  NTIrefobject__pVfTg3qma4yzaBk4IsIEzQ_.size = sizeof(tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg*);
  NTIrefobject__pVfTg3qma4yzaBk4IsIEzQ_.align = NIM_ALIGNOF(tyObject_Env_extccompdotnim_runJsonBuildInstructions___Bm6R75AmpN9bn4rYIfcheUg*);
  NTIrefobject__pVfTg3qma4yzaBk4IsIEzQ_.kind = 22;
  NTIrefobject__pVfTg3qma4yzaBk4IsIEzQ_.base = (&NTIobject__Bm6R75AmpN9bn4rYIfcheUg_);
  NTIrefobject__pVfTg3qma4yzaBk4IsIEzQ_.marker = Marker_tyRef__pVfTg3qma4yzaBk4IsIEzQ;
  }
  
  