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

#include "nimbase.h"
#include <string.h>
#include <setjmp.h>
#include <stdio.h>
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Cell47505 Cell47505;
typedef struct TNimType TNimType;
typedef struct Cellseq47521 Cellseq47521;
typedef struct Gcheap49818 Gcheap49818;
typedef struct Gcstack49816 Gcstack49816;
typedef struct Cellset47517 Cellset47517;
typedef struct Pagedesc47513 Pagedesc47513;
typedef struct Memregion29688 Memregion29688;
typedef struct Smallchunk29640 Smallchunk29640;
typedef struct Llchunk29682 Llchunk29682;
typedef struct Bigchunk29642 Bigchunk29642;
typedef struct Intset29614 Intset29614;
typedef struct Trunk29610 Trunk29610;
typedef struct Avlnode29686 Avlnode29686;
typedef struct Gcstat49814 Gcstat49814;
typedef struct Exception Exception;
typedef struct TNimObject TNimObject;
typedef struct TNimNode TNimNode;
typedef struct TSafePoint TSafePoint;
typedef struct TY118706 TY118706;
typedef struct Basechunk29638 Basechunk29638;
typedef struct Freecell29630 Freecell29630;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  Cell47505  {
NI refcount;
TNimType* typ;
};
struct  Cellseq47521  {
NI len;
NI cap;
Cell47505** d;
};
struct  Cellset47517  {
NI counter;
NI max;
Pagedesc47513* head;
Pagedesc47513** data;
};
typedef Smallchunk29640* TY29703[512];
typedef Trunk29610* Trunkbuckets29612[256];
struct  Intset29614  {
Trunkbuckets29612 data;
};
struct  Memregion29688  {
NI minlargeobj;
NI maxlargeobj;
TY29703 freesmallchunks;
Llchunk29682* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk29642* freechunkslist;
Intset29614 chunkstarts;
Avlnode29686* root;
Avlnode29686* deleted;
Avlnode29686* last;
Avlnode29686* freeavlnodes;
};
struct  Gcstat49814  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Gcheap49818  {
Gcstack49816* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq47521 zct;
Cellseq47521 decstack;
Cellset47517 cycleroots;
Cellseq47521 tempstack;
NI recgclock;
Memregion29688 region;
Gcstat49814 stat;
};
typedef N_NIMCALL_PTR(void, TY3489) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3494) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3489 marker;
TY3494 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e, void* ClEnv);
void* ClEnv;
} TY17811;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY17811 raiseAction;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct TY118706 {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
struct  Gcstack49816  {
Gcstack49816* prev;
Gcstack49816* next;
void* starts;
void* pos;
NI maxstacksize;
};
typedef NI TY29619[8];
struct  Pagedesc47513  {
Pagedesc47513* next;
NI key;
TY29619 bits;
};
struct  Basechunk29638  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk29640  {
  Basechunk29638 Sup;
Smallchunk29640* next;
Smallchunk29640* prev;
Freecell29630* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk29682  {
NI size;
NI acc;
Llchunk29682* next;
};
struct  Bigchunk29642  {
  Basechunk29638 Sup;
Bigchunk29642* next;
Bigchunk29642* prev;
NI align;
NF data;
};
struct  Trunk29610  {
Trunk29610* next;
NI key;
TY29619 bits;
};
typedef Avlnode29686* TY29693[2];
struct  Avlnode29686  {
TY29693 link;
NI key;
NI upperbound;
NI level;
};
struct  Freecell29630  {
Freecell29630* next;
NI zerofield;
};
N_NIMCALL(void, Gcdisablemarkandsweep_9819)(void);
N_NIMCALL(void, initdefines_191184)(void);
N_NIMCALL(void, handlecmdline_537601)(void);
N_NIMCALL(NI, paramcount_131426)(void);
N_NIMCALL(void, writecommandlineusage_201005)(void);
N_NIMCALL(void, processcmdline_531203)(NU8 pass, NimStringDesc* cmd);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(Cell47505*, usrtocell_51440)(void* usr);
static N_INLINE(void, rtladdzct_53001)(Cell47505* c);
N_NOINLINE(void, addzct_51417)(Cellseq47521* s, Cell47505* c);
N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_NIMCALL(NimStringDesc*, canonicalizepath_161405)(NimStringDesc* path);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(Exception*, getCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_53819)(Cell47505* c);
static N_INLINE(NIM_BOOL, canbecycleroot_51458)(Cell47505* c);
static N_INLINE(void, rtladdcycleroot_52220)(Cell47505* c);
N_NOINLINE(void, incl_48247)(Cellset47517* s, Cell47505* cell);
static N_INLINE(void, decref_53401)(Cell47505* c);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(void, nossplitFile)(NimStringDesc* path, TY118706* Result);
N_NOINLINE(void, chckNil)(void* p);
N_NIMCALL(void, loadconfigs_211603)(NimStringDesc* cfg);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
static N_INLINE(NIM_BOOL, fileexists_121804)(NimStringDesc* filename);
N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_NIMCALL(void, runnimscript_536203)(NimStringDesc* scriptname);
N_NIMCALL(NimStringDesc*, HEX2F_118465)(NimStringDesc* head, NimStringDesc* tail);
N_NIMCALL(void, initvars_195834)(void);
N_NIMCALL(void, rawmessage_186612)(NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, maincommand_533610)(void);
N_NIMCALL(NimStringDesc*, Gcgetstatistics_9821)(void);
N_NIMCALL(NimStringDesc*, nospquoteShell)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, prependcurdir_537401)(NimStringDesc* f);
N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, completecfilepath_195854)(NimStringDesc* cfile, NIM_BOOL createsubdir);
N_NIMCALL(void, execexternalprogram_195881)(NimStringDesc* cmd, NU16 msg);
N_NIMCALL(NimStringDesc*, findnodejs_535003)(void);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(void, msgquit_184149)(NI8 x);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, setStackBottom)(void* thestackbottom);
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void);
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_testabilityInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_testabilityDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_parseutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_parseutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_strutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_strutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_timesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_timesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_posixInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_posixDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_osInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_osDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_listsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_listsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_etcprivInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_etcprivDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_hashesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_hashesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_strtabsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_strtabsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_streamsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_streamsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_linuxInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_linuxDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cpuinfoInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cpuinfoDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_osprocInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_osprocDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_mathInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_mathDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_setsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_setsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_optionsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_optionsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_tablesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_tablesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_platformInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_platformDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ropesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ropesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_macrosInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_macrosDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_termiosInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_termiosDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_terminalInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_terminalDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_msgsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_msgsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nversionInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nversionDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_identsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_identsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_condsymsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_condsymsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_unsignedInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_unsignedDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_securehashInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_securehashDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_extccompInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_extccompDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_wordrecgInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_wordrecgDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimblecmdInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimblecmdDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_parseoptInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_parseoptDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_commandsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_commandsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_llstreamInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_llstreamDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimlexbaseInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimlexbaseDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lexerInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lexerDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimconfInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimconfDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_intsetsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_intsetsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_idgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_idgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_astInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_astDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_astalgoInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_astalgoDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_parserInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_parserDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pbracesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pbracesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rendererInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rendererDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_filtersInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_filtersDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_filter_tmplInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_filter_tmplDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_syntaxesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_syntaxesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_treesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_treesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_typesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_typesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_memfilesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_memfilesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodreadInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodreadDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_magicsysInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_magicsysDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_bitsetsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_bitsetsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimsetsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimsetsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_passesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_passesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_treetabInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_treetabDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmdefInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmdefDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semdataInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semdataDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_lexbaseInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_lexbaseDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_prettybaseInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_prettybaseDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lookupsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lookupsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_importerInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_importerDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodwriteInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodwriteDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_saturateInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_saturateDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semfoldInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semfoldDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_procfindInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_procfindDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pragmasInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pragmasDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semtypinstInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semtypinstDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_parampatternsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_parampatternsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_prettyInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_prettyDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_unicodeInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_unicodeDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_jsonInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_jsonDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstastInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstastDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_highliteInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_highliteDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_sequtilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_sequtilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_algorithmInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_algorithmDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_guardsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_guardsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_writetrackingInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_writetrackingDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sempass2Init000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sempass2DatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_xmltreeInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_xmltreeDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cookiesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cookiesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cgiInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cgiDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_typesrendererInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_typesrendererDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_docgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_docgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sigmatchInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sigmatchDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgmethInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgmethDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_loweringsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_loweringsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lambdaliftingInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lambdaliftingDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_transfInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_transfDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmdepsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmdepsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmmarshalInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmmarshalDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_evaltemplInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_evaltemplDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_aliasesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_aliasesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_patternsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_patternsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semmacrosanityInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semmacrosanityDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semparallelInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semparallelDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pluginsupportInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pluginsupportDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_localsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_localsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_itersgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_itersgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_activeInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_activeDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ccgutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ccgutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgendataInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgendataDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ccgmergeInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ccgmergeDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_jsgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_jsgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_passauxInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_passauxDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_dependsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_dependsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_docgen2Init000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_docgen2DatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_nativesocketsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_nativesocketsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_netInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_netDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_serviceInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_serviceDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_modulesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_modulesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_mainInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_mainDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nodejsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nodejsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_scriptconfigInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_scriptconfigDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimInit000)(void);
NIM_EXTERNC N_NOINLINE(void, nimDatInit000)(void);
STRING_LITERAL(TMP2028, "", 0);
STRING_LITERAL(TMP2029, "-", 1);
STRING_LITERAL(TMP2030, "stdinfile", 9);
STRING_LITERAL(TMP2059, "nim.cfg", 7);
STRING_LITERAL(TMP2060, "nims", 4);
STRING_LITERAL(TMP3723, "config.nims", 11);
STRING_LITERAL(TMP5311, "./", 2);
STRING_LITERAL(TMP5312, "js", 2);
STRING_LITERAL(TMP5316, " ", 1);
extern NimStringDesc* gprojectname_161199;
extern Gcheap49818 gch_49859;
extern NimStringDesc* gprojectfull_161201;
extern NimStringDesc* gprojectpath_161200;
extern NIM_BOOL gprojectisstdin_161202;
extern TSafePoint* exchandler_19437;
extern TNimType NTI3630; /* OSError */
extern Exception* currexception_19439;
extern NimStringDesc* command_161205;
extern NU32 goptions_161119;
extern NU64 gnotes_184077;
extern NI gerrorcounter_184078;
extern NU32 gglobaloptions_161121;
extern NU8 gcmd_161123;
extern NimStringDesc* outfile_161127;
extern NimStringDesc* arguments_202699;

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
{	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (*a).Sup.len);
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result;
}

