/* Generated by Nim Compiler v0.11.2 */
/*   (c) 2015 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <string.h>
typedef struct Tglobals497027 Tglobals497027;
typedef struct Tpasscontext242005 Tpasscontext242005;
typedef struct Tsym191843 Tsym191843;
typedef struct Tjsgen497015 Tjsgen497015;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Tcell46346 Tcell46346;
typedef struct Tcellseq46362 Tcellseq46362;
typedef struct Tgcheap48216 Tgcheap48216;
typedef struct Tcellset46358 Tcellset46358;
typedef struct Tpagedesc46354 Tpagedesc46354;
typedef struct Tmemregion28210 Tmemregion28210;
typedef struct Tsmallchunk27440 Tsmallchunk27440;
typedef struct Tllchunk28204 Tllchunk28204;
typedef struct Tbigchunk27442 Tbigchunk27442;
typedef struct Tintset27417 Tintset27417;
typedef struct Ttrunk27413 Ttrunk27413;
typedef struct Tavlnode28208 Tavlnode28208;
typedef struct Tgcstat48214 Tgcstat48214;
typedef struct Ropeobj162009 Ropeobj162009;
typedef struct Tsymseq191815 Tsymseq191815;
typedef struct Intset188056 Intset188056;
typedef struct Ttrunk188052 Ttrunk188052;
typedef struct Ttrunkseq188054 Ttrunkseq188054;
typedef struct TGenericSeq TGenericSeq;
typedef struct Trodreader234030 Trodreader234030;
typedef struct NimStringDesc NimStringDesc;
typedef struct Tnode191813 Tnode191813;
typedef struct Tlineinfo164338 Tlineinfo164338;
typedef struct Ttype191849 Ttype191849;
typedef struct Tident168021 Tident168021;
typedef struct Tnodeseq191807 Tnodeseq191807;
typedef struct Tproc497033 Tproc497033;
typedef struct TY497071 TY497071;
typedef struct Tblock497025 Tblock497025;
typedef struct Tidobj168015 Tidobj168015;
typedef struct Ttypeseq191845 Ttypeseq191845;
typedef struct Tscope191837 Tscope191837;
typedef struct TY191944 TY191944;
typedef struct Tstrtable191817 Tstrtable191817;
typedef struct Tloc191827 Tloc191827;
typedef struct Tlib191831 Tlib191831;
typedef struct Tcompres497023 Tcompres497023;
typedef struct TY88145 TY88145;
typedef struct Tbasechunk27438 Tbasechunk27438;
typedef struct Tfreecell27430 Tfreecell27430;
typedef struct TY191933 TY191933;
typedef struct Tindex234028 Tindex234028;
typedef struct Tiitable199274 Tiitable199274;
typedef struct Tiipairseq199272 Tiipairseq199272;
typedef struct Tidtable191861 Tidtable191861;
typedef struct Tidpairseq191859 Tidpairseq191859;
typedef struct Memfile232208 Memfile232208;
typedef struct Tinstantiation191833 Tinstantiation191833;
typedef struct Tlistentry132022 Tlistentry132022;
typedef struct Tiipair199270 Tiipair199270;
typedef struct Tidpair191857 Tidpair191857;
typedef N_NIMCALL_PTR(void, TY3289) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3294) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3289 marker;
TY3294 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Tpasscontext242005  {
  TNimObject Sup;
NIM_BOOL fromcache;
};
struct  Tjsgen497015  {
  Tpasscontext242005 Sup;
Tsym191843* module;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  Tcell46346  {
NI refcount;
TNimType* typ;
};
struct  Tcellseq46362  {
NI len;
NI cap;
Tcell46346** d;
};
struct  Tcellset46358  {
NI counter;
NI max;
Tpagedesc46354* head;
Tpagedesc46354** data;
};
typedef Tsmallchunk27440* TY28222[512];
typedef Ttrunk27413* Ttrunkbuckets27415[256];
struct  Tintset27417  {
Ttrunkbuckets27415 data;
};
struct  Tmemregion28210  {
NI minlargeobj;
NI maxlargeobj;
TY28222 freesmallchunks;
Tllchunk28204* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Tbigchunk27442* freechunkslist;
Tintset27417 chunkstarts;
Tavlnode28208* root;
Tavlnode28208* deleted;
Tavlnode28208* last;
Tavlnode28208* freeavlnodes;
};
struct  Tgcstat48214  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Tgcheap48216  {
void* stackbottom;
NI cyclethreshold;
Tcellseq46362 zct;
Tcellseq46362 decstack;
Tcellset46358 cycleroots;
Tcellseq46362 tempstack;
NI recgclock;
Tmemregion28210 region;
Tgcstat48214 stat;
};
struct  Intset188056  {
NI counter;
NI max;
Ttrunk188052* head;
Ttrunkseq188054* data;
};
struct  Tglobals497027  {
Ropeobj162009* typeinfo;
Ropeobj162009* code;
Tsymseq191815* forwarded;
Intset188056 generatedsyms;
Intset188056 typeinfogenerated;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  Tlineinfo164338  {
NI16 line;
NI16 col;
NI32 fileindex;
};
struct  Tnode191813  {
Ttype191849* typ;
Tlineinfo164338 info;
NU16 flags;
NU8 kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym191843* sym;
} S4;
struct {Tident168021* ident;
} S5;
struct {Tnodeseq191807* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct  Tproc497033  {
Tnode191813* procdef;
Tsym191843* prc;
Ropeobj162009* locals;
Ropeobj162009* body;
NU32 options;
Tjsgen497015* module;
Tglobals497027* g;
NIM_BOOL beforeretneeded;
NU8 target;
NI unique;
TY497071* blocks;
Tproc497033* up;
};
struct  Tblock497025  {
NI id;
NIM_BOOL isloop;
};
struct  Tidobj168015  {
  TNimObject Sup;
NI id;
};
struct  Tstrtable191817  {
NI counter;
Tsymseq191815* data;
};
struct  Tloc191827  {
NU8 k;
NU8 s;
NU16 flags;
Ttype191849* t;
Ropeobj162009* r;
Ropeobj162009* heaproot;
};
struct  Tsym191843  {
  Tidobj168015 Sup;
NU8 kind;
union{
struct {Ttypeseq191845* typeinstcache;
Tscope191837* typscope;
} S1;
struct {TY191944* procinstcache;
Tsym191843* gcunsafetyreason;
} S2;
struct {TY191944* usedgenerics;
Tstrtable191817 tab;
} S3;
struct {Tsym191843* guard;
} S4;
} kindU;
NU16 magic;
Ttype191849* typ;
Tident168021* name;
Tlineinfo164338 info;
Tsym191843* owner;
NU32 flags;
Tnode191813* ast;
NU32 options;
NI position;
NI offset;
Tloc191827 loc;
Tlib191831* annex;
Tnode191813* constraint;
};
typedef Ropeobj162009* TY491436[2];
struct  Tident168021  {
  Tidobj168015 Sup;
NimStringDesc* s;
Tident168021* next;
NI h;
};
struct  Tcompres497023  {
NU8 kind;
NU8 typ;
Ropeobj162009* res;
Ropeobj162009* address;
};
struct  Ttype191849  {
  Tidobj168015 Sup;
NU8 kind;
NU8 callconv;
NU32 flags;
Ttypeseq191845* sons;
Tnode191813* n;
Tsym191843* owner;
Tsym191843* sym;
Tsym191843* destructor;
Tsym191843* deepcopy;
Tsym191843* assignment;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc191827 loc;
};
typedef Ropeobj162009* TY162572[1];
struct TY88145 {
NimStringDesc* Field0;
NI Field1;
};
typedef Ropeobj162009* TY465247[6];
typedef Ropeobj162009* TY463569[3];
typedef Ropeobj162009* TY464876[5];
typedef NU8 TY433644[20];
typedef NimStringDesc* Tmagicfrmt498453[4];
typedef Tmagicfrmt498453 Tmagicops498455[95];
typedef Ropeobj162009* TY461664[1];
typedef Ropeobj162009* TY463566[4];
typedef NI TY27420[16];
struct  Tpagedesc46354  {
Tpagedesc46354* next;
NI key;
TY27420 bits;
};
struct  Tbasechunk27438  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Tsmallchunk27440  {
  Tbasechunk27438 Sup;
Tsmallchunk27440* next;
Tsmallchunk27440* prev;
Tfreecell27430* freelist;
NI free;
NI acc;
NF data;
};
struct  Tllchunk28204  {
NI size;
NI acc;
Tllchunk28204* next;
};
struct  Tbigchunk27442  {
  Tbasechunk27438 Sup;
Tbigchunk27442* next;
Tbigchunk27442* prev;
NI align;
NF data;
};
struct  Ttrunk27413  {
Ttrunk27413* next;
NI key;
TY27420 bits;
};
typedef Tavlnode28208* TY28214[2];
struct  Tavlnode28208  {
TY28214 link;
NI key;
NI upperbound;
NI level;
};
struct  Ropeobj162009  {
  TNimObject Sup;
Ropeobj162009* left;
Ropeobj162009* right;
NI length;
NimStringDesc* data;
};
struct  Ttrunk188052  {
Ttrunk188052* next;
NI key;
TY27420 bits;
};
struct  Tiitable199274  {
NI counter;
Tiipairseq199272* data;
};
struct  Tindex234028  {
NI lastidxkey;
NI lastidxval;
Tiitable199274 tab;
NimStringDesc* r;
NI offset;
};
struct  Tidtable191861  {
NI counter;
Tidpairseq191859* data;
};
struct  Memfile232208  {
void* mem;
NI size;
NI fhandle;
NI maphandle;
};
struct  Trodreader234030  {
  TNimObject Sup;
NI pos;
NCSTRING s;
NU32 options;
NU8 reason;
TY191933* moddeps;
TY191933* files;
NI dataidx;
NI convertersidx;
NI initidx;
NI interfidx;
NI compilerprocsidx;
NI methodsidx;
NimStringDesc* filename;
Tindex234028 index;
Tindex234028 imports;
NI readerindex;
NI line;
NI moduleid;
Tidtable191861 syms;
Memfile232208 memfile;
Tsymseq191815* methods;
NimStringDesc* origfile;
NIM_BOOL inviewmode;
};
struct  Tscope191837  {
NI depthlevel;
Tstrtable191817 symbols;
Tnodeseq191807* usingsyms;
Tscope191837* parent;
};
struct  Tlistentry132022  {
  TNimObject Sup;
Tlistentry132022* prev;
Tlistentry132022* next;
};
struct  Tlib191831  {
  Tlistentry132022 Sup;
NU8 kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj162009* name;
Tnode191813* path;
};
struct  Tfreecell27430  {
Tfreecell27430* next;
NI zerofield;
};
struct  Tiipair199270  {
NI key;
NI val;
};
struct  Tidpair191857  {
Tidobj168015* key;
TNimObject* val;
};
struct  Tinstantiation191833  {
Tsym191843* sym;
Ttypeseq191845* concretetypes;
TY191933* usedby;
};
struct Tsymseq191815 {
  TGenericSeq Sup;
  Tsym191843* data[SEQ_DECL_SIZE];
};
struct TY497071 {
  TGenericSeq Sup;
  Tblock497025 data[SEQ_DECL_SIZE];
};
struct Ttrunkseq188054 {
  TGenericSeq Sup;
  Ttrunk188052* data[SEQ_DECL_SIZE];
};
struct Tnodeseq191807 {
  TGenericSeq Sup;
  Tnode191813* data[SEQ_DECL_SIZE];
};
struct Ttypeseq191845 {
  TGenericSeq Sup;
  Ttype191849* data[SEQ_DECL_SIZE];
};
struct TY191944 {
  TGenericSeq Sup;
  Tinstantiation191833* data[SEQ_DECL_SIZE];
};
struct TY191933 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct Tiipairseq199272 {
  TGenericSeq Sup;
  Tiipair199270 data[SEQ_DECL_SIZE];
};
struct Tidpairseq191859 {
  TGenericSeq Sup;
  Tidpair191857 data[SEQ_DECL_SIZE];
};
N_NIMCALL(Tjsgen497015*, newmodule_504515)(Tsym191843* module);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP4360)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(Tcell46346*, usrtocell_49846)(void* usr);
static N_INLINE(void, rtladdzct_51404)(Tcell46346* c);
N_NOINLINE(void, addzct_49817)(Tcellseq46362* s, Tcell46346* c);
N_NIMCALL(Tglobals497027*, newglobals_497084)(void);
N_NIMCALL(void, TMP4362)(void* p, NI op);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(void, initintset_188927)(Intset188056* Result);
N_NIMCALL(void, internalerror_166218)(NimStringDesc* errmsg);
static N_INLINE(NIM_BOOL, skipcodegen_242083)(Tnode191813* n);
N_NIMCALL(void, internalerror_166199)(Tlineinfo164338 info, NimStringDesc* errmsg);
N_NIMCALL(Tproc497033*, newproc_497207)(Tglobals497027* globals, Tjsgen497015* module, Tnode191813* procdef, NU32 options);
N_NIMCALL(void, TMP4370)(void* p, NI op);
N_NIMCALL(void, TMP4371)(void* p, NI op);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_52222)(Tcell46346* c);
static N_INLINE(NIM_BOOL, canbecycleroot_49867)(Tcell46346* c);
static N_INLINE(void, rtladdcycleroot_50623)(Tcell46346* c);
N_NOINLINE(void, incl_47065)(Tcellset46358* s, Tcell46346* cell);
static N_INLINE(void, decref_51804)(Tcell46346* c);
N_NIMCALL(void, genmodule_504556)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, addf_163635)(Ropeobj162009** c, NimStringDesc* frmt, Ropeobj162009** args, NI argsLen0);
N_NIMCALL(Ropeobj162009*, makejsstring_497305)(NimStringDesc* s);
N_NIMCALL(Ropeobj162009*, rope_162320)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, nsuEscape)(NimStringDesc* s, NimStringDesc* prefix, NimStringDesc* suffix);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_165266)(NI32 fileidx);
N_NIMCALL(void, genstmt_497825)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, gen_497816)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, gensym_501782)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(NU8, maptype_497256)(Ttype191849* typ);
N_NIMCALL(Ttype191849*, skiptypes_195167)(Ttype191849* t, NU64 kinds);
N_NIMCALL(Ttype191849*, lastson_194442)(Ttype191849* n);
N_NIMCALL(Ropeobj162009*, HEX25_163235)(NimStringDesc* frmt, Ropeobj162009** args, NI argsLen0);
N_NIMCALL(Ropeobj162009*, HEX26_162471)(Ropeobj162009* a, NimStringDesc* b);
N_NIMCALL(NIM_BOOL, isindirect_501600)(Tsym191843* v);
N_NIMCALL(void, genconstant_497839)(Tproc497033* p, Tsym191843* c);
N_NIMCALL(NIM_BOOL, containsorincl_188898)(Intset188056* s, NI key);
N_NIMCALL(void, genvarinit_502623)(Tproc497033* p, Tsym191843* v, Tnode191813* n);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(Ropeobj162009*, manglename_497277)(Tsym191843* s);
N_NIMCALL(NimStringDesc*, mangle_455896)(NimStringDesc* name);
N_NIMCALL(void, add_162545)(Ropeobj162009** a, NimStringDesc* b);
N_NIMCALL(void, add_162534)(Ropeobj162009** a, Ropeobj162009* b);
N_NIMCALL(Ropeobj162009*, rope_162407)(NI64 i);
N_NIMCALL(Ropeobj162009*, createvar_502318)(Tproc497033* p, Ttype191849* typ, NIM_BOOL indirect);
N_NIMCALL(Ropeobj162009*, puttoseq_502305)(NimStringDesc* s, NIM_BOOL indirect);
N_NIMCALL(NI64, lengthord_221016)(Ttype191849* t);
N_NIMCALL(Ttype191849*, elemtype_221522)(Ttype191849* t);
N_NIMCALL(void, usemagic_497846)(Tproc497033* p, NimStringDesc* name);
N_NIMCALL(Tsym191843*, getcompilerproc_239036)(NimStringDesc* name);
N_NIMCALL(NimStringDesc*, HEX24_166306)(TY88145 x);
N_NIMCALL(Ropeobj162009*, genproc_497832)(Tproc497033* oldproc, Tsym191843* prc);
N_NIMCALL(Ropeobj162009*, generateheader_500806)(Tproc497033* p, Ttype191849* typ);
N_NIMCALL(NI, sonslen_194403)(Tnode191813* n);
static N_INLINE(NIM_BOOL, iscompiletimeonly_230712)(Ttype191849* t);
N_NIMCALL(Tnode191813*, getbody_236648)(Tsym191843* s);
N_NIMCALL(Ropeobj162009*, genprocbody_504083)(Tproc497033* p, Tsym191843* prc);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(void, globalerror_166134)(Tlineinfo164338 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, rawmessage_165960)(NU16 msg, NimStringDesc* arg);
N_NIMCALL(Ropeobj162009*, gentypeinfo_497315)(Tproc497033* p, Ttype191849* typ);
N_NIMCALL(void, prepend_163205)(Ropeobj162009** a, Ropeobj162009* b);
N_NIMCALL(void, genenuminfo_497634)(Tproc497033* p, Ttype191849* typ, Ropeobj162009* name);
N_NIMCALL(void, genobjectinfo_497506)(Tproc497033* p, Ttype191849* typ, Ropeobj162009* name);
N_NIMCALL(Ropeobj162009*, genobjectfields_497319)(Tproc497033* p, Ttype191849* typ, Tnode191813* n);
N_NIMCALL(NI64, getordvalue_221178)(Tnode191813* n);
N_NIMCALL(Tnode191813*, lastson_194431)(Tnode191813* n);
N_NIMCALL(void, gentupleinfo_497608)(Tproc497033* p, Ttype191849* typ, Ropeobj162009* name);
N_NIMCALL(Ropeobj162009*, gentuplefields_497556)(Tproc497033* p, Ttype191849* typ);
N_NIMCALL(NI, len_194377)(Ttype191849* n);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_84329, TNimType* typ);
N_NIMCALL(NI, sonslen_194351)(Ttype191849* n);
N_NIMCALL(Ropeobj162009*, createrecordvaraux_502326)(Tproc497033* p, Tnode191813* rec, NI* c);
N_NIMCALL(NIM_BOOL, needsnocopy_501065)(Tnode191813* y);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
static N_INLINE(NIM_BOOL, isemptytype_196933)(Ttype191849* t);
N_NIMCALL(NimStringDesc*, tostrmaxprecision_198024)(NF f);
N_NIMCALL(void, genmagic_503508)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genor_498252)(Tproc497033* p, Tnode191813* a, Tnode191813* b, Tcompres497023* r);
N_NIMCALL(NIM_BOOL, issimpleexpr_497903)(Tnode191813* n);
static N_INLINE(NI, len_192097)(Tnode191813* n);
static N_INLINE(NIM_BOOL, isatom_196905)(Tnode191813* n);
static N_INLINE(Ropeobj162009*, rdloc_497127)(Tcompres497023 a);
N_NIMCALL(Ropeobj162009*, gettemp_497962)(Tproc497033* p);
N_NIMCALL(void, genand_497995)(Tproc497033* p, Tnode191813* a, Tnode191813* b, Tcompres497023* r);
N_NIMCALL(void, arith_498967)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NU16 op);
N_NIMCALL(void, arithaux_498919)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NU16 op, Tmagicops498455 ops);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, genrepr_503428)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, unaryexpr_498902)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genswap_501168)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, binaryexpr_498850)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genconstrstr_503330)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, gennew_503265)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(NI64, getsize_221190)(Ttype191849* typ);
N_NIMCALL(void, genord_503307)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, gennewseq_503284)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, genof_503445)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genreset_503490)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, genecho_502236)(Tproc497033* p, Tnode191813* n_502239, Tcompres497023* r);
N_NIMCALL(Tnode191813*, skipconv_230935)(Tnode191813* n);
static N_INLINE(Tnode191813*, HEX5BHEX5D_192244)(Tnode191813* n, NI i);
N_NIMCALL(void, genarg_502068)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, localerror_166155)(Tlineinfo164338 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, ternaryexpr_498874)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, gencall_502147)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genargs_502096)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, geninfixcall_502160)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, globalerror_166145)(Tlineinfo164338 info, NimStringDesc* arg);
N_NIMCALL(void, gensetconstr_503589)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genarrayconstr_503657)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, gentupleconstr_503706)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genobjconstr_503777)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genconv_503873)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genaddr_501677)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, gencheckedfieldaddr_501415)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genfieldaddr_501275)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(NI, getfieldposition_501262)(Tnode191813* f);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(NimStringDesc*, HEX24_163131)(Ropeobj162009* r);
N_NIMCALL(void, genarrayaddr_501468)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(NI64, firstord_221004)(Ttype191849* t);
N_NIMCALL(NIM_BOOL, isconstexpr_220428)(Tnode191813* n);
N_NIMCALL(void, genderef_502030)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genarrayaccess_501554)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genfieldaccess_501358)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, gencheckedfieldaccess_501455)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, upconv_503911)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genrangechck_503924)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NimStringDesc* magic);
N_NIMCALL(void, convstrtocstr_503958)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, convcstrtostr_503997)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genblock_499931)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, genif_500645)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, moveinto_499221)(Tproc497033* p, Tcompres497023* src, Tcompres497023 dest);
N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NIM_CHAR c, NI count);
N_NIMCALL(void, genwhilestmt_499124)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, genlinedir_498989)(Tproc497033* p, Tnode191813* n);
static N_INLINE(NI, tolinenumber_165439)(Tlineinfo164338 info);
N_NIMCALL(void, genvarstmt_502753)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(Tnode191813*, lowertupleunpacking_358087)(Tnode191813* n, Tsym191843* owner);
N_NIMCALL(void, gencasejs_499608)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(Tnode191813*, copynode_195640)(Tnode191813* src);
N_NIMCALL(void, gencaselua_499775)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genreturnstmt_504036)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, genbreakstmt_500032)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, genasgn_501144)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, genasgnaux_501096)(Tproc497033* p, Tnode191813* x, Tnode191813* y, NIM_BOOL nocopyneeded);
N_NIMCALL(void, genfastasgn_501156)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, genasmstmt_500445)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(void, gentry_499257)(Tproc497033* p, Tnode191813* n, Tcompres497023* r);
N_NIMCALL(void, genraisestmt_499577)(Tproc497033* p, Tnode191813* n);
N_NIMCALL(Tnode191813*, myprocess_504597)(Tpasscontext242005* b, Tnode191813* n);
N_NIMCALL(Ropeobj162009*, wholecode_504625)(Tjsgen497015* m);
N_NIMCALL(Tnode191813*, generatemethoddispatchers_357208)(void);
N_NIMCALL(Ropeobj162009*, HEX26_162436)(Ropeobj162009* a, Ropeobj162009* b);
N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_NIMCALL(NimStringDesc*, HEX2F_118492)(NimStringDesc* head, NimStringDesc* tail);
N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_NIMCALL(NimStringDesc*, completecfilepath_171912)(NimStringDesc* cfile, NIM_BOOL createsubdir);
N_NIMCALL(NIM_BOOL, writeropeifnotequal_163930)(Ropeobj162009* r, NimStringDesc* filename);
N_NIMCALL(Ropeobj162009*, genheader_504545)(void);
STRING_LITERAL(TMP4363, "symbol files are not possible with the JS code generator", 56);
STRING_LITERAL(TMP4364, "myProcess", 9);
STRING_LITERAL(TMP4372, "var F = {procname:$1,prev:framePtr,filename:$2,line:0};$nframeP"
"tr = F;$n", 72);
STRING_LITERAL(TMP4373, "null", 4);
STRING_LITERAL(TMP4374, "\"", 1);
STRING_LITERAL(TMP4375, "module ", 7);
STRING_LITERAL(TMP4376, "symbol has no generated name: ", 30);
STRING_LITERAL(TMP4377, "$1[0]", 5);
STRING_LITERAL(TMP4378, "$1[1]", 5);
STRING_LITERAL(TMP4379, "_Idx", 4);
STRING_LITERAL(TMP4380, "var $1 = $2;$n", 14);
STRING_LITERAL(TMP4381, "local $1 = $2;$n", 16);
STRING_LITERAL(TMP4382, "_", 1);
STRING_LITERAL(TMP4383, "[$1]", 4);
STRING_LITERAL(TMP4384, "0", 1);
STRING_LITERAL(TMP4385, "0.0", 3);
STRING_LITERAL(TMP4386, "{}", 2);
STRING_LITERAL(TMP4387, "false", 5);
STRING_LITERAL(TMP4389, "jsgen.nim", 9);
NIM_CONST TY88145 TMP4388 = {((NimStringDesc*) &TMP4389),
((NI) 180)}
;
STRING_LITERAL(TMP4390, ", ", 2);
STRING_LITERAL(TMP4391, "var $# = $#;$n", 14);
STRING_LITERAL(TMP4392, "local $# = $#;$n", 16);
STRING_LITERAL(TMP4393, "return $#;$n", 12);
STRING_LITERAL(TMP4394, "function $#($#) {$n$#$#$#$#}$n", 30);
STRING_LITERAL(TMP4395, "function $#($#) $n$#$#$#$#$nend$n", 33);
STRING_LITERAL(TMP4396, "var F={procname:$1,prev:framePtr,filename:$2,line:0};$n", 55);
STRING_LITERAL(TMP4397, "local F={procname=$#,prev=framePtr,filename=$#,line=0};$n", 57);
STRING_LITERAL(TMP4398, "framePtr = F;$n", 15);
STRING_LITERAL(TMP4399, "BeforeRet: do {$n$1} while (false); $n", 38);
STRING_LITERAL(TMP4400, "$#;::BeforeRet::$n", 18);
STRING_LITERAL(TMP4401, "try {$n$1} catch (e) {$n alert(\"Unhandled exception:\\n\" + e.mes"
"sage + \"\\n\"$n}", 77);
STRING_LITERAL(TMP4402, "framePtr = framePtr.prev;", 25);
STRING_LITERAL(TMP4403, "arrayConstr", 11);
STRING_LITERAL(TMP4404, "nimCopy", 7);
STRING_LITERAL(TMP4405, "arrayConstr($1, $2, $3)", 23);
STRING_LITERAL(TMP4406, "NTI$1", 5);
STRING_LITERAL(TMP4407, "var $1 = {size: 0,kind: $2,base: null,node: null,finalizer: nul"
"l};$n", 68);
STRING_LITERAL(TMP4408, "$1.base = $2;$n", 15);
STRING_LITERAL(TMP4409, "genEnumInfo", 11);
STRING_LITERAL(TMP4410, "{kind: 1, offset: $1, typ: $2, name: $3, len: 0, sons: null}", 60);
STRING_LITERAL(TMP4411, "var NNI$1 = {kind: 2, offset: 0, typ: null, name: null, len: $2"
", sons: [$3]};$n", 79);
STRING_LITERAL(TMP4412, "var $1 = {size: 0, kind: $2, base: null, node: null, finalizer:"
" null};$n", 72);
STRING_LITERAL(TMP4413, "$1.node = NNI$2;$n", 18);
STRING_LITERAL(TMP4414, "var NNI$1 = $2;$n", 17);
STRING_LITERAL(TMP4415, "{kind: 2, len: $1, offset: 0, typ: null, name: null, sons: [$2]"
"}", 64);
STRING_LITERAL(TMP4416, "{kind: 1, offset: \"$1\", len: 0, typ: $2, name: $3, sons: null}", 62);
STRING_LITERAL(TMP4417, "genObjectFields", 15);
STRING_LITERAL(TMP4418, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TMP4419, "[$1, $2]", 8);
STRING_LITERAL(TMP4420, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TMP4421, "[SetConstr($1), $2]", 19);
STRING_LITERAL(TMP4422, "{kind: 3, offset: \"$1\", len: $3, typ: $2, name: $4, sons: [$5]}", 63);
STRING_LITERAL(TMP4423, "{kind: 1, offset: \"Field$1\", len: 0, typ: $2, name: \"Field$1\", "
"sons: null}", 74);
STRING_LITERAL(TMP4424, "genTypeInfo(", 12);
STRING_LITERAL(TMP4425, "[", 1);
STRING_LITERAL(TMP4426, "]", 1);
STRING_LITERAL(TMP4427, "{", 1);
STRING_LITERAL(TMP4428, "Field$1: $2", 11);
STRING_LITERAL(TMP4429, "Field$# = $#", 12);
STRING_LITERAL(TMP4430, "}", 1);
STRING_LITERAL(TMP4431, "m_type: $1", 10);
STRING_LITERAL(TMP4432, "m_type = $#", 11);
STRING_LITERAL(TMP4433, ": ", 2);
STRING_LITERAL(TMP4434, "createRecordVarAux", 18);
STRING_LITERAL(TMP4435, "[null, 0]", 9);
STRING_LITERAL(TMP4436, "{nil, 0}", 8);
STRING_LITERAL(TMP4437, "nil", 3);
STRING_LITERAL(TMP4438, "createVar: ", 11);
static NIM_CONST TY433644 TMP4439 = {
0xE0, 0x07, 0x77, 0xFC, 0xE1, 0x00, 0x00, 0x00,
0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TMP4440, "nimCopy($1, $2)", 15);
STRING_LITERAL(TMP4441, "genVarInit", 10);
STRING_LITERAL(TMP4442, "var $1 = [$2, $3];$n", 20);
STRING_LITERAL(TMP4443, "local $1 = {$2, $3};$n", 22);
STRING_LITERAL(TMP4444, "var $1 = $2; var $1_Idx = $3;$n", 31);
STRING_LITERAL(TMP4445, "local $1 = $2; local $1_Idx = $3;$n", 35);
STRING_LITERAL(TMP4446, "var $1 = /**/[$2];$n", 20);
STRING_LITERAL(TMP4447, "local $1 = {$2};$n", 18);
STRING_LITERAL(TMP4448, "null", 4);
STRING_LITERAL(TMP4449, "nil", 3);
STRING_LITERAL(TMP4450, "0", 1);
STRING_LITERAL(TMP4451, "cstrToNimstr", 12);
STRING_LITERAL(TMP4452, "cstrToNimstr($1)", 16);
STRING_LITERAL(TMP4453, "NaN", 3);
STRING_LITERAL(TMP4454, "0.0", 3);
STRING_LITERAL(TMP4455, "Infinity", 8);
STRING_LITERAL(TMP4456, "-Infinity", 9);
STRING_LITERAL(TMP4457, "($1 || $2)", 10);
STRING_LITERAL(TMP4458, "($1 or $2)", 10);
STRING_LITERAL(TMP4459, "Tmp$1", 5);
STRING_LITERAL(TMP4460, "var $1;$n", 9);
STRING_LITERAL(TMP4461, "local $1;$n", 11);
STRING_LITERAL(TMP4462, "if ($1) $2 = true; else {", 25);
STRING_LITERAL(TMP4463, "if $1 then $2 = true; else", 26);
STRING_LITERAL(TMP4464, "$2 = $1; }", 10);
STRING_LITERAL(TMP4465, "$2 = $1 end", 11);
STRING_LITERAL(TMP4466, "($1 && $2)", 10);
STRING_LITERAL(TMP4467, "($1 and $2)", 11);
STRING_LITERAL(TMP4468, "if (!$1) $2 = false; else {", 27);
STRING_LITERAL(TMP4469, "if not $1 then $2 = false; else", 31);
STRING_LITERAL(TMP4470, "addInt", 6);
STRING_LITERAL(TMP4471, "", 0);
STRING_LITERAL(TMP4472, "addInt($1, $2)", 14);
STRING_LITERAL(TMP4473, "($1 + $2)", 9);
STRING_LITERAL(TMP4474, "subInt", 6);
STRING_LITERAL(TMP4475, "subInt($1, $2)", 14);
STRING_LITERAL(TMP4476, "($1 - $2)", 9);
STRING_LITERAL(TMP4477, "mulInt", 6);
STRING_LITERAL(TMP4478, "mulInt($1, $2)", 14);
STRING_LITERAL(TMP4479, "($1 * $2)", 9);
STRING_LITERAL(TMP4480, "divInt", 6);
STRING_LITERAL(TMP4481, "divInt($1, $2)", 14);
STRING_LITERAL(TMP4482, "Math.floor($1 / $2)", 19);
STRING_LITERAL(TMP4483, "modInt", 6);
STRING_LITERAL(TMP4484, "modInt($1, $2)", 14);
STRING_LITERAL(TMP4485, "Math.floor($1 % $2)", 19);
STRING_LITERAL(TMP4486, "addInt64", 8);
STRING_LITERAL(TMP4487, "addInt64($1, $2)", 16);
STRING_LITERAL(TMP4488, "subInt64", 8);
STRING_LITERAL(TMP4489, "subInt64($1, $2)", 16);
STRING_LITERAL(TMP4490, "mulInt64", 8);
STRING_LITERAL(TMP4491, "mulInt64($1, $2)", 16);
STRING_LITERAL(TMP4492, "divInt64", 8);
STRING_LITERAL(TMP4493, "divInt64($1, $2)", 16);
STRING_LITERAL(TMP4494, "modInt64", 8);
STRING_LITERAL(TMP4495, "modInt64($1, $2)", 16);
STRING_LITERAL(TMP4496, "($1 / $2)", 9);
STRING_LITERAL(TMP4497, "($1 >>> $2)", 11);
STRING_LITERAL(TMP4498, "($1 << $2)", 10);
STRING_LITERAL(TMP4499, "($1 & $2)", 9);
STRING_LITERAL(TMP4500, "($1 | $2)", 9);
STRING_LITERAL(TMP4501, "($1 ^ $2)", 9);
STRING_LITERAL(TMP4502, "nimMin", 6);
STRING_LITERAL(TMP4503, "nimMin($1, $2)", 14);
STRING_LITERAL(TMP4504, "nimMax", 6);
STRING_LITERAL(TMP4505, "nimMax($1, $2)", 14);
STRING_LITERAL(TMP4506, "addU", 4);
STRING_LITERAL(TMP4507, "addU($1, $2)", 12);
STRING_LITERAL(TMP4508, "subU", 4);
STRING_LITERAL(TMP4509, "subU($1, $2)", 12);
STRING_LITERAL(TMP4510, "mulU", 4);
STRING_LITERAL(TMP4511, "mulU($1, $2)", 12);
STRING_LITERAL(TMP4512, "divU", 4);
STRING_LITERAL(TMP4513, "divU($1, $2)", 12);
STRING_LITERAL(TMP4514, "modU", 4);
STRING_LITERAL(TMP4515, "modU($1, $2)", 12);
STRING_LITERAL(TMP4516, "($1 == $2)", 10);
STRING_LITERAL(TMP4517, "($1 <= $2)", 10);
STRING_LITERAL(TMP4518, "($1 < $2)", 9);
STRING_LITERAL(TMP4519, "leU", 3);
STRING_LITERAL(TMP4520, "leU($1, $2)", 11);
STRING_LITERAL(TMP4521, "ltU", 3);
STRING_LITERAL(TMP4522, "ltU($1, $2)", 11);
STRING_LITERAL(TMP4523, "leU64", 5);
STRING_LITERAL(TMP4524, "leU64($1, $2)", 13);
STRING_LITERAL(TMP4525, "ltU64", 5);
STRING_LITERAL(TMP4526, "ltU64($1, $2)", 13);
STRING_LITERAL(TMP4527, "($1 != $2)", 10);
STRING_LITERAL(TMP4528, "negInt", 6);
STRING_LITERAL(TMP4529, "negInt($1)", 10);
STRING_LITERAL(TMP4530, "-($1)", 5);
STRING_LITERAL(TMP4531, "negInt64", 8);
STRING_LITERAL(TMP4532, "negInt64($1)", 12);
STRING_LITERAL(TMP4533, "absInt", 6);
STRING_LITERAL(TMP4534, "absInt($1)", 10);
STRING_LITERAL(TMP4535, "Math.abs($1)", 12);
STRING_LITERAL(TMP4536, "absInt64", 8);
STRING_LITERAL(TMP4537, "absInt64($1)", 12);
STRING_LITERAL(TMP4538, "!($1)", 5);
STRING_LITERAL(TMP4539, "+($1)", 5);
STRING_LITERAL(TMP4540, "~($1)", 5);
STRING_LITERAL(TMP4541, "Ze8ToI", 6);
STRING_LITERAL(TMP4542, "Ze8ToI($1)", 10);
STRING_LITERAL(TMP4543, "Ze8ToI64", 8);
STRING_LITERAL(TMP4544, "Ze8ToI64($1)", 12);
STRING_LITERAL(TMP4545, "Ze16ToI", 7);
STRING_LITERAL(TMP4546, "Ze16ToI($1)", 11);
STRING_LITERAL(TMP4547, "Ze16ToI64", 9);
STRING_LITERAL(TMP4548, "Ze16ToI64($1)", 13);
STRING_LITERAL(TMP4549, "Ze32ToI64", 9);
STRING_LITERAL(TMP4550, "Ze32ToI64($1)", 13);
STRING_LITERAL(TMP4551, "ZeIToI64", 8);
STRING_LITERAL(TMP4552, "ZeIToI64($1)", 12);
STRING_LITERAL(TMP4553, "toU8", 4);
STRING_LITERAL(TMP4554, "toU8($1)", 8);
STRING_LITERAL(TMP4555, "toU16", 5);
STRING_LITERAL(TMP4556, "toU16($1)", 9);
STRING_LITERAL(TMP4557, "toU32", 5);
STRING_LITERAL(TMP4558, "toU32($1)", 9);
STRING_LITERAL(TMP4559, "$1", 2);
STRING_LITERAL(TMP4560, "Math.floor($1)", 14);
STRING_LITERAL(TMP4561, "nimCharToStr", 12);
STRING_LITERAL(TMP4562, "nimCharToStr($1)", 16);
STRING_LITERAL(TMP4563, "nimBoolToStr", 12);
STRING_LITERAL(TMP4564, "nimBoolToStr($1)", 16);
STRING_LITERAL(TMP4565, "cstrToNimstr(($1)+\"\")", 21);
NIM_CONST Tmagicops498455 jsops_498461 = {{((NimStringDesc*) &TMP4470),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4472),
((NimStringDesc*) &TMP4473)}
,
{((NimStringDesc*) &TMP4474),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4475),
((NimStringDesc*) &TMP4476)}
,
{((NimStringDesc*) &TMP4477),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4478),
((NimStringDesc*) &TMP4479)}
,
{((NimStringDesc*) &TMP4480),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4481),
((NimStringDesc*) &TMP4482)}
,
{((NimStringDesc*) &TMP4483),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4484),
((NimStringDesc*) &TMP4485)}
,
{((NimStringDesc*) &TMP4486),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4487),
((NimStringDesc*) &TMP4473)}
,
{((NimStringDesc*) &TMP4488),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4489),
((NimStringDesc*) &TMP4476)}
,
{((NimStringDesc*) &TMP4490),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4491),
((NimStringDesc*) &TMP4479)}
,
{((NimStringDesc*) &TMP4492),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4493),
((NimStringDesc*) &TMP4482)}
,
{((NimStringDesc*) &TMP4494),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4495),
((NimStringDesc*) &TMP4485)}
,
{((NimStringDesc*) &TMP4470),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4472),
((NimStringDesc*) &TMP4473)}
,
{((NimStringDesc*) &TMP4474),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4475),
((NimStringDesc*) &TMP4476)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4473),
((NimStringDesc*) &TMP4473)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4476),
((NimStringDesc*) &TMP4476)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4479),
((NimStringDesc*) &TMP4479)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4496),
((NimStringDesc*) &TMP4496)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4497),
((NimStringDesc*) &TMP4497)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4498),
((NimStringDesc*) &TMP4498)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4499),
((NimStringDesc*) &TMP4499)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4500),
((NimStringDesc*) &TMP4500)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4501),
((NimStringDesc*) &TMP4501)}
,
{((NimStringDesc*) &TMP4502),
((NimStringDesc*) &TMP4502),
((NimStringDesc*) &TMP4503),
((NimStringDesc*) &TMP4503)}
,
{((NimStringDesc*) &TMP4504),
((NimStringDesc*) &TMP4504),
((NimStringDesc*) &TMP4505),
((NimStringDesc*) &TMP4505)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4497),
((NimStringDesc*) &TMP4497)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4498),
((NimStringDesc*) &TMP4498)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4499),
((NimStringDesc*) &TMP4499)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4500),
((NimStringDesc*) &TMP4500)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4501),
((NimStringDesc*) &TMP4501)}
,
{((NimStringDesc*) &TMP4502),
((NimStringDesc*) &TMP4502),
((NimStringDesc*) &TMP4503),
((NimStringDesc*) &TMP4503)}
,
{((NimStringDesc*) &TMP4504),
((NimStringDesc*) &TMP4504),
((NimStringDesc*) &TMP4505),
((NimStringDesc*) &TMP4505)}
,
{((NimStringDesc*) &TMP4506),
((NimStringDesc*) &TMP4506),
((NimStringDesc*) &TMP4507),
((NimStringDesc*) &TMP4507)}
,
{((NimStringDesc*) &TMP4508),
((NimStringDesc*) &TMP4508),
((NimStringDesc*) &TMP4509),
((NimStringDesc*) &TMP4509)}
,
{((NimStringDesc*) &TMP4510),
((NimStringDesc*) &TMP4510),
((NimStringDesc*) &TMP4511),
((NimStringDesc*) &TMP4511)}
,
{((NimStringDesc*) &TMP4512),
((NimStringDesc*) &TMP4512),
((NimStringDesc*) &TMP4513),
((NimStringDesc*) &TMP4513)}
,
{((NimStringDesc*) &TMP4514),
((NimStringDesc*) &TMP4514),
((NimStringDesc*) &TMP4515),
((NimStringDesc*) &TMP4515)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4519),
((NimStringDesc*) &TMP4519),
((NimStringDesc*) &TMP4520),
((NimStringDesc*) &TMP4520)}
,
{((NimStringDesc*) &TMP4521),
((NimStringDesc*) &TMP4521),
((NimStringDesc*) &TMP4522),
((NimStringDesc*) &TMP4522)}
,
{((NimStringDesc*) &TMP4523),
((NimStringDesc*) &TMP4523),
((NimStringDesc*) &TMP4524),
((NimStringDesc*) &TMP4524)}
,
{((NimStringDesc*) &TMP4525),
((NimStringDesc*) &TMP4525),
((NimStringDesc*) &TMP4526),
((NimStringDesc*) &TMP4526)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4527),
((NimStringDesc*) &TMP4527)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4528),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4529),
((NimStringDesc*) &TMP4530)}
,
{((NimStringDesc*) &TMP4531),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4532),
((NimStringDesc*) &TMP4530)}
,
{((NimStringDesc*) &TMP4533),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4534),
((NimStringDesc*) &TMP4535)}
,
{((NimStringDesc*) &TMP4536),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4537),
((NimStringDesc*) &TMP4535)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4538),
((NimStringDesc*) &TMP4538)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4539),
((NimStringDesc*) &TMP4539)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4540),
((NimStringDesc*) &TMP4540)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4540),
((NimStringDesc*) &TMP4540)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4539),
((NimStringDesc*) &TMP4539)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4530),
((NimStringDesc*) &TMP4530)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4535),
((NimStringDesc*) &TMP4535)}
,
{((NimStringDesc*) &TMP4541),
((NimStringDesc*) &TMP4541),
((NimStringDesc*) &TMP4542),
((NimStringDesc*) &TMP4542)}
,
{((NimStringDesc*) &TMP4543),
((NimStringDesc*) &TMP4543),
((NimStringDesc*) &TMP4544),
((NimStringDesc*) &TMP4544)}
,
{((NimStringDesc*) &TMP4545),
((NimStringDesc*) &TMP4545),
((NimStringDesc*) &TMP4546),
((NimStringDesc*) &TMP4546)}
,
{((NimStringDesc*) &TMP4547),
((NimStringDesc*) &TMP4547),
((NimStringDesc*) &TMP4548),
((NimStringDesc*) &TMP4548)}
,
{((NimStringDesc*) &TMP4549),
((NimStringDesc*) &TMP4549),
((NimStringDesc*) &TMP4550),
((NimStringDesc*) &TMP4550)}
,
{((NimStringDesc*) &TMP4551),
((NimStringDesc*) &TMP4551),
((NimStringDesc*) &TMP4552),
((NimStringDesc*) &TMP4552)}
,
{((NimStringDesc*) &TMP4553),
((NimStringDesc*) &TMP4553),
((NimStringDesc*) &TMP4554),
((NimStringDesc*) &TMP4554)}
,
{((NimStringDesc*) &TMP4555),
((NimStringDesc*) &TMP4555),
((NimStringDesc*) &TMP4556),
((NimStringDesc*) &TMP4556)}
,
{((NimStringDesc*) &TMP4557),
((NimStringDesc*) &TMP4557),
((NimStringDesc*) &TMP4558),
((NimStringDesc*) &TMP4558)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4559),
((NimStringDesc*) &TMP4559)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4559),
((NimStringDesc*) &TMP4559)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4560),
((NimStringDesc*) &TMP4560)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4560),
((NimStringDesc*) &TMP4560)}
,
{((NimStringDesc*) &TMP4561),
((NimStringDesc*) &TMP4561),
((NimStringDesc*) &TMP4562),
((NimStringDesc*) &TMP4562)}
,
{((NimStringDesc*) &TMP4563),
((NimStringDesc*) &TMP4563),
((NimStringDesc*) &TMP4564),
((NimStringDesc*) &TMP4564)}
,
{((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4565),
((NimStringDesc*) &TMP4565)}
,
{((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4565),
((NimStringDesc*) &TMP4565)}
,
{((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4565),
((NimStringDesc*) &TMP4565)}
,
{((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4452),
((NimStringDesc*) &TMP4452)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4559),
((NimStringDesc*) &TMP4559)}
}
;
STRING_LITERAL(TMP4566, "not ($1)", 8);
NIM_CONST Tmagicops498455 luaops_498654 = {{((NimStringDesc*) &TMP4470),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4472),
((NimStringDesc*) &TMP4473)}
,
{((NimStringDesc*) &TMP4474),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4475),
((NimStringDesc*) &TMP4476)}
,
{((NimStringDesc*) &TMP4477),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4478),
((NimStringDesc*) &TMP4479)}
,
{((NimStringDesc*) &TMP4480),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4481),
((NimStringDesc*) &TMP4482)}
,
{((NimStringDesc*) &TMP4483),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4484),
((NimStringDesc*) &TMP4485)}
,
{((NimStringDesc*) &TMP4486),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4487),
((NimStringDesc*) &TMP4473)}
,
{((NimStringDesc*) &TMP4488),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4489),
((NimStringDesc*) &TMP4476)}
,
{((NimStringDesc*) &TMP4490),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4491),
((NimStringDesc*) &TMP4479)}
,
{((NimStringDesc*) &TMP4492),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4493),
((NimStringDesc*) &TMP4482)}
,
{((NimStringDesc*) &TMP4494),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4495),
((NimStringDesc*) &TMP4485)}
,
{((NimStringDesc*) &TMP4470),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4472),
((NimStringDesc*) &TMP4473)}
,
{((NimStringDesc*) &TMP4474),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4475),
((NimStringDesc*) &TMP4476)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4473),
((NimStringDesc*) &TMP4473)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4476),
((NimStringDesc*) &TMP4476)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4479),
((NimStringDesc*) &TMP4479)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4496),
((NimStringDesc*) &TMP4496)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4497),
((NimStringDesc*) &TMP4497)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4498),
((NimStringDesc*) &TMP4498)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4499),
((NimStringDesc*) &TMP4499)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4500),
((NimStringDesc*) &TMP4500)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4501),
((NimStringDesc*) &TMP4501)}
,
{((NimStringDesc*) &TMP4502),
((NimStringDesc*) &TMP4502),
((NimStringDesc*) &TMP4503),
((NimStringDesc*) &TMP4503)}
,
{((NimStringDesc*) &TMP4504),
((NimStringDesc*) &TMP4504),
((NimStringDesc*) &TMP4505),
((NimStringDesc*) &TMP4505)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4497),
((NimStringDesc*) &TMP4497)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4498),
((NimStringDesc*) &TMP4498)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4499),
((NimStringDesc*) &TMP4499)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4500),
((NimStringDesc*) &TMP4500)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4501),
((NimStringDesc*) &TMP4501)}
,
{((NimStringDesc*) &TMP4502),
((NimStringDesc*) &TMP4502),
((NimStringDesc*) &TMP4503),
((NimStringDesc*) &TMP4503)}
,
{((NimStringDesc*) &TMP4504),
((NimStringDesc*) &TMP4504),
((NimStringDesc*) &TMP4505),
((NimStringDesc*) &TMP4505)}
,
{((NimStringDesc*) &TMP4506),
((NimStringDesc*) &TMP4506),
((NimStringDesc*) &TMP4507),
((NimStringDesc*) &TMP4507)}
,
{((NimStringDesc*) &TMP4508),
((NimStringDesc*) &TMP4508),
((NimStringDesc*) &TMP4509),
((NimStringDesc*) &TMP4509)}
,
{((NimStringDesc*) &TMP4510),
((NimStringDesc*) &TMP4510),
((NimStringDesc*) &TMP4511),
((NimStringDesc*) &TMP4511)}
,
{((NimStringDesc*) &TMP4512),
((NimStringDesc*) &TMP4512),
((NimStringDesc*) &TMP4513),
((NimStringDesc*) &TMP4513)}
,
{((NimStringDesc*) &TMP4514),
((NimStringDesc*) &TMP4514),
((NimStringDesc*) &TMP4515),
((NimStringDesc*) &TMP4515)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4519),
((NimStringDesc*) &TMP4519),
((NimStringDesc*) &TMP4520),
((NimStringDesc*) &TMP4520)}
,
{((NimStringDesc*) &TMP4521),
((NimStringDesc*) &TMP4521),
((NimStringDesc*) &TMP4522),
((NimStringDesc*) &TMP4522)}
,
{((NimStringDesc*) &TMP4523),
((NimStringDesc*) &TMP4523),
((NimStringDesc*) &TMP4524),
((NimStringDesc*) &TMP4524)}
,
{((NimStringDesc*) &TMP4525),
((NimStringDesc*) &TMP4525),
((NimStringDesc*) &TMP4526),
((NimStringDesc*) &TMP4526)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4517),
((NimStringDesc*) &TMP4517)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4518),
((NimStringDesc*) &TMP4518)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4527),
((NimStringDesc*) &TMP4527)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4516),
((NimStringDesc*) &TMP4516)}
,
{((NimStringDesc*) &TMP4528),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4529),
((NimStringDesc*) &TMP4530)}
,
{((NimStringDesc*) &TMP4531),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4532),
((NimStringDesc*) &TMP4530)}
,
{((NimStringDesc*) &TMP4533),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4534),
((NimStringDesc*) &TMP4535)}
,
{((NimStringDesc*) &TMP4536),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4537),
((NimStringDesc*) &TMP4535)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4566),
((NimStringDesc*) &TMP4566)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4539),
((NimStringDesc*) &TMP4539)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4540),
((NimStringDesc*) &TMP4540)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4540),
((NimStringDesc*) &TMP4540)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4539),
((NimStringDesc*) &TMP4539)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4530),
((NimStringDesc*) &TMP4530)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4535),
((NimStringDesc*) &TMP4535)}
,
{((NimStringDesc*) &TMP4541),
((NimStringDesc*) &TMP4541),
((NimStringDesc*) &TMP4542),
((NimStringDesc*) &TMP4542)}
,
{((NimStringDesc*) &TMP4543),
((NimStringDesc*) &TMP4543),
((NimStringDesc*) &TMP4544),
((NimStringDesc*) &TMP4544)}
,
{((NimStringDesc*) &TMP4545),
((NimStringDesc*) &TMP4545),
((NimStringDesc*) &TMP4546),
((NimStringDesc*) &TMP4546)}
,
{((NimStringDesc*) &TMP4547),
((NimStringDesc*) &TMP4547),
((NimStringDesc*) &TMP4548),
((NimStringDesc*) &TMP4548)}
,
{((NimStringDesc*) &TMP4549),
((NimStringDesc*) &TMP4549),
((NimStringDesc*) &TMP4550),
((NimStringDesc*) &TMP4550)}
,
{((NimStringDesc*) &TMP4551),
((NimStringDesc*) &TMP4551),
((NimStringDesc*) &TMP4552),
((NimStringDesc*) &TMP4552)}
,
{((NimStringDesc*) &TMP4553),
((NimStringDesc*) &TMP4553),
((NimStringDesc*) &TMP4554),
((NimStringDesc*) &TMP4554)}
,
{((NimStringDesc*) &TMP4555),
((NimStringDesc*) &TMP4555),
((NimStringDesc*) &TMP4556),
((NimStringDesc*) &TMP4556)}
,
{((NimStringDesc*) &TMP4557),
((NimStringDesc*) &TMP4557),
((NimStringDesc*) &TMP4558),
((NimStringDesc*) &TMP4558)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4559),
((NimStringDesc*) &TMP4559)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4559),
((NimStringDesc*) &TMP4559)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4560),
((NimStringDesc*) &TMP4560)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4560),
((NimStringDesc*) &TMP4560)}
,
{((NimStringDesc*) &TMP4561),
((NimStringDesc*) &TMP4561),
((NimStringDesc*) &TMP4562),
((NimStringDesc*) &TMP4562)}
,
{((NimStringDesc*) &TMP4563),
((NimStringDesc*) &TMP4563),
((NimStringDesc*) &TMP4564),
((NimStringDesc*) &TMP4564)}
,
{((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4565),
((NimStringDesc*) &TMP4565)}
,
{((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4565),
((NimStringDesc*) &TMP4565)}
,
{((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4565),
((NimStringDesc*) &TMP4565)}
,
{((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4451),
((NimStringDesc*) &TMP4452),
((NimStringDesc*) &TMP4452)}
,
{((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4471),
((NimStringDesc*) &TMP4559),
((NimStringDesc*) &TMP4559)}
}
;
STRING_LITERAL(TMP4567, "(\"\"+ ($1))", 10);
STRING_LITERAL(TMP4568, "cstrToNimstr($1.node.sons[$2].name)", 35);
STRING_LITERAL(TMP4569, "genRepr: Not implemented", 24);
STRING_LITERAL(TMP4570, "genSwap", 7);
STRING_LITERAL(TMP4571, "var $1 = $2; $2 = $3; $3 = $1;$n", 32);
STRING_LITERAL(TMP4572, "local $1 = $2; $2 = $3; $3 = $1;$n", 34);
STRING_LITERAL(TMP4573, "var $1 = $2; $2 = $3; $3 = $1;", 30);
STRING_LITERAL(TMP4574, "local $1 = $2; $2 = $3; $3 = $1;", 32);
STRING_LITERAL(TMP4575, "$1 - 1", 6);
STRING_LITERAL(TMP4576, "subInt($1, 1)", 13);
STRING_LITERAL(TMP4577, "addChar", 7);
STRING_LITERAL(TMP4578, "if ($1 != null) { addChar($1, $2); } else { $1 = [$2, 0]; }", 59);
STRING_LITERAL(TMP4579, "if ($1 != null) { $1 += $2; } else { $1 = $2; }", 47);
STRING_LITERAL(TMP4580, "if ($1 != null) { $1 = ($1.slice(0, -1)).concat($2); } else { $"
"1 = $2;}", 71);
STRING_LITERAL(TMP4581, "if ($1 != null) { $1.push($2); } else { $1 = [$2]; }", 52);
STRING_LITERAL(TMP4582, "[$1].concat(", 12);
STRING_LITERAL(TMP4583, "($1.slice(0,-1)).concat(", 24);
STRING_LITERAL(TMP4584, "[$1],", 5);
STRING_LITERAL(TMP4585, "$1.slice(0,-1),", 15);
STRING_LITERAL(TMP4586, "[$1, 0])", 8);
STRING_LITERAL(TMP4587, "$1)", 3);
STRING_LITERAL(TMP4588, "eqStrings", 9);
STRING_LITERAL(TMP4589, "eqStrings($1, $2)", 17);
STRING_LITERAL(TMP4590, "cmpStrings", 10);
STRING_LITERAL(TMP4591, "(cmpStrings($1, $2) <= 0)", 25);
STRING_LITERAL(TMP4592, "(cmpStrings($1, $2) < 0)", 24);
STRING_LITERAL(TMP4593, "$1 == null", 10);
STRING_LITERAL(TMP4594, "$1 = $2;$n", 10);
STRING_LITERAL(TMP4595, "($1 ? 1:0)", 10);
STRING_LITERAL(TMP4596, "toBool($#)", 10);
STRING_LITERAL(TMP4597, "genOrd", 6);
STRING_LITERAL(TMP4598, "($1 != null ? $1.length-1 : 0)", 30);
STRING_LITERAL(TMP4599, "$1.length-1", 11);
STRING_LITERAL(TMP4600, "($1 != null ? $1.length : 0)", 28);
STRING_LITERAL(TMP4601, "$1.length", 9);
STRING_LITERAL(TMP4602, "($1 != null ? ($1.length-2) : -1)", 33);
STRING_LITERAL(TMP4603, "($1 != null ? ($1.length-1) : -1)", 33);
STRING_LITERAL(TMP4604, "$1 += $2", 8);
STRING_LITERAL(TMP4605, "$1 = addInt($1, $2)", 19);
STRING_LITERAL(TMP4606, "$1 -= $2", 8);
STRING_LITERAL(TMP4607, "$1 = subInt($1, $2)", 19);
STRING_LITERAL(TMP4608, "$1.length = $2+1; $1[$1.length-1] = 0", 37);
STRING_LITERAL(TMP4609, "$1.length = $2", 14);
STRING_LITERAL(TMP4610, "SetCard", 7);
STRING_LITERAL(TMP4611, "SetCard($1)", 11);
STRING_LITERAL(TMP4612, "SetLt", 5);
STRING_LITERAL(TMP4613, "SetLt($1, $2)", 13);
STRING_LITERAL(TMP4614, "SetLe", 5);
STRING_LITERAL(TMP4615, "SetLe($1, $2)", 13);
STRING_LITERAL(TMP4616, "SetEq", 5);
STRING_LITERAL(TMP4617, "SetEq($1, $2)", 13);
STRING_LITERAL(TMP4618, "SetMul", 6);
STRING_LITERAL(TMP4619, "SetMul($1, $2)", 14);
STRING_LITERAL(TMP4620, "SetPlus", 7);
STRING_LITERAL(TMP4621, "SetPlus($1, $2)", 15);
STRING_LITERAL(TMP4622, "SetMinus", 8);
STRING_LITERAL(TMP4623, "SetMinus($1, $2)", 16);
STRING_LITERAL(TMP4624, "$1[$2] = true", 13);
STRING_LITERAL(TMP4625, "delete $1[$2]", 13);
STRING_LITERAL(TMP4626, "($1[$2] != undefined)", 21);
STRING_LITERAL(TMP4627, "$1 = new Array($2); for (var i=0;i<$2;++i) {$1[i]=$3;}", 54);
STRING_LITERAL(TMP4628, "($1.m_type == $2)", 17);
STRING_LITERAL(TMP4629, "isObj", 5);
STRING_LITERAL(TMP4630, "isObj($1.m_type, $2)", 20);
STRING_LITERAL(TMP4631, "genericReset", 12);
STRING_LITERAL(TMP4632, "$1 = genericReset($1, $2);$n", 28);
STRING_LITERAL(TMP4633, "rawEcho", 7);
STRING_LITERAL(TMP4634, "rawEcho(", 8);
NIM_CONST TY88145 TMP4635 = {((NimStringDesc*) &TMP4389),
((NI) 1091)}
;
STRING_LITERAL(TMP4636, ")", 1);
STRING_LITERAL(TMP4637, "($1.slice($2))", 14);
STRING_LITERAL(TMP4638, "($1.slice($2, ($3)+1).concat(0))", 32);
STRING_LITERAL(TMP4639, "mnewString", 10);
STRING_LITERAL(TMP4640, "mnewString($1)", 14);
STRING_LITERAL(TMP4641, "mnewString(0)", 13);
STRING_LITERAL(TMP4642, "(", 1);
STRING_LITERAL(TMP4643, "cannot invoke with infix syntax", 31);
STRING_LITERAL(TMP4644, "$1[$2]", 6);
STRING_LITERAL(TMP4645, ".", 1);
STRING_LITERAL(TMP4646, "SetConstr", 9);
STRING_LITERAL(TMP4647, "SetConstr(", 10);
STRING_LITERAL(TMP4648, "Field$#: $#", 11);
NIM_CONST TY88145 TMP4649 = {((NimStringDesc*) &TMP4389),
((NI) 1444)}
;
STRING_LITERAL(TMP4650, "$#: $#", 6);
STRING_LITERAL(TMP4651, "$# = $#", 7);
STRING_LITERAL(TMP4652, "(($1)? 1:0)", 11);
STRING_LITERAL(TMP4653, "($1|0)", 6);
STRING_LITERAL(TMP4654, "genAddr: 3", 10);
STRING_LITERAL(TMP4655, "[0]", 3);
STRING_LITERAL(TMP4656, "genAddr: 2", 10);
NIM_CONST TY88145 TMP4657 = {((NimStringDesc*) &TMP4389),
((NI) 891)}
;
STRING_LITERAL(TMP4658, "Field", 5);
STRING_LITERAL(TMP4659, "genFieldPosition", 16);
STRING_LITERAL(TMP4660, "genFieldAddr", 12);
NIM_CONST TY88145 TMP4661 = {((NimStringDesc*) &TMP4389),
((NI) 873)}
;
NIM_CONST TY88145 TMP4662 = {((NimStringDesc*) &TMP4389),
((NI) 905)}
;
STRING_LITERAL(TMP4663, "chckIndx", 8);
STRING_LITERAL(TMP4664, "chckIndx($1, $2, $3.length)-$2", 30);
STRING_LITERAL(TMP4665, "($1)-$2", 7);
STRING_LITERAL(TMP4666, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TMP4667, "genAddr", 7);
STRING_LITERAL(TMP4668, "genDeref", 8);
STRING_LITERAL(TMP4669, "genArrayAccess", 14);
STRING_LITERAL(TMP4670, "$1.Field$2", 10);
STRING_LITERAL(TMP4671, "$1.$2", 5);
STRING_LITERAL(TMP4672, "chckRange", 9);
STRING_LITERAL(TMP4673, "chckRange($1, $2, $3)", 21);
STRING_LITERAL(TMP4674, "chckRangeF", 10);
STRING_LITERAL(TMP4675, "chckRange64", 11);
STRING_LITERAL(TMP4676, "convStrToCStr", 13);
STRING_LITERAL(TMP4677, "toJSStr", 7);
STRING_LITERAL(TMP4678, "toJSStr($1)", 11);
STRING_LITERAL(TMP4679, "convCStrToStr", 13);
STRING_LITERAL(TMP4680, "genBlock", 8);
STRING_LITERAL(TMP4681, "L$1: do {$n", 11);
STRING_LITERAL(TMP4682, "} while(false);$n", 17);
STRING_LITERAL(TMP4683, "$n::L$#::$n", 11);
STRING_LITERAL(TMP4684, "else {$n", 8);
STRING_LITERAL(TMP4685, "else$n", 6);
STRING_LITERAL(TMP4686, "if ($1) {$n", 11);
STRING_LITERAL(TMP4687, "if $# then$n", 12);
STRING_LITERAL(TMP4688, "$1;$n", 5);
STRING_LITERAL(TMP4689, "}$n", 3);
STRING_LITERAL(TMP4690, "end$n", 5);
NIM_CONST TY88145 TMP4691 = {((NimStringDesc*) &TMP4389),
((NI) 510)}
;
STRING_LITERAL(TMP4692, "// line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4693, "-- line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4694, "endb", 4);
STRING_LITERAL(TMP4695, "endb($1);$n", 11);
STRING_LITERAL(TMP4696, "F.line = $1;$n", 14);
STRING_LITERAL(TMP4697, "L$1: while (true) {$n", 21);
STRING_LITERAL(TMP4698, "while true do$n", 15);
STRING_LITERAL(TMP4699, "if (!$1) break L$2;$n", 21);
STRING_LITERAL(TMP4700, "if not $1 then goto ::L$2:: end;$n", 34);
STRING_LITERAL(TMP4701, "end ::L$#::$n", 13);
STRING_LITERAL(TMP4702, "for statement not eliminated", 28);
STRING_LITERAL(TMP4703, "switch (toJSStr($1)) {$n", 24);
STRING_LITERAL(TMP4704, "switch ($1) {$n", 15);
STRING_LITERAL(TMP4705, "case $1: ", 9);
STRING_LITERAL(TMP4706, "jsgen.genCaseStmt: 2", 20);
STRING_LITERAL(TMP4707, "$nbreak;$n", 10);
STRING_LITERAL(TMP4708, "default: $n", 11);
STRING_LITERAL(TMP4709, "break;$n", 8);
STRING_LITERAL(TMP4710, "jsgen.genCaseStmt", 17);
STRING_LITERAL(TMP4711, "eqStr", 5);
STRING_LITERAL(TMP4712, "$nelsif ", 8);
STRING_LITERAL(TMP4713, "if ", 3);
STRING_LITERAL(TMP4714, " or ", 4);
STRING_LITERAL(TMP4715, "$1 >= $2 and $1 <= $3", 21);
STRING_LITERAL(TMP4716, "eqStr($1, $2)", 13);
STRING_LITERAL(TMP4717, "$1 == $2", 8);
STRING_LITERAL(TMP4718, " then$n", 7);
STRING_LITERAL(TMP4719, "$nend$n", 7);
STRING_LITERAL(TMP4720, "genReturnStmt", 13);
STRING_LITERAL(TMP4721, "break BeforeRet;$n", 18);
STRING_LITERAL(TMP4722, "goto ::BeforeRet::;$n", 21);
STRING_LITERAL(TMP4723, "no loop to break", 16);
STRING_LITERAL(TMP4724, "break L$1;$n", 12);
STRING_LITERAL(TMP4725, "goto ::L$1::;$n", 15);
STRING_LITERAL(TMP4726, "$1 = nimCopy($2, $3);$n", 23);
STRING_LITERAL(TMP4727, "genAsgn", 7);
STRING_LITERAL(TMP4728, "$1 = $2; $3 = $4;$n", 19);
STRING_LITERAL(TMP4729, "jsgen: genAsmStmt()", 19);
STRING_LITERAL(TMP4730, "var $1 = {prev: excHandler, exc: null};$nexcHandler = $1;$n", 59);
STRING_LITERAL(TMP4731, "local $1 = pcall(", 17);
STRING_LITERAL(TMP4732, "framePtr = F;", 13);
STRING_LITERAL(TMP4733, "try {$n", 7);
STRING_LITERAL(TMP4734, "function()$n", 12);
STRING_LITERAL(TMP4735, "} catch (EXC) {$n  lastJSError = EXC;$n", 39);
STRING_LITERAL(TMP4736, "end)$n", 6);
STRING_LITERAL(TMP4737, "genTryStmt", 10);
STRING_LITERAL(TMP4738, "||", 2);
STRING_LITERAL(TMP4739, "isObj($1.exc.m_type, $2)", 24);
STRING_LITERAL(TMP4740, "else ", 5);
STRING_LITERAL(TMP4741, "if ($1.exc && ($2)) {$n", 23);
STRING_LITERAL(TMP4742, "if $1.exc and ($2) then$n", 25);
STRING_LITERAL(TMP4743, "} finally {", 11);
STRING_LITERAL(TMP4744, "excHandler = excHandler.prev;", 29);
STRING_LITERAL(TMP4745, "raiseException", 14);
STRING_LITERAL(TMP4746, "raiseException($1, $2);$n", 25);
STRING_LITERAL(TMP4747, "reraiseException", 16);
STRING_LITERAL(TMP4748, "reraiseException();", 19);
STRING_LITERAL(TMP4749, "first class iterators not implemented", 37);
STRING_LITERAL(TMP4750, "gen: unknown node type: ", 24);
STRING_LITERAL(TMP4751, "$#;$n", 5);
STRING_LITERAL(TMP4752, "framePtr = framePtr.prev;$n", 27);
STRING_LITERAL(TMP4753, "js", 2);
STRING_LITERAL(TMP4754, "/* Generated by the Nim Compiler v$1 */$n/*   (c) 2015 Andreas "
"Rumpf */$n$nvar framePtr = null;$nvar excHandler = null;$nvar la"
"stJSError = null;$n", 146);
STRING_LITERAL(TMP4755, "0.11.2", 6);
Tglobals497027* globals_504510;
extern TNimType NTI242005; /* TPassContext */
TNimType NTI497015; /* TJSGen */
extern TNimType NTI191811; /* PSym */
TNimType NTI497017; /* BModule */
extern Tgcheap48216 gch_48244;
TNimType NTI497027; /* TGlobals */
extern TNimType NTI162007; /* Rope */
extern TNimType NTI191815; /* TSymSeq */
extern TNimType NTI188056; /* IntSet */
TNimType NTI497029; /* PGlobals */
extern NI gerrorcounter_165015;
TNimType NTI497033; /* TProc */
extern TNimType NTI191805; /* PNode */
extern TNimType NTI155016; /* TOptions */
extern TNimType NTI138; /* bool */
TNimType NTI497013; /* TTarget */
extern TNimType NTI108; /* int */
TNimType NTI497025; /* TBlock */
TNimType NTI497071; /* seq[TBlock] */
TNimType NTI497031; /* PProc */
extern NimStringDesc* tnl_160626;
extern TNimType NTI191260; /* TTypeKind */
extern TNimType NTI149; /* string */
TNimType NTI498453; /* TMagicFrmt */
TNimType NTI498455; /* TMagicOps */
extern TNimType NTI191029; /* TNodeKind */
extern NimStringDesc* outfile_155134;
N_NIMCALL(void, TMP4360)(void* p, NI op) {
	Tjsgen497015* a;
	a = (Tjsgen497015*)p;
	nimGCvisit((void*)(*a).module, op);
}

static N_INLINE(Tcell46346*, usrtocell_49846)(void* usr) {
	Tcell46346* result;
	result = 0;
	result = ((Tcell46346*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(Tcell46346))))));
	return result;
}

static N_INLINE(void, rtladdzct_51404)(Tcell46346* c) {
	addzct_49817((&gch_48244.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		Tcell46346* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_49846(src);
		(*c).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Tcell46346* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_49846((*dest));
		{
			(*c).refcount -= ((NI) 8);
			if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_51404(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}
N_NIMCALL(void, TMP4362)(void* p, NI op) {
	Tglobals497027* a;
	a = (Tglobals497027*)p;
	nimGCvisit((void*)(*a).typeinfo, op);
	nimGCvisit((void*)(*a).code, op);
	nimGCvisit((void*)(*a).forwarded, op);
	nimGCvisit((void*)(*a).generatedsyms.head, op);
	nimGCvisit((void*)(*a).generatedsyms.data, op);
	nimGCvisit((void*)(*a).typeinfogenerated.head, op);
	nimGCvisit((void*)(*a).typeinfogenerated.data, op);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	Tcell46346* c;
	c = usrtocell_49846(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_51404(c);
	}
	LA3: ;
}

N_NIMCALL(Tglobals497027*, newglobals_497084)(void) {
	Tglobals497027* result;
	result = 0;
	result = (Tglobals497027*) newObj((&NTI497029), sizeof(Tglobals497027));
	if ((*result).forwarded) nimGCunrefNoCycle((*result).forwarded);
	(*result).forwarded = (Tsymseq191815*) newSeqRC1((&NTI191815), 0);
	initintset_188927((&(*result).generatedsyms));
	initintset_188927((&(*result).typeinfogenerated));
	return result;
}

N_NIMCALL(Tjsgen497015*, newmodule_504515)(Tsym191843* module) {
	Tjsgen497015* result;
	result = 0;
	result = (Tjsgen497015*) newObj((&NTI497017), sizeof(Tjsgen497015));
	(*result).Sup.Sup.m_type = (&NTI497015);
	asgnRefNoCycle((void**) (&(*result).module), module);
	{
		if (!(globals_504510 == NIM_NIL)) goto LA3;
		asgnRefNoCycle((void**) (&globals_504510), newglobals_497084());
	}
	LA3: ;
	return result;
}

N_NIMCALL(Tpasscontext242005*, myopen_504743)(Tsym191843* s) {
	Tpasscontext242005* result;
	Tjsgen497015* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = newmodule_504515(s);
	result = &LOC1->Sup;
	return result;
}

N_NIMCALL(Tpasscontext242005*, myopencached_504732)(Tsym191843* s, Trodreader234030* rd) {
	Tpasscontext242005* result;
	result = 0;
	internalerror_166218(((NimStringDesc*) &TMP4363));
	result = NIM_NIL;
	return result;
}

static N_INLINE(NIM_BOOL, skipcodegen_242083)(Tnode191813* n) {
	NIM_BOOL result;
	result = 0;
	result = (((NI) 0) < gerrorcounter_165015);
	return result;
}
N_NIMCALL(void, TMP4370)(void* p, NI op) {
	TY497071* a;
	NI LOC1;
	a = (TY497071*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}
N_NIMCALL(void, TMP4371)(void* p, NI op) {
	Tproc497033* a;
	a = (Tproc497033*)p;
	nimGCvisit((void*)(*a).procdef, op);
	nimGCvisit((void*)(*a).prc, op);
	nimGCvisit((void*)(*a).locals, op);
	nimGCvisit((void*)(*a).body, op);
	nimGCvisit((void*)(*a).module, op);
	nimGCvisit((void*)(*a).g, op);
	nimGCvisit((void*)(*a).blocks, op);
	nimGCvisit((void*)(*a).up, op);
}

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

static N_INLINE(void, rtladdcycleroot_50623)(Tcell46346* c) {
	{
		if (!!((((NI) ((NI)((*c).refcount & ((NI) 3)))) == ((NI) 3)))) goto LA3;
		(*c).refcount = (NI)((NI)((*c).refcount & ((NI) -4)) | ((NI) 3));
		incl_47065((&gch_48244.cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_52222)(Tcell46346* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_49867(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_50623(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_51804)(Tcell46346* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_51404(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_49867(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_50623(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		Tcell46346* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_49846(src);
		incref_52222(LOC5);
	}
	LA3: ;
	{
		Tcell46346* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_49846((*dest));
		decref_51804(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(Tproc497033*, newproc_497207)(Tglobals497027* globals, Tjsgen497015* module, Tnode191813* procdef, NU32 options) {
	Tproc497033* result;
	Tproc497033* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (Tproc497033*) newObj((&NTI497031), sizeof(Tproc497033));
	if ((*LOC1).blocks) nimGCunrefNoCycle((*LOC1).blocks);
	(*LOC1).blocks = (TY497071*) newSeqRC1((&NTI497071), 0);
	(*LOC1).options = options;
	asgnRef((void**) (&(*LOC1).module), module);
	asgnRefNoCycle((void**) (&(*LOC1).procdef), procdef);
	asgnRefNoCycle((void**) (&(*LOC1).g), globals);
	result = LOC1;
	{
		if (!!((procdef == NIM_NIL))) goto LA4;
		asgnRefNoCycle((void**) (&(*result).prc), (*(*procdef).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym);
	}
	LA4: ;
	return result;
}

N_NIMCALL(Ropeobj162009*, makejsstring_497305)(NimStringDesc* s) {
	Ropeobj162009* result;
	result = 0;
	{
		if (!s == 0) goto LA3;
		result = rope_162320(((NimStringDesc*) &TMP4373));
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC6;
		LOC6 = 0;
		LOC6 = nsuEscape(s, ((NimStringDesc*) &TMP4374), ((NimStringDesc*) &TMP4374));
		result = rope_162320(LOC6);
	}
	LA1: ;
	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(NU8, maptype_497256)(Ttype191849* typ) {
	NU8 result;
	Ttype191849* t;
	result = 0;
	t = skiptypes_195167(typ, IL64(211106232576256));
	switch ((*t).kind) {
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	{
		{
			Ttype191849* LOC4;
			Ttype191849* LOC5;
			LOC4 = 0;
			LOC4 = lastson_194442(t);
			LOC5 = 0;
			LOC5 = skiptypes_195167(LOC4, IL64(211106232576256));
			if (!((*LOC5).kind == ((NU8) 17) || (*LOC5).kind == ((NU8) 16) || (*LOC5).kind == ((NU8) 4) || (*LOC5).kind == ((NU8) 18) || (*LOC5).kind == ((NU8) 27) || (*LOC5).kind == ((NU8) 19) || (*LOC5).kind == ((NU8) 45) || (*LOC5).kind == ((NU8) 48))) goto LA6;
			result = ((NU8) 7);
		}
		goto LA2;
		LA6: ;
		{
			result = ((NU8) 8);
		}
		LA2: ;
	}
	break;
	case ((NU8) 26):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 13):
	case ((NU8) 15):
	case ((NU8) 46):
	case ((NU8) 47):
	case ((NU8) 49):
	case ((NU8) 50):
	{
		result = maptype_497256((*t).sons->data[((NI) 0)]);
	}
	break;
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 40) ... ((NU8) 44):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 1):
	{
		result = ((NU8) 3);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = ((NU8) 5);
	}
	break;
	case ((NU8) 19):
	{
		result = ((NU8) 7);
	}
	break;
	case ((NU8) 28):
	case ((NU8) 24):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 17):
	case ((NU8) 16):
	case ((NU8) 4):
	case ((NU8) 18):
	case ((NU8) 27):
	case ((NU8) 45):
	case ((NU8) 48):
	{
		result = ((NU8) 7);
	}
	break;
	case ((NU8) 5):
	{
		result = ((NU8) 1);
	}
	break;
	case ((NU8) 11):
	case ((NU8) 12):
	case ((NU8) 10):
	case ((NU8) 9):
	case ((NU8) 0):
	case ((NU8) 60):
	case ((NU8) 30):
	case ((NU8) 3):
	case ((NU8) 61):
	case ((NU8) 6):
	case ((NU8) 7):
	case ((NU8) 59):
	case ((NU8) 8):
	case ((NU8) 51):
	case ((NU8) 54):
	case ((NU8) 52):
	case ((NU8) 53):
	case ((NU8) 55):
	case ((NU8) 56):
	case ((NU8) 57):
	case ((NU8) 58):
	{
		result = ((NU8) 0);
	}
	break;
	case ((NU8) 25):
	{
		result = ((NU8) 2);
	}
	break;
	case ((NU8) 29):
	{
		result = ((NU8) 6);
	}
	break;
	}
	return result;
}

N_NIMCALL(NIM_BOOL, isindirect_501600)(Tsym191843* v) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	NIM_BOOL LOC2;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = !(((32776 & (*v).flags) == 0));
	if (!(LOC2)) goto LA3;
	LOC2 = ((224 & (*v).flags) == 0);
	LA3: ;
	LOC1 = LOC2;
	if (!(LOC1)) goto LA4;
	LOC1 = !(((128544 &(1<<(((*v).kind)&31)))!=0));
	LA4: ;
	result = LOC1;
	return result;
}

N_NIMCALL(Ropeobj162009*, manglename_497277)(Tsym191843* s) {
	Ropeobj162009* result;
	result = 0;
	result = (*s).loc.r;
	{
		NimStringDesc* LOC5;
		Ropeobj162009* LOC6;
		if (!(result == NIM_NIL)) goto LA3;
		LOC5 = 0;
		LOC5 = mangle_455896((*(*s).name).s);
		result = rope_162320(LOC5);
		add_162545(&result, ((NimStringDesc*) &TMP4382));
		LOC6 = 0;
		LOC6 = rope_162407(((NI64) ((*s).Sup.id)));
		add_162534(&result, LOC6);
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
	}
	LA3: ;
	return result;
}

N_NIMCALL(Ropeobj162009*, puttoseq_502305)(NimStringDesc* s, NIM_BOOL indirect) {
	Ropeobj162009* result;
	result = 0;
	result = rope_162320(s);
	{
		TY162572 LOC5;
		if (!indirect) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = result;
		result = HEX25_163235(((NimStringDesc*) &TMP4383), LOC5, 1);
	}
	LA3: ;
	return result;
}

static N_INLINE(NIM_BOOL, iscompiletimeonly_230712)(Ttype191849* t) {
	NIM_BOOL result;
	result = 0;
	result = ((*t).kind == ((NU8) 8) || (*t).kind == ((NU8) 59));
	return result;
}

N_NIMCALL(Ropeobj162009*, generateheader_500806)(Tproc497033* p, Ttype191849* typ) {
	Ropeobj162009* result;
	result = 0;
	result = NIM_NIL;
	{
		NI i_500823;
		NI HEX3Atmp_501035;
		NI LOC2;
		NI res_501038;
		i_500823 = 0;
		HEX3Atmp_501035 = 0;
		LOC2 = 0;
		LOC2 = sonslen_194403((*typ).n);
		HEX3Atmp_501035 = (NI)(LOC2 - ((NI) 1));
		res_501038 = ((NI) 1);
		{
			while (1) {
				if (!(res_501038 <= HEX3Atmp_501035)) goto LA4;
				i_500823 = res_501038;
				{
					Tsym191843* param;
					Ropeobj162009* name;
					param = (*(*(*typ).n).kindU.S6.sons->data[i_500823]).kindU.S4.sym;
					{
						NIM_BOOL LOC8;
						LOC8 = 0;
						LOC8 = iscompiletimeonly_230712((*param).typ);
						if (!LOC8) goto LA9;
						goto LA5;
					}
					LA9: ;
					{
						if (!!((result == NIM_NIL))) goto LA13;
						add_162545(&result, ((NimStringDesc*) &TMP4390));
					}
					LA13: ;
					name = manglename_497277(param);
					add_162534(&result, name);
					{
						NU8 LOC17;
						LOC17 = 0;
						LOC17 = maptype_497256((*param).typ);
						if (!(LOC17 == ((NU8) 8))) goto LA18;
						add_162545(&result, ((NimStringDesc*) &TMP4390));
						add_162534(&result, name);
						add_162545(&result, ((NimStringDesc*) &TMP4379));
					}
					LA18: ;
				} LA5: ;
				res_501038 += ((NI) 1);
			} LA4: ;
		}
	}
	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(Ropeobj162009*, genprocbody_504083)(Tproc497033* p, Tsym191843* prc) {
	Ropeobj162009* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		NimStringDesc* LOC6;
		TY491436 LOC12;
		NimStringDesc* LOC13;
		NimStringDesc* LOC14;
		if (!(((*prc).options &(1<<((((NU8) 15))&31)))!=0)) goto LA3;
		LOC5 = 0;
		LOC6 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA9;
			LOC6 = copyString(((NimStringDesc*) &TMP4396));
		}
		goto LA7;
		LA9: ;
		{
			LOC6 = copyString(((NimStringDesc*) &TMP4397));
		}
		LA7: ;
		LOC5 = rawNewString(LOC6->Sup.len + 15);
appendString(LOC5, LOC6);
appendString(LOC5, ((NimStringDesc*) &TMP4398));
		memset((void*)LOC12, 0, sizeof(LOC12));
		LOC13 = 0;
		LOC13 = rawNewString((*(*(*prc).owner).name).s->Sup.len + (*(*prc).name).s->Sup.len + 1);
appendString(LOC13, (*(*(*prc).owner).name).s);
appendChar(LOC13, 46);
appendString(LOC13, (*(*prc).name).s);
		LOC12[0] = makejsstring_497305(LOC13);
		LOC14 = 0;
		LOC14 = tofilename_165266((*prc).info.fileindex);
		LOC12[1] = makejsstring_497305(LOC14);
		result = HEX25_163235(LOC5, LOC12, 2);
	}
	goto LA1;
	LA3: ;
	{
		result = NIM_NIL;
	}
	LA1: ;
	{
		NimStringDesc* LOC20;
		TY162572 LOC26;
		if (!(*p).beforeretneeded) goto LA18;
		LOC20 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA23;
			LOC20 = copyString(((NimStringDesc*) &TMP4399));
		}
		goto LA21;
		LA23: ;
		{
			LOC20 = copyString(((NimStringDesc*) &TMP4400));
		}
		LA21: ;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = (*p).body;
		addf_163635(&result, LOC20, LOC26, 1);
	}
	goto LA16;
	LA18: ;
	{
		add_162534(&result, (*p).body);
	}
	LA16: ;
	{
		NIM_BOOL LOC30;
		TY162572 LOC34;
		LOC30 = 0;
		LOC30 = ((*(*prc).typ).callconv == ((NU8) 4));
		if (!(LOC30)) goto LA31;
		LOC30 = ((*p).target == ((NU8) 0));
		LA31: ;
		if (!LOC30) goto LA32;
		memset((void*)LOC34, 0, sizeof(LOC34));
		LOC34[0] = result;
		result = HEX25_163235(((NimStringDesc*) &TMP4401), LOC34, 1);
	}
	LA32: ;
	{
		NimStringDesc* LOC39;
		if (!(((*prc).options &(1<<((((NU8) 15))&31)))!=0)) goto LA37;
		LOC39 = 0;
		LOC39 = rawNewString(tnl_160626->Sup.len + 25);
appendString(LOC39, ((NimStringDesc*) &TMP4402));
appendString(LOC39, tnl_160626);
		add_162545(&result, LOC39);
	}
	LA37: ;
	return result;
}

N_NIMCALL(Ropeobj162009*, genproc_497832)(Tproc497033* oldproc, Tsym191843* prc) {
	Ropeobj162009* result;
	Tsym191843* resultsym;
	Ropeobj162009* name;
	Ropeobj162009* returnstmt;
	Ropeobj162009* resultasgn;
	Ropeobj162009* header;
	Tcompres497023 a;
	Tproc497033* p;
	Tnode191813* LOC16;
	NimStringDesc* LOC17;
	TY465247 LOC23;
	result = 0;
	resultsym = 0;
	name = 0;
	returnstmt = 0;
	resultasgn = 0;
	header = 0;
	memset((void*)(&a), 0, sizeof(a));
	p = newproc_497207((*oldproc).g, (*oldproc).module, (*prc).ast, (*prc).options);
	(*p).target = (*oldproc).target;
	asgnRef((void**) (&(*p).up), oldproc);
	returnstmt = NIM_NIL;
	resultasgn = NIM_NIL;
	name = manglename_497277(prc);
	header = generateheader_500806(p, (*prc).typ);
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY491436 LOC13;
		NIM_BOOL LOC14;
		TY162572 LOC15;
		LOC3 = 0;
		LOC3 = !(((*(*prc).typ).sons->data[((NI) 0)] == NIM_NIL));
		if (!(LOC3)) goto LA4;
		LOC3 = !((((*prc).flags &(1<<((((NU8) 9))&31)))!=0));
		LA4: ;
		if (!LOC3) goto LA5;
		resultsym = (*(*(*prc).ast).kindU.S6.sons->data[((NI) 7)]).kindU.S4.sym;
		LOC7 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4391));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4392));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = manglename_497277(resultsym);
		LOC14 = 0;
		LOC14 = isindirect_501600(resultsym);
		LOC13[1] = createvar_502318(p, (*resultsym).typ, LOC14);
		resultasgn = HEX25_163235(LOC7, LOC13, 2);
		gen_497816(p, (*(*prc).ast).kindU.S6.sons->data[((NI) 7)], (&a));
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = a.res;
		returnstmt = HEX25_163235(((NimStringDesc*) &TMP4393), LOC15, 1);
	}
	LA5: ;
	LOC16 = 0;
	LOC16 = getbody_236648(prc);
	genstmt_497825(p, LOC16);
	LOC17 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA20;
		LOC17 = copyString(((NimStringDesc*) &TMP4394));
	}
	goto LA18;
	LA20: ;
	{
		LOC17 = copyString(((NimStringDesc*) &TMP4395));
	}
	LA18: ;
	memset((void*)LOC23, 0, sizeof(LOC23));
	LOC23[0] = name;
	LOC23[1] = header;
	LOC23[2] = (*p).locals;
	LOC23[3] = resultasgn;
	LOC23[4] = genprocbody_504083(p, prc);
	LOC23[5] = returnstmt;
	result = HEX25_163235(LOC17, LOC23, 6);
	return result;
}

N_NIMCALL(void, usemagic_497846)(Tproc497033* p, NimStringDesc* name) {
	Tsym191843* s;
{	{
		if (!((name ? name->Sup.len : 0) == ((NI) 0))) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	s = getcompilerproc_239036(name);
	{
		if (!!((s == NIM_NIL))) goto LA7;
		{
			NimStringDesc* LOC13;
			if (!!(((77824 &(1<<(((*s).kind)&31)))!=0))) goto LA11;
			LOC13 = 0;
			LOC13 = HEX24_166306(TMP4388);
			internalerror_166218(LOC13);
		}
		LA11: ;
		{
			NIM_BOOL LOC16;
			Ropeobj162009* LOC19;
			LOC16 = 0;
			LOC16 = containsorincl_188898((&(*(*p).g).generatedsyms), (*s).Sup.id);
			if (!!(LOC16)) goto LA17;
			LOC19 = 0;
			LOC19 = genproc_497832(p, s);
			add_162534(&(*(*p).g).code, LOC19);
		}
		LA17: ;
	}
	goto LA5;
	LA7: ;
	{
		{
			if (!!(((*p).prc == NIM_NIL))) goto LA23;
			globalerror_166134((*(*p).prc).info, ((NU16) 64), name);
		}
		goto LA21;
		LA23: ;
		{
			rawmessage_165960(((NU16) 64), name);
		}
		LA21: ;
	}
	LA5: ;
	}BeforeRet: ;
}

N_NIMCALL(void, genenuminfo_497634)(Tproc497033* p, Ttype191849* typ, Ropeobj162009* name) {
	NI length;
	Ropeobj162009* s;
	Ropeobj162009* n;
	TY463569 LOC19;
	TY491436 LOC20;
	TY491436 LOC21;
	length = sonslen_194403((*typ).n);
	s = NIM_NIL;
	{
		NI i_497653;
		NI HEX3Atmp_497724;
		NI res_497727;
		i_497653 = 0;
		HEX3Atmp_497724 = 0;
		HEX3Atmp_497724 = (NI)(length - ((NI) 1));
		res_497727 = ((NI) 0);
		{
			while (1) {
				Tsym191843* field;
				NimStringDesc* extname;
				TY463569 LOC18;
				if (!(res_497727 <= HEX3Atmp_497724)) goto LA3;
				i_497653 = res_497727;
				{
					if (!!(((*(*(*typ).n).kindU.S6.sons->data[i_497653]).kind == ((NU8) 3)))) goto LA6;
					internalerror_166199((*(*typ).n).info, ((NimStringDesc*) &TMP4409));
				}
				LA6: ;
				field = (*(*(*typ).n).kindU.S6.sons->data[i_497653]).kindU.S4.sym;
				{
					NimStringDesc* LOC12;
					if (!(((NI) 0) < i_497653)) goto LA10;
					LOC12 = 0;
					LOC12 = rawNewString(tnl_160626->Sup.len + 2);
appendString(LOC12, ((NimStringDesc*) &TMP4390));
appendString(LOC12, tnl_160626);
					add_162545(&s, LOC12);
				}
				LA10: ;
				{
					if (!((*field).ast == NIM_NIL)) goto LA15;
					extname = (*(*field).name).s;
				}
				goto LA13;
				LA15: ;
				{
					extname = (*(*field).ast).kindU.S3.strval;
				}
				LA13: ;
				memset((void*)LOC18, 0, sizeof(LOC18));
				LOC18[0] = rope_162407(((NI64) ((*field).position)));
				LOC18[1] = name;
				LOC18[2] = makejsstring_497305(extname);
				addf_163635(&s, ((NimStringDesc*) &TMP4410), LOC18, 3);
				res_497727 += ((NI) 1);
			} LA3: ;
		}
	}
	memset((void*)LOC19, 0, sizeof(LOC19));
	LOC19[0] = rope_162407(((NI64) ((*typ).Sup.id)));
	LOC19[1] = rope_162407(((NI64) (length)));
	LOC19[2] = s;
	n = HEX25_163235(((NimStringDesc*) &TMP4411), LOC19, 3);
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = name;
	LOC20[1] = rope_162407(((NI64) ((*typ).kind)));
	s = HEX25_163235(((NimStringDesc*) &TMP4412), LOC20, 2);
	prepend_163205(&(*(*p).g).typeinfo, s);
	add_162534(&(*(*p).g).typeinfo, n);
	memset((void*)LOC21, 0, sizeof(LOC21));
	LOC21[0] = name;
	LOC21[1] = rope_162407(((NI64) ((*typ).Sup.id)));
	addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4413), LOC21, 2);
	{
		TY491436 LOC26;
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA24;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = name;
		LOC26[1] = gentypeinfo_497315(p, (*typ).sons->data[((NI) 0)]);
		addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4408), LOC26, 2);
	}
	LA24: ;
}

N_NIMCALL(Ropeobj162009*, genobjectfields_497319)(Tproc497033* p, Ttype191849* typ, Tnode191813* n) {
	Ropeobj162009* result;
	Ropeobj162009* s;
	Ropeobj162009* u;
	NI length;
	Tsym191843* field;
	Tnode191813* b;
	result = 0;
	s = 0;
	u = 0;
	length = 0;
	field = 0;
	b = 0;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((NU8) 138):
	{
		length = sonslen_194403(n);
		{
			if (!(length == ((NI) 1))) goto LA4;
			result = genobjectfields_497319(p, typ, (*n).kindU.S6.sons->data[((NI) 0)]);
		}
		goto LA2;
		LA4: ;
		{
			TY491436 LOC16;
			s = NIM_NIL;
			{
				NI i_497343;
				NI HEX3Atmp_497453;
				NI res_497456;
				i_497343 = 0;
				HEX3Atmp_497453 = 0;
				HEX3Atmp_497453 = (NI)(length - ((NI) 1));
				res_497456 = ((NI) 0);
				{
					while (1) {
						Ropeobj162009* LOC15;
						if (!(res_497456 <= HEX3Atmp_497453)) goto LA9;
						i_497343 = res_497456;
						{
							NimStringDesc* LOC14;
							if (!(((NI) 0) < i_497343)) goto LA12;
							LOC14 = 0;
							LOC14 = rawNewString(tnl_160626->Sup.len + 2);
appendString(LOC14, ((NimStringDesc*) &TMP4390));
appendString(LOC14, tnl_160626);
							add_162545(&s, LOC14);
						}
						LA12: ;
						LOC15 = 0;
						LOC15 = genobjectfields_497319(p, typ, (*n).kindU.S6.sons->data[i_497343]);
						add_162534(&s, LOC15);
						res_497456 += ((NI) 1);
					} LA9: ;
				}
			}
			memset((void*)LOC16, 0, sizeof(LOC16));
			LOC16[0] = rope_162407(((NI64) (length)));
			LOC16[1] = s;
			result = HEX25_163235(((NimStringDesc*) &TMP4415), LOC16, 2);
		}
		LA2: ;
	}
	break;
	case ((NU8) 3):
	{
		TY463569 LOC18;
		field = (*n).kindU.S4.sym;
		s = gentypeinfo_497315(p, (*field).typ);
		memset((void*)LOC18, 0, sizeof(LOC18));
		LOC18[0] = manglename_497277(field);
		LOC18[1] = s;
		LOC18[2] = makejsstring_497305((*(*field).name).s);
		result = HEX25_163235(((NimStringDesc*) &TMP4416), LOC18, 3);
	}
	break;
	case ((NU8) 139):
	{
		TY464876 LOC61;
		NI64 LOC62;
		length = sonslen_194403(n);
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 3)))) goto LA22;
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4417));
		}
		LA22: ;
		field = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		s = gentypeinfo_497315(p, (*field).typ);
		{
			NI i_497379;
			NI HEX3Atmp_497469;
			NI res_497472;
			i_497379 = 0;
			HEX3Atmp_497469 = 0;
			HEX3Atmp_497469 = (NI)(length - ((NI) 1));
			res_497472 = ((NI) 1);
			{
				while (1) {
					TY491436 LOC59;
					Tnode191813* LOC60;
					if (!(res_497472 <= HEX3Atmp_497469)) goto LA26;
					i_497379 = res_497472;
					b = (*n).kindU.S6.sons->data[i_497379];
					u = NIM_NIL;
					switch ((*b).kind) {
					case ((NU8) 85):
					{
						{
							NI LOC30;
							LOC30 = 0;
							LOC30 = sonslen_194403(b);
							if (!(LOC30 < ((NI) 2))) goto LA31;
							internalerror_166199((*b).info, ((NimStringDesc*) &TMP4418));
						}
						LA31: ;
						{
							NI j_497393;
							NI HEX3Atmp_497462;
							NI LOC34;
							NI res_497465;
							j_497393 = 0;
							HEX3Atmp_497462 = 0;
							LOC34 = 0;
							LOC34 = sonslen_194403(b);
							HEX3Atmp_497462 = (NI)(LOC34 - ((NI) 2));
							res_497465 = ((NI) 0);
							{
								while (1) {
									if (!(res_497465 <= HEX3Atmp_497462)) goto LA36;
									j_497393 = res_497465;
									{
										if (!!((u == NIM_NIL))) goto LA39;
										add_162545(&u, ((NimStringDesc*) &TMP4390));
									}
									LA39: ;
									{
										TY491436 LOC45;
										NI64 LOC46;
										NI64 LOC47;
										if (!((*(*b).kindU.S6.sons->data[j_497393]).kind == ((NU8) 44))) goto LA43;
										memset((void*)LOC45, 0, sizeof(LOC45));
										LOC46 = 0;
										LOC46 = getordvalue_221178((*(*b).kindU.S6.sons->data[j_497393]).kindU.S6.sons->data[((NI) 0)]);
										LOC45[0] = rope_162407(LOC46);
										LOC47 = 0;
										LOC47 = getordvalue_221178((*(*b).kindU.S6.sons->data[j_497393]).kindU.S6.sons->data[((NI) 1)]);
										LOC45[1] = rope_162407(LOC47);
										addf_163635(&u, ((NimStringDesc*) &TMP4419), LOC45, 2);
									}
									goto LA41;
									LA43: ;
									{
										NI64 LOC49;
										Ropeobj162009* LOC50;
										LOC49 = 0;
										LOC49 = getordvalue_221178((*b).kindU.S6.sons->data[j_497393]);
										LOC50 = 0;
										LOC50 = rope_162407(LOC49);
										add_162534(&u, LOC50);
									}
									LA41: ;
									res_497465 += ((NI) 1);
								} LA36: ;
							}
						}
					}
					break;
					case ((NU8) 88):
					{
						NI64 LOC52;
						LOC52 = 0;
						LOC52 = lengthord_221016((*field).typ);
						u = rope_162407(LOC52);
					}
					break;
					default:
					{
						internalerror_166199((*n).info, ((NimStringDesc*) &TMP4420));
					}
					break;
					}
					{
						NimStringDesc* LOC58;
						if (!!((result == NIM_NIL))) goto LA56;
						LOC58 = 0;
						LOC58 = rawNewString(tnl_160626->Sup.len + 2);
appendString(LOC58, ((NimStringDesc*) &TMP4390));
appendString(LOC58, tnl_160626);
						add_162545(&result, LOC58);
					}
					LA56: ;
					memset((void*)LOC59, 0, sizeof(LOC59));
					LOC59[0] = u;
					LOC60 = 0;
					LOC60 = lastson_194431(b);
					LOC59[1] = genobjectfields_497319(p, typ, LOC60);
					addf_163635(&result, ((NimStringDesc*) &TMP4421), LOC59, 2);
					res_497472 += ((NI) 1);
				} LA26: ;
			}
		}
		memset((void*)LOC61, 0, sizeof(LOC61));
		LOC61[0] = manglename_497277(field);
		LOC61[1] = s;
		LOC62 = 0;
		LOC62 = lengthord_221016((*field).typ);
		LOC61[2] = rope_162407(LOC62);
		LOC61[3] = makejsstring_497305((*(*field).name).s);
		LOC61[4] = result;
		result = HEX25_163235(((NimStringDesc*) &TMP4422), LOC61, 5);
	}
	break;
	default:
	{
		internalerror_166199((*n).info, ((NimStringDesc*) &TMP4417));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genobjectinfo_497506)(Tproc497033* p, Ttype191849* typ, Ropeobj162009* name) {
	Ropeobj162009* s;
	TY491436 LOC1;
	TY491436 LOC2;
	TY491436 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = rope_162407(((NI64) ((*typ).kind)));
	s = HEX25_163235(((NimStringDesc*) &TMP4412), LOC1, 2);
	prepend_163205(&(*(*p).g).typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rope_162407(((NI64) ((*typ).Sup.id)));
	LOC2[1] = genobjectfields_497319(p, typ, (*typ).n);
	addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4414), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = rope_162407(((NI64) ((*typ).Sup.id)));
	addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4413), LOC3, 2);
	{
		NIM_BOOL LOC6;
		TY491436 LOC10;
		LOC6 = 0;
		LOC6 = ((*typ).kind == ((NU8) 17));
		if (!(LOC6)) goto LA7;
		LOC6 = !(((*typ).sons->data[((NI) 0)] == NIM_NIL));
		LA7: ;
		if (!LOC6) goto LA8;
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = name;
		LOC10[1] = gentypeinfo_497315(p, (*typ).sons->data[((NI) 0)]);
		addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4408), LOC10, 2);
	}
	LA8: ;
}

N_NIMCALL(Ropeobj162009*, gentuplefields_497556)(Tproc497033* p, Ttype191849* typ) {
	Ropeobj162009* result;
	Ropeobj162009* s;
	TY491436 LOC11;
	NI LOC12;
	result = 0;
	s = NIM_NIL;
	{
		NI i_497580;
		NI HEX3Atmp_497589;
		NI LOC2;
		NI res_497592;
		i_497580 = 0;
		HEX3Atmp_497589 = 0;
		LOC2 = 0;
		LOC2 = len_194377(typ);
		HEX3Atmp_497589 = (LOC2 - 1);
		res_497592 = ((NI) 0);
		{
			while (1) {
				TY491436 LOC10;
				if (!(res_497592 <= HEX3Atmp_497589)) goto LA4;
				i_497580 = res_497592;
				{
					NimStringDesc* LOC9;
					if (!(((NI) 0) < i_497580)) goto LA7;
					LOC9 = 0;
					LOC9 = rawNewString(tnl_160626->Sup.len + 2);
appendString(LOC9, ((NimStringDesc*) &TMP4390));
appendString(LOC9, tnl_160626);
					add_162545(&s, LOC9);
				}
				LA7: ;
				memset((void*)LOC10, 0, sizeof(LOC10));
				LOC10[0] = rope_162407(((NI64) (i_497580)));
				LOC10[1] = gentypeinfo_497315(p, (*typ).sons->data[i_497580]);
				addf_163635(&s, ((NimStringDesc*) &TMP4423), LOC10, 2);
				res_497592 += ((NI) 1);
			} LA4: ;
		}
	}
	memset((void*)LOC11, 0, sizeof(LOC11));
	LOC12 = 0;
	LOC12 = len_194377(typ);
	LOC11[0] = rope_162407(((NI64) (LOC12)));
	LOC11[1] = s;
	result = HEX25_163235(((NimStringDesc*) &TMP4415), LOC11, 2);
	return result;
}