static N_INLINE(Cell47505*, usrtocell_51440)(void* usr) {
	Cell47505* result;
	result = 0;
	result = ((Cell47505*) ((NI)((NU64)(((NI) (usr))) - (NU64)(((NI)sizeof(Cell47505))))));
	return result;
}

static N_INLINE(void, rtladdzct_53001)(Cell47505* c) {
	addzct_51417((&gch_49859.zct), c);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	Cell47505* c;
	c = usrtocell_51440(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3;
		rtladdzct_53001(c);
	}
	LA3: ;
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		Cell47505* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_51440(src);
		(*c).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell47505* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_51440((*dest));
		{
			(*c).refcount -= ((NI) 8);
			if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA11;
			rtladdzct_53001(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).hasRaiseAction = NIM_FALSE;
	(*s).prev = exchandler_19437;
	exchandler_19437 = s;
}

static N_INLINE(void, popSafePoint)(void) {
	exchandler_19437 = (*exchandler_19437).prev;
}

static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result;
	result = 0;
	result = currexception_19439;
	return result;
}

static N_INLINE(NIM_BOOL, canbecycleroot_51458)(Cell47505* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).typ).flags &(1U<<((NU)(((NU8) 1))&7U)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_52220)(Cell47505* c) {
	{
		if (!!((((NI) ((NI)((*c).refcount & ((NI) 3)))) == ((NI) 3)))) goto LA3;
		(*c).refcount = (NI)((NI)((*c).refcount & ((NI) -4)) | ((NI) 3));
		incl_48247((&gch_49859.cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_53819)(Cell47505* c) {
	(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_51458(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_52220(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_53401)(Cell47505* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3;
		rtladdzct_53001(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_51458(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_52220(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		Cell47505* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_51440(src);
		incref_53819(LOC5);
	}
	LA3: ;
	{
		Cell47505* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_51440((*dest));
		decref_53401(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currexception_19439), NIM_NIL);
}

static N_INLINE(NIM_BOOL, fileexists_121804)(NimStringDesc* filename) {
	NIM_BOOL result;
	result = 0;
	result = nosexistsFile(filename);
	return result;
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((NCSTRING) ((*src).data)), (NI)((*src).Sup.len + ((NI) 1)));
	(*dest).Sup.len += (*src).Sup.len;
}

N_NIMCALL(NimStringDesc*, prependcurdir_537401)(NimStringDesc* f) {
	NimStringDesc* result;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = nosisAbsolute(f);
		if (!LOC3) goto LA4;
		result = copyString(f);
	}
	goto LA1;
	LA4: ;
	{
		NimStringDesc* LOC7;
		LOC7 = 0;
		LOC7 = rawNewString(f->Sup.len + 2);
appendString(LOC7, ((NimStringDesc*) &TMP5311));
appendString(LOC7, f);
		result = LOC7;
	}
	LA1: ;
	return result;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[((*dest).Sup.len)- 0] = c;
	(*dest).data[((NI)((*dest).Sup.len + ((NI) 1)))- 0] = 0;
	(*dest).Sup.len += ((NI) 1);
}

N_NIMCALL(void, handlecmdline_537601)(void) {
{	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = paramcount_131426();
		if (!(LOC3 == ((NI) 0))) goto LA4;
		writecommandlineusage_201005();
	}
	goto LA1;
	LA4: ;
	{
		NimStringDesc* scriptfile;
		processcmdline_531203(((NU8) 0), ((NimStringDesc*) &TMP2028));
		{
			NimStringDesc* LOC11;
			NimStringDesc* LOC12;
			if (!eqStrings(gprojectname_161199, ((NimStringDesc*) &TMP2029))) goto LA9;
			LOC11 = 0;
			LOC11 = gprojectname_161199; gprojectname_161199 = copyStringRC1(((NimStringDesc*) &TMP2030));
			if (LOC11) nimGCunrefNoCycle(LOC11);
			LOC12 = 0;
			LOC12 = gprojectfull_161201; gprojectfull_161201 = copyStringRC1(((NimStringDesc*) &TMP2030));
			if (LOC12) nimGCunrefNoCycle(LOC12);
			asgnRefNoCycle((void**) (&gprojectpath_161200), nosgetCurrentDir());
			gprojectisstdin_161202 = NIM_TRUE;
		}
		goto LA7;
		LA9: ;
		{
			TSafePoint TMP2031;
			TY118706 p;
			NimStringDesc* LOC20;
			NimStringDesc* LOC21;
			if (!!(((gprojectname_161199) && (gprojectname_161199)->Sup.len == 0))) goto LA14;
			pushSafePoint(&TMP2031);
			TMP2031.status = setjmp(TMP2031.context);
			if (TMP2031.status == 0) {
				asgnRefNoCycle((void**) (&gprojectfull_161201), canonicalizepath_161405(gprojectname_161199));
				popSafePoint();
			}
			else {
				popSafePoint();
				if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
					NimStringDesc* LOC19;
					TMP2031.status = 0;
					LOC19 = 0;
					LOC19 = gprojectfull_161201; gprojectfull_161201 = copyStringRC1(gprojectname_161199);
					if (LOC19) nimGCunrefNoCycle(LOC19);
					popCurrentException();
				}
			}
			if (TMP2031.status != 0) reraiseException();
			memset((void*)(&p), 0, sizeof(p));
			chckNil((void*)(&p));
			memset((void*)(&p), 0, sizeof(p));
			nossplitFile(gprojectfull_161201, (&p));
			LOC20 = 0;
			LOC20 = gprojectpath_161200; gprojectpath_161200 = copyStringRC1(p.Field0);
			if (LOC20) nimGCunrefNoCycle(LOC20);
			LOC21 = 0;
			LOC21 = gprojectname_161199; gprojectname_161199 = copyStringRC1(p.Field1);
			if (LOC21) nimGCunrefNoCycle(LOC21);
		}
		goto LA7;
		LA14: ;
		{
			asgnRefNoCycle((void**) (&gprojectpath_161200), nosgetCurrentDir());
		}
		LA7: ;
		loadconfigs_211603(((NimStringDesc*) &TMP2059));
		scriptfile = noschangeFileExt(gprojectfull_161201, ((NimStringDesc*) &TMP2060));
		{
			NIM_BOOL LOC25;
			LOC25 = 0;
			LOC25 = fileexists_121804(scriptfile);
			if (!LOC25) goto LA26;
			runnimscript_536203(scriptfile);
			{
				if (!eqStrings(scriptfile, gprojectfull_161201)) goto LA30;
				goto BeforeRet;
			}
			LA30: ;
		}
		goto LA23;
		LA26: ;
		{
			NimStringDesc* LOC33;
			NIM_BOOL LOC34;
			NimStringDesc* LOC37;
			LOC33 = 0;
			LOC33 = HEX2F_118465(gprojectpath_161200, ((NimStringDesc*) &TMP3723));
			LOC34 = 0;
			LOC34 = fileexists_121804(LOC33);
			if (!LOC34) goto LA35;
			LOC37 = 0;
			LOC37 = HEX2F_118465(gprojectpath_161200, ((NimStringDesc*) &TMP3723));
			runnimscript_536203(LOC37);
		}
		goto LA23;
		LA35: ;
		LA23: ;
		initvars_195834();
		processcmdline_531203(((NU8) 1), ((NimStringDesc*) &TMP2028));
		{
			if (!((command_161205) && (command_161205)->Sup.len == 0)) goto LA40;
			rawmessage_186612(((NU16) 184), command_161205);
		}
		LA40: ;
		maincommand_533610();
		{
			NIM_BOOL LOC44;
			NimStringDesc* LOC48;
			LOC44 = 0;
			LOC44 = ((goptions_161119 &(1U<<((NU)(((NU8) 12))&31U)))!=0);
			if (!(LOC44)) goto LA45;
			LOC44 = ((gnotes_184077 &((NU64)1<<((NU)((((NU16) 289)- 237))&63U)))!=0);
			LA45: ;
			if (!LOC44) goto LA46;
			LOC48 = 0;
			LOC48 = Gcgetstatistics_9821();
			printf("%s\012", LOC48? (LOC48)->data:"nil");
			fflush(stdout);
		}
		LA46: ;
		{
			if (!(gerrorcounter_184078 == ((NI) 0))) goto LA51;
			{
				if (!((gglobaloptions_161121 &(1U<<((NU)(((NU8) 13))&31U)))!=0)) goto LA55;
				{
					NimStringDesc* ex;
					NimStringDesc* LOC70;
					NimStringDesc* LOC71;
					if (!(gcmd_161123 == ((NU8) 4))) goto LA59;
					ex = 0;
					{
						NimStringDesc* LOC65;
						if (!(((NI) 0) < (outfile_161127 ? outfile_161127->Sup.len : 0))) goto LA63;
						LOC65 = 0;
						LOC65 = prependcurdir_537401(outfile_161127);
						ex = nospquoteShell(LOC65);
					}
					goto LA61;
					LA63: ;
					{
						NimStringDesc* LOC67;
						NimStringDesc* LOC68;
						NimStringDesc* LOC69;
						LOC67 = 0;
						LOC67 = noschangeFileExt(gprojectfull_161201, ((NimStringDesc*) &TMP5312));
						LOC68 = 0;
						LOC68 = prependcurdir_537401(LOC67);
						LOC69 = 0;
						LOC69 = completecfilepath_195854(LOC68, NIM_TRUE);
						ex = nospquoteShell(LOC69);
					}
					LA61: ;
					LOC70 = 0;
					LOC71 = 0;
					LOC71 = findnodejs_535003();
					LOC70 = rawNewString(LOC71->Sup.len + ex->Sup.len + arguments_202699->Sup.len + 2);
appendString(LOC70, LOC71);
appendString(LOC70, ((NimStringDesc*) &TMP5316));
appendString(LOC70, ex);
appendChar(LOC70, 32);
appendString(LOC70, arguments_202699);
					execexternalprogram_195881(LOC70, ((NU16) 284));
				}
				goto LA57;
				LA59: ;
				{
					NimStringDesc* binpath;
					NimStringDesc* ex;
					NimStringDesc* LOC79;
					binpath = 0;
					{
						if (!(((NI) 0) < (outfile_161127 ? outfile_161127->Sup.len : 0))) goto LA75;
						binpath = prependcurdir_537401(outfile_161127);
					}
					goto LA73;
					LA75: ;
					{
						NimStringDesc* LOC78;
						LOC78 = 0;
						LOC78 = noschangeFileExt(gprojectfull_161201, ((NimStringDesc*) &TMP2028));
						binpath = prependcurdir_537401(LOC78);
					}
					LA73: ;
					ex = nospquoteShell(binpath);
					LOC79 = 0;
					LOC79 = rawNewString(ex->Sup.len + arguments_202699->Sup.len + 1);
appendString(LOC79, ex);
appendChar(LOC79, 32);
appendString(LOC79, arguments_202699);
					execexternalprogram_195881(LOC79, ((NU16) 284));
				}
				LA57: ;
			}
			LA55: ;
		}
		LA51: ;
	}
	LA1: ;
	}BeforeRet: ;
}

static N_INLINE(void, initStackBottomWith)(void* locals) {
	setStackBottom(locals);
}
void PreMainInner() {
	systemInit000();
	compiler_testabilityDatInit000();
	stdlib_parseutilsDatInit000();
	stdlib_strutilsDatInit000();
	stdlib_timesDatInit000();
	stdlib_posixDatInit000();
	stdlib_osDatInit000();
	compiler_listsDatInit000();
	stdlib_etcprivDatInit000();
	stdlib_hashesDatInit000();
	stdlib_strtabsDatInit000();
	stdlib_streamsDatInit000();
	stdlib_linuxDatInit000();
	stdlib_cpuinfoDatInit000();
	stdlib_osprocDatInit000();
	stdlib_mathDatInit000();
	stdlib_setsDatInit000();
	compiler_optionsDatInit000();
	stdlib_tablesDatInit000();
	compiler_platformDatInit000();
	compiler_ropesDatInit000();
	stdlib_macrosDatInit000();
	stdlib_termiosDatInit000();
	stdlib_terminalDatInit000();
	compiler_msgsDatInit000();
	compiler_nversionDatInit000();
	compiler_identsDatInit000();
	compiler_condsymsDatInit000();
	stdlib_unsignedDatInit000();
	stdlib_securehashDatInit000();
	compiler_extccompDatInit000();
	compiler_wordrecgDatInit000();
	compiler_nimblecmdDatInit000();
	stdlib_parseoptDatInit000();
	compiler_commandsDatInit000();
	compiler_llstreamDatInit000();
	compiler_nimlexbaseDatInit000();
	compiler_lexerDatInit000();
	compiler_nimconfDatInit000();
	stdlib_intsetsDatInit000();
	compiler_idgenDatInit000();
	compiler_astDatInit000();
	compiler_rodutilsDatInit000();
	compiler_astalgoDatInit000();
	compiler_parserDatInit000();
	compiler_pbracesDatInit000();
	compiler_rendererDatInit000();
	compiler_filtersDatInit000();
	compiler_filter_tmplDatInit000();
	compiler_syntaxesDatInit000();
	compiler_treesDatInit000();
	compiler_typesDatInit000();
	stdlib_memfilesDatInit000();
	compiler_rodreadDatInit000();
	compiler_magicsysDatInit000();
	compiler_bitsetsDatInit000();
	compiler_nimsetsDatInit000();
	compiler_passesDatInit000();
	compiler_treetabDatInit000();
	compiler_vmdefDatInit000();
	compiler_semdataDatInit000();
	stdlib_lexbaseDatInit000();
	compiler_prettybaseDatInit000();
	compiler_lookupsDatInit000();
	compiler_importerDatInit000();
	compiler_rodwriteDatInit000();
	compiler_saturateDatInit000();
	compiler_semfoldDatInit000();
	compiler_procfindDatInit000();
	compiler_pragmasDatInit000();
	compiler_semtypinstDatInit000();
	compiler_parampatternsDatInit000();
	compiler_prettyDatInit000();
	stdlib_unicodeDatInit000();
	stdlib_jsonDatInit000();
	docutils_rstastDatInit000();
	docutils_rstDatInit000();
	docutils_highliteDatInit000();
	stdlib_sequtilsDatInit000();
	stdlib_algorithmDatInit000();
	docutils_rstgenDatInit000();
	compiler_guardsDatInit000();
	compiler_writetrackingDatInit000();
	compiler_sempass2DatInit000();
	stdlib_xmltreeDatInit000();
	stdlib_cookiesDatInit000();
	stdlib_cgiDatInit000();
	compiler_typesrendererDatInit000();
	compiler_docgenDatInit000();
	compiler_sigmatchDatInit000();
	compiler_cgmethDatInit000();
	compiler_loweringsDatInit000();
	compiler_lambdaliftingDatInit000();
	compiler_transfDatInit000();
	compiler_vmgenDatInit000();
	compiler_vmdepsDatInit000();
	compiler_vmmarshalDatInit000();
	compiler_evaltemplDatInit000();
	compiler_vmDatInit000();
	compiler_aliasesDatInit000();
	compiler_patternsDatInit000();
	compiler_semmacrosanityDatInit000();
	compiler_semparallelDatInit000();
	compiler_pluginsupportDatInit000();
	compiler_localsDatInit000();
	compiler_itersgenDatInit000();
	compiler_activeDatInit000();
	compiler_semDatInit000();
	compiler_ccgutilsDatInit000();
	compiler_cgendataDatInit000();
	compiler_ccgmergeDatInit000();
	compiler_cgenDatInit000();
	compiler_jsgenDatInit000();
	compiler_passauxDatInit000();
	compiler_dependsDatInit000();
	compiler_docgen2DatInit000();
	stdlib_nativesocketsDatInit000();
	stdlib_netDatInit000();
	compiler_serviceDatInit000();
	compiler_modulesDatInit000();
	compiler_mainDatInit000();
	compiler_nodejsDatInit000();
	compiler_scriptconfigDatInit000();
	nimDatInit000();
	compiler_testabilityInit000();
	stdlib_parseutilsInit000();
	stdlib_strutilsInit000();
	stdlib_timesInit000();
	stdlib_posixInit000();
	stdlib_osInit000();
	compiler_listsInit000();
	stdlib_etcprivInit000();
	stdlib_hashesInit000();
	stdlib_strtabsInit000();
	stdlib_streamsInit000();
	stdlib_linuxInit000();
	stdlib_cpuinfoInit000();
	stdlib_osprocInit000();
	stdlib_mathInit000();
	stdlib_setsInit000();
	compiler_optionsInit000();
	stdlib_tablesInit000();
	compiler_platformInit000();
	compiler_ropesInit000();
	stdlib_macrosInit000();
	stdlib_termiosInit000();
	stdlib_terminalInit000();
	compiler_msgsInit000();
	compiler_nversionInit000();
	compiler_identsInit000();
	compiler_condsymsInit000();
	stdlib_unsignedInit000();
	stdlib_securehashInit000();
	compiler_extccompInit000();
	compiler_wordrecgInit000();
	compiler_nimblecmdInit000();
	stdlib_parseoptInit000();
	compiler_commandsInit000();
	compiler_llstreamInit000();
	compiler_nimlexbaseInit000();
	compiler_lexerInit000();
	compiler_nimconfInit000();
	stdlib_intsetsInit000();
	compiler_idgenInit000();
	compiler_astInit000();
	compiler_rodutilsInit000();
	compiler_astalgoInit000();
	compiler_parserInit000();
	compiler_pbracesInit000();
	compiler_rendererInit000();
	compiler_filtersInit000();
	compiler_filter_tmplInit000();
	compiler_syntaxesInit000();
	compiler_treesInit000();
	compiler_typesInit000();
	stdlib_memfilesInit000();
	compiler_rodreadInit000();
	compiler_magicsysInit000();
	compiler_bitsetsInit000();
	compiler_nimsetsInit000();
	compiler_passesInit000();
	compiler_treetabInit000();
	compiler_vmdefInit000();
	compiler_semdataInit000();
	stdlib_lexbaseInit000();
	compiler_prettybaseInit000();
	compiler_lookupsInit000();
	compiler_importerInit000();
	compiler_rodwriteInit000();
	compiler_saturateInit000();
	compiler_semfoldInit000();
	compiler_procfindInit000();
	compiler_pragmasInit000();
	compiler_semtypinstInit000();
	compiler_parampatternsInit000();
	compiler_prettyInit000();
	stdlib_unicodeInit000();
	stdlib_jsonInit000();
	docutils_rstastInit000();
	docutils_rstInit000();
	docutils_highliteInit000();
	stdlib_sequtilsInit000();
	stdlib_algorithmInit000();
	docutils_rstgenInit000();
	compiler_guardsInit000();
	compiler_writetrackingInit000();
	compiler_sempass2Init000();
	stdlib_xmltreeInit000();
	stdlib_cookiesInit000();
	stdlib_cgiInit000();
	compiler_typesrendererInit000();
	compiler_docgenInit000();
	compiler_sigmatchInit000();
	compiler_cgmethInit000();
	compiler_loweringsInit000();
	compiler_lambdaliftingInit000();
	compiler_transfInit000();
	compiler_vmgenInit000();
	compiler_vmdepsInit000();
	compiler_vmmarshalInit000();
	compiler_evaltemplInit000();
	compiler_vmInit000();
	compiler_aliasesInit000();
	compiler_patternsInit000();
	compiler_semmacrosanityInit000();
	compiler_semparallelInit000();
	compiler_pluginsupportInit000();
	compiler_localsInit000();
	compiler_itersgenInit000();
	compiler_activeInit000();
	compiler_semInit000();
	compiler_ccgutilsInit000();
	compiler_cgendataInit000();
	compiler_ccgmergeInit000();
	compiler_cgenInit000();
	compiler_jsgenInit000();
	compiler_passauxInit000();
	compiler_dependsInit000();
	compiler_docgen2Init000();
	stdlib_nativesocketsInit000();
	stdlib_netInit000();
	compiler_serviceInit000();
	compiler_modulesInit000();
	compiler_mainInit000();
	compiler_nodejsInit000();
	compiler_scriptconfigInit000();
}

void PreMain() {
	void (*volatile inner)();
	systemDatInit000();
	inner = PreMainInner;
	initStackBottomWith((void *)&inner);
	(*inner)();
}

int cmdCount;
char** cmdLine;
char** gEnv;
N_CDECL(void, NimMainInner)(void) {
	nimInit000();
}

N_CDECL(void, NimMain)(void) {
	void (*volatile inner)();
	PreMain();
	inner = NimMainInner;
	initStackBottomWith((void *)&inner);
	(*inner)();
}

int main(int argc, char** args, char** env) {
	cmdLine = args;
	cmdCount = argc;
	gEnv = env;
	NimMain();
	return nim_program_result;
}

NIM_EXTERNC N_NOINLINE(void, nimInit000)(void) {
	Gcdisablemarkandsweep_9819();
	initdefines_191184();
	handlecmdline_537601();
	msgquit_184149(((NI8) ((((NI) 0) < gerrorcounter_184078))));
}

NIM_EXTERNC N_NOINLINE(void, nimDatInit000)(void) {
}