N_NIMCALL(void, gentupleinfo_497608)(Tproc497033* p, Ttype191849* typ, Ropeobj162009* name) {
	Ropeobj162009* s;
	TY491436 LOC1;
	TY491436 LOC2;
	TY491436 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = rope_162407(((NI64) ((*typ).kind)));
	s = HEX25_163235(((NimStringDesc*) &TMP4412), LOC1, 2);
	prepend_163205(&(*(*p).g).typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rope_162407(((NI64) ((*typ).Sup.id)));
	LOC2[1] = gentuplefields_497556(p, typ);
	addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4414), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = rope_162407(((NI64) ((*typ).Sup.id)));
	addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4413), LOC3, 2);
}

N_NIMCALL(Ropeobj162009*, gentypeinfo_497315)(Tproc497033* p, Ttype191849* typ) {
	Ropeobj162009* result;
	Ttype191849* t;
	TY162572 LOC5;
{	result = 0;
	t = typ;
	{
		if (!((*t).kind == ((NU8) 11))) goto LA3;
		t = lastson_194442(t);
	}
	LA3: ;
	memset((void*)LOC5, 0, sizeof(LOC5));
	LOC5[0] = rope_162407(((NI64) ((*t).Sup.id)));
	result = HEX25_163235(((NimStringDesc*) &TMP4406), LOC5, 1);
	{
		NIM_BOOL LOC8;
		LOC8 = 0;
		LOC8 = containsorincl_188898((&(*(*p).g).typeinfogenerated), (*t).Sup.id);
		if (!LOC8) goto LA9;
		goto BeforeRet;
	}
	LA9: ;
	switch ((*t).kind) {
	case ((NU8) 13):
	{
		result = gentypeinfo_497315(p, (*typ).sons->data[((NI) 0)]);
	}
	break;
	case ((NU8) 26):
	case ((NU8) 25):
	case ((NU8) 1):
	case ((NU8) 2):
	case ((NU8) 29):
	case ((NU8) 28):
	case ((NU8) 31) ... ((NU8) 44):
	{
		Ropeobj162009* s;
		TY491436 LOC13;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = result;
		LOC13[1] = rope_162407(((NI64) ((*t).kind)));
		s = HEX25_163235(((NimStringDesc*) &TMP4407), LOC13, 2);
		prepend_163205(&(*(*p).g).typeinfo, s);
	}
	break;
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	case ((NU8) 24):
	case ((NU8) 20):
	case ((NU8) 19):
	{
		Ropeobj162009* s;
		TY491436 LOC15;
		TY491436 LOC16;
		Ttype191849* LOC17;
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = result;
		LOC15[1] = rope_162407(((NI64) ((*t).kind)));
		s = HEX25_163235(((NimStringDesc*) &TMP4407), LOC15, 2);
		prepend_163205(&(*(*p).g).typeinfo, s);
		memset((void*)LOC16, 0, sizeof(LOC16));
		LOC16[0] = result;
		LOC17 = 0;
		LOC17 = lastson_194442(typ);
		LOC16[1] = gentypeinfo_497315(p, LOC17);
		addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4408), LOC16, 2);
	}
	break;
	case ((NU8) 4):
	case ((NU8) 16):
	{
		Ropeobj162009* s;
		TY491436 LOC19;
		TY491436 LOC20;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = result;
		LOC19[1] = rope_162407(((NI64) ((*t).kind)));
		s = HEX25_163235(((NimStringDesc*) &TMP4407), LOC19, 2);
		prepend_163205(&(*(*p).g).typeinfo, s);
		memset((void*)LOC20, 0, sizeof(LOC20));
		LOC20[0] = result;
		LOC20[1] = gentypeinfo_497315(p, (*typ).sons->data[((NI) 1)]);
		addf_163635(&(*(*p).g).typeinfo, ((NimStringDesc*) &TMP4408), LOC20, 2);
	}
	break;
	case ((NU8) 14):
	{
		genenuminfo_497634(p, t, result);
	}
	break;
	case ((NU8) 17):
	{
		genobjectinfo_497506(p, t, result);
	}
	break;
	case ((NU8) 18):
	{
		gentupleinfo_497608(p, t, result);
	}
	break;
	default:
	{
		NimStringDesc* LOC25;
		LOC25 = 0;
		LOC25 = rawNewString(reprEnum((*t).kind, (&NTI191260))->Sup.len + 13);
appendString(LOC25, ((NimStringDesc*) &TMP4424));
appendString(LOC25, reprEnum((*t).kind, (&NTI191260)));
appendChar(LOC25, 41);
		internalerror_166218(LOC25);
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Ropeobj162009*, createrecordvaraux_502326)(Tproc497033* p, Tnode191813* rec, NI* c) {
	Ropeobj162009* result;
	result = 0;
	result = NIM_NIL;
	switch ((*rec).kind) {
	case ((NU8) 138):
	{
		{
			NI i_502345;
			NI HEX3Atmp_502382;
			NI LOC3;
			NI res_502385;
			i_502345 = 0;
			HEX3Atmp_502382 = 0;
			LOC3 = 0;
			LOC3 = sonslen_194403(rec);
			HEX3Atmp_502382 = (NI)(LOC3 - ((NI) 1));
			res_502385 = ((NI) 0);
			{
				while (1) {
					Ropeobj162009* LOC6;
					if (!(res_502385 <= HEX3Atmp_502382)) goto LA5;
					i_502345 = res_502385;
					LOC6 = 0;
					LOC6 = createrecordvaraux_502326(p, (*rec).kindU.S6.sons->data[i_502345], c);
					add_162534(&result, LOC6);
					res_502385 += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	case ((NU8) 139):
	{
		Ropeobj162009* LOC8;
		LOC8 = 0;
		LOC8 = createrecordvaraux_502326(p, (*rec).kindU.S6.sons->data[((NI) 0)], c);
		add_162534(&result, LOC8);
		{
			NI i_502362;
			NI HEX3Atmp_502390;
			NI LOC10;
			NI res_502393;
			i_502362 = 0;
			HEX3Atmp_502390 = 0;
			LOC10 = 0;
			LOC10 = sonslen_194403(rec);
			HEX3Atmp_502390 = (NI)(LOC10 - ((NI) 1));
			res_502393 = ((NI) 1);
			{
				while (1) {
					Tnode191813* LOC13;
					Ropeobj162009* LOC14;
					if (!(res_502393 <= HEX3Atmp_502390)) goto LA12;
					i_502362 = res_502393;
					LOC13 = 0;
					LOC13 = lastson_194431((*rec).kindU.S6.sons->data[i_502362]);
					LOC14 = 0;
					LOC14 = createrecordvaraux_502326(p, LOC13, c);
					add_162534(&result, LOC14);
					res_502393 += ((NI) 1);
				} LA12: ;
			}
		}
	}
	break;
	case ((NU8) 3):
	{
		Ropeobj162009* LOC20;
		Ropeobj162009* LOC21;
		{
			if (!(((NI) 0) < (*c))) goto LA18;
			add_162545(&result, ((NimStringDesc*) &TMP4390));
		}
		LA18: ;
		LOC20 = 0;
		LOC20 = manglename_497277((*rec).kindU.S4.sym);
		add_162534(&result, LOC20);
		add_162545(&result, ((NimStringDesc*) &TMP4433));
		LOC21 = 0;
		LOC21 = createvar_502318(p, (*(*rec).kindU.S4.sym).typ, NIM_FALSE);
		add_162534(&result, LOC21);
		(*c) += ((NI) 1);
	}
	break;
	default:
	{
		internalerror_166199((*rec).info, ((NimStringDesc*) &TMP4434));
	}
	break;
	}
	return result;
}

N_NIMCALL(Ropeobj162009*, createvar_502318)(Tproc497033* p, Ttype191849* typ, NIM_BOOL indirect) {
	Ropeobj162009* result;
	Ttype191849* t;
	result = 0;
	t = skiptypes_195167(typ, IL64(211106232576256));
	switch ((*t).kind) {
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 40) ... ((NU8) 44):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = puttoseq_502305(((NimStringDesc*) &TMP4384), indirect);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = puttoseq_502305(((NimStringDesc*) &TMP4385), indirect);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 11):
	{
		Ttype191849* LOC4;
		LOC4 = 0;
		LOC4 = lastson_194442(typ);
		result = createvar_502318(p, LOC4, indirect);
	}
	break;
	case ((NU8) 19):
	{
		result = puttoseq_502305(((NimStringDesc*) &TMP4386), indirect);
	}
	break;
	case ((NU8) 1):
	{
		result = puttoseq_502305(((NimStringDesc*) &TMP4387), indirect);
	}
	break;
	case ((NU8) 16):
	case ((NU8) 4):
	{
		NI length;
		NI64 LOC8;
		Ttype191849* e;
		LOC8 = 0;
		LOC8 = lengthord_221016(t);
		length = ((NI) (LOC8));
		e = elemtype_221522(t);
		{
			TY463569 LOC13;
			if (!(((NI) 32) < length)) goto LA11;
			usemagic_497846(p, ((NimStringDesc*) &TMP4403));
			usemagic_497846(p, ((NimStringDesc*) &TMP4404));
			memset((void*)LOC13, 0, sizeof(LOC13));
			LOC13[0] = rope_162407(((NI64) (length)));
			LOC13[1] = createvar_502318(p, e, NIM_FALSE);
			LOC13[2] = gentypeinfo_497315(p, e);
			result = HEX25_163235(((NimStringDesc*) &TMP4405), LOC13, 3);
		}
		goto LA9;
		LA11: ;
		{
			NI i;
			result = rope_162320(((NimStringDesc*) &TMP4425));
			i = ((NI) 0);
			{
				while (1) {
					Ropeobj162009* LOC21;
					if (!(i < length)) goto LA16;
					{
						if (!(((NI) 0) < i)) goto LA19;
						add_162545(&result, ((NimStringDesc*) &TMP4390));
					}
					LA19: ;
					LOC21 = 0;
					LOC21 = createvar_502318(p, e, NIM_FALSE);
					add_162534(&result, LOC21);
					i += ((NI) 1);
				} LA16: ;
			}
			add_162545(&result, ((NimStringDesc*) &TMP4426));
		}
		LA9: ;
		{
			TY162572 LOC26;
			if (!indirect) goto LA24;
			memset((void*)LOC26, 0, sizeof(LOC26));
			LOC26[0] = result;
			result = HEX25_163235(((NimStringDesc*) &TMP4383), LOC26, 1);
		}
		LA24: ;
	}
	break;
	case ((NU8) 18):
	{
		result = rope_162320(((NimStringDesc*) &TMP4427));
		{
			NI i_502465;
			NI HEX3Atmp_502588;
			NI LOC29;
			NI res_502591;
			i_502465 = 0;
			HEX3Atmp_502588 = 0;
			LOC29 = 0;
			LOC29 = sonslen_194351(t);
			HEX3Atmp_502588 = (LOC29 - 1);
			res_502591 = ((NI) 0);
			{
				while (1) {
					NimStringDesc* LOC36;
					TY491436 LOC42;
					if (!(res_502591 <= HEX3Atmp_502588)) goto LA31;
					i_502465 = res_502591;
					{
						if (!(((NI) 0) < i_502465)) goto LA34;
						add_162545(&result, ((NimStringDesc*) &TMP4390));
					}
					LA34: ;
					LOC36 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA39;
						LOC36 = copyString(((NimStringDesc*) &TMP4428));
					}
					goto LA37;
					LA39: ;
					{
						LOC36 = copyString(((NimStringDesc*) &TMP4429));
					}
					LA37: ;
					memset((void*)LOC42, 0, sizeof(LOC42));
					LOC42[0] = rope_162407(((NI64) (i_502465)));
					LOC42[1] = createvar_502318(p, (*t).sons->data[i_502465], NIM_FALSE);
					addf_163635(&result, LOC36, LOC42, 2);
					res_502591 += ((NI) 1);
				} LA31: ;
			}
		}
		add_162545(&result, ((NimStringDesc*) &TMP4430));
		{
			TY162572 LOC47;
			if (!indirect) goto LA45;
			memset((void*)LOC47, 0, sizeof(LOC47));
			LOC47[0] = result;
			result = HEX25_163235(((NimStringDesc*) &TMP4383), LOC47, 1);
		}
		LA45: ;
	}
	break;
	case ((NU8) 17):
	{
		NI c;
		result = rope_162320(((NimStringDesc*) &TMP4427));
		c = ((NI) 0);
		{
			NIM_BOOL LOC51;
			NimStringDesc* LOC55;
			TY162572 LOC61;
			LOC51 = 0;
			LOC51 = !((((*t).flags &(1<<((((NU8) 2))&31)))!=0));
			if (LOC51) goto LA52;
			LOC51 = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
			LA52: ;
			if (!LOC51) goto LA53;
			c += ((NI) 1);
			LOC55 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA58;
				LOC55 = copyString(((NimStringDesc*) &TMP4431));
			}
			goto LA56;
			LA58: ;
			{
				LOC55 = copyString(((NimStringDesc*) &TMP4432));
			}
			LA56: ;
			memset((void*)LOC61, 0, sizeof(LOC61));
			LOC61[0] = gentypeinfo_497315(p, t);
			addf_163635(&result, LOC55, LOC61, 1);
		}
		LA53: ;
		{
			while (1) {
				Ropeobj162009* LOC64;
				if (!!((t == NIM_NIL))) goto LA63;
				LOC64 = 0;
				LOC64 = createrecordvaraux_502326(p, (*t).n, (&c));
				add_162534(&result, LOC64);
				t = (*t).sons->data[((NI) 0)];
			} LA63: ;
		}
		add_162545(&result, ((NimStringDesc*) &TMP4430));
		{
			TY162572 LOC69;
			if (!indirect) goto LA67;
			memset((void*)LOC69, 0, sizeof(LOC69));
			LOC69[0] = result;
			result = HEX25_163235(((NimStringDesc*) &TMP4383), LOC69, 1);
		}
		LA67: ;
	}
	break;
	case ((NU8) 23):
	case ((NU8) 21):
	case ((NU8) 22):
	{
		{
			NU8 LOC73;
			NimStringDesc* LOC76;
			LOC73 = 0;
			LOC73 = maptype_497256(t);
			if (!(LOC73 == ((NU8) 8))) goto LA74;
			LOC76 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA79;
				LOC76 = copyString(((NimStringDesc*) &TMP4435));
			}
			goto LA77;
			LA79: ;
			{
				LOC76 = copyString(((NimStringDesc*) &TMP4436));
			}
			LA77: ;
			result = puttoseq_502305(LOC76, indirect);
		}
		goto LA71;
		LA74: ;
		{
			NimStringDesc* LOC83;
			LOC83 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA86;
				LOC83 = copyString(((NimStringDesc*) &TMP4373));
			}
			goto LA84;
			LA86: ;
			{
				LOC83 = copyString(((NimStringDesc*) &TMP4437));
			}
			LA84: ;
			result = puttoseq_502305(LOC83, indirect);
		}
		LA71: ;
	}
	break;
	case ((NU8) 24):
	case ((NU8) 28):
	case ((NU8) 29):
	case ((NU8) 26):
	case ((NU8) 25):
	{
		NimStringDesc* LOC90;
		LOC90 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA93;
			LOC90 = copyString(((NimStringDesc*) &TMP4373));
		}
		goto LA91;
		LA93: ;
		{
			LOC90 = copyString(((NimStringDesc*) &TMP4437));
		}
		LA91: ;
		result = puttoseq_502305(LOC90, indirect);
	}
	break;
	default:
	{
		NimStringDesc* LOC97;
		LOC97 = 0;
		LOC97 = rawNewString(reprEnum((*t).kind, (&NTI191260))->Sup.len + 11);
appendString(LOC97, ((NimStringDesc*) &TMP4438));
appendString(LOC97, reprEnum((*t).kind, (&NTI191260)));
		internalerror_166218(LOC97);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_NIMCALL(NIM_BOOL, needsnocopy_501065)(Tnode191813* y) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	Ttype191849* LOC3;
	result = 0;
	LOC1 = 0;
	LOC1 = ((TMP4439[(*y).kind/8] &(1<<((*y).kind%8)))!=0);
	if (LOC1) goto LA2;
	LOC3 = 0;
	LOC3 = skiptypes_195167((*y).typ, IL64(211106232576256));
	LOC1 = ((*LOC3).kind == ((NU8) 22) || (*LOC3).kind == ((NU8) 21) || (*LOC3).kind == ((NU8) 23));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, genvarinit_502623)(Tproc497033* p, Tsym191843* v, Tnode191813* n) {
	Tcompres497023 a;
	Ropeobj162009* s;
{	memset((void*)(&a), 0, sizeof(a));
	s = 0;
	{
		NimStringDesc* LOC5;
		TY491436 LOC11;
		NIM_BOOL LOC12;
		if (!((*n).kind == ((NU8) 1))) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4380));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4381));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = manglename_497277(v);
		LOC12 = 0;
		LOC12 = isindirect_501600(v);
		LOC11[1] = createvar_502318(p, (*v).typ, LOC12);
		addf_163635(&(*p).body, LOC5, LOC11, 2);
	}
	goto LA1;
	LA3: ;
	{
		Ropeobj162009* LOC14;
		NU8 LOC15;
		LOC14 = 0;
		LOC14 = manglename_497277(v);
		gen_497816(p, n, (&a));
		LOC15 = 0;
		LOC15 = maptype_497256((*v).typ);
		switch (LOC15) {
		case ((NU8) 7):
		{
			{
				NIM_BOOL LOC19;
				LOC19 = 0;
				LOC19 = needsnocopy_501065(n);
				if (!LOC19) goto LA20;
				s = a.res;
			}
			goto LA17;
			LA20: ;
			{
				TY491436 LOC23;
				usemagic_497846(p, ((NimStringDesc*) &TMP4404));
				memset((void*)LOC23, 0, sizeof(LOC23));
				LOC23[0] = a.res;
				LOC23[1] = gentypeinfo_497315(p, (*n).typ);
				s = HEX25_163235(((NimStringDesc*) &TMP4440), LOC23, 2);
			}
			LA17: ;
		}
		break;
		case ((NU8) 8):
		{
			{
				if (!!((a.typ == ((NU8) 8)))) goto LA27;
				internalerror_166199((*n).info, ((NimStringDesc*) &TMP4441));
			}
			LA27: ;
			{
				NimStringDesc* LOC33;
				TY463569 LOC39;
				if (!!(((32776 & (*v).flags) == 0))) goto LA31;
				LOC33 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA36;
					LOC33 = copyString(((NimStringDesc*) &TMP4442));
				}
				goto LA34;
				LA36: ;
				{
					LOC33 = copyString(((NimStringDesc*) &TMP4443));
				}
				LA34: ;
				memset((void*)LOC39, 0, sizeof(LOC39));
				LOC39[0] = (*v).loc.r;
				LOC39[1] = a.address;
				LOC39[2] = a.res;
				addf_163635(&(*p).body, LOC33, LOC39, 3);
			}
			goto LA29;
			LA31: ;
			{
				NimStringDesc* LOC41;
				TY463569 LOC47;
				LOC41 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4444));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4445));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				LOC47[0] = (*v).loc.r;
				LOC47[1] = a.address;
				LOC47[2] = a.res;
				addf_163635(&(*p).body, LOC41, LOC47, 3);
			}
			LA29: ;
			goto BeforeRet;
		}
		break;
		default:
		{
			s = a.res;
		}
		break;
		}
		{
			NIM_BOOL LOC51;
			NimStringDesc* LOC54;
			TY491436 LOC60;
			LOC51 = 0;
			LOC51 = isindirect_501600(v);
			if (!LOC51) goto LA52;
			LOC54 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA57;
				LOC54 = copyString(((NimStringDesc*) &TMP4446));
			}
			goto LA55;
			LA57: ;
			{
				LOC54 = copyString(((NimStringDesc*) &TMP4447));
			}
			LA55: ;
			memset((void*)LOC60, 0, sizeof(LOC60));
			LOC60[0] = (*v).loc.r;
			LOC60[1] = s;
			addf_163635(&(*p).body, LOC54, LOC60, 2);
		}
		goto LA49;
		LA52: ;
		{
			NimStringDesc* LOC62;
			TY491436 LOC68;
			LOC62 = 0;
			{
				if (!((*p).target == ((NU8) 0))) goto LA65;
				LOC62 = copyString(((NimStringDesc*) &TMP4380));
			}
			goto LA63;
			LA65: ;
			{
				LOC62 = copyString(((NimStringDesc*) &TMP4381));
			}
			LA63: ;
			memset((void*)LOC68, 0, sizeof(LOC68));
			LOC68[0] = (*v).loc.r;
			LOC68[1] = s;
			addf_163635(&(*p).body, LOC62, LOC68, 2);
		}
		LA49: ;
	}
	LA1: ;
	}BeforeRet: ;
}

N_NIMCALL(void, genconstant_497839)(Tproc497033* p, Tsym191843* c) {
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC5;
		Ropeobj162009* oldbody;
		LOC3 = 0;
		LOC3 = !((((*c).loc.flags &(1<<((((NU8) 3))&15)))!=0));
		if (!(LOC3)) goto LA4;
		LOC5 = 0;
		LOC5 = containsorincl_188898((&(*(*p).g).generatedsyms), (*c).Sup.id);
		LOC3 = !(LOC5);
		LA4: ;
		if (!LOC3) goto LA6;
		oldbody = (*p).body;
		asgnRefNoCycle((void**) (&(*p).body), NIM_NIL);
		genvarinit_502623(p, c, (*c).ast);
		add_162534(&(*(*p).g).code, (*p).body);
		asgnRefNoCycle((void**) (&(*p).body), oldbody);
	}
	LA6: ;
}

N_NIMCALL(void, gensym_501782)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tsym191843* s;
	s = (*n).kindU.S4.sym;
	switch ((*s).kind) {
	case ((NU8) 8):
	case ((NU8) 9):
	case ((NU8) 3):
	case ((NU8) 5):
	case ((NU8) 11):
	{
		NU8 k;
		{
			NimStringDesc* LOC6;
			if (!((*s).loc.r == NIM_NIL)) goto LA4;
			LOC6 = 0;
			LOC6 = rawNewString((*(*s).name).s->Sup.len + 30);
appendString(LOC6, ((NimStringDesc*) &TMP4376));
appendString(LOC6, (*(*s).name).s);
			internalerror_166199((*n).info, LOC6);
		}
		LA4: ;
		k = maptype_497256((*s).typ);
		{
			if (!(k == ((NU8) 8))) goto LA9;
			(*r).typ = ((NU8) 8);
			{
				TY162572 LOC15;
				TY162572 LOC16;
				if (!!(((32776 & (*s).flags) == 0))) goto LA13;
				memset((void*)LOC15, 0, sizeof(LOC15));
				LOC15[0] = (*s).loc.r;
				unsureAsgnRef((void**) (&(*r).address), HEX25_163235(((NimStringDesc*) &TMP4377), LOC15, 1));
				memset((void*)LOC16, 0, sizeof(LOC16));
				LOC16[0] = (*s).loc.r;
				unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4378), LOC16, 1));
			}
			goto LA11;
			LA13: ;
			{
				unsureAsgnRef((void**) (&(*r).address), (*s).loc.r);
				unsureAsgnRef((void**) (&(*r).res), HEX26_162471((*s).loc.r, ((NimStringDesc*) &TMP4379)));
			}
			LA11: ;
		}
		goto LA7;
		LA9: ;
		{
			NIM_BOOL LOC19;
			TY162572 LOC22;
			LOC19 = 0;
			LOC19 = isindirect_501600(s);
			if (!LOC19) goto LA20;
			memset((void*)LOC22, 0, sizeof(LOC22));
			LOC22[0] = (*s).loc.r;
			unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4377), LOC22, 1));
		}
		goto LA7;
		LA20: ;
		{
			unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		}
		LA7: ;
	}
	break;
	case ((NU8) 10):
	{
		genconstant_497839(p, s);
		{
			NimStringDesc* LOC29;
			if (!((*s).loc.r == NIM_NIL)) goto LA27;
			LOC29 = 0;
			LOC29 = rawNewString((*(*s).name).s->Sup.len + 30);
appendString(LOC29, ((NimStringDesc*) &TMP4376));
appendString(LOC29, (*(*s).name).s);
			internalerror_166199((*n).info, LOC29);
		}
		LA27: ;
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
	}
	break;
	case ((NU8) 12):
	case ((NU8) 16):
	case ((NU8) 13):
	{
		Ropeobj162009* LOC31;
		LOC31 = 0;
		LOC31 = manglename_497277(s);
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		{
			NIM_BOOL LOC34;
			NIM_BOOL LOC35;
			LOC34 = 0;
			LOC35 = 0;
			LOC35 = (((*s).loc.flags &(1<<((((NU8) 3))&15)))!=0);
			if (LOC35) goto LA36;
			LOC35 = !(((*s).magic == ((NU16) 0)));
			LA36: ;
			LOC34 = LOC35;
			if (LOC34) goto LA37;
			LOC34 = !(((134217760 & (*s).flags) == 0));
			LA37: ;
			if (!LOC34) goto LA38;
		}
		goto LA32;
		LA38: ;
		{
			NIM_BOOL LOC41;
			Tnode191813* LOC43;
			LOC41 = 0;
			LOC41 = ((*s).kind == ((NU8) 13));
			if (!(LOC41)) goto LA42;
			LOC43 = 0;
			LOC43 = getbody_236648(s);
			LOC41 = ((*LOC43).kind == ((NU8) 1));
			LA42: ;
			if (!LOC41) goto LA44;
		}
		goto LA32;
		LA44: ;
		{
			if (!(((*s).flags &(1<<((((NU8) 4))&31)))!=0)) goto LA47;
			(*(*p).g).forwarded = (Tsymseq191815*) incrSeq(&((*(*p).g).forwarded)->Sup, sizeof(Tsym191843*));
			asgnRefNoCycle((void**) (&(*(*p).g).forwarded->data[(*(*p).g).forwarded->Sup.len-1]), s);
		}
		goto LA32;
		LA47: ;
		{
			NIM_BOOL LOC50;
			Ropeobj162009* newp;
			Tproc497033* owner;
			LOC50 = 0;
			LOC50 = containsorincl_188898((&(*(*p).g).generatedsyms), (*s).Sup.id);
			if (!!(LOC50)) goto LA51;
			newp = genproc_497832(p, s);
			owner = p;
			{
				while (1) {
					NIM_BOOL LOC55;
					LOC55 = 0;
					LOC55 = !((owner == NIM_NIL));
					if (!(LOC55)) goto LA56;
					LOC55 = !(((*owner).prc == (*s).owner));
					LA56: ;
					if (!LOC55) goto LA54;
					owner = (*owner).up;
				} LA54: ;
			}
			{
				if (!!((owner == NIM_NIL))) goto LA59;
				add_162534(&(*owner).locals, newp);
			}
			goto LA57;
			LA59: ;
			{
				add_162534(&(*(*p).g).code, newp);
			}
			LA57: ;
		}
		goto LA32;
		LA51: ;
		LA32: ;
	}
	break;
	default:
	{
		{
			NimStringDesc* LOC67;
			if (!((*s).loc.r == NIM_NIL)) goto LA65;
			LOC67 = 0;
			LOC67 = rawNewString((*(*s).name).s->Sup.len + 30);
appendString(LOC67, ((NimStringDesc*) &TMP4376));
appendString(LOC67, (*(*s).name).s);
			internalerror_166199((*n).info, LOC67);
		}
		LA65: ;
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
	}
	break;
	}
	(*r).kind = ((NU8) 2);
}

static N_INLINE(NIM_BOOL, isemptytype_196933)(Ttype191849* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (t == NIM_NIL);
	if (LOC1) goto LA2;
	LOC1 = ((*t).kind == ((NU8) 3) || (*t).kind == ((NU8) 7));
	LA2: ;
	result = LOC1;
	return result;
}

static N_INLINE(NI, len_192097)(Tnode191813* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.sons == 0) goto LA3;
		result = ((NI) 0);
	}
	goto LA1;
	LA3: ;
	{
		result = ((*n).kindU.S6.sons ? (*n).kindU.S6.sons->Sup.len : 0);
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, isatom_196905)(Tnode191813* n) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (((NU8) 0) <= (*n).kind);
	if (!(LOC1)) goto LA2;
	LOC1 = ((*n).kind <= ((NU8) 23));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, issimpleexpr_497903)(Tnode191813* n) {
	NIM_BOOL result;
{	result = 0;
	{
		if (!((*n).kind >= ((NU8) 26) && (*n).kind <= ((NU8) 32) || (*n).kind >= ((NU8) 37) && (*n).kind <= ((NU8) 39) || (*n).kind >= ((NU8) 41) && (*n).kind <= ((NU8) 42) || (*n).kind == ((NU8) 45))) goto LA3;
		{
			Tnode191813* c_497930;
			c_497930 = 0;
			{
				NI i_497937;
				NI HEX3Atmp_497939;
				NI LOC7;
				NI res_497941;
				i_497937 = 0;
				HEX3Atmp_497939 = 0;
				LOC7 = 0;
				LOC7 = len_192097(n);
				HEX3Atmp_497939 = (LOC7 - 1);
				res_497941 = ((NI) 0);
				{
					while (1) {
						if (!(res_497941 <= HEX3Atmp_497939)) goto LA9;
						i_497937 = res_497941;
						c_497930 = (*n).kindU.S6.sons->data[i_497937];
						{
							NIM_BOOL LOC12;
							LOC12 = 0;
							LOC12 = issimpleexpr_497903(c_497930);
							if (!!(LOC12)) goto LA13;
							result = NIM_FALSE;
							goto BeforeRet;
						}
						LA13: ;
						res_497941 += ((NI) 1);
					} LA9: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC16;
		LOC16 = 0;
		LOC16 = isatom_196905(n);
		if (!LOC16) goto LA17;
		result = NIM_TRUE;
	}
	goto LA1;
	LA17: ;
	LA1: ;
	}BeforeRet: ;
	return result;
}

static N_INLINE(Ropeobj162009*, rdloc_497127)(Tcompres497023 a) {
	Ropeobj162009* result;
	result = 0;
	result = a.res;
	return result;
}

N_NIMCALL(Ropeobj162009*, gettemp_497962)(Tproc497033* p) {
	Ropeobj162009* result;
	TY162572 LOC1;
	NimStringDesc* LOC2;
	TY162572 LOC8;
	result = 0;
	(*p).unique += ((NI) 1);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rope_162407(((NI64) ((*p).unique)));
	result = HEX25_163235(((NimStringDesc*) &TMP4459), LOC1, 1);
	LOC2 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA5;
		LOC2 = copyString(((NimStringDesc*) &TMP4460));
	}
	goto LA3;
	LA5: ;
	{
		LOC2 = copyString(((NimStringDesc*) &TMP4461));
	}
	LA3: ;
	memset((void*)LOC8, 0, sizeof(LOC8));
	LOC8[0] = result;
	addf_163635(&(*p).locals, LOC2, LOC8, 1);
	return result;
}

N_NIMCALL(void, genor_498252)(Tproc497033* p, Tnode191813* a, Tnode191813* b, Tcompres497023* r) {
	Tcompres497023 x;
	Tcompres497023 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY491436 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_497903(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_497903(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_497816(p, a, (&x));
		gen_497816(p, b, (&y));
		(*r).kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4457));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4458));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_497127(x);
		LOC13[1] = rdloc_497127(y);
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY491436 LOC21;
		NimStringDesc* LOC22;
		TY491436 LOC28;
		unsureAsgnRef((void**) (&(*r).res), gettemp_497962(p));
		(*r).kind = ((NU8) 2);
		gen_497816(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4462));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4463));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_497127(x);
		LOC21[1] = rdloc_497127((*r));
		addf_163635(&(*p).body, LOC15, LOC21, 2);
		gen_497816(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4464));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4465));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_497127(y);
		LOC28[1] = rdloc_497127((*r));
		addf_163635(&(*p).body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, genand_497995)(Tproc497033* p, Tnode191813* a, Tnode191813* b, Tcompres497023* r) {
	Tcompres497023 x;
	Tcompres497023 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY491436 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_497903(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_497903(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_497816(p, a, (&x));
		gen_497816(p, b, (&y));
		(*r).kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4466));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4467));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_497127(x);
		LOC13[1] = rdloc_497127(y);
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY491436 LOC21;
		NimStringDesc* LOC22;
		TY491436 LOC28;
		unsureAsgnRef((void**) (&(*r).res), gettemp_497962(p));
		(*r).kind = ((NU8) 2);
		gen_497816(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4468));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4469));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_497127(x);
		LOC21[1] = rdloc_497127((*r));
		addf_163635(&(*p).body, LOC15, LOC21, 2);
		gen_497816(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4464));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4465));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_497127(y);
		LOC28[1] = rdloc_497127((*r));
		addf_163635(&(*p).body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, arithaux_498919)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NU16 op, Tmagicops498455 ops) {
	Tcompres497023 x;
	Tcompres497023 y;
	NI i;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	i = !((((*p).options &(1<<((((NU8) 5))&31)))!=0));
	usemagic_497846(p, ops[(op)- 41][(i)- 0]);
	{
		NI LOC3;
		TY491436 LOC6;
		LOC3 = 0;
		LOC3 = sonslen_194403(n);
		if (!(((NI) 2) < LOC3)) goto LA4;
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 2)], (&y));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_497127(x);
		LOC6[1] = rdloc_497127(y);
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(ops[(op)- 41][((NI)(((NI) (i)) + ((NI) 2)))- 0], LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		TY162572 LOC8;
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_497127((*r));
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(ops[(op)- 41][((NI)(((NI) (i)) + ((NI) 2)))- 0], LOC8, 1));
	}
	LA1: ;
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, arith_498967)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NU16 op) {
	Tmagicops498455 LOC1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	{
		if (!((*p).target == ((NU8) 0))) goto LA4;
		genericAssign((void*)LOC1, (void*)jsops_498461, (&NTI498455));
	}
	goto LA2;
	LA4: ;
	{
		genericAssign((void*)LOC1, (void*)luaops_498654, (&NTI498455));
	}
	LA2: ;
	arithaux_498919(p, n, r, op, LOC1);
}

N_NIMCALL(void, unaryexpr_498902)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	TY162572 LOC1;
	usemagic_497846(p, magic);
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_497127((*r));
	unsureAsgnRef((void**) (&(*r).res), HEX25_163235(frmt, LOC1, 1));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genrepr_503428)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Ttype191849* t;
	t = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
	switch ((*t).kind) {
	case ((NU8) 31) ... ((NU8) 44):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4567));
	}
	break;
	case ((NU8) 14):
	case ((NU8) 15):
	{
		TY491436 LOC3;
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
		usemagic_497846(p, ((NimStringDesc*) &TMP4451));
		(*r).kind = ((NU8) 1);
		memset((void*)LOC3, 0, sizeof(LOC3));
		LOC3[0] = gentypeinfo_497315(p, t);
		LOC3[1] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4568), LOC3, 2));
	}
	break;
	default:
	{
		internalerror_166199((*n).info, ((NimStringDesc*) &TMP4569));
	}
	break;
	}
}

N_NIMCALL(void, genswap_501168)(Tproc497033* p, Tnode191813* n) {
	Tcompres497023 a;
	Tcompres497023 b;
	Ropeobj162009* tmp;
	TY162572 LOC1;
	NimStringDesc* LOC22;
	TY463569 LOC28;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 2)], (&b));
	(*p).unique += ((NI) 1);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rope_162407(((NI64) ((*p).unique)));
	tmp = HEX25_163235(((NimStringDesc*) &TMP4459), LOC1, 1);
	{
		Ttype191849* LOC4;
		NU8 LOC5;
		Ropeobj162009* tmp2;
		TY162572 LOC8;
		NimStringDesc* LOC15;
		TY463569 LOC21;
		LOC4 = 0;
		LOC4 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
		LOC5 = 0;
		LOC5 = maptype_497256(LOC4);
		if (!(LOC5 == ((NU8) 8))) goto LA6;
		(*p).unique += ((NI) 1);
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rope_162407(((NI64) ((*p).unique)));
		tmp2 = HEX25_163235(((NimStringDesc*) &TMP4459), LOC8, 1);
		{
			NIM_BOOL LOC11;
			LOC11 = 0;
			LOC11 = !((a.typ == ((NU8) 8)));
			if (LOC11) goto LA12;
			LOC11 = !((b.typ == ((NU8) 8)));
			LA12: ;
			if (!LOC11) goto LA13;
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4570));
		}
		LA13: ;
		LOC15 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4571));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4572));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = tmp;
		LOC21[1] = a.address;
		LOC21[2] = b.address;
		addf_163635(&(*p).body, LOC15, LOC21, 3);
		tmp = tmp2;
	}
	LA6: ;
	LOC22 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA25;
		LOC22 = copyString(((NimStringDesc*) &TMP4573));
	}
	goto LA23;
	LA25: ;
	{
		LOC22 = copyString(((NimStringDesc*) &TMP4574));
	}
	LA23: ;
	memset((void*)LOC28, 0, sizeof(LOC28));
	LOC28[0] = tmp;
	LOC28[1] = a.res;
	LOC28[2] = b.res;
	addf_163635(&(*p).body, LOC22, LOC28, 3);
}

N_NIMCALL(void, binaryexpr_498850)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	Tcompres497023 x;
	Tcompres497023 y;
	TY491436 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	usemagic_497846(p, magic);
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 2)], (&y));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_497127(x);
	LOC1[1] = rdloc_497127(y);
	unsureAsgnRef((void**) (&(*r).res), HEX25_163235(frmt, LOC1, 2));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genconstrstr_503330)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	NI LOC25;
	memset((void*)(&a), 0, sizeof(a));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	(*r).kind = ((NU8) 1);
	{
		Ttype191849* LOC3;
		TY162572 LOC6;
		Ropeobj162009* LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
		if (!((*LOC3).kind == ((NU8) 2))) goto LA4;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = a.res;
		LOC7 = 0;
		LOC7 = HEX25_163235(((NimStringDesc*) &TMP4582), LOC6, 1);
		add_162534(&(*r).res, LOC7);
	}
	goto LA1;
	LA4: ;
	{
		TY162572 LOC9;
		Ropeobj162009* LOC10;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = a.res;
		LOC10 = 0;
		LOC10 = HEX25_163235(((NimStringDesc*) &TMP4583), LOC9, 1);
		add_162534(&(*r).res, LOC10);
	}
	LA1: ;
	{
		NI i_503367;
		NI HEX3Atmp_503406;
		NI LOC12;
		NI res_503409;
		i_503367 = 0;
		HEX3Atmp_503406 = 0;
		LOC12 = 0;
		LOC12 = sonslen_194403(n);
		HEX3Atmp_503406 = (NI)(LOC12 - ((NI) 2));
		res_503409 = ((NI) 2);
		{
			while (1) {
				if (!(res_503409 <= HEX3Atmp_503406)) goto LA14;
				i_503367 = res_503409;
				gen_497816(p, (*n).kindU.S6.sons->data[i_503367], (&a));
				{
					Ttype191849* LOC17;
					TY162572 LOC20;
					Ropeobj162009* LOC21;
					LOC17 = 0;
					LOC17 = skiptypes_195167((*(*n).kindU.S6.sons->data[i_503367]).typ, IL64(211106242013440));
					if (!((*LOC17).kind == ((NU8) 2))) goto LA18;
					memset((void*)LOC20, 0, sizeof(LOC20));
					LOC20[0] = a.res;
					LOC21 = 0;
					LOC21 = HEX25_163235(((NimStringDesc*) &TMP4584), LOC20, 1);
					add_162534(&(*r).res, LOC21);
				}
				goto LA15;
				LA18: ;
				{
					TY162572 LOC23;
					Ropeobj162009* LOC24;
					memset((void*)LOC23, 0, sizeof(LOC23));
					LOC23[0] = a.res;
					LOC24 = 0;
					LOC24 = HEX25_163235(((NimStringDesc*) &TMP4585), LOC23, 1);
					add_162534(&(*r).res, LOC24);
				}
				LA15: ;
				res_503409 += ((NI) 1);
			} LA14: ;
		}
	}
	LOC25 = 0;
	LOC25 = sonslen_194403(n);
	gen_497816(p, (*n).kindU.S6.sons->data[(NI)(LOC25 - ((NI) 1))], (&a));
	{
		NI LOC28;
		Ttype191849* LOC29;
		TY162572 LOC32;
		Ropeobj162009* LOC33;
		LOC28 = 0;
		LOC28 = sonslen_194403(n);
		LOC29 = 0;
		LOC29 = skiptypes_195167((*(*n).kindU.S6.sons->data[(NI)(LOC28 - ((NI) 1))]).typ, IL64(211106242013440));
		if (!((*LOC29).kind == ((NU8) 2))) goto LA30;
		memset((void*)LOC32, 0, sizeof(LOC32));
		LOC32[0] = a.res;
		LOC33 = 0;
		LOC33 = HEX25_163235(((NimStringDesc*) &TMP4586), LOC32, 1);
		add_162534(&(*r).res, LOC33);
	}
	goto LA26;
	LA30: ;
	{
		TY162572 LOC35;
		Ropeobj162009* LOC36;
		memset((void*)LOC35, 0, sizeof(LOC35));
		LOC35[0] = a.res;
		LOC36 = 0;
		LOC36 = HEX25_163235(((NimStringDesc*) &TMP4587), LOC35, 1);
		add_162534(&(*r).res, LOC36);
	}
	LA26: ;
}

N_NIMCALL(void, gennew_503265)(Tproc497033* p, Tnode191813* n) {
	Tcompres497023 a;
	Ttype191849* t;
	Ttype191849* LOC1;
	TY491436 LOC2;
	memset((void*)(&a), 0, sizeof(a));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
	LOC1 = 0;
	LOC1 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
	t = (*LOC1).sons->data[((NI) 0)];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = a.res;
	LOC2[1] = createvar_502318(p, t, NIM_FALSE);
	addf_163635(&(*p).body, ((NimStringDesc*) &TMP4594), LOC2, 2);
}

N_NIMCALL(void, genord_503307)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Ttype191849* LOC1;
	LOC1 = 0;
	LOC1 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
	switch ((*LOC1).kind) {
	case ((NU8) 14):
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 2):
	{
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	}
	break;
	case ((NU8) 1):
	{
		NimStringDesc* LOC4;
		LOC4 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA7;
			LOC4 = copyString(((NimStringDesc*) &TMP4595));
		}
		goto LA5;
		LA7: ;
		{
			LOC4 = copyString(((NimStringDesc*) &TMP4596));
		}
		LA5: ;
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), LOC4);
	}
	break;
	default:
	{
		internalerror_166199((*n).info, ((NimStringDesc*) &TMP4597));
	}
	break;
	}
}

N_NIMCALL(void, gennewseq_503284)(Tproc497033* p, Tnode191813* n) {
	Tcompres497023 x;
	Tcompres497023 y;
	Ttype191849* t;
	Ttype191849* LOC1;
	TY463569 LOC2;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 2)], (&y));
	LOC1 = 0;
	LOC1 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
	t = (*LOC1).sons->data[((NI) 0)];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rdloc_497127(x);
	LOC2[1] = rdloc_497127(y);
	LOC2[2] = createvar_502318(p, t, NIM_FALSE);
	addf_163635(&(*p).body, ((NimStringDesc*) &TMP4627), LOC2, 3);
}

N_NIMCALL(void, genof_503445)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 x;
	Ttype191849* t;
	memset((void*)(&x), 0, sizeof(x));
	t = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 2)]).typ, IL64(211106248304896));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	{
		TY491436 LOC5;
		if (!(((*t).flags &(1<<((((NU8) 2))&31)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = x.res;
		LOC5[1] = gentypeinfo_497315(p, t);
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4628), LOC5, 2));
	}
	goto LA1;
	LA3: ;
	{
		TY491436 LOC7;
		usemagic_497846(p, ((NimStringDesc*) &TMP4629));
		memset((void*)LOC7, 0, sizeof(LOC7));
		LOC7[0] = x.res;
		LOC7[1] = gentypeinfo_497315(p, t);
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4630), LOC7, 2));
	}
	LA1: ;
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genreset_503490)(Tproc497033* p, Tnode191813* n) {
	Tcompres497023 x;
	TY491436 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	usemagic_497846(p, ((NimStringDesc*) &TMP4631));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = x.res;
	LOC1[1] = gentypeinfo_497315(p, (*(*n).kindU.S6.sons->data[((NI) 1)]).typ);
	addf_163635(&(*p).body, ((NimStringDesc*) &TMP4632), LOC1, 2);
}

static N_INLINE(Tnode191813*, HEX5BHEX5D_192244)(Tnode191813* n, NI i) {
	Tnode191813* result;
	result = 0;
	result = (*n).kindU.S6.sons->data[i];
	return result;
}

N_NIMCALL(void, genarg_502068)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	memset((void*)(&a), 0, sizeof(a));
	gen_497816(p, n, (&a));
	{
		if (!(a.typ == ((NU8) 8))) goto LA3;
		add_162534(&(*r).res, a.address);
		add_162545(&(*r).res, ((NimStringDesc*) &TMP4390));
		add_162534(&(*r).res, a.res);
	}
	goto LA1;
	LA3: ;
	{
		add_162534(&(*r).res, a.res);
	}
	LA1: ;
}

N_NIMCALL(void, genecho_502236)(Tproc497033* p, Tnode191813* n_502239, Tcompres497023* r) {
	Tnode191813* n;
	Tnode191813* LOC1;
	usemagic_497846(p, ((NimStringDesc*) &TMP4633));
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4634));
	LOC1 = 0;
	LOC1 = HEX5BHEX5D_192244(n_502239, ((NI) 1));
	n = skipconv_230935(LOC1);
	{
		NimStringDesc* LOC6;
		if (!!(((*n).kind == ((NU8) 41)))) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_166306(TMP4635);
		internalerror_166218(LOC6);
	}
	LA4: ;
	{
		NI i_502273;
		NI HEX3Atmp_502280;
		NI LOC8;
		NI res_502283;
		i_502273 = 0;
		HEX3Atmp_502280 = 0;
		LOC8 = 0;
		LOC8 = sonslen_194403(n);
		HEX3Atmp_502280 = (NI)(LOC8 - ((NI) 1));
		res_502283 = ((NI) 0);
		{
			while (1) {
				if (!(res_502283 <= HEX3Atmp_502280)) goto LA10;
				i_502273 = res_502283;
				{
					Tnode191813* it;
					it = (*n).kindU.S6.sons->data[i_502273];
					{
						NIM_BOOL LOC14;
						LOC14 = 0;
						LOC14 = iscompiletimeonly_230712((*it).typ);
						if (!LOC14) goto LA15;
						goto LA11;
					}
					LA15: ;
					{
						if (!(((NI) 0) < i_502273)) goto LA19;
						add_162545(&(*r).res, ((NimStringDesc*) &TMP4390));
					}
					LA19: ;
					genarg_502068(p, it, r);
				} LA11: ;
				res_502283 += ((NI) 1);
			} LA10: ;
		}
	}
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4636));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, ternaryexpr_498874)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	Tcompres497023 x;
	Tcompres497023 y;
	Tcompres497023 z;
	TY463569 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	memset((void*)(&z), 0, sizeof(z));
	usemagic_497846(p, magic);
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&x));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 2)], (&y));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 3)], (&z));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_497127(x);
	LOC1[1] = rdloc_497127(y);
	LOC1[2] = rdloc_497127(z);
	unsureAsgnRef((void**) (&(*r).res), HEX25_163235(frmt, LOC1, 3));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genargs_502096)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4642));
	{
		NI i_502115;
		NI HEX3Atmp_502122;
		NI LOC2;
		NI res_502125;
		i_502115 = 0;
		HEX3Atmp_502122 = 0;
		LOC2 = 0;
		LOC2 = sonslen_194403(n);
		HEX3Atmp_502122 = (NI)(LOC2 - ((NI) 1));
		res_502125 = ((NI) 1);
		{
			while (1) {
				if (!(res_502125 <= HEX3Atmp_502122)) goto LA4;
				i_502115 = res_502125;
				{
					Tnode191813* it;
					it = (*n).kindU.S6.sons->data[i_502115];
					{
						NIM_BOOL LOC8;
						LOC8 = 0;
						LOC8 = iscompiletimeonly_230712((*it).typ);
						if (!LOC8) goto LA9;
						goto LA5;
					}
					LA9: ;
					{
						if (!(((NI) 1) < i_502115)) goto LA13;
						add_162545(&(*r).res, ((NimStringDesc*) &TMP4390));
					}
					LA13: ;
					genarg_502068(p, it, r);
				} LA5: ;
				res_502125 += ((NI) 1);
			} LA4: ;
		}
	}
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4636));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, gencall_502147)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	genargs_502096(p, n, r);
}

N_NIMCALL(void, genmagic_503508)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	Ropeobj162009* line;
	Ropeobj162009* filen;
	NU16 op;
	memset((void*)(&a), 0, sizeof(a));
	line = 0;
	filen = 0;
	op = (*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).magic;
	switch (op) {
	case ((NU16) 138):
	{
		genor_498252(p, (*n).kindU.S6.sons->data[((NI) 1)], (*n).kindU.S6.sons->data[((NI) 2)], r);
	}
	break;
	case ((NU16) 137):
	{
		genand_497995(p, (*n).kindU.S6.sons->data[((NI) 1)], (*n).kindU.S6.sons->data[((NI) 2)], r);
	}
	break;
	case ((NU16) 41) ... ((NU16) 135):
	{
		arith_498967(p, n, r, op);
	}
	break;
	case ((NU16) 160):
	{
		genrepr_503428(p, n, r);
	}
	break;
	case ((NU16) 167):
	{
		genswap_501168(p, n);
	}
	break;
	case ((NU16) 22):
	{
		{
			if (!!((((*p).options &(1<<((((NU8) 5))&31)))!=0))) goto LA9;
			unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4575));
		}
		goto LA7;
		LA9: ;
		{
			unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4474), ((NimStringDesc*) &TMP4576));
		}
		LA7: ;
	}
	break;
	case ((NU16) 155):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4577), ((NimStringDesc*) &TMP4578));
	}
	break;
	case ((NU16) 156):
	{
		{
			Ttype191849* LOC16;
			LOC16 = 0;
			LOC16 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
			if (!((*LOC16).kind == ((NU8) 29))) goto LA17;
			binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4579));
		}
		goto LA14;
		LA17: ;
		{
			binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4580));
		}
		LA14: ;
	}
	break;
	case ((NU16) 157):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4581));
	}
	break;
	case ((NU16) 149):
	{
		genconstrstr_503330(p, n, r);
	}
	break;
	case ((NU16) 139):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4588), ((NimStringDesc*) &TMP4589));
	}
	break;
	case ((NU16) 140):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4590), ((NimStringDesc*) &TMP4591));
	}
	break;
	case ((NU16) 141):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4590), ((NimStringDesc*) &TMP4592));
	}
	break;
	case ((NU16) 168):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4593));
	}
	break;
	case ((NU16) 136):
	{
		genrepr_503428(p, n, r);
	}
	break;
	case ((NU16) 26):
	case ((NU16) 27):
	{
		gennew_503265(p, n);
	}
	break;
	case ((NU16) 6):
	{
		NI64 LOC29;
		LOC29 = 0;
		LOC29 = getsize_221190((*(*n).kindU.S6.sons->data[((NI) 1)]).typ);
		unsureAsgnRef((void**) (&(*r).res), rope_162407(LOC29));
	}
	break;
	case ((NU16) 38):
	case ((NU16) 169):
	{
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	}
	break;
	case ((NU16) 25):
	{
		genord_503307(p, n, r);
	}
	break;
	case ((NU16) 30):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4598));
	}
	break;
	case ((NU16) 33):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4599));
	}
	break;
	case ((NU16) 32):
	case ((NU16) 29):
	case ((NU16) 31):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4600));
	}
	break;
	case ((NU16) 34):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4601));
	}
	break;
	case ((NU16) 5):
	{
		{
			Ttype191849* LOC39;
			LOC39 = 0;
			LOC39 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
			if (!((*LOC39).kind == ((NU8) 28))) goto LA40;
			unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4602));
		}
		goto LA37;
		LA40: ;
		{
			unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4603));
		}
		LA37: ;
	}
	break;
	case ((NU16) 23):
	{
		{
			if (!!((((*p).options &(1<<((((NU8) 5))&31)))!=0))) goto LA46;
			binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4604));
		}
		goto LA44;
		LA46: ;
		{
			binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4470), ((NimStringDesc*) &TMP4605));
		}
		LA44: ;
	}
	break;
	case ((NU16) 24):
	{
		{
			if (!!((((*p).options &(1<<((((NU8) 5))&31)))!=0))) goto LA52;
			binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4606));
		}
		goto LA50;
		LA52: ;
		{
			binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4474), ((NimStringDesc*) &TMP4607));
		}
		LA50: ;
	}
	break;
	case ((NU16) 162):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4608));
	}
	break;
	case ((NU16) 163):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4609));
	}
	break;
	case ((NU16) 37):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4610), ((NimStringDesc*) &TMP4611));
	}
	break;
	case ((NU16) 144):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4612), ((NimStringDesc*) &TMP4613));
	}
	break;
	case ((NU16) 143):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4614), ((NimStringDesc*) &TMP4615));
	}
	break;
	case ((NU16) 142):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4616), ((NimStringDesc*) &TMP4617));
	}
	break;
	case ((NU16) 145):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4618), ((NimStringDesc*) &TMP4619));
	}
	break;
	case ((NU16) 146):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4620), ((NimStringDesc*) &TMP4621));
	}
	break;
	case ((NU16) 147):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4622), ((NimStringDesc*) &TMP4623));
	}
	break;
	case ((NU16) 35):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4624));
	}
	break;
	case ((NU16) 36):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4625));
	}
	break;
	case ((NU16) 159):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4626));
	}
	break;
	case ((NU16) 28):
	{
		gennewseq_503284(p, n);
	}
	break;
	case ((NU16) 9):
	{
		genof_503445(p, n, r);
	}
	break;
	case ((NU16) 175):
	{
		genreset_503490(p, n);
	}
	break;
	case ((NU16) 14):
	{
		genecho_502236(p, n, r);
	}
	break;
	case ((NU16) 228) ... ((NU16) 260):
	case ((NU16) 16):
	case ((NU16) 17):
	{
		localerror_166155((*n).info, ((NU16) 224), (*(*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).name).s);
	}
	break;
	case ((NU16) 170):
	{
		binaryexpr_498850(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4637));
	}
	break;
	case ((NU16) 171):
	{
		ternaryexpr_498874(p, n, r, ((NimStringDesc*) &TMP4471), ((NimStringDesc*) &TMP4638));
	}
	break;
	case ((NU16) 172):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4639), ((NimStringDesc*) &TMP4640));
	}
	break;
	case ((NU16) 173):
	{
		unaryexpr_498902(p, n, r, ((NimStringDesc*) &TMP4639), ((NimStringDesc*) &TMP4641));
	}
	break;
	default:
	{
		gencall_502147(p, n, r);
	}
	break;
	}
}

N_NIMCALL(void, geninfixcall_502160)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 op;
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	{
		TY491436 LOC9;
		if (!((*r).typ == ((NU8) 8))) goto LA3;
		{
			if (!((*r).address == NIM_NIL)) goto LA7;
			globalerror_166145((*n).info, ((NimStringDesc*) &TMP4643));
		}
		LA7: ;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = (*r).address;
		LOC9[1] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4644), LOC9, 2));
		unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
		(*r).typ = ((NU8) 0);
	}
	LA3: ;
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4645));
	memset((void*)(&op), 0, sizeof(op));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], (&op));
	add_162534(&(*r).res, op.res);
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4642));
	{
		NI i_502208;
		NI HEX3Atmp_502214;
		NI LOC11;
		NI res_502217;
		i_502208 = 0;
		HEX3Atmp_502214 = 0;
		LOC11 = 0;
		LOC11 = sonslen_194403(n);
		HEX3Atmp_502214 = (NI)(LOC11 - ((NI) 1));
		res_502217 = ((NI) 2);
		{
			while (1) {
				if (!(res_502217 <= HEX3Atmp_502214)) goto LA13;
				i_502208 = res_502217;
				{
					if (!(((NI) 2) < i_502208)) goto LA16;
					add_162545(&(*r).res, ((NimStringDesc*) &TMP4390));
				}
				LA16: ;
				genarg_502068(p, (*n).kindU.S6.sons->data[i_502208], r);
				res_502217 += ((NI) 1);
			} LA13: ;
		}
	}
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4636));
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, gensetconstr_503589)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	Tcompres497023 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	usemagic_497846(p, ((NimStringDesc*) &TMP4646));
	unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4647)));
	(*r).kind = ((NU8) 1);
	{
		NI i_503609;
		NI HEX3Atmp_503635;
		NI LOC2;
		NI res_503638;
		i_503609 = 0;
		HEX3Atmp_503635 = 0;
		LOC2 = 0;
		LOC2 = sonslen_194403(n);
		HEX3Atmp_503635 = (NI)(LOC2 - ((NI) 1));
		res_503638 = ((NI) 0);
		{
			while (1) {
				Tnode191813* it;
				if (!(res_503638 <= HEX3Atmp_503635)) goto LA4;
				i_503609 = res_503638;
				{
					if (!(((NI) 0) < i_503609)) goto LA7;
					add_162545(&(*r).res, ((NimStringDesc*) &TMP4390));
				}
				LA7: ;
				it = (*n).kindU.S6.sons->data[i_503609];
				{
					TY491436 LOC13;
					if (!((*it).kind == ((NU8) 44))) goto LA11;
					gen_497816(p, (*it).kindU.S6.sons->data[((NI) 0)], (&a));
					gen_497816(p, (*it).kindU.S6.sons->data[((NI) 1)], (&b));
					memset((void*)LOC13, 0, sizeof(LOC13));
					LOC13[0] = a.res;
					LOC13[1] = b.res;
					addf_163635(&(*r).res, ((NimStringDesc*) &TMP4419), LOC13, 2);
				}
				goto LA9;
				LA11: ;
				{
					gen_497816(p, it, (&a));
					add_162534(&(*r).res, a.res);
				}
				LA9: ;
				res_503638 += ((NI) 1);
			} LA4: ;
		}
	}
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4636));
}

N_NIMCALL(void, genarrayconstr_503657)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4425)));
	(*r).kind = ((NU8) 1);
	{
		NI i_503676;
		NI HEX3Atmp_503684;
		NI LOC2;
		NI res_503687;
		i_503676 = 0;
		HEX3Atmp_503684 = 0;
		LOC2 = 0;
		LOC2 = sonslen_194403(n);
		HEX3Atmp_503684 = (NI)(LOC2 - ((NI) 1));
		res_503687 = ((NI) 0);
		{
			while (1) {
				if (!(res_503687 <= HEX3Atmp_503684)) goto LA4;
				i_503676 = res_503687;
				{
					if (!(((NI) 0) < i_503676)) goto LA7;
					add_162545(&(*r).res, ((NimStringDesc*) &TMP4390));
				}
				LA7: ;
				gen_497816(p, (*n).kindU.S6.sons->data[i_503676], (&a));
				add_162534(&(*r).res, a.res);
				res_503687 += ((NI) 1);
			} LA4: ;
		}
	}
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4426));
}

N_NIMCALL(void, gentupleconstr_503706)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4427)));
	(*r).kind = ((NU8) 1);
	{
		NI i_503725;
		NI HEX3Atmp_503755;
		NI LOC2;
		NI res_503758;
		i_503725 = 0;
		HEX3Atmp_503755 = 0;
		LOC2 = 0;
		LOC2 = sonslen_194403(n);
		HEX3Atmp_503755 = (NI)(LOC2 - ((NI) 1));
		res_503758 = ((NI) 0);
		{
			while (1) {
				Tnode191813* it;
				NimStringDesc* LOC13;
				TY491436 LOC19;
				if (!(res_503758 <= HEX3Atmp_503755)) goto LA4;
				i_503725 = res_503758;
				{
					if (!(((NI) 0) < i_503725)) goto LA7;
					add_162545(&(*r).res, ((NimStringDesc*) &TMP4390));
				}
				LA7: ;
				it = (*n).kindU.S6.sons->data[i_503725];
				{
					if (!((*it).kind == ((NU8) 34))) goto LA11;
					it = (*it).kindU.S6.sons->data[((NI) 1)];
				}
				LA11: ;
				gen_497816(p, it, (&a));
				LOC13 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA16;
					LOC13 = copyString(((NimStringDesc*) &TMP4648));
				}
				goto LA14;
				LA16: ;
				{
					LOC13 = copyString(((NimStringDesc*) &TMP4429));
				}
				LA14: ;
				memset((void*)LOC19, 0, sizeof(LOC19));
				LOC19[0] = rope_162407(((NI64) (i_503725)));
				LOC19[1] = a.res;
				addf_163635(&(*r).res, LOC13, LOC19, 2);
				res_503758 += ((NI) 1);
			} LA4: ;
		}
	}
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4430));
}

N_NIMCALL(void, genobjconstr_503777)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4427)));
	(*r).kind = ((NU8) 1);
	{
		NI i_503796;
		NI HEX3Atmp_503851;
		NI LOC2;
		NI res_503854;
		i_503796 = 0;
		HEX3Atmp_503851 = 0;
		LOC2 = 0;
		LOC2 = sonslen_194403(n);
		HEX3Atmp_503851 = (NI)(LOC2 - ((NI) 1));
		res_503854 = ((NI) 1);
		{
			while (1) {
				Tnode191813* it;
				Tsym191843* f;
				NimStringDesc* LOC18;
				TY491436 LOC24;
				if (!(res_503854 <= HEX3Atmp_503851)) goto LA4;
				i_503796 = res_503854;
				{
					if (!(((NI) 1) < i_503796)) goto LA7;
					add_162545(&(*r).res, ((NimStringDesc*) &TMP4390));
				}
				LA7: ;
				it = (*n).kindU.S6.sons->data[i_503796];
				{
					NimStringDesc* LOC13;
					if (!!(((*it).kind == ((NU8) 34)))) goto LA11;
					LOC13 = 0;
					LOC13 = HEX24_166306(TMP4649);
					internalerror_166218(LOC13);
				}
				LA11: ;
				gen_497816(p, (*it).kindU.S6.sons->data[((NI) 1)], (&a));
				f = (*(*it).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
				{
					if (!((*f).loc.r == NIM_NIL)) goto LA16;
					asgnRefNoCycle((void**) (&(*f).loc.r), manglename_497277(f));
				}
				LA16: ;
				LOC18 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA21;
					LOC18 = copyString(((NimStringDesc*) &TMP4650));
				}
				goto LA19;
				LA21: ;
				{
					LOC18 = copyString(((NimStringDesc*) &TMP4651));
				}
				LA19: ;
				memset((void*)LOC24, 0, sizeof(LOC24));
				LOC24[0] = (*f).loc.r;
				LOC24[1] = a.res;
				addf_163635(&(*r).res, LOC18, LOC24, 2);
				res_503854 += ((NI) 1);
			} LA4: ;
		}
	}
	add_162545(&(*r).res, ((NimStringDesc*) &TMP4430));
}

N_NIMCALL(void, genconv_503873)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Ttype191849* dest;
	Ttype191849* src;
{	dest = skiptypes_195167((*n).typ, IL64(211106242013440));
	src = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	{
		if (!((*dest).kind == (*src).kind)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	switch ((*dest).kind) {
	case ((NU8) 1):
	{
		NimStringDesc* LOC6;
		TY162572 LOC12;
		LOC6 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA9;
			LOC6 = copyString(((NimStringDesc*) &TMP4652));
		}
		goto LA7;
		LA9: ;
		{
			LOC6 = copyString(((NimStringDesc*) &TMP4596));
		}
		LA7: ;
		memset((void*)LOC12, 0, sizeof(LOC12));
		LOC12[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(LOC6, LOC12, 1));
		(*r).kind = ((NU8) 1);
	}
	break;
	case ((NU8) 31):
	{
		TY162572 LOC14;
		memset((void*)LOC14, 0, sizeof(LOC14));
		LOC14[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4653), LOC14, 1));
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet: ;
}

N_NIMCALL(NI, getfieldposition_501262)(Tnode191813* f) {
	NI result;
	result = 0;
	switch ((*f).kind) {
	case ((NU8) 6) ... ((NU8) 15):
	{
		result = ((NI) ((*f).kindU.S1.intval));
	}
	break;
	case ((NU8) 3):
	{
		result = (*(*f).kindU.S4.sym).position;
	}
	break;
	default:
	{
		internalerror_166199((*f).info, ((NimStringDesc*) &TMP4659));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genfieldaddr_501275)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	Tnode191813* b;
	memset((void*)(&a), 0, sizeof(a));
	(*r).typ = ((NU8) 8);
	{
		if (!((*n).kind == ((NU8) 64))) goto LA3;
		b = (*n).kindU.S6.sons->data[((NI) 0)];
	}
	goto LA1;
	LA3: ;
	{
		b = n;
	}
	LA1: ;
	gen_497816(p, (*b).kindU.S6.sons->data[((NI) 0)], (&a));
	{
		Ttype191849* LOC8;
		NimStringDesc* LOC11;
		NI LOC12;
		NimStringDesc* LOC13;
		LOC8 = 0;
		LOC8 = skiptypes_195167((*(*b).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
		if (!((*LOC8).kind == ((NU8) 18))) goto LA9;
		LOC11 = 0;
		LOC12 = 0;
		LOC12 = getfieldposition_501262((*b).kindU.S6.sons->data[((NI) 1)]);
		LOC13 = 0;
		LOC13 = nimIntToStr(LOC12);
		LOC11 = rawNewString(LOC13->Sup.len + 5);
appendString(LOC11, ((NimStringDesc*) &TMP4658));
appendString(LOC11, LOC13);
		unsureAsgnRef((void**) (&(*r).res), makejsstring_497305(LOC11));
	}
	goto LA6;
	LA9: ;
	{
		Tsym191843* f;
		NimStringDesc* LOC23;
		{
			if (!!(((*(*b).kindU.S6.sons->data[((NI) 1)]).kind == ((NU8) 3)))) goto LA17;
			internalerror_166199((*(*b).kindU.S6.sons->data[((NI) 1)]).info, ((NimStringDesc*) &TMP4660));
		}
		LA17: ;
		f = (*(*b).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
		{
			if (!((*f).loc.r == NIM_NIL)) goto LA21;
			asgnRefNoCycle((void**) (&(*f).loc.r), manglename_497277(f));
		}
		LA21: ;
		LOC23 = 0;
		LOC23 = HEX24_163131((*f).loc.r);
		unsureAsgnRef((void**) (&(*r).res), makejsstring_497305(LOC23));
	}
	LA6: ;
	{
		NimStringDesc* LOC28;
		if (!!(!((a.typ == ((NU8) 8))))) goto LA26;
		LOC28 = 0;
		LOC28 = HEX24_166306(TMP4661);
		internalerror_166218(LOC28);
	}
	LA26: ;
	unsureAsgnRef((void**) (&(*r).address), a.res);
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaddr_501415)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tnode191813* m;
	{
		if (!((*n).kind == ((NU8) 64))) goto LA3;
		m = (*n).kindU.S6.sons->data[((NI) 0)];
	}
	goto LA1;
	LA3: ;
	{
		m = n;
	}
	LA1: ;
	{
		NimStringDesc* LOC10;
		if (!!(((*m).kind == ((NU8) 46)))) goto LA8;
		LOC10 = 0;
		LOC10 = HEX24_166306(TMP4657);
		internalerror_166218(LOC10);
	}
	LA8: ;
	genfieldaddr_501275(p, (*m).kindU.S6.sons->data[((NI) 0)], r);
}

N_NIMCALL(void, genarrayaddr_501468)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 a;
	Tcompres497023 b;
	NI64 first;
	Tnode191813* m;
	Ttype191849* typ;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	first = 0;
	(*r).typ = ((NU8) 8);
	{
		if (!((*n).kind == ((NU8) 64))) goto LA3;
		m = (*n).kindU.S6.sons->data[((NI) 0)];
	}
	goto LA1;
	LA3: ;
	{
		m = n;
	}
	LA1: ;
	gen_497816(p, (*m).kindU.S6.sons->data[((NI) 0)], (&a));
	gen_497816(p, (*m).kindU.S6.sons->data[((NI) 1)], (&b));
	{
		NIM_BOOL LOC8;
		NimStringDesc* LOC12;
		LOC8 = 0;
		LOC8 = !((a.typ == ((NU8) 8)));
		if (!(LOC8)) goto LA9;
		LOC8 = !((b.typ == ((NU8) 8)));
		LA9: ;
		if (!!(LOC8)) goto LA10;
		LOC12 = 0;
		LOC12 = HEX24_166306(TMP4662);
		internalerror_166218(LOC12);
	}
	LA10: ;
	unsureAsgnRef((void**) (&(*r).address), a.res);
	typ = skiptypes_195167((*(*m).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106247256320));
	{
		if (!((*typ).kind == ((NU8) 16) || (*typ).kind == ((NU8) 4))) goto LA15;
		first = firstord_221004((*typ).sons->data[((NI) 0)]);
	}
	goto LA13;
	LA15: ;
	{
		first = IL64(0);
	}
	LA13: ;
	{
		NIM_BOOL LOC20;
		NIM_BOOL LOC22;
		TY463569 LOC25;
		LOC20 = 0;
		LOC20 = (((*p).options &(1<<((((NU8) 4))&31)))!=0);
		if (!(LOC20)) goto LA21;
		LOC22 = 0;
		LOC22 = isconstexpr_220428((*m).kindU.S6.sons->data[((NI) 1)]);
		LOC20 = !(LOC22);
		LA21: ;
		if (!LOC20) goto LA23;
		usemagic_497846(p, ((NimStringDesc*) &TMP4663));
		memset((void*)LOC25, 0, sizeof(LOC25));
		LOC25[0] = b.res;
		LOC25[1] = rope_162407(first);
		LOC25[2] = a.res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4664), LOC25, 3));
	}
	goto LA18;
	LA23: ;
	{
		TY491436 LOC29;
		if (!!((first == IL64(0)))) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = b.res;
		LOC29[1] = rope_162407(first);
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4665), LOC29, 2));
	}
	goto LA18;
	LA27: ;
	{
		unsureAsgnRef((void**) (&(*r).res), b.res);
	}
	LA18: ;
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genaddr_501677)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	switch ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind) {
	case ((NU8) 3):
	{
		Tsym191843* s;
		s = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		{
			if (!((*s).loc.r == NIM_NIL)) goto LA4;
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4654));
		}
		LA4: ;
		switch ((*s).kind) {
		case ((NU8) 8):
		case ((NU8) 9):
		case ((NU8) 11):
		{
			NU8 jstype;
			(*r).kind = ((NU8) 1);
			jstype = maptype_497256((*n).typ);
			{
				if (!(jstype == ((NU8) 7))) goto LA9;
				(*r).typ = ((NU8) 0);
				{
					NIM_BOOL LOC13;
					LOC13 = 0;
					LOC13 = isindirect_501600(s);
					if (!LOC13) goto LA14;
					unsureAsgnRef((void**) (&(*r).res), HEX26_162471((*s).loc.r, ((NimStringDesc*) &TMP4655)));
				}
				goto LA11;
				LA14: ;
				{
					unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
				}
				LA11: ;
				unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
			}
			goto LA7;
			LA9: ;
			{
				NIM_BOOL LOC18;
				LOC18 = 0;
				LOC18 = !(((32776 & (*s).flags) == 0));
				if (LOC18) goto LA19;
				LOC18 = (jstype == ((NU8) 8));
				LA19: ;
				if (!LOC18) goto LA20;
				(*r).typ = ((NU8) 8);
				unsureAsgnRef((void**) (&(*r).address), (*s).loc.r);
				unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4384)));
			}
			goto LA7;
			LA20: ;
			{
				gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
			}
			LA7: ;
		}
		break;
		default:
		{
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4656));
		}
		break;
		}
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaddr_501415(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaddr_501275(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	}
	break;
	case ((NU8) 42):
	{
		Ttype191849* ty;
		ty = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
		{
			Ttype191849* LOC31;
			if (!((*ty).kind == ((NU8) 22) || (*ty).kind == ((NU8) 21))) goto LA29;
			LOC31 = 0;
			LOC31 = lastson_194442(ty);
			ty = skiptypes_195167(LOC31, IL64(211106242013440));
		}
		LA29: ;
		switch ((*ty).kind) {
		case ((NU8) 16):
		case ((NU8) 4):
		case ((NU8) 27):
		case ((NU8) 24):
		case ((NU8) 28):
		case ((NU8) 29):
		case ((NU8) 48):
		case ((NU8) 2):
		{
			genarrayaddr_501468(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		}
		break;
		case ((NU8) 18):
		{
			genfieldaddr_501275(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		}
		break;
		default:
		{
			NimStringDesc* LOC35;
			LOC35 = 0;
			LOC35 = rawNewString(reprEnum((*ty).kind, (&NTI191260))->Sup.len + 21);
appendString(LOC35, ((NimStringDesc*) &TMP4666));
appendString(LOC35, reprEnum((*ty).kind, (&NTI191260)));
appendChar(LOC35, 41);
			internalerror_166199((*(*n).kindU.S6.sons->data[((NI) 0)]).info, LOC35);
		}
		break;
		}
	}
	break;
	default:
	{
		internalerror_166199((*(*n).kindU.S6.sons->data[((NI) 0)]).info, ((NimStringDesc*) &TMP4667));
	}
	break;
	}
}

N_NIMCALL(void, genderef_502030)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	{
		NU8 LOC3;
		LOC3 = 0;
		LOC3 = maptype_497256((*(*n).kindU.S6.sons->data[((NI) 0)]).typ);
		if (!(LOC3 == ((NU8) 7))) goto LA4;
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	}
	goto LA1;
	LA4: ;
	{
		Tcompres497023 a;
		TY491436 LOC11;
		memset((void*)(&a), 0, sizeof(a));
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		{
			if (!!((a.typ == ((NU8) 8)))) goto LA9;
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4668));
		}
		LA9: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = a.address;
		LOC11[1] = a.res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4644), LOC11, 2));
	}
	LA1: ;
}

N_NIMCALL(void, genarrayaccess_501554)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Ttype191849* ty;
	TY491436 LOC14;
	ty = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
	{
		Ttype191849* LOC5;
		if (!((*ty).kind == ((NU8) 22) || (*ty).kind == ((NU8) 21))) goto LA3;
		LOC5 = 0;
		LOC5 = lastson_194442(ty);
		ty = skiptypes_195167(LOC5, IL64(211106242013440));
	}
	LA3: ;
	switch ((*ty).kind) {
	case ((NU8) 16):
	case ((NU8) 4):
	case ((NU8) 27):
	case ((NU8) 24):
	case ((NU8) 28):
	case ((NU8) 29):
	case ((NU8) 48):
	{
		genarrayaddr_501468(p, n, r);
	}
	break;
	case ((NU8) 18):
	{
		genfieldaddr_501275(p, n, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC9;
		LOC9 = 0;
		LOC9 = rawNewString(reprEnum((*ty).kind, (&NTI191260))->Sup.len + 21);
appendString(LOC9, ((NimStringDesc*) &TMP4666));
appendString(LOC9, reprEnum((*ty).kind, (&NTI191260)));
appendChar(LOC9, 41);
		internalerror_166199((*n).info, LOC9);
	}
	break;
	}
	(*r).typ = ((NU8) 0);
	{
		if (!((*r).res == NIM_NIL)) goto LA12;
		internalerror_166199((*n).info, ((NimStringDesc*) &TMP4669));
	}
	LA12: ;
	memset((void*)LOC14, 0, sizeof(LOC14));
	LOC14[0] = (*r).address;
	LOC14[1] = (*r).res;
	unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4644), LOC14, 2));
	unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, genfieldaccess_501358)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	(*r).typ = ((NU8) 0);
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	{
		Ttype191849* LOC3;
		TY491436 LOC6;
		NI LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
		if (!((*LOC3).kind == ((NU8) 18))) goto LA4;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = (*r).res;
		LOC7 = 0;
		LOC7 = getfieldposition_501262((*n).kindU.S6.sons->data[((NI) 1)]);
		LOC6[1] = rope_162407(((NI64) (LOC7)));
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4670), LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		Tsym191843* f;
		TY491436 LOC17;
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 1)]).kind == ((NU8) 3)))) goto LA11;
			internalerror_166199((*(*n).kindU.S6.sons->data[((NI) 1)]).info, ((NimStringDesc*) &TMP4660));
		}
		LA11: ;
		f = (*(*n).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
		{
			if (!((*f).loc.r == NIM_NIL)) goto LA15;
			asgnRefNoCycle((void**) (&(*f).loc.r), manglename_497277(f));
		}
		LA15: ;
		memset((void*)LOC17, 0, sizeof(LOC17));
		LOC17[0] = (*r).res;
		LOC17[1] = (*f).loc.r;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4671), LOC17, 2));
	}
	LA1: ;
	(*r).kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaccess_501455)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	genfieldaccess_501358(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
}

N_NIMCALL(void, upconv_503911)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
}

N_NIMCALL(void, genrangechck_503924)(Tproc497033* p, Tnode191813* n, Tcompres497023* r, NimStringDesc* magic) {
	Tcompres497023 a;
	Tcompres497023 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	{
		TY463569 LOC5;
		if (!(((*p).options &(1<<((((NU8) 3))&31)))!=0)) goto LA3;
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], (&a));
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 2)], (&b));
		usemagic_497846(p, ((NimStringDesc*) &TMP4672));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = (*r).res;
		LOC5[1] = a.res;
		LOC5[2] = b.res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4673), LOC5, 3));
		(*r).kind = ((NU8) 1);
	}
	LA3: ;
}

N_NIMCALL(void, convstrtocstr_503958)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	{
		if (!((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 72))) goto LA3;
		gen_497816(p, (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 0)], r);
	}
	goto LA1;
	LA3: ;
	{
		TY162572 LOC10;
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		{
			if (!((*r).res == NIM_NIL)) goto LA8;
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4676));
		}
		LA8: ;
		usemagic_497846(p, ((NimStringDesc*) &TMP4677));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4678), LOC10, 1));
		(*r).kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, convcstrtostr_503997)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	{
		if (!((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 71))) goto LA3;
		gen_497816(p, (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 0)], r);
	}
	goto LA1;
	LA3: ;
	{
		TY162572 LOC10;
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		{
			if (!((*r).res == NIM_NIL)) goto LA8;
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4679));
		}
		LA8: ;
		usemagic_497846(p, ((NimStringDesc*) &TMP4451));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4452), LOC10, 1));
		(*r).kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, genblock_499931)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	NI idx;
	NI labl;
	NimStringDesc* LOC9;
	TY162572 LOC15;
	NimStringDesc* LOC16;
	TY162572 LOC22;
	(*p).unique += ((NI) 1);
	idx = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	{
		Tsym191843* sym;
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA3;
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 3)))) goto LA7;
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4680));
		}
		LA7: ;
		sym = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		(*sym).loc.k = ((NU8) 10);
		(*sym).position = (NI)(idx + ((NI) 1));
	}
	LA3: ;
	(*p).blocks = (TY497071*) setLengthSeq(&((*p).blocks)->Sup, sizeof(Tblock497025), ((NI) ((NI)(idx + ((NI) 1)))));
	(*p).blocks->data[idx].id = ((NI32)-((*p).unique));
	labl = (*p).unique;
	LOC9 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA12;
		LOC9 = copyString(((NimStringDesc*) &TMP4681));
	}
	goto LA10;
	LA12: ;
	{
		LOC9 = copyString(((NimStringDesc*) &TMP4471));
	}
	LA10: ;
	memset((void*)LOC15, 0, sizeof(LOC15));
	LOC15[0] = rope_162407(((NI64) (labl)));
	addf_163635(&(*p).body, LOC9, LOC15, 1);
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	LOC16 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4682));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4683));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = rope_162407(((NI64) (labl)));
	addf_163635(&(*p).body, LOC16, LOC22, 1);
	(*p).blocks = (TY497071*) setLengthSeq(&((*p).blocks)->Sup, sizeof(Tblock497025), ((NI) (idx)));
}

N_NIMCALL(void, moveinto_499221)(Tproc497033* p, Tcompres497023* src, Tcompres497023 dest) {
	{
		if (!!(((*src).kind == ((NU8) 0)))) goto LA3;
		{
			TY491436 LOC9;
			if (!!((dest.kind == ((NU8) 0)))) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_497127(dest);
			LOC9[1] = rdloc_497127((*src));
			addf_163635(&(*p).body, ((NimStringDesc*) &TMP4594), LOC9, 2);
		}
		goto LA5;
		LA7: ;
		{
			TY162572 LOC11;
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = rdloc_497127((*src));
			addf_163635(&(*p).body, ((NimStringDesc*) &TMP4688), LOC11, 1);
		}
		LA5: ;
		(*src).kind = ((NU8) 0);
		unsureAsgnRef((void**) (&(*src).res), NIM_NIL);
	}
	LA3: ;
}

N_NIMCALL(void, genif_500645)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 cond;
	Tcompres497023 stmt;
	NI toclose;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	toclose = ((NI) 0);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_196933((*n).typ);
		if (!!(LOC3)) goto LA4;
		(*r).kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).res), gettemp_497962(p));
	}
	LA4: ;
	{
		NI i_500666;
		NI HEX3Atmp_500767;
		NI LOC7;
		NI res_500770;
		i_500666 = 0;
		HEX3Atmp_500767 = 0;
		LOC7 = 0;
		LOC7 = sonslen_194403(n);
		HEX3Atmp_500767 = (NI)(LOC7 - ((NI) 1));
		res_500770 = ((NI) 0);
		{
			while (1) {
				Tnode191813* it;
				NimStringDesc* LOC41;
				TY461664 LOC47;
				if (!(res_500770 <= HEX3Atmp_500767)) goto LA9;
				i_500666 = res_500770;
				it = (*n).kindU.S6.sons->data[i_500666];
				{
					NI LOC12;
					NimStringDesc* LOC26;
					TY162572 LOC32;
					LOC12 = 0;
					LOC12 = sonslen_194403(it);
					if (!!((LOC12 == ((NI) 1)))) goto LA13;
					{
						NimStringDesc* LOC19;
						TY461664 LOC25;
						if (!(((NI) 0) < i_500666)) goto LA17;
						LOC19 = 0;
						{
							if (!((*p).target == ((NU8) 0))) goto LA22;
							LOC19 = copyString(((NimStringDesc*) &TMP4684));
						}
						goto LA20;
						LA22: ;
						{
							LOC19 = copyString(((NimStringDesc*) &TMP4685));
						}
						LA20: ;
						memset((void*)LOC25, 0, sizeof(LOC25));
						addf_163635(&(*p).body, LOC19, LOC25, 0);
						toclose += ((NI) 1);
					}
					LA17: ;
					gen_497816(p, (*it).kindU.S6.sons->data[((NI) 0)], (&cond));
					LOC26 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA29;
						LOC26 = copyString(((NimStringDesc*) &TMP4686));
					}
					goto LA27;
					LA29: ;
					{
						LOC26 = copyString(((NimStringDesc*) &TMP4687));
					}
					LA27: ;
					memset((void*)LOC32, 0, sizeof(LOC32));
					LOC32[0] = rdloc_497127(cond);
					addf_163635(&(*p).body, LOC26, LOC32, 1);
					gen_497816(p, (*it).kindU.S6.sons->data[((NI) 1)], (&stmt));
				}
				goto LA10;
				LA13: ;
				{
					NimStringDesc* LOC34;
					TY461664 LOC40;
					LOC34 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA37;
						LOC34 = copyString(((NimStringDesc*) &TMP4684));
					}
					goto LA35;
					LA37: ;
					{
						LOC34 = copyString(((NimStringDesc*) &TMP4685));
					}
					LA35: ;
					memset((void*)LOC40, 0, sizeof(LOC40));
					addf_163635(&(*p).body, LOC34, LOC40, 0);
					gen_497816(p, (*it).kindU.S6.sons->data[((NI) 0)], (&stmt));
				}
				LA10: ;
				moveinto_499221(p, (&stmt), (*r));
				LOC41 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4689));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4690));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				addf_163635(&(*p).body, LOC41, LOC47, 0);
				res_500770 += ((NI) 1);
			} LA9: ;
		}
	}
	{
		NimStringDesc* LOC52;
		NimStringDesc* LOC53;
		if (!((*p).target == ((NU8) 0))) goto LA50;
		LOC52 = 0;
		LOC53 = 0;
		LOC53 = nsuRepeatChar(125, ((NI) (toclose)));
		LOC52 = rawNewString(LOC53->Sup.len + tnl_160626->Sup.len + 0);
appendString(LOC52, LOC53);
appendString(LOC52, tnl_160626);
		add_162545(&(*p).body, LOC52);
	}
	goto LA48;
	LA50: ;
	{
		{
			NI i_500756;
			NI res_500778;
			i_500756 = 0;
			res_500778 = ((NI) 1);
			{
				while (1) {
					TY461664 LOC58;
					if (!(res_500778 <= toclose)) goto LA57;
					i_500756 = res_500778;
					memset((void*)LOC58, 0, sizeof(LOC58));
					addf_163635(&(*p).body, ((NimStringDesc*) &TMP4690), LOC58, 0);
					res_500778 += ((NI) 1);
				} LA57: ;
			}
		}
	}
	LA48: ;
}

static N_INLINE(NI, tolinenumber_165439)(Tlineinfo164338 info) {
	NI result;
	result = 0;
	result = ((NI) (info.line));
	return result;
}

N_NIMCALL(void, genlinedir_498989)(Tproc497033* p, Tnode191813* n) {
	NI line;
	line = tolinenumber_165439((*n).info);
	{
		NimStringDesc* LOC5;
		TY491436 LOC11;
		NimStringDesc* LOC12;
		if (!(((*p).options &(1<<((((NU8) 10))&31)))!=0)) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4692));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4693));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC12 = 0;
		LOC12 = tofilename_165266((*n).info.fileindex);
		LOC11[0] = rope_162320(LOC12);
		LOC11[1] = rope_162407(((NI64) (line)));
		addf_163635(&(*p).body, LOC5, LOC11, 2);
	}
	LA3: ;
	{
		NIM_BOOL LOC15;
		NIM_BOOL LOC17;
		TY162572 LOC21;
		LOC15 = 0;
		LOC15 = ((163840 & (*p).options) == 163840);
		if (!(LOC15)) goto LA16;
		LOC17 = 0;
		LOC17 = ((*p).prc == NIM_NIL);
		if (LOC17) goto LA18;
		LOC17 = !((((*(*p).prc).flags &(1<<((((NU8) 9))&31)))!=0));
		LA18: ;
		LOC15 = LOC17;
		LA16: ;
		if (!LOC15) goto LA19;
		usemagic_497846(p, ((NimStringDesc*) &TMP4694));
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rope_162407(((NI64) (line)));
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4695), LOC21, 1);
	}
	goto LA13;
	LA19: ;
	{
		NIM_BOOL LOC23;
		NIM_BOOL LOC25;
		TY162572 LOC29;
		LOC23 = 0;
		LOC23 = ((98304 & (*p).options) == 98304);
		if (!(LOC23)) goto LA24;
		LOC25 = 0;
		LOC25 = ((*p).prc == NIM_NIL);
		if (LOC25) goto LA26;
		LOC25 = !((((*(*p).prc).flags &(1<<((((NU8) 9))&31)))!=0));
		LA26: ;
		LOC23 = LOC25;
		LA24: ;
		if (!LOC23) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = rope_162407(((NI64) (line)));
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4696), LOC29, 1);
	}
	goto LA13;
	LA27: ;
	LA13: ;
}

N_NIMCALL(void, genwhilestmt_499124)(Tproc497033* p, Tnode191813* n) {
	Tcompres497023 cond;
	NI length;
	Ropeobj162009* labl;
	NimStringDesc* LOC7;
	TY162572 LOC13;
	NimStringDesc* LOC14;
	TY491436 LOC20;
	NimStringDesc* LOC21;
	TY162572 LOC27;
	memset((void*)(&cond), 0, sizeof(cond));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC6;
		LOC3 = 0;
		LOC3 = isemptytype_196933((*n).typ);
		if (!!(LOC3)) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_166306(TMP4691);
		internalerror_166218(LOC6);
	}
	LA4: ;
	genlinedir_498989(p, n);
	(*p).unique += ((NI) 1);
	length = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	(*p).blocks = (TY497071*) setLengthSeq(&((*p).blocks)->Sup, sizeof(Tblock497025), ((NI) ((NI)(length + ((NI) 1)))));
	(*p).blocks->data[length].id = ((NI32)-((*p).unique));
	(*p).blocks->data[length].isloop = NIM_TRUE;
	labl = rope_162407(((NI64) ((*p).unique)));
	LOC7 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4697));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4698));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = labl;
	addf_163635(&(*p).body, LOC7, LOC13, 1);
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], (&cond));
	LOC14 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA17;
		LOC14 = copyString(((NimStringDesc*) &TMP4699));
	}
	goto LA15;
	LA17: ;
	{
		LOC14 = copyString(((NimStringDesc*) &TMP4700));
	}
	LA15: ;
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = cond.res;
	LOC20[1] = labl;
	addf_163635(&(*p).body, LOC14, LOC20, 2);
	genstmt_497825(p, (*n).kindU.S6.sons->data[((NI) 1)]);
	LOC21 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA24;
		LOC21 = copyString(((NimStringDesc*) &TMP4689));
	}
	goto LA22;
	LA24: ;
	{
		LOC21 = copyString(((NimStringDesc*) &TMP4701));
	}
	LA22: ;
	memset((void*)LOC27, 0, sizeof(LOC27));
	LOC27[0] = labl;
	addf_163635(&(*p).body, LOC21, LOC27, 1);
	(*p).blocks = (TY497071*) setLengthSeq(&((*p).blocks)->Sup, sizeof(Tblock497025), ((NI) (length)));
}

N_NIMCALL(void, genvarstmt_502753)(Tproc497033* p, Tnode191813* n) {
	{
		NI i_502769;
		NI HEX3Atmp_503217;
		NI LOC2;
		NI res_503220;
		i_502769 = 0;
		HEX3Atmp_503217 = 0;
		LOC2 = 0;
		LOC2 = sonslen_194403(n);
		HEX3Atmp_503217 = (NI)(LOC2 - ((NI) 1));
		res_503220 = ((NI) 0);
		{
			while (1) {
				Tnode191813* a;
				if (!(res_503220 <= HEX3Atmp_503217)) goto LA4;
				i_502769 = res_503220;
				a = (*n).kindU.S6.sons->data[i_502769];
				{
					if (!!(((*a).kind == ((NU8) 125)))) goto LA7;
					{
						Tnode191813* unpacked;
						if (!((*a).kind == ((NU8) 36))) goto LA11;
						unpacked = lowertupleunpacking_358087(a, (*p).prc);
						genstmt_497825(p, unpacked);
					}
					goto LA9;
					LA11: ;
					{
						Tsym191843* v;
						v = (*(*a).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
						{
							if (!!((((*v).loc.flags &(1<<((((NU8) 3))&15)))!=0))) goto LA16;
							genlinedir_498989(p, a);
							genvarinit_502623(p, v, (*a).kindU.S6.sons->data[((NI) 2)]);
						}
						LA16: ;
					}
					LA9: ;
				}
				LA7: ;
				res_503220 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gencasejs_499608)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 cond;
	Tcompres497023 stmt;
	NIM_BOOL stringswitch;
	Ttype191849* LOC1;
	TY461664 LOC46;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_498989(p, n);
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106240964864));
	stringswitch = ((*LOC1).kind == ((NU8) 28));
	{
		TY162572 LOC6;
		if (!stringswitch) goto LA4;
		usemagic_497846(p, ((NimStringDesc*) &TMP4677));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_497127(cond);
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4703), LOC6, 1);
	}
	goto LA2;
	LA4: ;
	{
		TY162572 LOC8;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_497127(cond);
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4704), LOC8, 1);
	}
	LA2: ;
	{
		NIM_BOOL LOC11;
		LOC11 = 0;
		LOC11 = isemptytype_196933((*n).typ);
		if (!!(LOC11)) goto LA12;
		(*r).kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).res), gettemp_497962(p));
	}
	LA12: ;
	{
		NI i_499647;
		NI HEX3Atmp_499737;
		NI LOC15;
		NI res_499740;
		i_499647 = 0;
		HEX3Atmp_499737 = 0;
		LOC15 = 0;
		LOC15 = sonslen_194403(n);
		HEX3Atmp_499737 = (NI)(LOC15 - ((NI) 1));
		res_499740 = ((NI) 1);
		{
			while (1) {
				Tnode191813* it;
				if (!(res_499740 <= HEX3Atmp_499737)) goto LA17;
				i_499647 = res_499740;
				it = (*n).kindU.S6.sons->data[i_499647];
				switch ((*it).kind) {
				case ((NU8) 85):
				{
					Tnode191813* LOC40;
					TY461664 LOC41;
					{
						NI j_499662;
						NI HEX3Atmp_499727;
						NI LOC20;
						NI res_499730;
						j_499662 = 0;
						HEX3Atmp_499727 = 0;
						LOC20 = 0;
						LOC20 = sonslen_194403(it);
						HEX3Atmp_499727 = (NI)(LOC20 - ((NI) 2));
						res_499730 = ((NI) 0);
						{
							while (1) {
								Tnode191813* e;
								if (!(res_499730 <= HEX3Atmp_499727)) goto LA22;
								j_499662 = res_499730;
								e = (*it).kindU.S6.sons->data[j_499662];
								{
									Tnode191813* v;
									if (!((*e).kind == ((NU8) 44))) goto LA25;
									v = copynode_195640((*e).kindU.S6.sons->data[((NI) 0)]);
									{
										while (1) {
											TY162572 LOC29;
											if (!((*v).kindU.S1.intval <= (*(*e).kindU.S6.sons->data[((NI) 1)]).kindU.S1.intval)) goto LA28;
											gen_497816(p, v, (&cond));
											memset((void*)LOC29, 0, sizeof(LOC29));
											LOC29[0] = rdloc_497127(cond);
											addf_163635(&(*p).body, ((NimStringDesc*) &TMP4705), LOC29, 1);
											(*v).kindU.S1.intval += ((NI) 1);
										} LA28: ;
									}
								}
								goto LA23;
								LA25: ;
								{
									{
										if (!stringswitch) goto LA33;
										switch ((*e).kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY162572 LOC36;
											memset((void*)LOC36, 0, sizeof(LOC36));
											LOC36[0] = makejsstring_497305((*e).kindU.S3.strval);
											addf_163635(&(*p).body, ((NimStringDesc*) &TMP4705), LOC36, 1);
										}
										break;
										default:
										{
											internalerror_166199((*e).info, ((NimStringDesc*) &TMP4706));
										}
										break;
										}
									}
									goto LA31;
									LA33: ;
									{
										TY162572 LOC39;
										gen_497816(p, e, (&cond));
										memset((void*)LOC39, 0, sizeof(LOC39));
										LOC39[0] = rdloc_497127(cond);
										addf_163635(&(*p).body, ((NimStringDesc*) &TMP4705), LOC39, 1);
									}
									LA31: ;
								}
								LA23: ;
								res_499730 += ((NI) 1);
							} LA22: ;
						}
					}
					LOC40 = 0;
					LOC40 = lastson_194431(it);
					gen_497816(p, LOC40, (&stmt));
					moveinto_499221(p, (&stmt), (*r));
					memset((void*)LOC41, 0, sizeof(LOC41));
					addf_163635(&(*p).body, ((NimStringDesc*) &TMP4707), LOC41, 0);
				}
				break;
				case ((NU8) 88):
				{
					TY461664 LOC43;
					TY461664 LOC44;
					memset((void*)LOC43, 0, sizeof(LOC43));
					addf_163635(&(*p).body, ((NimStringDesc*) &TMP4708), LOC43, 0);
					gen_497816(p, (*it).kindU.S6.sons->data[((NI) 0)], (&stmt));
					moveinto_499221(p, (&stmt), (*r));
					memset((void*)LOC44, 0, sizeof(LOC44));
					addf_163635(&(*p).body, ((NimStringDesc*) &TMP4709), LOC44, 0);
				}
				break;
				default:
				{
					internalerror_166199((*it).info, ((NimStringDesc*) &TMP4710));
				}
				break;
				}
				res_499740 += ((NI) 1);
			} LA17: ;
		}
	}
	memset((void*)LOC46, 0, sizeof(LOC46));
	addf_163635(&(*p).body, ((NimStringDesc*) &TMP4689), LOC46, 0);
}

N_NIMCALL(void, gencaselua_499775)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Tcompres497023 cond;
	Tcompres497023 stmt;
	NIM_BOOL stringswitch;
	Ttype191849* LOC1;
	Ropeobj162009* tmp;
	TY491436 LOC6;
	TY461664 LOC52;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_498989(p, n);
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106240964864));
	stringswitch = ((*LOC1).kind == ((NU8) 28));
	{
		if (!stringswitch) goto LA4;
		usemagic_497846(p, ((NimStringDesc*) &TMP4711));
	}
	LA4: ;
	tmp = gettemp_497962(p);
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = tmp;
	LOC6[1] = rdloc_497127(cond);
	addf_163635(&(*p).body, ((NimStringDesc*) &TMP4594), LOC6, 2);
	{
		NIM_BOOL LOC9;
		LOC9 = 0;
		LOC9 = isemptytype_196933((*n).typ);
		if (!!(LOC9)) goto LA10;
		(*r).kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).res), gettemp_497962(p));
	}
	LA10: ;
	{
		NI i_499812;
		NI HEX3Atmp_499899;
		NI LOC13;
		NI res_499902;
		i_499812 = 0;
		HEX3Atmp_499899 = 0;
		LOC13 = 0;
		LOC13 = sonslen_194403(n);
		HEX3Atmp_499899 = (NI)(LOC13 - ((NI) 1));
		res_499902 = ((NI) 1);
		{
			while (1) {
				Tnode191813* it;
				if (!(res_499902 <= HEX3Atmp_499899)) goto LA15;
				i_499812 = res_499902;
				it = (*n).kindU.S6.sons->data[i_499812];
				switch ((*it).kind) {
				case ((NU8) 85):
				{
					TY461664 LOC47;
					Tnode191813* LOC48;
					{
						TY461664 LOC21;
						if (!!((i_499812 == ((NI) 1)))) goto LA19;
						memset((void*)LOC21, 0, sizeof(LOC21));
						addf_163635(&(*p).body, ((NimStringDesc*) &TMP4712), LOC21, 0);
					}
					goto LA17;
					LA19: ;
					{
						TY461664 LOC23;
						memset((void*)LOC23, 0, sizeof(LOC23));
						addf_163635(&(*p).body, ((NimStringDesc*) &TMP4713), LOC23, 0);
					}
					LA17: ;
					{
						NI j_499835;
						NI HEX3Atmp_499890;
						NI LOC25;
						NI res_499893;
						j_499835 = 0;
						HEX3Atmp_499890 = 0;
						LOC25 = 0;
						LOC25 = sonslen_194403(it);
						HEX3Atmp_499890 = (NI)(LOC25 - ((NI) 2));
						res_499893 = ((NI) 0);
						{
							while (1) {
								Tnode191813* e;
								if (!(res_499893 <= HEX3Atmp_499890)) goto LA27;
								j_499835 = res_499893;
								{
									if (!!((j_499835 == ((NI) 0)))) goto LA30;
									add_162545(&(*p).body, ((NimStringDesc*) &TMP4714));
								}
								LA30: ;
								e = (*it).kindU.S6.sons->data[j_499835];
								{
									Tcompres497023 ia;
									Tcompres497023 ib;
									TY463569 LOC36;
									if (!((*e).kind == ((NU8) 44))) goto LA34;
									memset((void*)(&ia), 0, sizeof(ia));
									memset((void*)(&ib), 0, sizeof(ib));
									gen_497816(p, (*e).kindU.S6.sons->data[((NI) 0)], (&ia));
									gen_497816(p, (*e).kindU.S6.sons->data[((NI) 1)], (&ib));
									memset((void*)LOC36, 0, sizeof(LOC36));
									LOC36[0] = tmp;
									LOC36[1] = rdloc_497127(ia);
									LOC36[2] = rdloc_497127(ib);
									addf_163635(&(*p).body, ((NimStringDesc*) &TMP4715), LOC36, 3);
								}
								goto LA32;
								LA34: ;
								{
									{
										if (!stringswitch) goto LA40;
										switch ((*e).kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY491436 LOC43;
											memset((void*)LOC43, 0, sizeof(LOC43));
											LOC43[0] = tmp;
											LOC43[1] = makejsstring_497305((*e).kindU.S3.strval);
											addf_163635(&(*p).body, ((NimStringDesc*) &TMP4716), LOC43, 2);
										}
										break;
										default:
										{
											internalerror_166199((*e).info, ((NimStringDesc*) &TMP4706));
										}
										break;
										}
									}
									goto LA38;
									LA40: ;
									{
										TY491436 LOC46;
										gen_497816(p, e, (&cond));
										memset((void*)LOC46, 0, sizeof(LOC46));
										LOC46[0] = tmp;
										LOC46[1] = rdloc_497127(cond);
										addf_163635(&(*p).body, ((NimStringDesc*) &TMP4717), LOC46, 2);
									}
									LA38: ;
								}
								LA32: ;
								res_499893 += ((NI) 1);
							} LA27: ;
						}
					}
					memset((void*)LOC47, 0, sizeof(LOC47));
					addf_163635(&(*p).body, ((NimStringDesc*) &TMP4718), LOC47, 0);
					LOC48 = 0;
					LOC48 = lastson_194431(it);
					gen_497816(p, LOC48, (&stmt));
					moveinto_499221(p, (&stmt), (*r));
				}
				break;
				case ((NU8) 88):
				{
					TY461664 LOC50;
					memset((void*)LOC50, 0, sizeof(LOC50));
					addf_163635(&(*p).body, ((NimStringDesc*) &TMP4685), LOC50, 0);
					gen_497816(p, (*it).kindU.S6.sons->data[((NI) 0)], (&stmt));
					moveinto_499221(p, (&stmt), (*r));
				}
				break;
				default:
				{
					internalerror_166199((*it).info, ((NimStringDesc*) &TMP4710));
				}
				break;
				}
				res_499902 += ((NI) 1);
			} LA15: ;
		}
	}
	memset((void*)LOC52, 0, sizeof(LOC52));
	addf_163635(&(*p).body, ((NimStringDesc*) &TMP4719), LOC52, 0);
}

N_NIMCALL(void, genreturnstmt_504036)(Tproc497033* p, Tnode191813* n) {
	NimStringDesc* LOC10;
	TY461664 LOC16;
	{
		if (!((*p).procdef == NIM_NIL)) goto LA3;
		internalerror_166199((*n).info, ((NimStringDesc*) &TMP4720));
	}
	LA3: ;
	(*p).beforeretneeded = NIM_TRUE;
	{
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA7;
		genstmt_497825(p, (*n).kindU.S6.sons->data[((NI) 0)]);
	}
	goto LA5;
	LA7: ;
	{
		genlinedir_498989(p, n);
	}
	LA5: ;
	LOC10 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA13;
		LOC10 = copyString(((NimStringDesc*) &TMP4721));
	}
	goto LA11;
	LA13: ;
	{
		LOC10 = copyString(((NimStringDesc*) &TMP4722));
	}
	LA11: ;
	memset((void*)LOC16, 0, sizeof(LOC16));
	addf_163635(&(*p).body, LOC10, LOC16, 0);
}

N_NIMCALL(void, genbreakstmt_500032)(Tproc497033* p, Tnode191813* n) {
	NI idx;
	NimStringDesc* LOC16;
	TY162572 LOC22;
	idx = 0;
	genlinedir_498989(p, n);
	{
		Tsym191843* sym;
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA3;
		sym = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		idx = (NI)((*sym).position - ((NI) 1));
	}
	goto LA1;
	LA3: ;
	{
		idx = (NI)(((*p).blocks ? (*p).blocks->Sup.len : 0) - ((NI) 1));
		{
			while (1) {
				NIM_BOOL LOC8;
				LOC8 = 0;
				LOC8 = (((NI) 0) <= idx);
				if (!(LOC8)) goto LA9;
				LOC8 = !((*p).blocks->data[idx].isloop);
				LA9: ;
				if (!LOC8) goto LA7;
				idx -= ((NI) 1);
			} LA7: ;
		}
		{
			NIM_BOOL LOC12;
			LOC12 = 0;
			LOC12 = (idx < ((NI) 0));
			if (LOC12) goto LA13;
			LOC12 = !((*p).blocks->data[idx].isloop);
			LA13: ;
			if (!LOC12) goto LA14;
			internalerror_166199((*n).info, ((NimStringDesc*) &TMP4723));
		}
		LA14: ;
	}
	LA1: ;
	(*p).blocks->data[idx].id = ((*p).blocks->data[idx].id > 0? ((*p).blocks->data[idx].id) : -((*p).blocks->data[idx].id));
	LOC16 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4724));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4725));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = rope_162407(((NI64) ((*p).blocks->data[idx].id)));
	addf_163635(&(*p).body, LOC16, LOC22, 1);
}

N_NIMCALL(void, genasgnaux_501096)(Tproc497033* p, Tnode191813* x, Tnode191813* y, NIM_BOOL nocopyneeded) {
	Tcompres497023 a;
	Tcompres497023 b;
	NU8 LOC1;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_497816(p, x, (&a));
	gen_497816(p, y, (&b));
	LOC1 = 0;
	LOC1 = maptype_497256((*x).typ);
	switch (LOC1) {
	case ((NU8) 7):
	{
		{
			NIM_BOOL LOC5;
			TY491436 LOC9;
			LOC5 = 0;
			LOC5 = needsnocopy_501065(y);
			if (LOC5) goto LA6;
			LOC5 = nocopyneeded;
			LA6: ;
			if (!LOC5) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_497127(a);
			LOC9[1] = rdloc_497127(b);
			addf_163635(&(*p).body, ((NimStringDesc*) &TMP4594), LOC9, 2);
		}
		goto LA3;
		LA7: ;
		{
			TY463569 LOC11;
			usemagic_497846(p, ((NimStringDesc*) &TMP4404));
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = a.res;
			LOC11[1] = b.res;
			LOC11[2] = gentypeinfo_497315(p, (*y).typ);
			addf_163635(&(*p).body, ((NimStringDesc*) &TMP4726), LOC11, 3);
		}
		LA3: ;
	}
	break;
	case ((NU8) 8):
	{
		TY463566 LOC19;
		{
			NIM_BOOL LOC15;
			LOC15 = 0;
			LOC15 = !((a.typ == ((NU8) 8)));
			if (LOC15) goto LA16;
			LOC15 = !((b.typ == ((NU8) 8)));
			LA16: ;
			if (!LOC15) goto LA17;
			internalerror_166199((*x).info, ((NimStringDesc*) &TMP4727));
		}
		LA17: ;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = a.address;
		LOC19[1] = b.address;
		LOC19[2] = a.res;
		LOC19[3] = b.res;
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4728), LOC19, 4);
	}
	break;
	default:
	{
		TY491436 LOC21;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = a.res;
		LOC21[1] = b.res;
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4594), LOC21, 2);
	}
	break;
	}
}

N_NIMCALL(void, genasgn_501144)(Tproc497033* p, Tnode191813* n) {
	genlinedir_498989(p, n);
	genasgnaux_501096(p, (*n).kindU.S6.sons->data[((NI) 0)], (*n).kindU.S6.sons->data[((NI) 1)], NIM_FALSE);
}

N_NIMCALL(void, genfastasgn_501156)(Tproc497033* p, Tnode191813* n) {
	genlinedir_498989(p, n);
	genasgnaux_501096(p, (*n).kindU.S6.sons->data[((NI) 0)], (*n).kindU.S6.sons->data[((NI) 1)], NIM_TRUE);
}

N_NIMCALL(void, genasmstmt_500445)(Tproc497033* p, Tnode191813* n) {
	genlinedir_498989(p, n);
	{
		NI i_500613;
		NI HEX3Atmp_500623;
		NI LOC2;
		NI res_500626;
		i_500613 = 0;
		HEX3Atmp_500623 = 0;
		LOC2 = 0;
		LOC2 = sonslen_194403(n);
		HEX3Atmp_500623 = (NI)(LOC2 - ((NI) 1));
		res_500626 = ((NI) 0);
		{
			while (1) {
				if (!(res_500626 <= HEX3Atmp_500623)) goto LA4;
				i_500613 = res_500626;
				switch ((*(*n).kindU.S6.sons->data[i_500613]).kind) {
				case ((NU8) 20) ... ((NU8) 22):
				{
					add_162545(&(*p).body, (*(*n).kindU.S6.sons->data[i_500613]).kindU.S3.strval);
				}
				break;
				case ((NU8) 3):
				{
					Ropeobj162009* LOC7;
					LOC7 = 0;
					LOC7 = manglename_497277((*(*n).kindU.S6.sons->data[i_500613]).kindU.S4.sym);
					add_162534(&(*p).body, LOC7);
				}
				break;
				default:
				{
					internalerror_166199((*(*n).kindU.S6.sons->data[i_500613]).info, ((NimStringDesc*) &TMP4729));
				}
				break;
				}
				res_500626 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gentry_499257)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	Ropeobj162009* safepoint;
	TY162572 LOC6;
	NimStringDesc* LOC7;
	TY162572 LOC13;
	NimStringDesc* LOC19;
	TY461664 LOC25;
	NI length;
	Tcompres497023 a;
	NI i;
	genlinedir_498989(p, n);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_196933((*n).typ);
		if (!!(LOC3)) goto LA4;
		(*r).kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).res), gettemp_497962(p));
	}
	LA4: ;
	(*p).unique += ((NI) 1);
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = rope_162407(((NI64) ((*p).unique)));
	safepoint = HEX25_163235(((NimStringDesc*) &TMP4459), LOC6, 1);
	LOC7 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4730));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4731));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = safepoint;
	addf_163635(&(*p).body, LOC7, LOC13, 1);
	{
		NimStringDesc* LOC18;
		if (!(((*p).options &(1<<((((NU8) 15))&31)))!=0)) goto LA16;
		LOC18 = 0;
		LOC18 = rawNewString(tnl_160626->Sup.len + 13);
appendString(LOC18, ((NimStringDesc*) &TMP4732));
appendString(LOC18, tnl_160626);
		add_162545(&(*p).body, LOC18);
	}
	LA16: ;
	LOC19 = 0;
	{
		if (!((*p).target == ((NU8) 0))) goto LA22;
		LOC19 = copyString(((NimStringDesc*) &TMP4733));
	}
	goto LA20;
	LA22: ;
	{
		LOC19 = copyString(((NimStringDesc*) &TMP4734));
	}
	LA20: ;
	memset((void*)LOC25, 0, sizeof(LOC25));
	addf_163635(&(*p).body, LOC19, LOC25, 0);
	length = sonslen_194403(n);
	memset((void*)(&a), 0, sizeof(a));
	gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
	moveinto_499221(p, (&a), (*r));
	i = ((NI) 1);
	{
		NIM_BOOL LOC28;
		NIM_BOOL LOC29;
		TY461664 LOC34;
		LOC28 = 0;
		LOC29 = 0;
		LOC29 = ((*p).target == ((NU8) 0));
		if (!(LOC29)) goto LA30;
		LOC29 = (((NI) 1) < length);
		LA30: ;
		LOC28 = LOC29;
		if (!(LOC28)) goto LA31;
		LOC28 = ((*(*n).kindU.S6.sons->data[i]).kind == ((NU8) 87));
		LA31: ;
		if (!LOC28) goto LA32;
		memset((void*)LOC34, 0, sizeof(LOC34));
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4735), LOC34, 0);
	}
	goto LA26;
	LA32: ;
	{
		TY461664 LOC38;
		if (!((*p).target == ((NU8) 1))) goto LA36;
		memset((void*)LOC38, 0, sizeof(LOC38));
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4736), LOC38, 0);
	}
	goto LA26;
	LA36: ;
	LA26: ;
	{
		while (1) {
			NIM_BOOL LOC41;
			NI blen;
			LOC41 = 0;
			LOC41 = (i < length);
			if (!(LOC41)) goto LA42;
			LOC41 = ((*(*n).kindU.S6.sons->data[i]).kind == ((NU8) 87));
			LA42: ;
			if (!LOC41) goto LA40;
			blen = sonslen_194403((*n).kindU.S6.sons->data[i]);
			{
				if (!(blen == ((NI) 1))) goto LA45;
				{
					NimStringDesc* LOC51;
					TY461664 LOC57;
					if (!(((NI) 1) < i)) goto LA49;
					LOC51 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA54;
						LOC51 = copyString(((NimStringDesc*) &TMP4684));
					}
					goto LA52;
					LA54: ;
					{
						LOC51 = copyString(((NimStringDesc*) &TMP4685));
					}
					LA52: ;
					memset((void*)LOC57, 0, sizeof(LOC57));
					addf_163635(&(*p).body, LOC51, LOC57, 0);
				}
				LA49: ;
				gen_497816(p, (*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)], (&a));
				moveinto_499221(p, (&a), (*r));
				{
					NimStringDesc* LOC62;
					TY461664 LOC68;
					if (!(((NI) 1) < i)) goto LA60;
					LOC62 = 0;
					{
						if (!((*p).target == ((NU8) 0))) goto LA65;
						LOC62 = copyString(((NimStringDesc*) &TMP4689));
					}
					goto LA63;
					LA65: ;
					{
						LOC62 = copyString(((NimStringDesc*) &TMP4690));
					}
					LA63: ;
					memset((void*)LOC68, 0, sizeof(LOC68));
					addf_163635(&(*p).body, LOC62, LOC68, 0);
				}
				LA60: ;
			}
			goto LA43;
			LA45: ;
			{
				Ropeobj162009* orexpr;
				NimStringDesc* LOC92;
				TY491436 LOC98;
				NimStringDesc* LOC99;
				TY461664 LOC105;
				orexpr = NIM_NIL;
				usemagic_497846(p, ((NimStringDesc*) &TMP4629));
				{
					NI j_499408;
					NI HEX3Atmp_499548;
					NI res_499551;
					j_499408 = 0;
					HEX3Atmp_499548 = 0;
					HEX3Atmp_499548 = (NI)(blen - ((NI) 2));
					res_499551 = ((NI) 0);
					{
						while (1) {
							TY491436 LOC87;
							if (!(res_499551 <= HEX3Atmp_499548)) goto LA72;
							j_499408 = res_499551;
							{
								if (!!(((*(*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[j_499408]).kind == ((NU8) 4)))) goto LA75;
								internalerror_166199((*n).info, ((NimStringDesc*) &TMP4737));
							}
							LA75: ;
							{
								NimStringDesc* LOC81;
								if (!!((orexpr == NIM_NIL))) goto LA79;
								LOC81 = 0;
								{
									if (!((*p).target == ((NU8) 0))) goto LA84;
									LOC81 = copyString(((NimStringDesc*) &TMP4738));
								}
								goto LA82;
								LA84: ;
								{
									LOC81 = copyString(((NimStringDesc*) &TMP4714));
								}
								LA82: ;
								add_162545(&orexpr, LOC81);
							}
							LA79: ;
							memset((void*)LOC87, 0, sizeof(LOC87));
							LOC87[0] = safepoint;
							LOC87[1] = gentypeinfo_497315(p, (*(*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[j_499408]).typ);
							addf_163635(&orexpr, ((NimStringDesc*) &TMP4739), LOC87, 2);
							res_499551 += ((NI) 1);
						} LA72: ;
					}
				}
				{
					if (!(((NI) 1) < i)) goto LA90;
					add_162545(&(*p).body, ((NimStringDesc*) &TMP4740));
				}
				LA90: ;
				LOC92 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA95;
					LOC92 = copyString(((NimStringDesc*) &TMP4741));
				}
				goto LA93;
				LA95: ;
				{
					LOC92 = copyString(((NimStringDesc*) &TMP4742));
				}
				LA93: ;
				memset((void*)LOC98, 0, sizeof(LOC98));
				LOC98[0] = safepoint;
				LOC98[1] = orexpr;
				addf_163635(&(*p).body, LOC92, LOC98, 2);
				gen_497816(p, (*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[(NI)(blen - ((NI) 1))], (&a));
				moveinto_499221(p, (&a), (*r));
				LOC99 = 0;
				{
					if (!((*p).target == ((NU8) 0))) goto LA102;
					LOC99 = copyString(((NimStringDesc*) &TMP4689));
				}
				goto LA100;
				LA102: ;
				{
					LOC99 = copyString(((NimStringDesc*) &TMP4690));
				}
				LA100: ;
				memset((void*)LOC105, 0, sizeof(LOC105));
				addf_163635(&(*p).body, LOC99, LOC105, 0);
			}
			LA43: ;
			i += ((NI) 1);
		} LA40: ;
	}
	{
		NimStringDesc* LOC110;
		if (!((*p).target == ((NU8) 0))) goto LA108;
		LOC110 = 0;
		LOC110 = rawNewString(tnl_160626->Sup.len + tnl_160626->Sup.len + 40);
appendString(LOC110, ((NimStringDesc*) &TMP4743));
appendString(LOC110, tnl_160626);
appendString(LOC110, ((NimStringDesc*) &TMP4744));
appendString(LOC110, tnl_160626);
		add_162545(&(*p).body, LOC110);
	}
	LA108: ;
	{
		NIM_BOOL LOC113;
		LOC113 = 0;
		LOC113 = (i < length);
		if (!(LOC113)) goto LA114;
		LOC113 = ((*(*n).kindU.S6.sons->data[i]).kind == ((NU8) 107));
		LA114: ;
		if (!LOC113) goto LA115;
		genstmt_497825(p, (*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)]);
	}
	LA115: ;
	{
		NimStringDesc* LOC121;
		if (!((*p).target == ((NU8) 0))) goto LA119;
		LOC121 = 0;
		LOC121 = rawNewString(tnl_160626->Sup.len + 1);
appendString(LOC121, ((NimStringDesc*) &TMP4430));
appendString(LOC121, tnl_160626);
		add_162545(&(*p).body, LOC121);
	}
	LA119: ;
	{
		if (!((*p).target == ((NU8) 1))) goto LA124;
		{
			NIM_BOOL LOC128;
			LOC128 = 0;
			LOC128 = (i < length);
			if (!(LOC128)) goto LA129;
			LOC128 = ((*(*n).kindU.S6.sons->data[i]).kind == ((NU8) 107));
			LA129: ;
			if (!LOC128) goto LA130;
			genstmt_497825(p, (*(*n).kindU.S6.sons->data[i]).kindU.S6.sons->data[((NI) 0)]);
		}
		LA130: ;
	}
	LA124: ;
}

N_NIMCALL(void, genraisestmt_499577)(Tproc497033* p, Tnode191813* n) {
	genlinedir_498989(p, n);
	{
		Tcompres497023 a;
		Ttype191849* typ;
		TY491436 LOC5;
		if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA3;
		memset((void*)(&a), 0, sizeof(a));
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], (&a));
		typ = skiptypes_195167((*(*n).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106247256320));
		usemagic_497846(p, ((NimStringDesc*) &TMP4745));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = rdloc_497127(a);
		LOC5[1] = makejsstring_497305((*(*(*typ).sym).name).s);
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4746), LOC5, 2);
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC7;
		usemagic_497846(p, ((NimStringDesc*) &TMP4747));
		LOC7 = 0;
		LOC7 = rawNewString(tnl_160626->Sup.len + 19);
appendString(LOC7, ((NimStringDesc*) &TMP4748));
appendString(LOC7, tnl_160626);
		add_162545(&(*p).body, LOC7);
	}
	LA1: ;
}

N_NIMCALL(void, gen_497816)(Tproc497033* p, Tnode191813* n, Tcompres497023* r) {
	(*r).typ = ((NU8) 0);
	(*r).kind = ((NU8) 0);
	unsureAsgnRef((void**) (&(*r).res), NIM_NIL);
	switch ((*n).kind) {
	case ((NU8) 3):
	{
		gensym_501782(p, n, r);
	}
	break;
	case ((NU8) 5) ... ((NU8) 10):
	{
		unsureAsgnRef((void**) (&(*r).res), rope_162407((*n).kindU.S1.intval));
		(*r).kind = ((NU8) 1);
	}
	break;
	case ((NU8) 23):
	{
		{
			NIM_BOOL LOC6;
			LOC6 = 0;
			LOC6 = isemptytype_196933((*n).typ);
			if (!LOC6) goto LA7;
		}
		goto LA4;
		LA7: ;
		{
			NU8 LOC10;
			LOC10 = 0;
			LOC10 = maptype_497256((*n).typ);
			if (!(LOC10 == ((NU8) 8))) goto LA11;
			(*r).typ = ((NU8) 8);
			{
				if (!((*p).target == ((NU8) 0))) goto LA15;
				unsureAsgnRef((void**) (&(*r).address), rope_162320(((NimStringDesc*) &TMP4448)));
			}
			goto LA13;
			LA15: ;
			{
				unsureAsgnRef((void**) (&(*r).address), rope_162320(((NimStringDesc*) &TMP4449)));
			}
			LA13: ;
			unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4450)));
			(*r).kind = ((NU8) 1);
		}
		goto LA4;
		LA11: ;
		{
			{
				if (!((*p).target == ((NU8) 0))) goto LA21;
				unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4448)));
			}
			goto LA19;
			LA21: ;
			{
				unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4449)));
			}
			LA19: ;
			(*r).kind = ((NU8) 1);
		}
		LA4: ;
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		{
			Ttype191849* LOC27;
			TY162572 LOC30;
			LOC27 = 0;
			LOC27 = skiptypes_195167((*n).typ, IL64(211106242013440));
			if (!((*LOC27).kind == ((NU8) 28))) goto LA28;
			usemagic_497846(p, ((NimStringDesc*) &TMP4451));
			memset((void*)LOC30, 0, sizeof(LOC30));
			LOC30[0] = makejsstring_497305((*n).kindU.S3.strval);
			unsureAsgnRef((void**) (&(*r).res), HEX25_163235(((NimStringDesc*) &TMP4452), LOC30, 1));
		}
		goto LA25;
		LA28: ;
		{
			unsureAsgnRef((void**) (&(*r).res), makejsstring_497305((*n).kindU.S3.strval));
		}
		LA25: ;
		(*r).kind = ((NU8) 1);
	}
	break;
	case ((NU8) 16) ... ((NU8) 18):
	{
		NF f;
		f = (*n).kindU.S2.floatval;
		{
			if (!!((f == f))) goto LA35;
			unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4453)));
		}
		goto LA33;
		LA35: ;
		{
			if (!(f == 0.0)) goto LA38;
			unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4454)));
		}
		goto LA33;
		LA38: ;
		{
			if (!(f == ((NF)(5.0000000000000000e-001) * (NF)(f)))) goto LA41;
			{
				if (!(0.0 < f)) goto LA45;
				unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4455)));
			}
			goto LA43;
			LA45: ;
			{
				unsureAsgnRef((void**) (&(*r).res), rope_162320(((NimStringDesc*) &TMP4456)));
			}
			LA43: ;
		}
		goto LA33;
		LA41: ;
		{
			NimStringDesc* LOC49;
			LOC49 = 0;
			LOC49 = tostrmaxprecision_198024(f);
			unsureAsgnRef((void**) (&(*r).res), rope_162320(LOC49));
		}
		LA33: ;
		(*r).kind = ((NU8) 1);
	}
	break;
	case ((NU8) 27):
	case ((NU8) 29):
	case ((NU8) 30):
	case ((NU8) 31):
	case ((NU8) 26):
	case ((NU8) 28):
	case ((NU8) 32):
	{
		{
			NIM_BOOL LOC53;
			LOC53 = 0;
			LOC53 = ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 3));
			if (!(LOC53)) goto LA54;
			LOC53 = !(((*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).magic == ((NU16) 0)));
			LA54: ;
			if (!LOC53) goto LA55;
			genmagic_503508(p, n, r);
		}
		goto LA51;
		LA55: ;
		{
			NIM_BOOL LOC58;
			NIM_BOOL LOC59;
			NI LOC62;
			LOC58 = 0;
			LOC59 = 0;
			LOC59 = ((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 3));
			if (!(LOC59)) goto LA60;
			LOC59 = (((*(*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1<<((((NU8) 27))&31)))!=0);
			LA60: ;
			LOC58 = LOC59;
			if (!(LOC58)) goto LA61;
			LOC62 = 0;
			LOC62 = len_192097(n);
			LOC58 = (((NI) 2) <= LOC62);
			LA61: ;
			if (!LOC58) goto LA63;
			geninfixcall_502160(p, n, r);
		}
		goto LA51;
		LA63: ;
		{
			gencall_502147(p, n, r);
		}
		LA51: ;
	}
	break;
	case ((NU8) 39):
	{
		gensetconstr_503589(p, n, r);
	}
	break;
	case ((NU8) 41):
	{
		genarrayconstr_503657(p, n, r);
	}
	break;
	case ((NU8) 37):
	{
		gentupleconstr_503706(p, n, r);
	}
	break;
	case ((NU8) 38):
	{
		genobjconstr_503777(p, n, r);
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 60):
	{
		genconv_503873(p, n, r);
	}
	break;
	case ((NU8) 63):
	case ((NU8) 64):
	{
		genaddr_501677(p, n, r);
	}
	break;
	case ((NU8) 47):
	case ((NU8) 65):
	{
		genderef_502030(p, n, r);
	}
	break;
	case ((NU8) 42):
	{
		genarrayaccess_501554(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaccess_501358(p, n, r);
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaccess_501455(p, n, r);
	}
	break;
	case ((NU8) 66):
	{
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
	}
	break;
	case ((NU8) 67):
	{
		upconv_503911(p, n, r);
	}
	break;
	case ((NU8) 61):
	{
		gen_497816(p, (*n).kindU.S6.sons->data[((NI) 1)], r);
	}
	break;
	case ((NU8) 68):
	{
		genrangechck_503924(p, n, r, ((NimStringDesc*) &TMP4674));
	}
	break;
	case ((NU8) 69):
	{
		genrangechck_503924(p, n, r, ((NimStringDesc*) &TMP4675));
	}
	break;
	case ((NU8) 70):
	{
		genrangechck_503924(p, n, r, ((NimStringDesc*) &TMP4672));
	}
	break;
	case ((NU8) 71):
	{
		convstrtocstr_503958(p, n, r);
	}
	break;
	case ((NU8) 72):
	{
		convcstrtostr_503997(p, n, r);
	}
	break;
	case ((NU8) 1):
	{
	}
	break;
	case ((NU8) 51):
	case ((NU8) 52):
	{
		Tsym191843* s;
		Ropeobj162009* LOC86;
		s = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		LOC86 = 0;
		LOC86 = manglename_497277(s);
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		{
			NIM_BOOL LOC89;
			LOC89 = 0;
			LOC89 = (((*s).loc.flags &(1<<((((NU8) 3))&15)))!=0);
			if (LOC89) goto LA90;
			LOC89 = !(((*s).magic == ((NU16) 0)));
			LA90: ;
			if (!LOC89) goto LA91;
		}
		goto LA87;
		LA91: ;
		{
			NIM_BOOL LOC94;
			Ropeobj162009* LOC97;
			LOC94 = 0;
			LOC94 = containsorincl_188898((&(*(*p).g).generatedsyms), (*s).Sup.id);
			if (!!(LOC94)) goto LA95;
			LOC97 = 0;
			LOC97 = genproc_497832(p, s);
			add_162534(&(*p).locals, LOC97);
		}
		goto LA87;
		LA95: ;
		LA87: ;
	}
	break;
	case ((NU8) 4):
	{
		unsureAsgnRef((void**) (&(*r).res), gentypeinfo_497315(p, (*n).typ));
	}
	break;
	case ((NU8) 115):
	case ((NU8) 126):
	{
		NIM_BOOL isexpr;
		NIM_BOOL LOC100;
		LOC100 = 0;
		LOC100 = isemptytype_196933((*n).typ);
		isexpr = !(LOC100);
		{
			NI i_504427;
			NI HEX3Atmp_504488;
			NI LOC102;
			NI res_504491;
			i_504427 = 0;
			HEX3Atmp_504488 = 0;
			LOC102 = 0;
			LOC102 = sonslen_194403(n);
			HEX3Atmp_504488 = (NI)((NI)(LOC102 - ((NI) 1)) - ((NI) (isexpr)));
			res_504491 = ((NI) 0);
			{
				while (1) {
					if (!(res_504491 <= HEX3Atmp_504488)) goto LA104;
					i_504427 = res_504491;
					genstmt_497825(p, (*n).kindU.S6.sons->data[i_504427]);
					res_504491 += ((NI) 1);
				} LA104: ;
			}
		}
		{
			Tnode191813* LOC109;
			if (!isexpr) goto LA107;
			LOC109 = 0;
			LOC109 = lastson_194431(n);
			gen_497816(p, LOC109, r);
		}
		LA107: ;
	}
	break;
	case ((NU8) 112):
	case ((NU8) 127):
	{
		genblock_499931(p, n, r);
	}
	break;
	case ((NU8) 92):
	case ((NU8) 48):
	{
		genif_500645(p, n, r);
	}
	break;
	case ((NU8) 96):
	{
		genwhilestmt_499124(p, n);
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		genvarstmt_502753(p, n);
	}
	break;
	case ((NU8) 101):
	{
	}
	break;
	case ((NU8) 94):
	case ((NU8) 95):
	{
		internalerror_166199((*n).info, ((NimStringDesc*) &TMP4702));
	}
	break;
	case ((NU8) 97):
	{
		{
			if (!((*p).target == ((NU8) 0))) goto LA119;
			gencasejs_499608(p, n, r);
		}
		goto LA117;
		LA119: ;
		{
			gencaselua_499775(p, n, r);
		}
		LA117: ;
	}
	break;
	case ((NU8) 109):
	{
		genreturnstmt_504036(p, n);
	}
	break;
	case ((NU8) 110):
	{
		genbreakstmt_500032(p, n);
	}
	break;
	case ((NU8) 73):
	{
		genasgn_501144(p, n);
	}
	break;
	case ((NU8) 74):
	{
		genfastasgn_501156(p, n);
	}
	break;
	case ((NU8) 114):
	{
		{
			if (!!(((*(*n).kindU.S6.sons->data[((NI) 0)]).kind == ((NU8) 1)))) goto LA129;
			genlinedir_498989(p, n);
			gen_497816(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
		}
		LA129: ;
	}
	break;
	case ((NU8) 89):
	{
		genasmstmt_500445(p, n);
	}
	break;
	case ((NU8) 106):
	{
		gentry_499257(p, n, r);
	}
	break;
	case ((NU8) 108):
	{
		genraisestmt_499577(p, n);
	}
	break;
	case ((NU8) 98):
	case ((NU8) 125):
	case ((NU8) 84):
	case ((NU8) 121):
	case ((NU8) 116):
	case ((NU8) 117):
	case ((NU8) 118):
	case ((NU8) 119):
	case ((NU8) 120):
	case ((NU8) 83):
	case ((NU8) 82):
	case ((NU8) 90):
	{
	}
	break;
	case ((NU8) 79):
	case ((NU8) 80):
	case ((NU8) 81):
	{
		Tsym191843* s;
		s = (*(*n).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
		{
			if (!((65600 & (*s).flags) == 64)) goto LA138;
			gensym_501782(p, (*n).kindU.S6.sons->data[((NI) 0)], r);
			unsureAsgnRef((void**) (&(*r).res), NIM_NIL);
		}
		LA138: ;
	}
	break;
	case ((NU8) 156):
	case ((NU8) 157):
	{
		internalerror_166199((*n).info, ((NimStringDesc*) &TMP4749));
	}
	break;
	case ((NU8) 91):
	{
		Tnode191813* LOC142;
		LOC142 = 0;
		LOC142 = lastson_194431(n);
		gen_497816(p, LOC142, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC144;
		LOC144 = 0;
		LOC144 = rawNewString(reprEnum((*n).kind, (&NTI191029))->Sup.len + 24);
appendString(LOC144, ((NimStringDesc*) &TMP4750));
appendString(LOC144, reprEnum((*n).kind, (&NTI191029)));
		internalerror_166199((*n).info, LOC144);
	}
	break;
	}
}

N_NIMCALL(void, genstmt_497825)(Tproc497033* p, Tnode191813* n) {
	Tcompres497023 r;
	memset((void*)(&r), 0, sizeof(r));
	gen_497816(p, n, (&r));
	{
		TY162572 LOC5;
		if (!!((r.res == NIM_NIL))) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = r.res;
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4751), LOC5, 1);
	}
	LA3: ;
}

N_NIMCALL(void, genmodule_504556)(Tproc497033* p, Tnode191813* n) {
	{
		TY491436 LOC5;
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		if (!(((*p).options &(1<<((((NU8) 15))&31)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC6 = 0;
		LOC6 = rawNewString((*(*(*(*p).module).module).name).s->Sup.len + 7);
appendString(LOC6, ((NimStringDesc*) &TMP4375));
appendString(LOC6, (*(*(*(*p).module).module).name).s);
		LOC5[0] = makejsstring_497305(LOC6);
		LOC7 = 0;
		LOC7 = tofilename_165266((*(*(*p).module).module).info.fileindex);
		LOC5[1] = makejsstring_497305(LOC7);
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4372), LOC5, 2);
	}
	LA3: ;
	genstmt_497825(p, n);
	{
		TY461664 LOC12;
		if (!(((*p).options &(1<<((((NU8) 15))&31)))!=0)) goto LA10;
		memset((void*)LOC12, 0, sizeof(LOC12));
		addf_163635(&(*p).body, ((NimStringDesc*) &TMP4752), LOC12, 0);
	}
	LA10: ;
}

N_NIMCALL(Tnode191813*, myprocess_504597)(Tpasscontext242005* b, Tnode191813* n) {
	Tnode191813* result;
	Tjsgen497015* m;
	Tproc497033* p;
{	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_242083(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = n;
	m = ((Tjsgen497015*) (b));
	{
		if (!((*m).module == NIM_NIL)) goto LA8;
		internalerror_166199((*n).info, ((NimStringDesc*) &TMP4364));
	}
	LA8: ;
	p = newproc_497207(globals_504510, m, NIM_NIL, (*(*m).module).options);
	genmodule_504556(p, n);
	add_162534(&(*(*p).g).code, (*p).locals);
	add_162534(&(*(*p).g).code, (*p).body);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Ropeobj162009*, wholecode_504625)(Tjsgen497015* m) {
	Ropeobj162009* result;
	Tnode191813* disp;
	result = 0;
	{
		Tsym191843* prc_504638;
		Tsymseq191815* HEX3Atmp_504665;
		NI i_504668;
		NI L_504670;
		prc_504638 = 0;
		HEX3Atmp_504665 = 0;
		HEX3Atmp_504665 = (*globals_504510).forwarded;
		i_504668 = ((NI) 0);
		L_504670 = (HEX3Atmp_504665 ? HEX3Atmp_504665->Sup.len : 0);
		{
			while (1) {
				if (!(i_504668 < L_504670)) goto LA3;
				prc_504638 = HEX3Atmp_504665->data[i_504668];
				{
					NIM_BOOL LOC6;
					Tproc497033* p;
					Ropeobj162009* LOC9;
					LOC6 = 0;
					LOC6 = containsorincl_188898((&(*globals_504510).generatedsyms), (*prc_504638).Sup.id);
					if (!!(LOC6)) goto LA7;
					p = newproc_497207(globals_504510, m, NIM_NIL, (*(*m).module).options);
					LOC9 = 0;
					LOC9 = genproc_497832(p, prc_504638);
					add_162534(&(*(*p).g).code, LOC9);
				}
				LA7: ;
				i_504668 += ((NI) 1);
			} LA3: ;
		}
	}
	disp = generatemethoddispatchers_357208();
	{
		NI i_504655;
		NI HEX3Atmp_504672;
		NI LOC11;
		NI res_504675;
		i_504655 = 0;
		HEX3Atmp_504672 = 0;
		LOC11 = 0;
		LOC11 = sonslen_194403(disp);
		HEX3Atmp_504672 = (NI)(LOC11 - ((NI) 1));
		res_504675 = ((NI) 0);
		{
			while (1) {
				Tsym191843* prc;
				if (!(res_504675 <= HEX3Atmp_504672)) goto LA13;
				i_504655 = res_504675;
				prc = (*(*disp).kindU.S6.sons->data[i_504655]).kindU.S4.sym;
				{
					NIM_BOOL LOC16;
					Tproc497033* p;
					Ropeobj162009* LOC19;
					LOC16 = 0;
					LOC16 = containsorincl_188898((&(*globals_504510).generatedsyms), (*prc).Sup.id);
					if (!!(LOC16)) goto LA17;
					p = newproc_497207(globals_504510, m, NIM_NIL, (*(*m).module).options);
					LOC19 = 0;
					LOC19 = genproc_497832(p, prc);
					add_162534(&(*(*p).g).code, LOC19);
				}
				LA17: ;
				res_504675 += ((NI) 1);
			} LA13: ;
		}
	}
	result = HEX26_162436((*globals_504510).typeinfo, (*globals_504510).code);
	return result;
}

N_NIMCALL(Ropeobj162009*, genheader_504545)(void) {
	Ropeobj162009* result;
	TY162572 LOC1;
	result = 0;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rope_162320(((NimStringDesc*) &TMP4755));
	result = HEX25_163235(((NimStringDesc*) &TMP4754), LOC1, 1);
	return result;
}

N_NIMCALL(Tnode191813*, myclose_504703)(Tpasscontext242005* b, Tnode191813* n) {
	Tnode191813* result;
	Tjsgen497015* m;
{	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_242083(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = myprocess_504597(b, n);
	m = ((Tjsgen497015*) (b));
	{
		Ropeobj162009* code;
		NimStringDesc* outfile;
		Ropeobj162009* LOC24;
		Ropeobj162009* LOC25;
		NIM_BOOL LOC26;
		if (!(((*(*m).module).flags &(1<<((((NU8) 12))&31)))!=0)) goto LA8;
		code = wholecode_504625(m);
		{
			if (!(((NI) 0) < (outfile_155134 ? outfile_155134->Sup.len : 0))) goto LA12;
			{
				NIM_BOOL LOC16;
				LOC16 = 0;
				LOC16 = nosisAbsolute(outfile_155134);
				if (!LOC16) goto LA17;
				outfile = outfile_155134;
			}
			goto LA14;
			LA17: ;
			{
				NimStringDesc* LOC20;
				LOC20 = 0;
				LOC20 = nosgetCurrentDir();
				outfile = HEX2F_118492(LOC20, outfile_155134);
			}
			LA14: ;
		}
		goto LA10;
		LA12: ;
		{
			NimStringDesc* LOC22;
			NimStringDesc* LOC23;
			LOC22 = 0;
			LOC22 = tofilename_165266(((NI32) ((*(*m).module).position)));
			LOC23 = 0;
			LOC23 = completecfilepath_171912(LOC22, NIM_TRUE);
			outfile = noschangeFileExt(LOC23, ((NimStringDesc*) &TMP4753));
		}
		LA10: ;
		LOC24 = 0;
		LOC24 = genheader_504545();
		LOC25 = 0;
		LOC25 = HEX26_162436(LOC24, code);
		LOC26 = 0;
		LOC26 = writeropeifnotequal_163930(LOC25, outfile);
	}
	LA8: ;
	}BeforeRet: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, nimsrc_jsgenInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, nimsrc_jsgenDatInit)(void) {
static TNimNode* TMP4361[5];
static TNimNode* TMP4365[12];
static TNimNode* TMP4366[2];
NI TMP4368;
static char* NIM_CONST TMP4367[2] = {
"targetJS", 
"targetLua"};
static TNimNode* TMP4369[2];
static TNimNode TMP1064[26];
NTI497015.size = sizeof(Tjsgen497015);
NTI497015.kind = 17;
NTI497015.base = (&NTI242005);
TMP1064[0].kind = 1;
TMP1064[0].offset = offsetof(Tjsgen497015, module);
TMP1064[0].typ = (&NTI191811);
TMP1064[0].name = "module";
NTI497015.node = &TMP1064[0];
NTI497017.size = sizeof(Tjsgen497015*);
NTI497017.kind = 22;
NTI497017.base = (&NTI497015);
NTI497017.marker = TMP4360;
NTI497027.size = sizeof(Tglobals497027);
NTI497027.kind = 18;
NTI497027.base = 0;
NTI497027.flags = 2;
TMP4361[0] = &TMP1064[2];
TMP1064[2].kind = 1;
TMP1064[2].offset = offsetof(Tglobals497027, typeinfo);
TMP1064[2].typ = (&NTI162007);
TMP1064[2].name = "typeInfo";
TMP4361[1] = &TMP1064[3];
TMP1064[3].kind = 1;
TMP1064[3].offset = offsetof(Tglobals497027, code);
TMP1064[3].typ = (&NTI162007);
TMP1064[3].name = "code";
TMP4361[2] = &TMP1064[4];
TMP1064[4].kind = 1;
TMP1064[4].offset = offsetof(Tglobals497027, forwarded);
TMP1064[4].typ = (&NTI191815);
TMP1064[4].name = "forwarded";
TMP4361[3] = &TMP1064[5];
TMP1064[5].kind = 1;
TMP1064[5].offset = offsetof(Tglobals497027, generatedsyms);
TMP1064[5].typ = (&NTI188056);
TMP1064[5].name = "generatedSyms";
TMP4361[4] = &TMP1064[6];
TMP1064[6].kind = 1;
TMP1064[6].offset = offsetof(Tglobals497027, typeinfogenerated);
TMP1064[6].typ = (&NTI188056);
TMP1064[6].name = "typeInfoGenerated";
TMP1064[1].len = 5; TMP1064[1].kind = 2; TMP1064[1].sons = &TMP4361[0];
NTI497027.node = &TMP1064[1];
NTI497029.size = sizeof(Tglobals497027*);
NTI497029.kind = 22;
NTI497029.base = (&NTI497027);
NTI497029.flags = 2;
NTI497029.marker = TMP4362;
NTI497033.size = sizeof(Tproc497033);
NTI497033.kind = 18;
NTI497033.base = 0;
TMP4365[0] = &TMP1064[8];
TMP1064[8].kind = 1;
TMP1064[8].offset = offsetof(Tproc497033, procdef);
TMP1064[8].typ = (&NTI191805);
TMP1064[8].name = "procDef";
TMP4365[1] = &TMP1064[9];
TMP1064[9].kind = 1;
TMP1064[9].offset = offsetof(Tproc497033, prc);
TMP1064[9].typ = (&NTI191811);
TMP1064[9].name = "prc";
TMP4365[2] = &TMP1064[10];
TMP1064[10].kind = 1;
TMP1064[10].offset = offsetof(Tproc497033, locals);
TMP1064[10].typ = (&NTI162007);
TMP1064[10].name = "locals";
TMP4365[3] = &TMP1064[11];
TMP1064[11].kind = 1;
TMP1064[11].offset = offsetof(Tproc497033, body);
TMP1064[11].typ = (&NTI162007);
TMP1064[11].name = "body";
TMP4365[4] = &TMP1064[12];
TMP1064[12].kind = 1;
TMP1064[12].offset = offsetof(Tproc497033, options);
TMP1064[12].typ = (&NTI155016);
TMP1064[12].name = "options";
TMP4365[5] = &TMP1064[13];
TMP1064[13].kind = 1;
TMP1064[13].offset = offsetof(Tproc497033, module);
TMP1064[13].typ = (&NTI497017);
TMP1064[13].name = "module";
TMP4365[6] = &TMP1064[14];
TMP1064[14].kind = 1;
TMP1064[14].offset = offsetof(Tproc497033, g);
TMP1064[14].typ = (&NTI497029);
TMP1064[14].name = "g";
TMP4365[7] = &TMP1064[15];
TMP1064[15].kind = 1;
TMP1064[15].offset = offsetof(Tproc497033, beforeretneeded);
TMP1064[15].typ = (&NTI138);
TMP1064[15].name = "beforeRetNeeded";
TMP4365[8] = &TMP1064[16];
NTI497013.size = sizeof(NU8);
NTI497013.kind = 14;
NTI497013.base = 0;
NTI497013.flags = 3;
for (TMP4368 = 0; TMP4368 < 2; TMP4368++) {
TMP1064[TMP4368+17].kind = 1;
TMP1064[TMP4368+17].offset = TMP4368;
TMP1064[TMP4368+17].name = TMP4367[TMP4368];
TMP4366[TMP4368] = &TMP1064[TMP4368+17];
}
TMP1064[19].len = 2; TMP1064[19].kind = 2; TMP1064[19].sons = &TMP4366[0];
NTI497013.node = &TMP1064[19];
TMP1064[16].kind = 1;
TMP1064[16].offset = offsetof(Tproc497033, target);
TMP1064[16].typ = (&NTI497013);
TMP1064[16].name = "target";
TMP4365[9] = &TMP1064[20];
TMP1064[20].kind = 1;
TMP1064[20].offset = offsetof(Tproc497033, unique);
TMP1064[20].typ = (&NTI108);
TMP1064[20].name = "unique";
TMP4365[10] = &TMP1064[21];
NTI497025.size = sizeof(Tblock497025);
NTI497025.kind = 18;
NTI497025.base = 0;
NTI497025.flags = 3;
TMP4369[0] = &TMP1064[23];
TMP1064[23].kind = 1;
TMP1064[23].offset = offsetof(Tblock497025, id);
TMP1064[23].typ = (&NTI108);
TMP1064[23].name = "id";
TMP4369[1] = &TMP1064[24];
TMP1064[24].kind = 1;
TMP1064[24].offset = offsetof(Tblock497025, isloop);
TMP1064[24].typ = (&NTI138);
TMP1064[24].name = "isLoop";
TMP1064[22].len = 2; TMP1064[22].kind = 2; TMP1064[22].sons = &TMP4369[0];
NTI497025.node = &TMP1064[22];
NTI497071.size = sizeof(TY497071*);
NTI497071.kind = 24;
NTI497071.base = (&NTI497025);
NTI497071.flags = 2;
NTI497071.marker = TMP4370;
TMP1064[21].kind = 1;
TMP1064[21].offset = offsetof(Tproc497033, blocks);
TMP1064[21].typ = (&NTI497071);
TMP1064[21].name = "blocks";
TMP4365[11] = &TMP1064[25];
TMP1064[25].kind = 1;
TMP1064[25].offset = offsetof(Tproc497033, up);
TMP1064[25].typ = (&NTI497031);
TMP1064[25].name = "up";
TMP1064[7].len = 12; TMP1064[7].kind = 2; TMP1064[7].sons = &TMP4365[0];
NTI497033.node = &TMP1064[7];
NTI497031.size = sizeof(Tproc497033*);
NTI497031.kind = 22;
NTI497031.base = (&NTI497033);
NTI497031.marker = TMP4371;
NTI498453.size = sizeof(Tmagicfrmt498453);
NTI498453.kind = 16;
NTI498453.base = (&NTI149);
NTI498453.flags = 2;
NTI498455.size = sizeof(Tmagicops498455);
NTI498455.kind = 16;
NTI498455.base = (&NTI498453);
NTI498455.flags = 2;
}

