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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tySequence__YdLNCDKYeipzJx3I8Xw82Q tySequence__YdLNCDKYeipzJx3I8Xw82Q;
typedef struct tySequence__PJMRIt5QxCm6bRaVyQ5CGA tySequence__PJMRIt5QxCm6bRaVyQ5CGA;
typedef struct tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ;
typedef struct tySequence__RsxI3z4wK8jTuZiO0576gQ tySequence__RsxI3z4wK8jTuZiO0576gQ;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tySequence__JokFGfUW6i9b6aeU7xu6xBw tySequence__JokFGfUW6i9b6aeU7xu6xBw;
typedef struct tyTuple__SlmU1Ju0WFHUWkihyHMVYg tyTuple__SlmU1Ju0WFHUWkihyHMVYg;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA;
typedef struct tyTuple__UCrBsiykDha2x4hr9aWPwKA tyTuple__UCrBsiykDha2x4hr9aWPwKA;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA;
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
typedef NU8 tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ;
typedef NU8 tySet_tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A;
struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw {
  tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
tySequence__YdLNCDKYeipzJx3I8Xw82Q* code;
tySequence__PJMRIt5QxCm6bRaVyQ5CGA* debug;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* globals;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constants;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* types;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentExceptionA;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentExceptionB;
NI exceptionInstr;
tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* prc;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callsite;
tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ mode;
tySet_tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A features;
NIM_BOOL traceActive;
NI loopIterations;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q comesFromHeuristic;
tySequence__RsxI3z4wK8jTuZiO0576gQ* callbacks;
NimStringDesc* errorFlag;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
NI oldErrorCount;
};
typedef NU8 tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ;
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ;
struct tyTuple__SlmU1Ju0WFHUWkihyHMVYg {
NIM_BOOL Field0;
tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ Field1;
};
typedef tyTuple__SlmU1Ju0WFHUWkihyHMVYg tyArray__EYsuRBqqo81SUrCUzYSAKA[65536];
struct tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ {
tySequence__JokFGfUW6i9b6aeU7xu6xBw* blocks;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__EYsuRBqqo81SUrCUzYSAKA slots;
NI maxSlots;
};
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[6];
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU8 tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ;
typedef NU8 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NU8 tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* args, void* ClE_0);
void* ClE_0;
} tyProc__S09bPfanQx9bEvdh4862x8zw;
struct tyTuple__UCrBsiykDha2x4hr9aWPwKA {
NimStringDesc* Field0;
tyProc__S09bPfanQx9bEvdh4862x8zw Field1;
};
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
struct tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* label;
tySequence__qwqHTkRvwhrRyENtudHQ7g* fixups;
};
typedef NU8 tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A;
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA {
NI ra;
NI rb;
NI rc;
tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA* slots;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentException;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q currentLineInfo;
};
struct tySequence__YdLNCDKYeipzJx3I8Xw82Q {
  TGenericSeq Sup;
  NU64 data[SEQ_DECL_SIZE];
};
struct tySequence__PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__JokFGfUW6i9b6aeU7xu6xBw {
  TGenericSeq Sup;
  tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__RsxI3z4wK8jTuZiO0576gQ {
  TGenericSeq Sup;
  tyTuple__UCrBsiykDha2x4hr9aWPwKA data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NOINLINE(void, raiseFieldError)(NimStringDesc* f);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NIM_BOOL, nimSubInt)(NI a, NI b, NI* res);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i, NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, nimAddInt)(NI a, NI b, NI* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__FpOm4fidh9bWdkMa1BMRJkQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__zcNs9blLGYB6i9aGKob9bpzRw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBody__ocxOgPRHWfivNZELIhOv7w)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL cache);
static N_INLINE(NIM_BOOL, isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NI, xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a);
N_LIB_PRIVATE N_NIMCALL(void, gABx__vCfZ9bElZa5k2CDWM9coPmBA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, localError__NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, genParams__yHS9cbYsE7NJ9b9appE7eVGpA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams__4wahcx9bmpD7ffT1schyhBg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp);
N_LIB_PRIVATE N_NIMCALL(void, gen__M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, gen__jht1XYyYWKYwfRpm130Gcg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval__Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, importcCondVar__FdCkMWi1o9ccnUFjzZDi9aUgvmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy__WuAduAQ6byDbQit0bpfaag)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b);
N_LIB_PRIVATE N_NOINLINE(void, cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, globalError__NF6kBGchnhQYPbCedyefVA_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, genRdVar__jht1XYyYWKYwfRpm130Gcg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, countBits32)(NU32 n);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(NIM_BOOL, importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, importcSym__tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getNullValue__MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__KSL6w3oJzmAgViXO80UQiA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI* currPosition);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, toInt__TIX0sFuRf3uBpOBltYp7bw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__hjogdnp59cMX1rwmjikBhqw_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType__PfgI9ap7WOnsRfFV4znQ27w_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, getTemp__duEomvr9bK43tarDYX26gsA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, getFreeRegister__dSPxw1n9awB6adDVf7S9ar3Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, bestEffort__LqSnLt7G00hwvGEFOVVFfw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__PBkjYIaAGbtrZ8DiUArHcw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NI, genx__uIB1V7YFWyQzDYKijoL1tA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, gABC__UIRVqkSOpk264WekB9cpXRw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, setSlot__wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(void, internalError__5hPl6LjCYJxMYxh9af9b9bXzw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___r38WafKlW80RkvoZTcia4Q)(tyTuple__kN8up2W6YKc5YA9avn5mV5w x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__0hqyrQPuS5o8lQCNfzUziw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__rZhM0XALsbmtBw4DH4NjRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, nsuSplitChar)(NimStringDesc* s, NIM_CHAR sep, NI maxsplit);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NimStringDesc*, X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem)(NimStringDesc** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, genLit__lTwxbV0wsOSkbi9adg16xrw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral__PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__rlsxiOBKecP0t9crY75888g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canonValue__yXNCtNX5XyYFmGvoC2Ryfw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit__E6EPoKGcZLyzaPi29aeeG7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, genMagic__nCoAHjo16P5zqJafFfwLew)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__DlG7xpoz9cztsbek49cNKVUg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp__olzvRW3Qlk2DhgCa4FP0Fg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, gen__4hhMx9acAaFJrVXUkV9bC0RA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, patch__Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI p);
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt__dSCPDAfahz444v0bhbpQAA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, gABI__2Xc89bNXyQiyYVPoh9brP5Lg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm);
static N_INLINE(NIM_BOOL, nimAddInt64)(NI64 a, NI64 b, NI64* res);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC__dSCPDAfahz444v0bhbpQAA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrow__9bocefL9bdayauH9bAGnbttOQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
static N_INLINE(NIM_BOOL, nimMulInt64)(NI64 a, NI64 b, NI64* res);
static N_INLINE(NF, toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem)(NI64 i);
static N_INLINE(NF, abs__BRaAqinz6OWTHkALb4oj6Qsystem)(NF x);
static N_INLINE(void, unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, NI value);
N_LIB_PRIVATE N_NIMCALL(NI, genIndex__M5LvI9cd9ck3A7bD4QIkuGkA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__hjogdnp59cMX1rwmjikBhqw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___7c5Zw7H31uJfWmmhZe9aEqw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, genField__hsBsLv9cKR5frmhKTX7rURw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNode__C1MQfgDmfXqO1v69aAZbuYA)(NimStringDesc* strVal, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genNew__Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genType__H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__3isNyHKb0U1OCnClmflXSg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq__Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__lTwxbV0wsOSkbi9adg16xrw_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC__dSCPDAfahz444v0bhbpQAA_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genCard__lTwxbV0wsOSkbi9adg16xrw_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU__9bocefL9bdayauH9bAGnbttOQ_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genConv__5o3JB8z8Vaytpw5QzBCu2w)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet__dSCPDAfahz444v0bhbpQAA_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC__dSCPDAfahz444v0bhbpQAA_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange__QYpBvcTLkwTKaaaJK2K4LQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ kind);
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerSwap__8A4G64HByteFanrMUexmNw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD__dSCPDAfahz444v0bhbpQAA_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC__w6wTV78X6bUwnyRSPSSgQw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opcode);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBindSym__lTwxbV0wsOSkbi9adg16xrw_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genCall__lTwxbV0wsOSkbi9adg16xrw_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__52uSyG4N9c9cuGgSFhItwpgQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad__lTwxbV0wsOSkbi9adg16xrw_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore__lTwxbV0wsOSkbi9adg16xrw_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(void, clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess__jht1XYyYWKYwfRpm130Gcg_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess__jht1XYyYWKYwfRpm130Gcg_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess__jht1XYyYWKYwfRpm130Gcg_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccessOpcode__2L40Rbn0RbtSbWjz9ahcg9ag)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genDeref__jht1XYyYWKYwfRpm130Gcg_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAddr__jht1XYyYWKYwfRpm130Gcg_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf__lTwxbV0wsOSkbi9adg16xrw_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genCase__lTwxbV0wsOSkbi9adg16xrw_9)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genWhile__Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__ZRCO5A5eUGuEhpgXduomEQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI p);
N_LIB_PRIVATE N_NIMCALL(void, popBlock__NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen);
N_LIB_PRIVATE N_NIMCALL(void, genBlock__lTwxbV0wsOSkbi9adg16xrw_10)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genReturn__Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genRaise__Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreak__Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTry__lTwxbV0wsOSkbi9adg16xrw_11)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getOwner__ZAdOX9bNnuzwXclhv6dmGLg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__lTwxbV0wsOSkbi9adg16xrw_12)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__lTwxbV0wsOSkbi9adg16xrw_13)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__lTwxbV0wsOSkbi9adg16xrw_14)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__lTwxbV0wsOSkbi9adg16xrw_15)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat__lTwxbV0wsOSkbi9adg16xrw_16)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize__vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps__c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start);
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff);
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof__11BORrgbqmd0BtSK02pBqQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_2 = {
0xec, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_3, "\'sons\' is not accessible using discriminant \'kind\' of type \'TNo"
"de\'", 66);
extern TNimType NTI__YdLNCDKYeipzJx3I8Xw82Q_;
extern TNimType NTI__PJMRIt5QxCm6bRaVyQ5CGA_;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_7, "VM: immediate value does not fit into regBx", 43);
extern TNimType NTI__FM7mzTFsA8pyUhXVKKO6Gw_;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_9 = {
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_10, "\'sym\' is not accessible using discriminant \'kind\' of type \'TNod"
"e\'", 65);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_16, "cannot evaluate at compile time: ", 33);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_17, "vmgen.nim(1608, 10) `card(flags * {gfNodeAddr, gfNode}) < 2` ", 61);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_18, "cannot \'importc\' variable at compile time; ", 43);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_19 = {
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_20, "\'strVal\' is not accessible using discriminant \'kind\' of type \'T"
"Node\'", 68);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_23, "vmgen.nim(1778, 14) `obj.sym.position == currPosition` ", 55);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_25, "cannot create null element for: ", 32);
extern TNimType NTI__9a3YiReNVD0IJHWFKgXRe9ag_;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_32, "VM problem: too many registers required", 39);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_34, "vmgen.nim(118, 10) `opc.ord < 255` ", 35);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_35, "vmgen.nim(1620, 12) `s.typ != nil` ", 35);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_36, "vmgen.nim(953, 10) `t != nil` ", 30);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_39, "vmgen.nim", 9);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_38 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1642),
((NI) 22)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_40, "vmgen.nim(1438, 10) `dest >= 0` ", 32);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_42, "*", 1);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_44, "vmgen.nim(1980, 16) `s.offset == -1` ", 37);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_47, "iterators.nim(189, 11) `len(a) == L` the length of the seq chan"
"ged while iterating over it", 90);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_48 = {
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_49, "\'ident\' is not accessible using discriminant \'kind\' of type \'TN"
"ode\'", 67);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_50 = {
0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_51, "\'intVal\' is not accessible using discriminant \'kind\' of type \'T"
"Node\'", 68);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_52 = {
0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_53, "\'floatVal\' is not accessible using discriminant \'kind\' of type "
"\'TNode\'", 70);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_56 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 443),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_57, "cannot generate code for: ", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_59 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 179),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_62, "VM: immediate value does not fit into an int8", 45);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_66, "not unused", 10);
static NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA TM__24XApAWKNvaMkcyklm8bNA_68 = {{((NU32) 0),
((NU32) 0),
((NU32) 0),
((NU32) 0)}
}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_69 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1691),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_71 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1703),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_72, "no field symbol", 15);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_73, "too large offset! cannot generate code for: ", 44);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_75, "iterators.nim(122, 11) `len(a) == L` the length of the seq chan"
"ged while iterating over it", 90);
extern TNimType NTI__Ef05srmQTDulnBdXR4Ja6Q_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_76 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 516),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_104, "vmgen.nim(958, 10) `t != nil` ", 30);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_107, "getType", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_108, "typeKind", 8);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_109, "getTypeInst", 11);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_110, "getSize", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_111, "getAlign", 8);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_112, "invalid bindSym usage", 21);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_122, "getFile", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_123, "getLine", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_124, "getColumn", 9);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_125, "copyLineInfo", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_126 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1282),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_127 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1285),
((NI) 25)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_129 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 595),
((NI) 21)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_131, "expandToAst requires 1 argument", 31);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_132, "expandToAst requires a call expression", 38);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_133, "cannot evaluate \'sizeof\' because its type is not defined comple"
"tely", 67);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_134, "cannot evaluate \'alignof\' because its type is not defined compl"
"etely", 68);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_135, "cannot evaluate \'offsetof\' because its type is not defined comp"
"letely", 69);
extern TNimType NTI__shZhZOdbVC5nnFvcXQAImg_;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_136, "cannot call method ", 19);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_137, " at compile time", 16);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_140, "stdlib", 6);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_141, "marshal", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_142, "to", 2);
static NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__24XApAWKNvaMkcyklm8bNA_139 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_140),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_141),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_142)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_144, "$$", 2);
static NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__24XApAWKNvaMkcyklm8bNA_143 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_140),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_141),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_144)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_145, "vmgen.nim(1497, 10) `n.typ != nil` ", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_146 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1551),
((NI) 21)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_148, "vmgen.nim(1554, 14) `le.typ != nil` ", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_149 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1735),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_150, "vmgen.nim(1431, 12) `n.typ != nil` ", 35);
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
static NIM_CONST struct {
  TGenericSeq Sup;
  NI data[0];
} TM__24XApAWKNvaMkcyklm8bNA_158 = {{0, 0 | NIM_STRLIT_FLAG}};
static NIM_CONST tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ TM__24XApAWKNvaMkcyklm8bNA_157 = {NIM_NIL, ((tySequence__qwqHTkRvwhrRyENtudHQ7g*)&TM__24XApAWKNvaMkcyklm8bNA_158)}
;
extern TNimType NTI__JokFGfUW6i9b6aeU7xu6xBw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_160 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 171),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_165, "VM problem: cannot find \'break\' target", 38);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_167, "vmgen.nim(534, 15) `it[j].kind == nkType` ", 42);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_177, "vmgen.nim(1848, 20) `sa.kind != nkCall` ", 40);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_178, "vmgen.nim(1862, 18) `s.typ != nil` ", 35);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_179, "vmgen.nim(1866, 18) `le.typ != nil` ", 36);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_183, "invalid object constructor", 26);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_188, "VM does not support \'cast\' from ", 32);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_189, " to ", 4);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_190, "cannot generate VM code for ", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_201 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 2177),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_214, "vmgen.nim(2142, 12) `c.code.len == c.debug.len` ", 48);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_215, "VM problem: dest register is not set", 36);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_216, "VM problem: dest register is set", 32);
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
static N_INLINE(NIM_BOOL, nimSubInt)(NI a, NI b, NI* res) {
	NIM_BOOL result;
	NI r;
	result = (NIM_BOOL)0;
	r = ((NI) ((NU)((NU64)(((NU) (a))) - (NU64)(((NU) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(r ^ (NI)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(NIM_BOOL, nimAddInt)(NI a, NI b, NI* res) {
	NIM_BOOL result;
	NI r;
	result = (NIM_BOOL)0;
	r = ((NI) ((NU)((NU64)(((NU) (a))) + (NU64)(((NU) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(r ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(NIM_BOOL, isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
	if (!(T3_)) goto LA4_;
	T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABx__vCfZ9bElZa5k2CDWM9coPmBA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx) {
	{
		NIM_BOOL T3_;
		NU64 ins;
		NI TM__24XApAWKNvaMkcyklm8bNA_6;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -8388608) <= bx);
		if (!(T3_)) goto LA4_;
		T3_ = (bx <= ((NI) 8388607));
		LA4_: ;
		if (!T3_) goto LA5_;
		if (nimAddInt(bx, ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_6)) { raiseOverflow(); };
		ins = (NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_6)))) << (NU64)(24ULL)));
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*c).code), (&NTI__YdLNCDKYeipzJx3I8Xw82Q_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		localError__NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_7));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, opc, a, ((NI) 0));
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genParams__yHS9cbYsE7NJ9b9appE7eVGpA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params) {
	NIM_BOOL colontmp_;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
	NI T4_;
	colontmp_ = NIM_TRUE;
	colontmp__2 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 1);
	(*(*c).prc).slots[(((NI) 0))- 0].Field0 = colontmp_;
	(*(*c).prc).slots[(((NI) 0))- 0].Field1 = colontmp__2;
	{
		NI i;
		NI colontmp__3;
		NI i_2;
		i = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(params);
		i_2 = ((NI) 1);
		{
			while (1) {
				NIM_BOOL colontmp__4;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__5;
				NI TM__24XApAWKNvaMkcyklm8bNA_8;
				if (!(i_2 < colontmp__3)) goto LA3;
				i = i_2;
				colontmp__4 = NIM_TRUE;
				colontmp__5 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
				if ((NU)(i) > (NU)(65535)){ raiseIndexError2(i, 65535); }
				(*(*c).prc).slots[(i)- 0].Field0 = colontmp__4;
				(*(*c).prc).slots[(i)- 0].Field1 = colontmp__5;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_8)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_8);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len__P89cqdlERShb9alU3iC0yj8wast(params);
	(*(*c).prc).maxSlots = ((T4_ >= ((NI) 1)) ? T4_ : ((NI) 1));
}
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams__4wahcx9bmpD7ffT1schyhBg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp) {
	NI base;
	NI T4_;
	NI TM__24XApAWKNvaMkcyklm8bNA_14;
	base = (*(*c).prc).maxSlots;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
				NI TM__24XApAWKNvaMkcyklm8bNA_11;
				NIM_BOOL colontmp__2;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__3;
				NI TM__24XApAWKNvaMkcyklm8bNA_12;
				NI TM__24XApAWKNvaMkcyklm8bNA_13;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*gp).kind)>>3] &(1U<<((NU)((*gp).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
				if ((NU)(i) >= (NU)((*gp)._kind_6.sons ? (*gp)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*gp)._kind_6.sons ? (*gp)._kind_6.sons->Sup.len : 0)-1); }
				if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*gp)._kind_6.sons->data[i]).kind)>>3] &(1U<<((NU)((*(*gp)._kind_6.sons->data[i]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
				param = (*(*gp)._kind_6.sons->data[i])._kind_4.sym;
				if (nimAddInt(base, i, &TM__24XApAWKNvaMkcyklm8bNA_11)) { raiseOverflow(); };
				(*param).position = (NI)(TM__24XApAWKNvaMkcyklm8bNA_11);
				colontmp__2 = NIM_TRUE;
				colontmp__3 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
				if (nimAddInt(base, i, &TM__24XApAWKNvaMkcyklm8bNA_12)) { raiseOverflow(); };
				if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_12)) > (NU)(65535)){ raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_12), 65535); }
				(*(*c).prc).slots[((NI)(TM__24XApAWKNvaMkcyklm8bNA_12))- 0].Field0 = colontmp__2;
				(*(*c).prc).slots[((NI)(TM__24XApAWKNvaMkcyklm8bNA_12))- 0].Field1 = colontmp__3;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_13)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_13);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
	if (nimAddInt(base, T4_, &TM__24XApAWKNvaMkcyklm8bNA_14)) { raiseOverflow(); };
	(*(*c).prc).maxSlots = (NI)(TM__24XApAWKNvaMkcyklm8bNA_14);
}
static N_INLINE(NIM_BOOL, importcCondVar__FdCkMWi1o9ccnUFjzZDi9aUgvmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA3_;
		result = ((1792 &(1U<<((NU)((*s).kind)&31U)))!=0);
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy__WuAduAQ6byDbQit0bpfaag)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b) {
	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a_2;
{	result = (NIM_BOOL)0;
	a_2 = (*a).owner;
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !((a_2 == NIM_NIL));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*a_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
			LA4_: ;
			if (!T3_) goto LA2;
			{
				if (!(a_2 == b)) goto LA7_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA7_: ;
			a_2 = (*a_2).owner;
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 33);
appendString(T1_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_16));
appendString(T1_, T2_);
	globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval__Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
{	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	s = (*n)._kind_4.sym;
	{
		if (!((134217736 & ~ (*s).flags)==0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = importcCondVar__FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
		if (!T7_) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	{
		NIM_BOOL T12_;
		NIM_BOOL T13_;
		NIM_BOOL T14_;
		NIM_BOOL T16_;
		T12_ = (NIM_BOOL)0;
		T13_ = (NIM_BOOL)0;
		T14_ = (NIM_BOOL)0;
		T14_ = ((2856 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T14_)) goto LA15_;
		T16_ = (NIM_BOOL)0;
		T16_ = isOwnedBy__WuAduAQ6byDbQit0bpfaag(s, (*(*c).prc).sym);
		T14_ = !(T16_);
		LA15_: ;
		T13_ = T14_;
		if (!(T13_)) goto LA17_;
		T13_ = !(((*s).owner == (*c).module));
		LA17_: ;
		T12_ = T13_;
		if (!(T12_)) goto LA18_;
		T12_ = !(((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0)));
		LA18_: ;
		if (!T12_) goto LA19_;
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36))&63U)))!=0);
			if (!(T23_)) goto LA24_;
			T23_ = ((*(*c).prc).sym == NIM_NIL);
			LA24_: ;
			if (!T23_) goto LA25_;
		}
		goto LA21_;
		LA25_: ;
		{
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		LA21_: ;
	}
	goto LA10_;
	LA19_: ;
	{
		NIM_BOOL T29_;
		T29_ = (NIM_BOOL)0;
		T29_ = ((126976 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T29_)) goto LA30_;
		T29_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
		LA30_: ;
		if (!T29_) goto LA31_;
		cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
	}
	goto LA10_;
	LA31_: ;
	LA10_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA3_;
		{
			if (!((520192 &(1U<<((NU)((*s).kind)&31U)))!=0)) goto LA7_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 6)) >= (NU)((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 6),((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)-1); }
			result = ((*(*(*s).ast)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
			goto BeforeRet_;
		}
		LA7_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, importcSym__tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NimStringDesc* T1_;
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 43);
appendString(T1_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_18));
appendString(T1_, (*(*s).name).s);
	localError__NF6kBGchnhQYPbCedyefVA((*c).config, info, T1_);
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__KSL6w3oJzmAgViXO80UQiA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI* currPosition) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T6_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((t == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		T4_ = (((NI) 0) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		T3_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		LA7_: ;
		if (!T3_) goto LA8_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		b = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(b, (*b).n, result, conf, currPosition);
	}
	LA8_: ;
	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(obj);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_21;
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(i) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
					getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, (*obj)._kind_6.sons->data[i], result, conf, currPosition);
					if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_21)) { raiseOverflow(); };
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_21);
				} LA13: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, (*obj)._kind_6.sons->data[((NI) 0)], result, conf, currPosition);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(obj);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					NI TM__24XApAWKNvaMkcyklm8bNA_22;
					if (!(i_4 < colontmp__2)) goto LA17;
					i_3 = i_4;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(i_3) >= (NU)((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*obj)._kind_6.sons ? (*obj)._kind_6.sons->Sup.len : 0)-1); }
					T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*obj)._kind_6.sons->data[i_3]);
					getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, T18_, result, conf, currPosition);
					if (nimAddInt(i_4, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_22)) { raiseOverflow(); };
					i_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_22);
				} LA17: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
		NI TM__24XApAWKNvaMkcyklm8bNA_24;
		field = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), (*result).info);
		add__P8dDSotTW25BkfbyspojGg(field, obj);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T20_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*(*obj)._kind_4.sym).typ, (*result).info, conf);
		add__P8dDSotTW25BkfbyspojGg(field, T20_);
		add__P8dDSotTW25BkfbyspojGg(result, field);
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
			if (!!(((*(*obj)._kind_4.sym).position == (*currPosition)))) goto LA23_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_23));
		}
		LA23_: ;
		if (nimAddInt((*currPosition), ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_24)) { raiseOverflow(); };
		(*currPosition) = (NI)(TM__24XApAWKNvaMkcyklm8bNA_24);
	}
	break;
	default:
	{
		NimStringDesc* T26_;
		NimStringDesc* T27_;
		T26_ = (NimStringDesc*)0;
		T27_ = (NimStringDesc*)0;
		T27_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(obj);
		T26_ = rawNewString((T27_ ? T27_->Sup.len : 0) + 32);
appendString(T26_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_25));
appendString(T26_, T27_);
		globalError__NF6kBGchnhQYPbCedyefVA_2(conf, (*result).info, T26_);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getNullValue__MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(1189055854743169040));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), info, t);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_19[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_20)); }
		asgnRef((void**) (&(*result)._kind_3.strVal), ((NimStringDesc*) NIM_NIL));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA9_;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add__P8dDSotTW25BkfbyspojGg(result, T12_);
			T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T13_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add__P8dDSotTW25BkfbyspojGg(result, T13_);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		NI currPosition;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38), info, t);
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info, t);
		add__P8dDSotTW25BkfbyspojGg(result, T15_);
		currPosition = ((NI) 0);
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(t, (*t).n, result, conf, (&currPosition));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
		{
			NI i;
			NI colontmp_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T18_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T18_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3(conf, t);
			colontmp_ = toInt__TIX0sFuRf3uBpOBltYp7bw(T18_);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
					NI TM__24XApAWKNvaMkcyklm8bNA_26;
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T21_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(t);
					T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA(T21_, info, conf);
					add__P8dDSotTW25BkfbyspojGg(result, T22_);
					if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_26)) { raiseOverflow(); };
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_26);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
					NI TM__24XApAWKNvaMkcyklm8bNA_27;
					if (!(i_4 < colontmp__2)) goto LA26;
					i_3 = i_4;
					if ((NU)(i_3) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(i_3,((*t).sons ? (*t).sons->Sup.len : 0)-1); }
					T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T27_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*t).sons->data[i_3], info, conf);
					add__P8dDSotTW25BkfbyspojGg(result, T27_);
					if (nimAddInt(i_4, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_27)) { raiseOverflow(); };
					i_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_27);
				} LA26: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
	}
	break;
	default:
	{
		NimStringDesc* T32_;
		T32_ = (NimStringDesc*)0;
		T32_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 32);
appendString(T32_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_25));
appendString(T32_, reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError__NF6kBGchnhQYPbCedyefVA_2(conf, info, T32_);
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350136322064));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 6);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 5);
	}
	break;
	default:
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, bestEffort__LqSnLt7G00hwvGEFOVVFfw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).prc == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*c).prc).sym == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (*(*(*c).prc).sym).info;
	}
	goto LA1_;
	LA5_: ;
	{
		result = (*(*c).module).info;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getFreeRegister__dSPxw1n9awB6adDVf7S9ar3Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k, NI start) {
	NI result;
	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c;
	NIM_BOOL colontmp__5;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__6;
	NI TM__24XApAWKNvaMkcyklm8bNA_33;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NI i;
		NI colontmp_;
		NI TM__24XApAWKNvaMkcyklm8bNA_28;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		if (nimSubInt((*c).maxSlots, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_28)) { raiseOverflow(); };
		colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_28);
		res = start;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_29;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					if ((NU)(i) > (NU)(65535)){ raiseIndexError2(i, 65535); }
					T6_ = ((*c).slots[(i)- 0].Field1 == k);
					if (!(T6_)) goto LA7_;
					if ((NU)(i) > (NU)(65535)){ raiseIndexError2(i, 65535); }
					T6_ = !((*c).slots[(i)- 0].Field0);
					LA7_: ;
					if (!T6_) goto LA8_;
					if ((NU)(i) > (NU)(65535)){ raiseIndexError2(i, 65535); }
					(*c).slots[(i)- 0].Field0 = NIM_TRUE;
					if ((i) < ((NI) 0) || (i) > ((NI) 65535)){ raiseRangeErrorI(i, ((NI) 0), ((NI) 65535)); }
					result = ((NI) (i));
					goto BeforeRet_;
				}
				LA8_: ;
				if (nimAddInt(res, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_29)) { raiseOverflow(); };
				res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_29);
			} LA3: ;
		}
	}
	{
		if (!(((NI) 65535) <= (*c).maxSlots)) goto LA12_;
		{
			NI i_2;
			NI colontmp__2;
			NI TM__24XApAWKNvaMkcyklm8bNA_30;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			if (nimSubInt((*c).maxSlots, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_30)) { raiseOverflow(); };
			colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_30);
			res_2 = start;
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_31;
					if (!(res_2 <= colontmp__2)) goto LA16;
					i_2 = res_2;
					{
						NIM_BOOL colontmp__3;
						tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__4;
						if ((NU)(i_2) > (NU)(65535)){ raiseIndexError2(i_2, 65535); }
						if (!!((*c).slots[(i_2)- 0].Field0)) goto LA19_;
						colontmp__3 = NIM_TRUE;
						colontmp__4 = k;
						if ((NU)(i_2) > (NU)(65535)){ raiseIndexError2(i_2, 65535); }
						(*c).slots[(i_2)- 0].Field0 = colontmp__3;
						(*c).slots[(i_2)- 0].Field1 = colontmp__4;
						if ((i_2) < ((NI) 0) || (i_2) > ((NI) 65535)){ raiseRangeErrorI(i_2, ((NI) 0), ((NI) 65535)); }
						result = ((NI) (i_2));
						goto BeforeRet_;
					}
					LA19_: ;
					if (nimAddInt(res_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_31)) { raiseOverflow(); };
					res_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_31);
				} LA16: ;
			}
		}
	}
	LA12_: ;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T25_;
		if (!(((NI) 65535) <= (*c).maxSlots)) goto LA23_;
		T25_ = bestEffort__LqSnLt7G00hwvGEFOVVFfw(cc);
		globalError__NF6kBGchnhQYPbCedyefVA_2((*cc).config, T25_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_32));
	}
	LA23_: ;
	if (((((*c).maxSlots >= start) ? (*c).maxSlots : start)) < ((NI) 0) || ((((*c).maxSlots >= start) ? (*c).maxSlots : start)) > ((NI) 65535)){ raiseRangeErrorI((((*c).maxSlots >= start) ? (*c).maxSlots : start), ((NI) 0), ((NI) 65535)); }
	result = ((NI) ((((*c).maxSlots >= start) ? (*c).maxSlots : start)));
	colontmp__5 = NIM_TRUE;
	colontmp__6 = k;
	(*c).slots[(result)- 0].Field0 = colontmp__5;
	(*c).slots[(result)- 0].Field1 = colontmp__6;
	if (nimAddInt(((NI) (result)), ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_33)) { raiseOverflow(); };
	(*c).maxSlots = (NI)(TM__24XApAWKNvaMkcyklm8bNA_33);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getTemp__duEomvr9bK43tarDYX26gsA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt) {
	NI result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k;
	result = (NI)0;
	typ = skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2(tt, IL64(1152921504606846976));
	{
		if (!(typ == 0)) goto LA3_;
		k = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	goto LA1_;
	LA3_: ;
	{
		k = getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA(typ);
	}
	LA1_: ;
	result = getFreeRegister__dSPxw1n9awB6adDVf7S9ar3Q(cc, k, ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genx__uIB1V7YFWyQzDYKijoL1tA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI result;
	NI tmp;
	result = (NI)0;
	tmp = ((NI) -1);
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		if ((tmp) < ((NI) 0) || (tmp) > ((NI) 65535)){ raiseRangeErrorI(tmp, ((NI) 0), ((NI) 65535)); }
		result = ((NI) (tmp));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABC__UIRVqkSOpk264WekB9cpXRw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c) {
	NU64 ins;
	NI T5_;
	NI T6_;
	{
		if (!!((opc < ((NI) 255)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_34));
	}
	LA3_: ;
	ins = (NU64)((NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) (b))) << (NU64)(24ULL))) | (NU64)((NU64)(((NU64) (c))) << (NU64)(40ULL)));
	asgnRef((void**) (&(*ctx).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*ctx).code), (&NTI__YdLNCDKYeipzJx3I8Xw82Q_)));
	T5_ = (*ctx).code->Sup.len++;
	(*ctx).code->data[T5_] = ins;
	asgnRef((void**) (&(*ctx).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*ctx).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
	T6_ = (*ctx).debug->Sup.len++;
	(*ctx).debug->data[T6_] = (*n).info;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresCopy) {
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350136322064));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 5);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 6);
	}
	break;
	default:
	{
		{
			if (!requiresCopy) goto LA8_;
			result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 7);
		}
		goto LA6_;
		LA8_: ;
		{
			result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 14);
		}
		LA6_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI r) {
	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c_2;
	c_2 = (*c).prc;
	{
		if (!((248 &(1U<<((NU)((*c_2).slots[(r)- 0].Field1)&15U)))!=0)) goto LA3_;
		(*c_2).slots[(r)- 0].Field0 = NIM_FALSE;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {
	NI cc;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T1_;
	cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
	T1_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(n, NIM_TRUE);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, T1_, cc, value, ((NI) 0));
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, dest, idx, cc);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
}
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI dest;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*n).info, (*c).config);
	add__P8dDSotTW25BkfbyspojGg((*c).globals, T1_);
	(*s).position = len__P89cqdlERShb9alU3iC0yj8wast((*c).globals);
	dest = getTemp__duEomvr9bK43tarDYX26gsA(c, (*s).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 174), dest, (*s).position);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		NI tmp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T4_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(s);
		if (!!((T4_ == NIM_NIL))) goto LA5_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(s);
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, T7_, 0);
		genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), dest, ((NI) 0), tmp);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	result = (NIM_BOOL)0;
	{
		if (!!(!((t == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_36));
	}
	LA3_: ;
	T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273488));
	result = ((IL64(35182225670150) &((NU64)1<<((NU)((*T5_).kind)&63U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setSlot__wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v) {
	{
		tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ T5_;
		NI T11_;
		if (!((*v).position == ((NI) 0))) goto LA3_;
		T5_ = (tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ)0;
		{
			if (!((*v).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9))) goto LA8_;
			T5_ = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
		}
		goto LA6_;
		LA8_: ;
		{
			T5_ = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 1);
		}
		LA6_: ;
		T11_ = (NI)0;
		T11_ = getFreeRegister__dSPxw1n9awB6adDVf7S9ar3Q(c, T5_, ((NI) 1));
		(*v).position = ((NI) (T11_));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__0hqyrQPuS5o8lQCNfzUziw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {
	NI tmp;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T5_;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
	{
		if (!!((((NI) 0) <= ((NI) (dest))))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_40));
	}
	LA3_: ;
	T5_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T5_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(ri, requiresCopy);
	if ((dest) < ((NI) 0) || (dest) > ((NI) 65535)){ raiseRangeErrorI(dest, ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, ri, T5_, ((NI) (dest)), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genRdVar__jht1XYyYWKYwfRpm130Gcg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	{
		if (!!((countBits32((flags & 3)) < ((NI) 2)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_17));
	}
	LA3_: ;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	s = (*n)._kind_4.sym;
	{
		NIM_BOOL T7_;
		NIM_BOOL isImportcVar;
		T7_ = (NIM_BOOL)0;
		T7_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
		if (!(T7_)) goto LA8_;
		T7_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
		LA8_: ;
		if (!T7_) goto LA9_;
		isImportcVar = importcCondVar__FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
		{
			NIM_BOOL T13_;
			NIM_BOOL T14_;
			T13_ = (NIM_BOOL)0;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0);
			if (T14_) goto LA15_;
			T14_ = ((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA15_: ;
			T13_ = T14_;
			if (T13_) goto LA16_;
			T13_ = isImportcVar;
			LA16_: ;
			if (!T13_) goto LA17_;
		}
		goto LA11_;
		LA17_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA20_;
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		goto LA11_;
		LA20_: ;
		LA11_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA24_;
			{
				NIM_BOOL T28_;
				T28_ = (NIM_BOOL)0;
				T28_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen(s);
				if (T28_) goto LA29_;
				T28_ = isImportcVar;
				LA29_: ;
				if (!T28_) goto LA30_;
				importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA26_;
			LA30_: ;
			{
				genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ(c, n, s);
			}
			LA26_: ;
		}
		LA24_: ;
		{
			NI T37_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA35_;
			T37_ = (NI)0;
			T37_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T37_));
		}
		LA35_: ;
		{
			if (!!(!(((*s).typ == NIM_NIL)))) goto LA40_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_35));
		}
		LA40_: ;
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 1))&7U)))!=0)) goto LA44_;
			{
				if (!isImportcVar) goto LA48_;
				if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
				gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 177), ((NI) ((*dest))), (*s).position);
			}
			goto LA46_;
			LA48_: ;
			{
				if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
				gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 175), ((NI) ((*dest))), (*s).position);
			}
			LA46_: ;
		}
		goto LA42_;
		LA44_: ;
		{
			if (!isImportcVar) goto LA52_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 176), ((NI) ((*dest))), (*s).position);
		}
		goto LA42_;
		LA52_: ;
		{
			NIM_BOOL T55_;
			NI cc;
			T55_ = (NIM_BOOL)0;
			T55_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*s).typ);
			if (!(T55_)) goto LA56_;
			T55_ = !(((flags &(1U<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 0))&7U)))!=0));
			LA56_: ;
			if (!T55_) goto LA57_;
			cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 174), cc, (*s).position);
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
		}
		goto LA42_;
		LA57_: ;
		{
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 174), ((NI) ((*dest))), (*s).position);
		}
		LA42_: ;
	}
	goto LA5_;
	LA9_: ;
	{
		{
			NIM_BOOL T63_;
			T63_ = (NIM_BOOL)0;
			T63_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
			if (!(T63_)) goto LA64_;
			T63_ = ((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA64_: ;
			if (!T63_) goto LA65_;
			setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
		}
		LA65_: ;
		{
			NIM_BOOL T69_;
			NIM_BOOL T71_;
			T69_ = (NIM_BOOL)0;
			T69_ = (((NI) 0) < (*s).position);
			if (T69_) goto LA70_;
			T71_ = (NIM_BOOL)0;
			T71_ = ((*s).position == ((NI) 0));
			if (!(T71_)) goto LA72_;
			T71_ = ((2056 &(1U<<((NU)((*s).kind)&31U)))!=0);
			LA72_: ;
			T69_ = T71_;
			LA70_: ;
			if (!T69_) goto LA73_;
			{
				NI TM__24XApAWKNvaMkcyklm8bNA_37;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA77_;
				if (nimAddInt((*s).position, ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)), &TM__24XApAWKNvaMkcyklm8bNA_37)) { raiseOverflow(); };
				if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_37)) < ((NI) -1) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_37)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_37), ((NI) -1), ((NI) 65535)); }
				(*dest) = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_37)));
				{
					NimStringDesc* T83_;
					if ((NU)((*dest)) > (NU)(65535)){ raiseIndexError2((*dest), 65535); }
					if (!!(((*(*c).prc).slots[((*dest))- 0].Field1 < ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3)))) goto LA81_;
					T83_ = (NimStringDesc*)0;
					T83_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_38);
					internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T83_);
				}
				LA81_: ;
			}
			goto LA75_;
			LA77_: ;
			{
				NIM_BOOL requiresCopy;
				NIM_BOOL T85_;
				T85_ = (NIM_BOOL)0;
				if ((NU)((*dest)) > (NU)(65535)){ raiseIndexError2((*dest), 65535); }
				T85_ = (((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[((*dest))- 0].Field1);
				if (!(T85_)) goto LA86_;
				T85_ = !(((flags &(1U<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 2))&7U)))!=0));
				LA86_: ;
				requiresCopy = T85_;
				genAsgn__0hqyrQPuS5o8lQCNfzUziw(c, (*dest), n, requiresCopy);
			}
			LA75_: ;
		}
		goto LA67_;
		LA73_: ;
		{
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		LA67_: ;
	}
	LA5_: ;
}
static N_INLINE(NimStringDesc*, X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem)(NimStringDesc** s, NI sLen_0, NI i) {
	NimStringDesc* result;
	NI TM__24XApAWKNvaMkcyklm8bNA_41;
	result = (NimStringDesc*)0;
	if (nimSubInt(sLen_0, i, &TM__24XApAWKNvaMkcyklm8bNA_41)) { raiseOverflow(); };
	if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_41)) >= (NU)(sLen_0)){ raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_41),sLen_0-1); }
	result = copyString(s[(NI)(TM__24XApAWKNvaMkcyklm8bNA_41)]);
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__rZhM0XALsbmtBw4DH4NjRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x) {
	NIM_BOOL result;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
{	result = (NIM_BOOL)0;
	y = nsuSplitChar(x, 46, ((NI) -1));
	s_2 = s;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (y ? y->Sup.len : 0);
		colontmp_ = T2_;
		res = ((NI) 1);
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_43;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					NIM_BOOL T9_;
					NimStringDesc* T10_;
					NI T11_;
					NimStringDesc* T13_;
					T7_ = (NIM_BOOL)0;
					T7_ = (s_2 == NIM_NIL);
					if (T7_) goto LA8_;
					T9_ = (NIM_BOOL)0;
					T10_ = (NimStringDesc*)0;
					T10_ = X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem(y->data, (y ? y->Sup.len : 0), i);
					T11_ = (NI)0;
					T11_ = nsuCmpIgnoreStyle(T10_, (*(*s_2).name).s);
					T9_ = !((T11_ == ((NI) 0)));
					if (!(T9_)) goto LA12_;
					T13_ = (NimStringDesc*)0;
					T13_ = X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem(y->data, (y ? y->Sup.len : 0), i);
					T9_ = !(eqStrings(T13_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_42)));
					LA12_: ;
					T7_ = T9_;
					LA8_: ;
					if (!T7_) goto LA14_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA14_: ;
				s_2 = (*s_2).owner;
				if (nimAddInt(res, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_43)) { raiseOverflow(); };
				res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_43);
			} LA4: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NI i;
{	result = (NIM_BOOL)0;
	{
		if (!((*s).offset < ((NI) -1))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	i = ((NI) -2);
	{
		NimStringDesc* key;
		tyProc__S09bPfanQx9bEvdh4862x8zw value;
		NI i_2;
		NI L;
		NI T6_;
		key = (NimStringDesc*)0;
		nimZeroMem((void*)(&value), sizeof(tyProc__S09bPfanQx9bEvdh4862x8zw));
		i_2 = ((NI) 0);
		T6_ = ((*c).callbacks ? (*c).callbacks->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_45;
				NI TM__24XApAWKNvaMkcyklm8bNA_46;
				if (!(i_2 < L)) goto LA8;
				if ((NU)(i_2) >= (NU)((*c).callbacks ? (*c).callbacks->Sup.len : 0)){ raiseIndexError2(i_2,((*c).callbacks ? (*c).callbacks->Sup.len : 0)-1); }
				key = (*c).callbacks->data[i_2].Field0;
				if ((NU)(i_2) >= (NU)((*c).callbacks ? (*c).callbacks->Sup.len : 0)){ raiseIndexError2(i_2,((*c).callbacks ? (*c).callbacks->Sup.len : 0)-1); }
				value.ClE_0 = (*c).callbacks->data[i_2].Field1.ClE_0;
				value.ClP_0 = (*c).callbacks->data[i_2].Field1.ClP_0;
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = matches__rZhM0XALsbmtBw4DH4NjRg(s, key);
					if (!T11_) goto LA12_;
					{
						if (!!(((*s).offset == ((NI) -1)))) goto LA16_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_44));
					}
					LA16_: ;
					(*s).offset = i;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA12_: ;
				if (nimSubInt(i, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_45)) { raiseOverflow(); };
				i = (NI)(TM__24XApAWKNvaMkcyklm8bNA_45);
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_46)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_46);
				{
					NI T20_;
					T20_ = ((*c).callbacks ? (*c).callbacks->Sup.len : 0);
					if (!!((T20_ == L))) goto LA21_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA21_: ;
			} LA8: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__rlsxiOBKecP0t9crY75888g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		if (!(a == b)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = !((a == NIM_NIL));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == NIM_NIL));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T6_ = ((*a).kind == (*b).kind);
		LA9_: ;
		if (!T6_) goto LA10_;
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
			result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_48[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_49)); }
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_48[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_49)); }
			result = ((*(*a)._kind_5.ident).Sup.id == (*(*b)._kind_5.ident).Sup.id);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
			result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_52[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_53)); }
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_52[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_53)); }
			result = ((*a)._kind_2.floatVal == (*b)._kind_2.floatVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_19[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_20)); }
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_19[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_20)); }
			result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T22_;
				NI T23_;
				T22_ = (NI)0;
				T22_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				T23_ = (NI)0;
				T23_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
				if (!(T22_ == T23_)) goto LA24_;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					i_2 = ((NI) 0);
					{
						while (1) {
							NI TM__24XApAWKNvaMkcyklm8bNA_54;
							if (!(i_2 < colontmp_)) goto LA28;
							i = i_2;
							{
								NIM_BOOL T31_;
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(i) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(i) >= (NU)((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*b)._kind_6.sons ? (*b)._kind_6.sons->Sup.len : 0)-1); }
								T31_ = (NIM_BOOL)0;
								T31_ = sameConstant__rlsxiOBKecP0t9crY75888g((*a)._kind_6.sons->data[i], (*b)._kind_6.sons->data[i]);
								if (!!(T31_)) goto LA32_;
								goto BeforeRet_;
							}
							LA32_: ;
							if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_54)) { raiseOverflow(); };
							i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_54);
						} LA28: ;
					}
				}
				result = NIM_TRUE;
			}
			LA24_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canonValue__yXNCtNX5XyYFmGvoC2Ryfw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (NI)0;
	result = len__P89cqdlERShb9alU3iC0yj8wast((*c).constants);
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 4)) & 31);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = canonValue__yXNCtNX5XyYFmGvoC2Ryfw(n);
	add__P8dDSotTW25BkfbyspojGg((*c).constants, T1_);
	{
		NimStringDesc* T6_;
		if (!!((result < ((NI) 8388607)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_56);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T6_);
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral__PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
{	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*c).constants);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_55;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NIM_BOOL T6_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*c).constants).kind)>>3] &(1U<<((NU)((*(*c).constants).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(i) >= (NU)((*(*c).constants)._kind_6.sons ? (*(*c).constants)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*(*c).constants)._kind_6.sons ? (*(*c).constants)._kind_6.sons->Sup.len : 0)-1); }
					T6_ = (NIM_BOOL)0;
					T6_ = sameConstant__rlsxiOBKecP0t9crY75888g((*(*c).constants)._kind_6.sons->data[i], n);
					if (!T6_) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_55)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_55);
			} LA3: ;
		}
	}
	result = rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2(c, n);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genLit__lTwxbV0wsOSkbi9adg16xrw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI lit;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	lit = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, n);
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), ((NI) ((*dest))), lit);
}
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit__E6EPoKGcZLyzaPi29aeeG7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	n = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4));
	asgnRef((void**) (&(*n).typ), t);
	genLit__lTwxbV0wsOSkbi9adg16xrw(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp__olzvRW3Qlk2DhgCa4FP0Fg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) <= ((NI) (dest)));
	if (!(T1_)) goto LA2_;
	if ((NU)(dest) > (NU)(65535)){ raiseIndexError2(dest, 65535); }
	T1_ = (((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(dest)- 0].Field1);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__4hhMx9acAaFJrVXUkV9bC0RA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI d;
	d = ((NI) (dest));
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&d), flags);
}
N_LIB_PRIVATE N_NIMCALL(void, patch__Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI p) {
	NI p_2;
	NI diff;
	NI T1_;
	NI TM__24XApAWKNvaMkcyklm8bNA_58;
	NU64 oldInstr;
	NI TM__24XApAWKNvaMkcyklm8bNA_60;
	p_2 = p;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	if (nimSubInt(T1_, p_2, &TM__24XApAWKNvaMkcyklm8bNA_58)) { raiseOverflow(); };
	diff = (NI)(TM__24XApAWKNvaMkcyklm8bNA_58);
	{
		NIM_BOOL T4_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -8388607) < diff);
		if (!(T4_)) goto LA5_;
		T4_ = (diff < ((NI) 8388607));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_59);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T8_);
	}
	LA6_: ;
	if ((NU)(p_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(p_2,((*c).code ? (*c).code->Sup.len : 0)-1); }
	oldInstr = (*c).code->data[p_2];
	if ((NU)(p_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(p_2,((*c).code ? (*c).code->Sup.len : 0)-1); }
	if (nimAddInt(diff, ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_60)) { raiseOverflow(); };
	(*c).code->data[p_2] = (NU64)((NU64)(oldInstr & 16777215ULL) | (NU64)((NU64)(((NU64) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_60)))) << (NU64)(24ULL)));
}
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__DlG7xpoz9cztsbek49cNKVUg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI* dest) {
	NIM_BOOL copyBack;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NI tmp;
	NI lab1;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) ((*dest))) < ((NI) 0));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = isTemp__olzvRW3Qlk2DhgCa4FP0Fg(c, (*dest));
	T1_ = !(T3_);
	LA2_: ;
	copyBack = T1_;
	{
		if (!copyBack) goto LA6_;
		tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
	}
	goto LA4_;
	LA6_: ;
	{
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		tmp = ((NI) ((*dest)));
	}
	LA4_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[((NI) 1)], tmp, 0);
	lab1 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, opc, tmp);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[((NI) 2)], tmp, 0);
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab1);
	{
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA11_;
		(*dest) = ((NI) (tmp));
	}
	goto LA9_;
	LA11_: ;
	{
		if (!copyBack) goto LA14_;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4), ((NI) ((*dest))), tmp, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	goto LA9_;
	LA14_: ;
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
		T5_ = (IL64(-128) <= (*n)._kind_1.intVal);
		if (!(T5_)) goto LA6_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
		T5_ = ((*n)._kind_1.intVal <= IL64(127));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimAddInt64)(NI64 a, NI64 b, NI64* res) {
	NIM_BOOL result;
	NI64 r;
	result = (NIM_BOOL)0;
	r = ((NI64) ((NU64)((NU64)(((NU64) (a))) + (NU64)(((NU64) (b))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(r ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(r ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*res) = r;
	}
	goto LA1_;
	LA5_: ;
	{
		result = NIM_TRUE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABI__2Xc89bNXyQiyYVPoh9brP5Lg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm) {
	{
		NIM_BOOL T3_;
		NU64 ins;
		NI64 TM__24XApAWKNvaMkcyklm8bNA_61;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(-128) <= imm);
		if (!(T3_)) goto LA4_;
		T3_ = (imm <= IL64(127));
		LA4_: ;
		if (!T3_) goto LA5_;
		if (nimAddInt64(imm, IL64(128), &TM__24XApAWKNvaMkcyklm8bNA_61)) { raiseOverflow(); };
		ins = (NU64)((NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) (b))) << (NU64)(24ULL))) | (NU64)((NU64)(((NU64) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_61)))) << (NU64)(40ULL)));
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*c).code), (&NTI__YdLNCDKYeipzJx3I8Xw82Q_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		localError__NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_62));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC__dSCPDAfahz444v0bhbpQAA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
}
static N_INLINE(NF, toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem)(NI64 i) {
	NF result;
	result = (NF)0;
	result = ((NF) (i));
	return result;
}
static N_INLINE(NF, abs__BRaAqinz6OWTHkALb4oj6Qsystem)(NF x) {
	NF result;
	result = (NF)0;
	{
		if (!(x < 0.0)) goto LA3_;
		result = -(x);
	}
	goto LA1_;
	LA3_: ;
	{
		result = x;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimMulInt64)(NI64 a, NI64 b, NI64* res) {
	NIM_BOOL result;
	NI64 r;
	NF floatProd;
	NF T1_;
	NF T2_;
	NF resAsFloat;
	result = (NIM_BOOL)0;
	r = ((NI64) ((NU64)((NU64)(((NU64) (a))) * (NU64)(((NU64) (b))))));
	T1_ = (NF)0;
	T1_ = toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem(a);
	T2_ = (NF)0;
	T2_ = toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem(b);
	floatProd = ((NF)(T1_) * (NF)(T2_));
	resAsFloat = toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem(r);
	{
		if (!(resAsFloat == floatProd)) goto LA5_;
		(*res) = r;
	}
	goto LA3_;
	LA5_: ;
	{
		{
			NF T10_;
			NF T11_;
			T10_ = (NF)0;
			T10_ = abs__BRaAqinz6OWTHkALb4oj6Qsystem(((NF)(resAsFloat) - (NF)(floatProd)));
			T11_ = (NF)0;
			T11_ = abs__BRaAqinz6OWTHkALb4oj6Qsystem(floatProd);
			if (!(((NF)(3.2000000000000000e+01) * (NF)(T10_)) <= T11_)) goto LA12_;
			(*res) = r;
		}
		goto LA8_;
		LA12_: ;
		{
			result = NIM_TRUE;
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genNarrow__9bocefL9bdayauH9bAGnbttOQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI64 TM__24XApAWKNvaMkcyklm8bNA_64;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		if ((dest) < ((NI) 0) || (dest) > ((NI) 65535)){ raiseRangeErrorI(dest, ((NI) 0), ((NI) 65535)); }
		if (nimMulInt64((*t).size, IL64(8), &TM__24XApAWKNvaMkcyklm8bNA_64)) { raiseOverflow(); };
		if (((NI64)(TM__24XApAWKNvaMkcyklm8bNA_64)) < ((NI) 0) || ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_64)) > ((NI) 65535)){ raiseRangeErrorI((NI64)(TM__24XApAWKNvaMkcyklm8bNA_64), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) (dest)), ((NI) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_64))), ((NI) 0));
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		NI64 TM__24XApAWKNvaMkcyklm8bNA_65;
		T10_ = (NIM_BOOL)0;
		T10_ = ((IL64(30064771072) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T10_) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		if (!(T12_)) goto LA13_;
		T12_ = ((*t).size < IL64(8));
		LA13_: ;
		T10_ = T12_;
		LA11_: ;
		if (!T10_) goto LA14_;
		if ((dest) < ((NI) 0) || (dest) > ((NI) 65535)){ raiseRangeErrorI(dest, ((NI) 0), ((NI) 65535)); }
		if (nimMulInt64((*t).size, IL64(8), &TM__24XApAWKNvaMkcyklm8bNA_65)) { raiseOverflow(); };
		if (((NI64)(TM__24XApAWKNvaMkcyklm8bNA_65)) < ((NI) 0) || ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_65)) > ((NI) 65535)){ raiseRangeErrorI((NI64)(TM__24XApAWKNvaMkcyklm8bNA_65), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 95), ((NI) (dest)), ((NI) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_65))), ((NI) 0));
	}
	goto LA1_;
	LA14_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt__dSCPDAfahz444v0bhbpQAA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	{
		NIM_BOOL T3_;
		NI tmp;
		NI TM__24XApAWKNvaMkcyklm8bNA_63;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (NIM_BOOL)0;
		T3_ = isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA((*n)._kind_6.sons->data[((NI) 2)]);
		if (!T3_) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
		if (nimAddInt(opc, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_63)) { raiseOverflow(); };
		if (TM__24XApAWKNvaMkcyklm8bNA_63 < 0 || TM__24XApAWKNvaMkcyklm8bNA_63 > 186){ raiseOverflow(); }
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*(*n)._kind_6.sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 2)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
		gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)(TM__24XApAWKNvaMkcyklm8bNA_63), ((NI) ((*dest))), tmp, (*(*n)._kind_6.sons->data[((NI) 2)])._kind_1.intVal);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	goto LA1_;
	LA4_: ;
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, opc);
	}
	LA1_: ;
	genNarrow__9bocefL9bdayauH9bAGnbttOQ(c, n, (*dest));
}
static N_INLINE(void, unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI x) {
	{
		if (!(((NI) 0) <= ((NI) (x)))) goto LA3_;
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_66));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genIndex__M5LvI9cd9ck3A7bD4QIkuGkA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr) {
	NI result;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA x;
		NIM_BOOL T6_;
		NI tmp;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(arr, IL64(36134350135273744));
		T3_ = ((*T4_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
		if (!(T3_)) goto LA5_;
		x = firstOrd__hjogdnp59cMX1rwmjikBhqw((*c).config, arr);
		T6_ = (NIM_BOOL)0;
		T6_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(x, TM__24XApAWKNvaMkcyklm8bNA_68);
		T3_ = !(T6_);
		LA5_: ;
		if (!T3_) goto LA7_;
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, n, 0);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
		result = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		T9_ = (NI)0;
		T9_ = toInt__TIX0sFuRf3uBpOBltYp7bw(x);
		gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 31), result, tmp, ((NI64) (T9_)));
	}
	goto LA1_;
	LA7_: ;
	{
		result = genx__uIB1V7YFWyQzDYKijoL1tA(c, n, 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genField__hsBsLv9cKR5frmhKTX7rURw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T3_) goto LA4_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		T3_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)));
		LA4_: ;
		if (!T3_) goto LA5_;
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_72));
	}
	LA5_: ;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	s = (*n)._kind_4.sym;
	{
		NimStringDesc* T11_;
		if (!(((NI) 65535) < (*s).position)) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T11_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 44);
appendString(T11_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_73));
appendString(T11_, (*(*s).name).s);
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T11_);
	}
	LA9_: ;
	if (((*s).position) < ((NI) 0) || ((*s).position) > ((NI) 65535)){ raiseRangeErrorI((*s).position, ((NI) 0), ((NI) 65535)); }
	result = ((NI) ((*s).position));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* accessExpr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* checkExpr;
	NIM_BOOL negCheck;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* disc;
	NI discVal;
	NI T16_;
	NI setLit;
	NI rs;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
	NI lab1;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T18_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* strType;
	NI fieldNameRegister;
	NI T24_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* strLit;
	NimStringDesc* T25_;
	{
		NimStringDesc* T5_;
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_69);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T5_);
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	accessExpr = (*n)._kind_6.sons->data[((NI) 0)];
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	checkExpr = (*n)._kind_6.sons->data[((NI) 1)];
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*checkExpr)._kind_6.sons ? (*checkExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*checkExpr)._kind_6.sons ? (*checkExpr)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*checkExpr)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*checkExpr)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	negCheck = ((*(*(*checkExpr)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95));
	{
		NI T10_;
		NI TM__24XApAWKNvaMkcyklm8bNA_70;
		if (!negCheck) goto LA8_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		T10_ = (NI)0;
		T10_ = len__P89cqdlERShb9alU3iC0yj8wast(checkExpr);
		if (nimSubInt(T10_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_70)) { raiseOverflow(); };
		if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_70)) >= (NU)((*checkExpr)._kind_6.sons ? (*checkExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_70),((*checkExpr)._kind_6.sons ? (*checkExpr)._kind_6.sons->Sup.len : 0)-1); }
		checkExpr = (*checkExpr)._kind_6.sons->data[(NI)(TM__24XApAWKNvaMkcyklm8bNA_70)];
	}
	LA8_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*checkExpr)._kind_6.sons ? (*checkExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*checkExpr)._kind_6.sons ? (*checkExpr)._kind_6.sons->Sup.len : 0)-1); }
	disc = (*checkExpr)._kind_6.sons->data[((NI) 2)];
	{
		NimStringDesc* T15_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*disc).kind)>>3] &(1U<<((NU)((*disc).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		if (!!(((*(*disc)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA13_;
		T15_ = (NimStringDesc*)0;
		T15_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_71);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T15_);
	}
	LA13_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*accessExpr).kind)>>3] &(1U<<((NU)((*accessExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*accessExpr)._kind_6.sons ? (*accessExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*accessExpr)._kind_6.sons ? (*accessExpr)._kind_6.sons->Sup.len : 0)-1); }
	gen__jht1XYyYWKYwfRpm130Gcg(c, (*accessExpr)._kind_6.sons->data[((NI) 0)], dest, flags);
	discVal = getTemp__duEomvr9bK43tarDYX26gsA(c, (*disc).typ);
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	T16_ = (NI)0;
	T16_ = genField__hsBsLv9cKR5frmhKTX7rURw(c, disc);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), discVal, ((NI) ((*dest))), T16_);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*checkExpr)._kind_6.sons ? (*checkExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*checkExpr)._kind_6.sons ? (*checkExpr)._kind_6.sons->Sup.len : 0)-1); }
	setLit = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*checkExpr)._kind_6.sons->data[((NI) 1)], 0);
	T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T17_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	rs = getTemp__duEomvr9bK43tarDYX26gsA(c, T17_);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 82), rs, setLit, discVal);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, discVal);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, setLit);
	T18_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	{
		if (!negCheck) goto LA21_;
		T18_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160);
	}
	goto LA19_;
	LA21_: ;
	{
		T18_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159);
	}
	LA19_: ;
	lab1 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, T18_, rs);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, rs);
	strType = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
	T24_ = (NI)0;
	T24_ = getTemp__duEomvr9bK43tarDYX26gsA(c, strType);
	fieldNameRegister = ((NI) (T24_));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*accessExpr).kind)>>3] &(1U<<((NU)((*accessExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*accessExpr)._kind_6.sons ? (*accessExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*accessExpr)._kind_6.sons ? (*accessExpr)._kind_6.sons->Sup.len : 0)-1); }
	T25_ = (NimStringDesc*)0;
	T25_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A((*accessExpr)._kind_6.sons->data[((NI) 1)]);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*accessExpr).kind)>>3] &(1U<<((NU)((*accessExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*accessExpr)._kind_6.sons ? (*accessExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*accessExpr)._kind_6.sons ? (*accessExpr)._kind_6.sons->Sup.len : 0)-1); }
	strLit = newStrNode__C1MQfgDmfXqO1v69aAZbuYA(T25_, (*(*accessExpr)._kind_6.sons->data[((NI) 1)]).info);
	asgnRef((void**) (&(*strLit).typ), strType);
	genLit__lTwxbV0wsOSkbi9adg16xrw(c, strLit, (&fieldNameRegister));
	if ((fieldNameRegister) < ((NI) 0) || (fieldNameRegister) > ((NI) 65535)){ raiseRangeErrorI(fieldNameRegister, ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 94), ((NI) (fieldNameRegister)), ((NI) 0), ((NI) 0));
	if ((fieldNameRegister) < ((NI) 0) || (fieldNameRegister) > ((NI) 65535)){ raiseRangeErrorI(fieldNameRegister, ((NI) 0), ((NI) 65535)); }
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (fieldNameRegister)));
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab1);
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, NI value) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		idx = genIndex__M5LvI9cd9ck3A7bD4QIkuGkA(c, (*le)._kind_6.sons->data[((NI) 1)], (*(*le)._kind_6.sons->data[((NI) 0)]).typ);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 18), dest, idx, value);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NI objR;
		NI idx_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3(c, le, (&objR), 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*le)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*le)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
		idx_2 = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		if ((objR) < ((NI) 0) || (objR) > ((NI) 65535)){ raiseRangeErrorI(objR, ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, (*le)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) (objR)), idx_2, value);
		if ((objR) < ((NI) 0) || (objR) > ((NI) 65535)){ raiseRangeErrorI(objR, ((NI) 0), ((NI) 65535)); }
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (objR)));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NI dest_2;
		NI idx_3;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		dest_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		idx_3 = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*le)._kind_6.sons->data[((NI) 1)]);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), dest_2, idx_3, value);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		dest_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), dest_3, ((NI) 0), value);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_3);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T8_;
			NI dest_4;
			T8_ = (NIM_BOOL)0;
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
			T8_ = (((*(*le)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T8_)) goto LA9_;
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
			T8_ = !(((*(*le)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
			LA9_: ;
			if (!T8_) goto LA10_;
			dest_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, le, 2);
			gABC__UIRVqkSOpk264WekB9cpXRw(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), dest_4, ((NI) 0), value);
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_4);
		}
		LA10_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T5_ = (NIM_BOOL)0;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	T5_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T5_)) goto LA6_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	T5_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
	LA6_: ;
	T3_ = T5_;
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genType__H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NI result;
	NI T15_;
	NI T16_;
{	result = (NI)0;
	{
		NI i;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		NI i_2;
		NI L;
		NI T2_;
		i = (NI)0;
		t = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		i_2 = ((NI) 0);
		T2_ = ((*c).types ? (*c).types->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_74;
				if (!(i_2 < L)) goto LA4;
				i = i_2;
				if ((NU)(i_2) >= (NU)((*c).types ? (*c).types->Sup.len : 0)){ raiseIndexError2(i_2,((*c).types ? (*c).types->Sup.len : 0)-1); }
				t = (*c).types->data[i_2];
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = sameType__3isNyHKb0U1OCnClmflXSg(t, typ, 0);
					if (!T7_) goto LA8_;
					result = i;
					goto BeforeRet_;
				}
				LA8_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_74)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_74);
				{
					NI T12_;
					T12_ = ((*c).types ? (*c).types->Sup.len : 0);
					if (!!((T12_ == L))) goto LA13_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_75));
				}
				LA13_: ;
			} LA4: ;
		}
	}
	T15_ = ((*c).types ? (*c).types->Sup.len : 0);
	result = T15_;
	asgnRef((void**) (&(*c).types), (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3((TGenericSeq*)((*c).types), (&NTI__Ef05srmQTDulnBdXR4Ja6Q_)));
	T16_ = (*c).types->Sup.len++;
	asgnRef((void**) (&(*c).types->data[T16_]), typ);
	{
		NimStringDesc* T21_;
		if (!!((result <= ((NI) 8388607)))) goto LA19_;
		T21_ = (NimStringDesc*)0;
		T21_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_76);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T21_);
	}
	LA19_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genNew__Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI dest;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
	NI T8_;
	{
		NIM_BOOL T3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		dest = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	goto LA1_;
	LA4_: ;
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017424));
	if ((NU)(((NI) 0)) >= (NU)((*T7_).sons ? (*T7_).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*T7_).sons ? (*T7_).sons->Sup.len : 0)-1); }
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*T7_).sons->data[((NI) 0)]);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 168), dest, T8_);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], dest);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq__Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI dest;
	NI tmp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
	NI T8_;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	t = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp__duEomvr9bK43tarDYX26gsA(c, t);
	}
	goto LA1_;
	LA4_: ;
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T7_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), dest, T8_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], dest);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__lTwxbV0wsOSkbi9adg16xrw_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI tmp;
	NI T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	NI T3_;
	t = (*n).typ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	T1_ = (NI)0;
	T1_ = genType__H4AMs0GuxljbeG3aMubkXA(c, t);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T1_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), tmp, ((NI) 0));
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
	T3_ = (NI)0;
	T3_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T2_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), ((NI) ((*dest))), T3_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC__dSCPDAfahz444v0bhbpQAA_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm) {
	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, opc, ((NI) ((*dest))), tmp, imm);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273488));
	{
		NI T5_;
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA3_;
		T5_ = (NI)0;
		T5_ = genType__H4AMs0GuxljbeG3aMubkXA(c, t);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 181), dest, T5_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCard__lTwxbV0wsOSkbi9adg16xrw_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg(c, (*n)._kind_6.sons->data[((NI) 1)], tmp);
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 37), ((NI) ((*dest))), tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, opc);
	genNarrow__9bocefL9bdayauH9bAGnbttOQ(c, n, (*dest));
}
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU__9bocefL9bdayauH9bAGnbttOQ_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI64 TM__24XApAWKNvaMkcyklm8bNA_77;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(15423227559936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((IL64(1101659111424) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		if ((dest) < ((NI) 0) || (dest) > ((NI) 65535)){ raiseRangeErrorI(dest, ((NI) 0), ((NI) 65535)); }
		if (nimMulInt64((*t).size, IL64(8), &TM__24XApAWKNvaMkcyklm8bNA_77)) { raiseOverflow(); };
		if (((NI64)(TM__24XApAWKNvaMkcyklm8bNA_77)) < ((NI) 0) || ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_77)) > ((NI) 65535)){ raiseRangeErrorI((NI64)(TM__24XApAWKNvaMkcyklm8bNA_77), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) (dest)), ((NI) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_77))), ((NI) 0));
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, opc);
	genNarrowU__9bocefL9bdayauH9bAGnbttOQ_2(c, n, (*dest));
}
N_LIB_PRIVATE N_NIMCALL(void, genConv__5o3JB8z8Vaytpw5QzBCu2w)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
	NI T13_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
	NI T15_;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n).typ).kind == (*(*arg).typ).kind);
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*arg).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA4_: ;
		if (!T3_) goto LA5_;
		gen__jht1XYyYWKYwfRpm130Gcg(c, arg, dest, 0);
		goto BeforeRet_;
	}
	LA5_: ;
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, arg, 0);
	{
		NI T11_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
		T11_ = (NI)0;
		T11_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T11_));
	}
	LA9_: ;
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, ((NI) 0));
	T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T12_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1152921504606846976));
	T13_ = (NI)0;
	T13_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T12_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, opc, ((NI) 0), T13_);
	T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T14_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(1152921504606846976));
	T15_ = (NI)0;
	T15_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T14_);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, opc, ((NI) 0), T15_);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet__dSCPDAfahz444v0bhbpQAA_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg(c, (*n)._kind_6.sons->data[((NI) 1)], tmp);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg(c, (*n)._kind_6.sons->data[((NI) 2)], tmp2);
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
}
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange__QYpBvcTLkwTKaaaJK2K4LQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ kind) {
	NI result;
	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c;
	NI TM__24XApAWKNvaMkcyklm8bNA_92;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NIM_BOOL T3_;
		NI TM__24XApAWKNvaMkcyklm8bNA_81;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 40) <= (*c).maxSlots);
		if (T3_) goto LA4_;
		if (nimAddInt((*c).maxSlots, n, &TM__24XApAWKNvaMkcyklm8bNA_81)) { raiseOverflow(); };
		T3_ = (((NI) 65535) <= (NI)(TM__24XApAWKNvaMkcyklm8bNA_81));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI i;
			NI colontmp_;
			NI TM__24XApAWKNvaMkcyklm8bNA_82;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			if (nimSubInt((*c).maxSlots, n, &TM__24XApAWKNvaMkcyklm8bNA_82)) { raiseOverflow(); };
			colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_82);
			res = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_90;
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					{
						if ((NU)(i) > (NU)(65535)){ raiseIndexError2(i, 65535); }
						if (!!((*c).slots[(i)- 0].Field0)) goto LA12_;
						{
							{
								NI j;
								NI colontmp__2;
								NI colontmp__3;
								NI TM__24XApAWKNvaMkcyklm8bNA_83;
								NI TM__24XApAWKNvaMkcyklm8bNA_84;
								NI TM__24XApAWKNvaMkcyklm8bNA_85;
								NI res_2;
								j = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__3 = (NI)0;
								if (nimAddInt(i, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_83)) { raiseOverflow(); };
								colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_83);
								if (nimAddInt(i, n, &TM__24XApAWKNvaMkcyklm8bNA_84)) { raiseOverflow(); };
								if (nimSubInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_84), ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_85)) { raiseOverflow(); };
								colontmp__3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_85);
								res_2 = colontmp__2;
								{
									while (1) {
										NI TM__24XApAWKNvaMkcyklm8bNA_86;
										if (!(res_2 <= colontmp__3)) goto LA17;
										j = res_2;
										{
											if ((NU)(j) > (NU)(65535)){ raiseIndexError2(j, 65535); }
											if (!(*c).slots[(j)- 0].Field0) goto LA20_;
											goto LA14;
										}
										LA20_: ;
										if (nimAddInt(res_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_86)) { raiseOverflow(); };
										res_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_86);
									} LA17: ;
								}
							}
							if ((i) < ((NI) 0) || (i) > ((NI) 65535)){ raiseRangeErrorI(i, ((NI) 0), ((NI) 65535)); }
							result = ((NI) (i));
							{
								NI k;
								NI colontmp__4;
								NI TM__24XApAWKNvaMkcyklm8bNA_87;
								NI TM__24XApAWKNvaMkcyklm8bNA_88;
								NI res_3;
								k = (NI)0;
								colontmp__4 = (NI)0;
								if (nimAddInt(((NI) (result)), n, &TM__24XApAWKNvaMkcyklm8bNA_87)) { raiseOverflow(); };
								if (nimSubInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_87), ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_88)) { raiseOverflow(); };
								if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_88)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_88)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_88), ((NI) 0), ((NI) 65535)); }
								colontmp__4 = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_88)));
								res_3 = ((NI) (result));
								{
									while (1) {
										NIM_BOOL colontmp__5;
										tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__6;
										NI TM__24XApAWKNvaMkcyklm8bNA_89;
										if (!(res_3 <= ((NI) (colontmp__4)))) goto LA24;
										if ((res_3) < ((NI) 0) || (res_3) > ((NI) 65535)){ raiseRangeErrorI(res_3, ((NI) 0), ((NI) 65535)); }
										k = ((NI) (res_3));
										colontmp__5 = NIM_TRUE;
										colontmp__6 = kind;
										(*c).slots[(k)- 0].Field0 = colontmp__5;
										(*c).slots[(k)- 0].Field1 = colontmp__6;
										if (nimAddInt(res_3, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_89)) { raiseOverflow(); };
										res_3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_89);
									} LA24: ;
								}
							}
							goto BeforeRet_;
						} LA14: ;
					}
					LA12_: ;
					if (nimAddInt(res, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_90)) { raiseOverflow(); };
					res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_90);
				} LA9: ;
			}
		}
	}
	LA5_: ;
	{
		NI TM__24XApAWKNvaMkcyklm8bNA_91;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T29_;
		if (nimAddInt((*c).maxSlots, n, &TM__24XApAWKNvaMkcyklm8bNA_91)) { raiseOverflow(); };
		if (!(((NI) 65535) <= (NI)(TM__24XApAWKNvaMkcyklm8bNA_91))) goto LA27_;
		T29_ = bestEffort__LqSnLt7G00hwvGEFOVVFfw(cc);
		globalError__NF6kBGchnhQYPbCedyefVA_2((*cc).config, T29_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_32));
	}
	LA27_: ;
	if (((*c).maxSlots) < ((NI) 0) || ((*c).maxSlots) > ((NI) 65535)){ raiseRangeErrorI((*c).maxSlots, ((NI) 0), ((NI) 65535)); }
	result = ((NI) ((*c).maxSlots));
	if (nimAddInt((*c).maxSlots, n, &TM__24XApAWKNvaMkcyklm8bNA_92)) { raiseOverflow(); };
	(*c).maxSlots = (NI)(TM__24XApAWKNvaMkcyklm8bNA_92);
	{
		NI k_2;
		NI colontmp__7;
		NI TM__24XApAWKNvaMkcyklm8bNA_93;
		NI TM__24XApAWKNvaMkcyklm8bNA_94;
		NI res_4;
		k_2 = (NI)0;
		colontmp__7 = (NI)0;
		if (nimAddInt(((NI) (result)), n, &TM__24XApAWKNvaMkcyklm8bNA_93)) { raiseOverflow(); };
		if (nimSubInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_93), ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_94)) { raiseOverflow(); };
		if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_94)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_94)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_94), ((NI) 0), ((NI) 65535)); }
		colontmp__7 = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_94)));
		res_4 = ((NI) (result));
		{
			while (1) {
				NIM_BOOL colontmp__8;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__9;
				NI TM__24XApAWKNvaMkcyklm8bNA_95;
				if (!(res_4 <= ((NI) (colontmp__7)))) goto LA32;
				if ((res_4) < ((NI) 0) || (res_4) > ((NI) 65535)){ raiseRangeErrorI(res_4, ((NI) 0), ((NI) 65535)); }
				k_2 = ((NI) (res_4));
				colontmp__8 = NIM_TRUE;
				colontmp__9 = kind;
				(*c).slots[(k_2)- 0].Field0 = colontmp__8;
				(*c).slots[(k_2)- 0].Field1 = colontmp__9;
				if (nimAddInt(res_4, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_95)) { raiseOverflow(); };
				res_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_95);
			} LA32: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n) {
	{
		NI i;
		NI colontmp_;
		NI TM__24XApAWKNvaMkcyklm8bNA_101;
		NI TM__24XApAWKNvaMkcyklm8bNA_102;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		if (nimAddInt(((NI) (start)), n, &TM__24XApAWKNvaMkcyklm8bNA_101)) { raiseOverflow(); };
		if (nimSubInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_101), ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_102)) { raiseOverflow(); };
		if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_102)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_102)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_102), ((NI) 0), ((NI) 65535)); }
		colontmp_ = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_102)));
		res = ((NI) (start));
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_103;
				if (!(res <= ((NI) (colontmp_)))) goto LA3;
				if ((res) < ((NI) 0) || (res) > ((NI) 65535)){ raiseRangeErrorI(res, ((NI) 0), ((NI) 65535)); }
				i = ((NI) (res));
				freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, i);
				if (nimAddInt(res, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_103)) { raiseOverflow(); };
				res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_103);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC__dSCPDAfahz444v0bhbpQAA_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI x;
	NI T6_;
	NI TM__24XApAWKNvaMkcyklm8bNA_96;
	NI T10_;
	NI TM__24XApAWKNvaMkcyklm8bNA_100;
	NI T11_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (nimSubInt(T6_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_96)) { raiseOverflow(); };
	x = getTempRange__QYpBvcTLkwTKaaaJK2K4LQ(c, (NI)(TM__24XApAWKNvaMkcyklm8bNA_96), ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 6));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI r;
				NI TM__24XApAWKNvaMkcyklm8bNA_97;
				NI TM__24XApAWKNvaMkcyklm8bNA_98;
				NI TM__24XApAWKNvaMkcyklm8bNA_99;
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				if (nimAddInt(((NI) (x)), i, &TM__24XApAWKNvaMkcyklm8bNA_97)) { raiseOverflow(); };
				if (nimSubInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_97), ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_98)) { raiseOverflow(); };
				if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_98)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_98)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_98), ((NI) 0), ((NI) 65535)); }
				r = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_98)));
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[i], r, 0);
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_99)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_99);
			} LA9: ;
		}
	}
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	T10_ = (NI)0;
	T10_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (nimSubInt(T10_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_100)) { raiseOverflow(); };
	if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_100)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_100)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_100), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), x, ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_100))));
	T11_ = (NI)0;
	T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ(c, x, T11_);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ result;
	result = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	{
		if (!!(!((t == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_104));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(t);
		if (!T7_) goto LA8_;
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 171);
	}
	goto LA5_;
	LA8_: ;
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	NI dest;
	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	x = (*n)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
		x = (*x)._kind_6.sons->data[((NI) 0)];
	}
	LA3_: ;
	dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, x, 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD__dSCPDAfahz444v0bhbpQAA_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	NI tmp3;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 3)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, tmp3, ((NI) 0), ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp3);
}
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC__w6wTV78X6bUwnyRSPSSgQw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opcode) {
	NI tmp1;
	NI tmp2;
	NI tmp3;
	unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, dest);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp1 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 3)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opcode, tmp1, tmp2, tmp3);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp1);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp3);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {
	NI dest;
	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBindSym__lTwxbV0wsOSkbi9adg16xrw_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NI idx;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA8_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			idx = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, (*n)._kind_6.sons->data[((NI) 1)]);
			{
				NI T14_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA12_;
				T14_ = (NI)0;
				T14_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
				(*dest) = ((NI) (T14_));
			}
			LA12_: ;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 179), ((NI) ((*dest))), idx);
		}
		goto LA6_;
		LA8_: ;
		{
			localError__NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_112));
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI x;
		NI T22_;
		NI tmp0;
		NI tmp1;
		NI T27_;
		NI TM__24XApAWKNvaMkcyklm8bNA_116;
		NI TM__24XApAWKNvaMkcyklm8bNA_117;
		NI T28_;
		NI TM__24XApAWKNvaMkcyklm8bNA_118;
		NI tmp2;
		NI T29_;
		NI TM__24XApAWKNvaMkcyklm8bNA_119;
		NI TM__24XApAWKNvaMkcyklm8bNA_120;
		NI T30_;
		NI TM__24XApAWKNvaMkcyklm8bNA_121;
		NI T31_;
		NI T32_;
		{
			NI T21_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA19_;
			T21_ = (NI)0;
			T21_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T21_));
		}
		LA19_: ;
		T22_ = (NI)0;
		T22_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		x = getTempRange__QYpBvcTLkwTKaaaJK2K4LQ(c, T22_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
		tmp0 = ((NI) (x));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, (*n)._kind_6.sons->data[((NI) 0)], (&tmp0));
		{
			NI i;
			NI colontmp_;
			NI T24_;
			NI TM__24XApAWKNvaMkcyklm8bNA_113;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T24_ = (NI)0;
			T24_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (nimSubInt(T24_, ((NI) 2), &TM__24XApAWKNvaMkcyklm8bNA_113)) { raiseOverflow(); };
			colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_113);
			i_2 = ((NI) 1);
			{
				while (1) {
					NI r;
					NI TM__24XApAWKNvaMkcyklm8bNA_114;
					NI TM__24XApAWKNvaMkcyklm8bNA_115;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					if (nimAddInt(((NI) (x)), i, &TM__24XApAWKNvaMkcyklm8bNA_114)) { raiseOverflow(); };
					if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_114)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_114)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_114), ((NI) 0), ((NI) 65535)); }
					r = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_114)));
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[i], r, 0);
					if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_115)) { raiseOverflow(); };
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_115);
				} LA26: ;
			}
		}
		T27_ = (NI)0;
		T27_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimAddInt(((NI) (x)), T27_, &TM__24XApAWKNvaMkcyklm8bNA_116)) { raiseOverflow(); };
		if (nimSubInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_116), ((NI) 2), &TM__24XApAWKNvaMkcyklm8bNA_117)) { raiseOverflow(); };
		if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_117)) < ((NI) -1) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_117)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_117), ((NI) -1), ((NI) 65535)); }
		tmp1 = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_117)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		T28_ = (NI)0;
		T28_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T28_, ((NI) 2), &TM__24XApAWKNvaMkcyklm8bNA_118)) { raiseOverflow(); };
		if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_118)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_118),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, (*n)._kind_6.sons->data[(NI)(TM__24XApAWKNvaMkcyklm8bNA_118)], (&tmp1));
		T29_ = (NI)0;
		T29_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimAddInt(((NI) (x)), T29_, &TM__24XApAWKNvaMkcyklm8bNA_119)) { raiseOverflow(); };
		if (nimSubInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_119), ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_120)) { raiseOverflow(); };
		if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_120)) < ((NI) -1) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_120)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_120), ((NI) -1), ((NI) 65535)); }
		tmp2 = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_120)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		T30_ = (NI)0;
		T30_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T30_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_121)) { raiseOverflow(); };
		if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_121)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_121),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, (*n)._kind_6.sons->data[(NI)(TM__24XApAWKNvaMkcyklm8bNA_121)], (&tmp2));
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		T31_ = (NI)0;
		T31_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if ((T31_) < ((NI) 0) || (T31_) > ((NI) 65535)){ raiseRangeErrorI(T31_, ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180), ((NI) ((*dest))), x, ((NI) (T31_)));
		T32_ = (NI)0;
		T32_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ(c, x, T32_);
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == NIM_NIL);
	if (T1_) goto LA2_;
	T1_ = ((IL64(-9223372036854775680) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCall__lTwxbV0wsOSkbi9adg16xrw_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI x;
	NI T16_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fntyp;
	NI T38_;
{	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T3_ = (T4_ == ((NI) 0));
		if (T3_) goto LA5_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).typ == 0);
		LA5_: ;
		if (!T3_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		NI T15_;
		T10_ = (NIM_BOOL)0;
		T10_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T10_)) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		T10_ = !(T12_);
		LA11_: ;
		if (!T10_) goto LA13_;
		T15_ = (NI)0;
		T15_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T15_));
	}
	LA13_: ;
	T16_ = (NI)0;
	T16_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	x = getTempRange__QYpBvcTLkwTKaaaJK2K4LQ(c, T16_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	fntyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI r;
				NI TM__24XApAWKNvaMkcyklm8bNA_128;
				NI TM__24XApAWKNvaMkcyklm8bNA_130;
				if (!(i_2 < colontmp_)) goto LA19;
				i = i_2;
				if (nimAddInt(((NI) (x)), i, &TM__24XApAWKNvaMkcyklm8bNA_128)) { raiseOverflow(); };
				if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_128)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_128)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_128), ((NI) 0), ((NI) 65535)); }
				r = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_128)));
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[i], r, 4);
				{
					NI T22_;
					NI T30_;
					T22_ = (NI)0;
					T22_ = len__5mJADrRYkP3r9auuiuDZN9cQast(fntyp);
					if (!(T22_ <= i)) goto LA23_;
					{
						NimStringDesc* T29_;
						if (!!((((*fntyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA27_;
						T29_ = (NimStringDesc*)0;
						T29_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_129);
						internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T29_);
					}
					LA27_: ;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					T30_ = (NI)0;
					T30_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._kind_6.sons->data[i]).typ);
					gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 181), r, T30_);
				}
				LA23_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_130)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_130);
			} LA19: ;
		}
	}
	{
		NI T35_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA33_;
		T35_ = (NI)0;
		T35_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if ((T35_) < ((NI) 0) || (T35_) > ((NI) 65535)){ raiseRangeErrorI(T35_, ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 152), ((NI) 0), x, ((NI) (T35_)));
	}
	goto LA31_;
	LA33_: ;
	{
		NI T37_;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		T37_ = (NI)0;
		T37_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if ((T37_) < ((NI) 0) || (T37_) > ((NI) 65535)){ raiseRangeErrorI(T37_, ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 153), ((NI) ((*dest))), x, ((NI) (T37_)));
	}
	LA31_: ;
	T38_ = (NI)0;
	T38_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ(c, x, T38_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genMagic__nCoAHjo16P5zqJafFfwLew)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m) {
	switch (m) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 108):
	{
		genAndOr__DlG7xpoz9cztsbek49cNKVUg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	{
		genAndOr__DlG7xpoz9cztsbek49cNKVUg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159), dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
	{
		genAddSubInt__dSCPDAfahz444v0bhbpQAA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 30));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 45):
	{
		genAddSubInt__dSCPDAfahz444v0bhbpQAA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 28));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 28):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29):
	{
		NIM_BOOL isUnsigned;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc;
		NI d;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350144710928));
		isUnsigned = ((IL64(34084860461056) &((NU64)1<<((NU)((*T6_).kind)&63U)))!=0);
		{
			if (!!(isUnsigned)) goto LA9_;
			{
				if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 28))) goto LA13_;
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 28);
			}
			goto LA11_;
			LA13_: ;
			{
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 30);
			}
			LA11_: ;
		}
		goto LA7_;
		LA9_: ;
		{
			{
				if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 28))) goto LA19_;
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 51);
			}
			goto LA17_;
			LA19_: ;
			{
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 52);
			}
			LA17_: ;
		}
		LA7_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		d = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NIM_BOOL T24_;
			NI TM__24XApAWKNvaMkcyklm8bNA_67;
			T24_ = (NIM_BOOL)0;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T24_ = isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA((*n)._kind_6.sons->data[((NI) 2)]);
			if (!(T24_)) goto LA25_;
			T24_ = !(isUnsigned);
			LA25_: ;
			if (!T24_) goto LA26_;
			if (nimAddInt(opc, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_67)) { raiseOverflow(); };
			if (TM__24XApAWKNvaMkcyklm8bNA_67 < 0 || TM__24XApAWKNvaMkcyklm8bNA_67 > 186){ raiseOverflow(); }
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*(*n)._kind_6.sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 2)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
			gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)(TM__24XApAWKNvaMkcyklm8bNA_67), d, d, (*(*n)._kind_6.sons->data[((NI) 2)])._kind_1.intVal);
		}
		goto LA22_;
		LA26_: ;
		{
			NI tmp;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, d, d, tmp);
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
		}
		LA22_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genNarrow__9bocefL9bdayauH9bAGnbttOQ(c, (*n)._kind_6.sons->data[((NI) 1)], ((NI) (d)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], d);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 30):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 143):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 31):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genNew__Y59crI4YgTHHCWclw3gn72A_2(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genNewSeq__Y59crI4YgTHHCWclw3gn72A_3(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 34):
	{
		genNewSeqOfCap__lTwxbV0wsOSkbi9adg16xrw_2(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 144):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 158));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 145):
	{
		NI T35_;
		NI tmp_2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T35_ = (NI)0;
		T35_ = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, T35_);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_2 = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), tmp_2, ((NI) 0));
		{
			NI T40_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA38_;
			T40_ = (NI)0;
			T40_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T40_));
		}
		LA38_: ;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 158), ((NI) ((*dest))), tmp_2, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 35):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38):
	{
		genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 32), IL64(0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36):
	{
		genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 33), IL64(0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40):
	{
		NI d_2;
		NI tmp_3;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T44_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		d_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genSetType__Ftgi9cVmPlyHLy9c1M7CKxUg(c, (*n)._kind_6.sons->data[((NI) 1)], d_2);
		T44_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39))) goto LA47_;
			T44_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 34);
		}
		goto LA45_;
		LA47_: ;
		{
			T44_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 36);
		}
		LA45_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, T44_, d_2, tmp_3, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, d_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_3);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41):
	{
		genCard__lTwxbV0wsOSkbi9adg16xrw_3(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
	{
		genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 38));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48):
	{
		genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 39));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
	{
		genBinaryABCnarrow__dSCPDAfahz444v0bhbpQAA_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 40));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 41));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 42));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 43));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 44));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
	{
		NI tmp_4;
		NI tmp2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		genNarrowU__9bocefL9bdayauH9bAGnbttOQ_2(c, n, ((NI) (tmp_4)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		{
			NI T63_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA61_;
			T63_ = (NI)0;
			T63_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T63_));
		}
		LA61_: ;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 45), ((NI) ((*dest))), tmp_4, tmp2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_4);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 46));
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		{
			NIM_BOOL T67_;
			NIM_BOOL T69_;
			NI64 TM__24XApAWKNvaMkcyklm8bNA_78;
			T67_ = (NIM_BOOL)0;
			T67_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
			if (T67_) goto LA68_;
			T69_ = (NIM_BOOL)0;
			T69_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (!(T69_)) goto LA70_;
			T69_ = ((*t).size < IL64(8));
			LA70_: ;
			T67_ = T69_;
			LA68_: ;
			if (!T67_) goto LA71_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			if (nimMulInt64((*t).size, IL64(8), &TM__24XApAWKNvaMkcyklm8bNA_78)) { raiseOverflow(); };
			if (((NI64)(TM__24XApAWKNvaMkcyklm8bNA_78)) < ((NI) 0) || ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_78)) > ((NI) 65535)){ raiseRangeErrorI((NI64)(TM__24XApAWKNvaMkcyklm8bNA_78), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) ((*dest))), ((NI) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_78))), ((NI) 0));
		}
		goto LA65_;
		LA71_: ;
		{
			NIM_BOOL T74_;
			NIM_BOOL T76_;
			NI64 TM__24XApAWKNvaMkcyklm8bNA_79;
			T74_ = (NIM_BOOL)0;
			T74_ = ((IL64(30064771072) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
			if (T74_) goto LA75_;
			T76_ = (NIM_BOOL)0;
			T76_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
			if (!(T76_)) goto LA77_;
			T76_ = ((*t).size < IL64(8));
			LA77_: ;
			T74_ = T76_;
			LA75_: ;
			if (!T74_) goto LA78_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			if (nimMulInt64((*t).size, IL64(8), &TM__24XApAWKNvaMkcyklm8bNA_79)) { raiseOverflow(); };
			if (((NI64)(TM__24XApAWKNvaMkcyklm8bNA_79)) < ((NI) 0) || ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_79)) > ((NI) 65535)){ raiseRangeErrorI((NI64)(TM__24XApAWKNvaMkcyklm8bNA_79), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 97), ((NI) ((*dest))), ((NI) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_79))), ((NI) 0));
		}
		goto LA65_;
		LA78_: ;
		LA65_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 47));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 48));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 60):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 49));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 61):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 50));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 51));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 65):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 52));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 53));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 67):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 54));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 68):
	{
		genBinaryABCnarrowU__dSCPDAfahz444v0bhbpQAA_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 55));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 69):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 56));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 57));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 58));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 59));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 60));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 61));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 62));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 63));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 64));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 67));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 68));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 69));
		genNarrow__9bocefL9bdayauH9bAGnbttOQ(c, n, (*dest));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 99):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 70));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 71));
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		{
			NIM_BOOL T106_;
			NIM_BOOL T108_;
			NI64 TM__24XApAWKNvaMkcyklm8bNA_80;
			T106_ = (NIM_BOOL)0;
			T106_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t_2).kind)&63U)))!=0);
			if (T106_) goto LA107_;
			T108_ = (NIM_BOOL)0;
			T108_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (!(T108_)) goto LA109_;
			T108_ = ((*t_2).size < IL64(8));
			LA109_: ;
			T106_ = T108_;
			LA107_: ;
			if (!T106_) goto LA110_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			if (nimMulInt64((*t_2).size, IL64(8), &TM__24XApAWKNvaMkcyklm8bNA_80)) { raiseOverflow(); };
			if (((NI64)(TM__24XApAWKNvaMkcyklm8bNA_80)) < ((NI) 0) || ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_80)) > ((NI) 65535)){ raiseRangeErrorI((NI64)(TM__24XApAWKNvaMkcyklm8bNA_80), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) ((*dest))), ((NI) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_80))), ((NI) 0));
		}
		LA110_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 100):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 101):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 103):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 104):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 105):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 106):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 107):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 72));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 73));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 74));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 75));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 76));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 77));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 121):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 78));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 122):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 79));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 123):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 80));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 124):
	{
		genVarargsABC__dSCPDAfahz444v0bhbpQAA_7(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 81));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 133):
	{
		genBinarySet__dSCPDAfahz444v0bhbpQAA_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 82));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 83));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 135):
	{
		NI tmp_5;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_5 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 93), tmp_5, ((NI) 0), ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_5);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 136):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	{
		NI d_3;
		NI tmp_6;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T127_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		d_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_6 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		T127_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 136))) goto LA130_;
			T127_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 84);
		}
		goto LA128_;
		LA130_: ;
		{
			T127_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 85);
		}
		LA128_: ;
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, T127_, d_3, tmp_6, ((NI) 0));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], d_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_6);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, d_3);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 141):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T134_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T140_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		T134_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		{
			if (!((*c).prc == NIM_NIL)) goto LA137_;
			T134_ = (*c).module;
		}
		goto LA135_;
		LA137_: ;
		{
			T134_ = (*(*c).prc).sym;
		}
		LA135_: ;
		T140_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T140_ = lowerSwap__8A4G64HByteFanrMUexmNw((*c).graph, n, T134_);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, T140_, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 142):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 86));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146):
	{
		NI d2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* d2AsNode;
		NI tmp1;
		NI tmp3;
		{
			NI T147_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA145_;
			T147_ = (NI)0;
			T147_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T147_));
		}
		LA145_: ;
		d2 = (NI)0;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n)._kind_6.sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 2)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*n)._kind_6.sons->data[((NI) 2)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 2)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*n)._kind_6.sons->data[((NI) 2)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 2)])._kind_6.sons->Sup.len : 0)-1); }
		d2AsNode = (*(*n)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T150_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T153_;
			T150_ = (NIM_BOOL)0;
			T150_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2(d2AsNode);
			if (!T150_) goto LA151_;
			T153_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T153_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36));
			d2 = getTemp__duEomvr9bK43tarDYX26gsA(c, T153_);
		}
		goto LA148_;
		LA151_: ;
		{
			d2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, d2AsNode, 0);
		}
		LA148_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp1 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 3)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 3),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 90), ((NI) ((*dest))), tmp1, d2);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 90), tmp3, ((NI) 0), ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp1);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp3);
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, d2AsNode, d2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, d2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 153):
	{
		NI d_4;
		NI T156_;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		d_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T156_ = (NI)0;
		T156_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), d_4, T156_);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), d_4, ((NI) (d_4)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, (*n)._kind_6.sons->data[((NI) 1)], d_4);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150):
	{
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T163_;
		NI T164_;
		{
			NI T162_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA160_;
			T162_ = (NI)0;
			T162_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T162_));
		}
		LA160_: ;
		T163_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		T163_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*n).typ);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		T164_ = (NI)0;
		T164_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, T163_, ((NI) ((*dest))), T164_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 13):
	{
		NI tmp_7;
		NI idx;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T171_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		NI T176_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T177_;
		{
			NI T170_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA168_;
			T170_ = (NI)0;
			T170_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T170_));
		}
		LA168_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_7 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		T171_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T171_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		idx = getTemp__duEomvr9bK43tarDYX26gsA(c, T171_);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		typ = (*(*n)._kind_6.sons->data[((NI) 2)]).typ;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14))) goto LA174_;
			typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087638309136));
		}
		LA174_: ;
		T176_ = (NI)0;
		T176_ = genType__H4AMs0GuxljbeG3aMubkXA(c, typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), idx, T176_);
		T177_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14))) goto LA180_;
			T177_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 87);
		}
		goto LA178_;
		LA180_: ;
		{
			T177_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 88);
		}
		LA178_: ;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, T177_, ((NI) ((*dest))), tmp_7, idx);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_7);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8):
	{
		NI tmp_8;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T189_;
		{
			NI T188_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA186_;
			T188_ = (NI)0;
			T188_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T188_));
		}
		LA186_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_8 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T189_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T189_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36275087632017424));
		switch ((*T189_).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
		{
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 33), ((NI) ((*dest))), tmp_8, IL64(1));
		}
		break;
		default:
		{
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 32), ((NI) ((*dest))), tmp_8, IL64(1));
		}
		break;
		}
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_8);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 19):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		n_2 = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*n)._kind_6.sons->data[((NI) 1)]);
		{
			NI x;
			NI T197_;
			NI T201_;
			NI T202_;
			if (!((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA195_;
			T197_ = (NI)0;
			T197_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			x = getTempRange__QYpBvcTLkwTKaaaJK2K4LQ(c, T197_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI r;
						NI TM__24XApAWKNvaMkcyklm8bNA_105;
						NI TM__24XApAWKNvaMkcyklm8bNA_106;
						if (!(i_2 < colontmp_)) goto LA200;
						i = i_2;
						if (nimAddInt(((NI) (x)), i, &TM__24XApAWKNvaMkcyklm8bNA_105)) { raiseOverflow(); };
						if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_105)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_105)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_105), ((NI) 0), ((NI) 65535)); }
						r = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_105)));
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(i) >= (NU)((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0)-1); }
						gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n_2)._kind_6.sons->data[i], r, 0);
						if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_106)) { raiseOverflow(); };
						i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_106);
					} LA200: ;
				}
			}
			T201_ = (NI)0;
			T201_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			if ((T201_) < ((NI) 0) || (T201_) > ((NI) 65535)){ raiseRangeErrorI(T201_, ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n_2, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 151), x, ((NI) (T201_)), ((NI) 0));
			T202_ = (NI)0;
			T202_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			freeTempRange__wxmHHskG9aM0zaFcq6wzfoQ(c, x, T202_);
		}
		LA195_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 130):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 98));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 131):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 99));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 132):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 100));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 24):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 139));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 25):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 140));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 12):
	{
		NI tmp_9;
		NI T214_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_9 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T213_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA211_;
			T213_ = (NI)0;
			T213_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T213_));
		}
		LA211_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T214_ = (NI)0;
		T214_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 181), tmp_9, T214_);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 182), ((NI) ((*dest))), tmp_9, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_9);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 21):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 137));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 22):
	{
		genBinaryABCD__dSCPDAfahz444v0bhbpQAA_8(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 138));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 207):
	{
		genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 32), IL64(16));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 250):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 149));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 266):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 150));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 264):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 185));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 267):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 208):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 155));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 209):
	{
		genVoidABC__w6wTV78X6bUwnyRSPSSgQw(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 212):
	{
		genVoidABC__w6wTV78X6bUwnyRSPSSgQw(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 123));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 210):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 102));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 211):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 103));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 213):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 104));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 214):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 105));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 215):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 125));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 216):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 126));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 217):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 127));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 218):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 128));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 219):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 129));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 220):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 130));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 221):
	{
		genVoidABC__w6wTV78X6bUwnyRSPSSgQw(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 131));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 222):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 132));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 223):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 133));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 224):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 134));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 225):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 135));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 226):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 106));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 227):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 107));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 228):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 108));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 229):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 109));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 230):
	{
		NI tmp_10;
		NI rc;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_10 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T249_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA247_;
			T249_ = (NI)0;
			T249_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T249_));
		}
		LA247_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_107))) goto LA250_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_108))) goto LA251_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_109))) goto LA252_;
		goto LA253_;
		LA250_: ;
		{
			rc = ((NI) 0);
		}
		goto LA254_;
		LA251_: ;
		{
			rc = ((NI) 1);
		}
		goto LA254_;
		LA252_: ;
		{
			rc = ((NI) 2);
		}
		goto LA254_;
		LA253_: ;
		{
			rc = ((NI) 3);
		}
		LA254_: ;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		if ((rc) < ((NI) 0) || (rc) > ((NI) 65535)){ raiseRangeErrorI(rc, ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 110), ((NI) ((*dest))), tmp_10, ((NI) (rc)));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_10);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 244):
	{
		NI imm;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_110))) goto LA260_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_111))) goto LA261_;
		goto LA262_;
		LA260_: ;
		{
			imm = ((NI) 0);
		}
		goto LA263_;
		LA261_: ;
		{
			imm = ((NI) 1);
		}
		goto LA263_;
		LA262_: ;
		{
			imm = ((NI) 2);
		}
		LA263_: ;
		genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 113), ((NI64) (imm)));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 231):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 111));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 243):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 112));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 232):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 114));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 233):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 115));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 234):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 116));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 235):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 117));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 236):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 118));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 237):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 119));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 239):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 120));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 240):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 121));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 241):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 122));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 245):
	{
		genBindSym__lTwxbV0wsOSkbi9adg16xrw_4(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 242):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 148));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 247):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 147));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 248):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 65));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 249):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 66));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 238):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_122))) goto LA284_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_123))) goto LA285_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_124))) goto LA286_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_125))) goto LA287_;
		goto LA288_;
		LA284_: ;
		{
			genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 145), IL64(0));
		}
		goto LA289_;
		LA285_: ;
		{
			genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 145), IL64(1));
		}
		goto LA289_;
		LA286_: ;
		{
			genUnaryABI__icomb8Cxr9bg2CtPJIXeYyA(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 145), IL64(2));
		}
		goto LA289_;
		LA287_: ;
		{
			{
				NI T296_;
				NimStringDesc* T299_;
				T296_ = (NI)0;
				T296_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (!!((T296_ == ((NI) 3)))) goto LA297_;
				T299_ = (NimStringDesc*)0;
				T299_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_126);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T299_);
			}
			LA297_: ;
			unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
			genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 146));
		}
		goto LA289_;
		LA288_: ;
		{
			{
				NimStringDesc* T305_;
				if (!NIM_TRUE) goto LA303_;
				T305_ = (NimStringDesc*)0;
				T305_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_127);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T305_);
			}
			LA303_: ;
		}
		LA289_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 252):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 144));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 253):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 143));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 254):
	{
		{
			NI T311_;
			T311_ = (NI)0;
			T311_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(T311_ <= ((NI) 1))) goto LA312_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 141), ((NI) ((*dest))), ((NI) 0), ((NI) 0));
		}
		goto LA309_;
		LA312_: ;
		{
			unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
			genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 142));
		}
		LA309_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 246):
	{
		{
			NI T320_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA318_;
			T320_ = (NI)0;
			T320_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T320_));
		}
		LA318_: ;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) ((*dest))), ((NI) 0), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 251):
	{
		genBinaryABC__dSCPDAfahz444v0bhbpQAA_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 124));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 62):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126):
	{
		genCall__lTwxbV0wsOSkbi9adg16xrw_5(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 26):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
		{
			NI T326_;
			T326_ = (NI)0;
			T326_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!!((T326_ == ((NI) 2)))) goto LA327_;
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_131));
		}
		LA327_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		arg = (*n)._kind_6.sons->data[((NI) 1)];
		{
			if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA331_;
			{
				NI T337_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA335_;
				T337_ = (NI)0;
				T337_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
				(*dest) = ((NI) (T337_));
			}
			LA335_: ;
			genCall__lTwxbV0wsOSkbi9adg16xrw_5(c, arg, dest);
		}
		goto LA329_;
		LA331_: ;
		{
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_132));
		}
		LA329_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 9):
	{
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_133));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 10):
	{
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_134));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 11):
	{
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_135));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 261):
	{
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149):
	{
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 147):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg_2;
		NI a;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T350_;
		NI T351_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		arg_2 = (*n)._kind_6.sons->data[((NI) 1)];
		a = genx__uIB1V7YFWyQzDYKijoL1tA(c, arg_2, 0);
		{
			NI T349_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA347_;
			T349_ = (NI)0;
			T349_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*arg_2).typ);
			(*dest) = ((NI) (T349_));
		}
		LA347_: ;
		T350_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		T350_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(arg_2, NIM_FALSE);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, arg_2, T350_, ((NI) ((*dest))), a, ((NI) 0));
		T351_ = (NI)0;
		T351_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*arg_2).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), a, T351_);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), a, ((NI) (a)));
		genAsgnPatch__BCuX2UMxZPcWLQzSQqJ3NA(c, arg_2, a);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 268):
	{
		genUnaryABC__dSCPDAfahz444v0bhbpQAA_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 136));
	}
	break;
	default:
	{
		NimStringDesc* T354_;
		T354_ = (NimStringDesc*)0;
		T354_ = rawNewString((reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 26);
appendString(T354_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_57));
appendString(T354_, reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_)));
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T354_);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__52uSyG4N9c9cuGgSFhItwpgQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0) {
	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
{	result = (NIM_BOOL)0;
	s_2 = s;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = yLen_0;
		res = ((NI) 1);
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_138;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					NIM_BOOL T8_;
					NimStringDesc* T9_;
					NI T10_;
					NimStringDesc* T12_;
					T6_ = (NIM_BOOL)0;
					T6_ = (s_2 == NIM_NIL);
					if (T6_) goto LA7_;
					T8_ = (NIM_BOOL)0;
					T9_ = (NimStringDesc*)0;
					T9_ = X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem(y, yLen_0, i);
					T10_ = (NI)0;
					T10_ = nsuCmpIgnoreStyle(T9_, (*(*s_2).name).s);
					T8_ = !((T10_ == ((NI) 0)));
					if (!(T8_)) goto LA11_;
					T12_ = (NimStringDesc*)0;
					T12_ = X5BX5D___j0Z1d16G1eC5eFkDa00ZFwsystem(y, yLen_0, i);
					T8_ = !(eqStrings(T12_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_42)));
					LA11_: ;
					T6_ = T8_;
					LA7_: ;
					if (!T6_) goto LA13_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA13_: ;
				{
					if (!(((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2))&63U)))!=0)) goto LA17_;
					s_2 = (*(*s_2).owner).owner;
				}
				goto LA15_;
				LA17_: ;
				{
					s_2 = (*s_2).owner;
				}
				LA15_: ;
				if (nimAddInt(res, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_138)) { raiseOverflow(); };
				res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_138);
			} LA3: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad__lTwxbV0wsOSkbi9adg16xrw_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 183), ((NI) ((*dest))), tmp, ((NI) 0));
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 183), ((NI) 0), T6_);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore__lTwxbV0wsOSkbi9adg16xrw_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 184), ((NI) ((*dest))), tmp, ((NI) 0));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 184), ((NI) 0), T6_);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
}
static N_INLINE(void, clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= ((NI) ((*dest))));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).typ == 0);
		if (T5_) goto LA6_;
		T5_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) ((*dest))));
		(*dest) = ((NI) -1);
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
		T5_ = (IL64(-32768) <= (*n)._kind_1.intVal);
		if (!(T5_)) goto LA6_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
		T5_ = ((*n)._kind_1.intVal <= IL64(32767));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {
	{
		if (!!(!(((*n).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_145));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T10_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = isTemp__olzvRW3Qlk2DhgCa4FP0Fg(c, ((NI) (dest)));
		T7_ = !(T8_);
		if (!(T7_)) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
		T7_ = !(T10_);
		LA9_: ;
		if (!T7_) goto LA11_;
		genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA(c, n, opc, dest, idx, value);
	}
	goto LA5_;
	LA11_: ;
	{
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, dest, idx, value);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		NI tmp;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		idx = genIndex__M5LvI9cd9ck3A7bD4QIkuGkA(c, (*le)._kind_6.sons->data[((NI) 1)], (*(*le)._kind_6.sons->data[((NI) 0)]).typ);
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
			T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T4_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*le)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350144710672));
			if (!((805306368 &((NU64)1<<((NU)((*T4_).kind)&63U)))!=0)) goto LA5_;
			preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 26), dest, idx, tmp);
		}
		goto LA2_;
		LA5_: ;
		{
			preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 18), dest, idx, tmp);
		}
		LA2_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NI objR;
		NI idx_2;
		NI tmp_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3(c, le, (&objR), 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*le)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*le)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
		idx_2 = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
		tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		if ((objR) < ((NI) 0) || (objR) > ((NI) 65535)){ raiseRangeErrorI(objR, ((NI) 0), ((NI) 65535)); }
		preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, (*le)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) (objR)), idx_2, tmp_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx_2);
		if ((objR) < ((NI) 0) || (objR) > ((NI) 65535)){ raiseRangeErrorI(objR, ((NI) 0), ((NI) 65535)); }
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (objR)));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NI dest_2;
		NI idx_3;
		NI tmp_3;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		dest_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		idx_3 = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*le)._kind_6.sons->data[((NI) 1)]);
		tmp_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
		preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), dest_2, idx_3, tmp_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, idx_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		NI tmp_4;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*le)._kind_6.sons ? (*le)._kind_6.sons->Sup.len : 0)-1); }
		dest_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		tmp_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
		preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), dest_3, ((NI) 0), tmp_4);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_3);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_4);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		s = (*le)._kind_4.sym;
		checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, le);
		{
			NIM_BOOL T14_;
			NI tmp_5;
			NI val;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
			LA15_: ;
			if (!T14_) goto LA16_;
			tmp_5 = getTemp__duEomvr9bK43tarDYX26gsA(c, (*le).typ);
			gen__4hhMx9acAaFJrVXUkV9bC0RA(c, le, tmp_5, 2);
			val = genx__uIB1V7YFWyQzDYKijoL1tA(c, ri, 0);
			preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), tmp_5, ((NI) 0), val);
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, val);
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_5);
		}
		goto LA12_;
		LA16_: ;
		{
			NI dest_4;
			NI TM__24XApAWKNvaMkcyklm8bNA_147;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21))) goto LA21_;
				setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
			}
			LA21_: ;
			{
				NIM_BOOL T25_;
				NIM_BOOL T27_;
				NimStringDesc* T31_;
				T25_ = (NIM_BOOL)0;
				T25_ = (((NI) 0) < (*s).position);
				if (T25_) goto LA26_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*s).position == ((NI) 0));
				if (!(T27_)) goto LA28_;
				T27_ = ((2056 &(1U<<((NU)((*s).kind)&31U)))!=0);
				LA28_: ;
				T25_ = T27_;
				LA26_: ;
				if (!!(T25_)) goto LA29_;
				T31_ = (NimStringDesc*)0;
				T31_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_146);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T31_);
			}
			LA29_: ;
			if (nimAddInt((*s).position, ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)), &TM__24XApAWKNvaMkcyklm8bNA_147)) { raiseOverflow(); };
			if (((NI)(TM__24XApAWKNvaMkcyklm8bNA_147)) < ((NI) 0) || ((NI)(TM__24XApAWKNvaMkcyklm8bNA_147)) > ((NI) 65535)){ raiseRangeErrorI((NI)(TM__24XApAWKNvaMkcyklm8bNA_147), ((NI) 0), ((NI) 65535)); }
			dest_4 = ((NI) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_147)));
			{
				if (!!(!(((*le).typ == NIM_NIL)))) goto LA34_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_148));
			}
			LA34_: ;
			{
				NIM_BOOL T38_;
				NIM_BOOL T39_;
				NIM_BOOL T40_;
				NIM_BOOL T42_;
				NI cc;
				tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T46_;
				T38_ = (NIM_BOOL)0;
				T39_ = (NIM_BOOL)0;
				T40_ = (NIM_BOOL)0;
				T40_ = isTemp__olzvRW3Qlk2DhgCa4FP0Fg(c, ((NI) (dest_4)));
				T39_ = !(T40_);
				if (!(T39_)) goto LA41_;
				T42_ = (NIM_BOOL)0;
				T42_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*le).typ);
				T39_ = !(T42_);
				LA41_: ;
				T38_ = T39_;
				if (!(T38_)) goto LA43_;
				T38_ = ((2312 &(1U<<((NU)((*s).kind)&31U)))!=0);
				LA43_: ;
				if (!T38_) goto LA44_;
				cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*le).typ);
				gen__4hhMx9acAaFJrVXUkV9bC0RA(c, ri, cc, 0);
				T46_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
				T46_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(le, NIM_TRUE);
				gABC__UIRVqkSOpk264WekB9cpXRw(c, le, T46_, dest_4, cc, ((NI) 0));
				freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
			}
			goto LA36_;
			LA44_: ;
			{
				gen__4hhMx9acAaFJrVXUkV9bC0RA(c, ri, dest_4, 0);
			}
			LA36_: ;
		}
		LA12_: ;
	}
	break;
	default:
	{
		NI dest_5;
		dest_5 = genx__uIB1V7YFWyQzDYKijoL1tA(c, le, 2);
		genAsgn__0hqyrQPuS5o8lQCNfzUziw(c, ((NI) (dest_5)), ri, requiresCopy);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest_5);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess__jht1XYyYWKYwfRpm130Gcg_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI a;
	NI b;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	a = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	b = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*n)._kind_6.sons->data[((NI) 1)]);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		if (!!(((2 & flags) == 0))) goto LA8_;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 20), ((NI) ((*dest))), a, b);
	}
	goto LA6_;
	LA8_: ;
	{
		NIM_BOOL T11_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		NI cc;
		T11_ = (NIM_BOOL)0;
		T11_ = ((3 & flags) == 0);
		if (!(T11_)) goto LA12_;
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T11_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T13_);
		LA12_: ;
		if (!T11_) goto LA14_;
		cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), cc, a, b);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
	}
	goto LA6_;
	LA14_: ;
	{
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), ((NI) ((*dest))), a, b);
	}
	LA6_: ;
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess__jht1XYyYWKYwfRpm130Gcg_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI objR;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* accessExpr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
	NI fieldPos;
	objR = ((NI) -1);
	genCheckedObjAccessAux__jht1XYyYWKYwfRpm130Gcg_3(c, n, (&objR), flags);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	accessExpr = (*n)._kind_6.sons->data[((NI) 0)];
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*accessExpr).kind)>>3] &(1U<<((NU)((*accessExpr).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*accessExpr)._kind_6.sons ? (*accessExpr)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*accessExpr)._kind_6.sons ? (*accessExpr)._kind_6.sons->Sup.len : 0)-1); }
	field = (*accessExpr)._kind_6.sons->data[((NI) 1)];
	{
		NimStringDesc* T5_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*field).kind)>>3] &(1U<<((NU)((*field).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		if (!!(((*(*field)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_149);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T5_);
	}
	LA3_: ;
	{
		NI T10_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
		T10_ = (NI)0;
		T10_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T10_));
	}
	LA8_: ;
	fieldPos = genField__hsBsLv9cKR5frmhKTX7rURw(c, field);
	{
		if (!!(((2 & flags) == 0))) goto LA13_;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		if ((objR) < ((NI) 0) || (objR) > ((NI) 65535)){ raiseRangeErrorI(objR, ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 20), ((NI) ((*dest))), ((NI) (objR)), fieldPos);
	}
	goto LA11_;
	LA13_: ;
	{
		NIM_BOOL T16_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
		NI cc;
		T16_ = (NIM_BOOL)0;
		T16_ = ((3 & flags) == 0);
		if (!(T16_)) goto LA17_;
		T18_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T18_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T16_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T18_);
		LA17_: ;
		if (!T16_) goto LA19_;
		cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*accessExpr).typ);
		if ((objR) < ((NI) 0) || (objR) > ((NI) 65535)){ raiseRangeErrorI(objR, ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), cc, ((NI) (objR)), fieldPos);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
	}
	goto LA11_;
	LA19_: ;
	{
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		if ((objR) < ((NI) 0) || (objR) > ((NI) 65535)){ raiseRangeErrorI(objR, ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), ((NI) ((*dest))), ((NI) (objR)), fieldPos);
	}
	LA11_: ;
	if ((objR) < ((NI) 0) || (objR) > ((NI) 65535)){ raiseRangeErrorI(objR, ((NI) 0), ((NI) 65535)); }
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (objR)));
}
N_LIB_PRIVATE N_NIMCALL(void, genArrAccessOpcode__2L40Rbn0RbtSbWjz9ahcg9ag)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI a;
	NI b;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	a = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	b = genIndex__M5LvI9cd9ck3A7bD4QIkuGkA(c, (*n)._kind_6.sons->data[((NI) 1)], (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = (opc == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16));
		if (!(T8_)) goto LA9_;
		T8_ = !(((2 & flags) == 0));
		LA9_: ;
		if (!T8_) goto LA10_;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), ((NI) ((*dest))), a, b);
	}
	goto LA6_;
	LA10_: ;
	{
		NIM_BOOL T13_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
		NI cc;
		T13_ = (NIM_BOOL)0;
		T13_ = ((3 & flags) == 0);
		if (!(T13_)) goto LA14_;
		T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T15_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T13_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T15_);
		LA14_: ;
		if (!T13_) goto LA16_;
		cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, cc, a, b);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
	}
	goto LA6_;
	LA16_: ;
	{
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, opc, ((NI) ((*dest))), a, b);
	}
	LA6_: ;
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, b);
}
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess__jht1XYyYWKYwfRpm130Gcg_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag arrayType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350144710672));
	arrayType = (*T1_).kind;
	{
		if (!((805306368 &((NU64)1<<((NU)(arrayType)&63U)))!=0)) goto LA4_;
		genArrAccessOpcode__2L40Rbn0RbtSbWjz9ahcg9ag(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 27), 0);
	}
	goto LA2_;
	LA4_: ;
	{
		if (!(arrayType == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA7_;
		genTypeLit__E6EPoKGcZLyzaPi29aeeG7A(c, (*n).typ, dest);
	}
	goto LA2_;
	LA7_: ;
	{
		genArrAccessOpcode__2L40Rbn0RbtSbWjz9ahcg9ag(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16), flags);
	}
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (NIM_BOOL)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273488));
	result = ((*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genDeref__jht1XYyYWKYwfRpm130Gcg_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	{
		NIM_BOOL T3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (NIM_BOOL)0;
		T3_ = unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T3_) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 0)], dest, flags);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((3 & flags) == 0);
			if (!(T8_)) goto LA9_;
			T8_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
			LA9_: ;
			if (!T8_) goto LA10_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), ((NI) ((*dest))), ((NI) 0));
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI tmp;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		{
			NI T17_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA15_;
			T17_ = (NI)0;
			T17_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T17_));
		}
		LA15_: ;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 24), ((NI) ((*dest))), tmp, ((NI) 0));
		{
			if (!!(!(((*n).typ == NIM_NIL)))) goto LA20_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_150));
		}
		LA20_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = ((3 & flags) == 0);
			if (!(T24_)) goto LA25_;
			T24_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
			LA25_: ;
			if (!T24_) goto LA26_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), ((NI) ((*dest))), ((NI) 0));
		}
		LA26_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		if (!((458752 &((NU64)1<<((NU)((*T3_).kind)&63U)))!=0)) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		result = (*n)._kind_6.sons->data[((NI) 0)];
		goto BeforeRet_;
	}
	LA4_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	switch ((*(*n)._kind_6.sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
		m = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		{
			if (!((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA9_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 0)]);
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*m).kind)>>3] &(1U<<((NU)((*m).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*m)._kind_6.sons ? (*m)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*m)._kind_6.sons ? (*m)._kind_6.sons->Sup.len : 0)-1); }
			add__P8dDSotTW25BkfbyspojGg(result, (*m)._kind_6.sons->data[((NI) 0)]);
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m_2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
		m_2 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
		{
			if (!((*m_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA14_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 0)]);
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*m_2).kind)>>3] &(1U<<((NU)((*m_2).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*m_2)._kind_6.sons ? (*m_2)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*m_2)._kind_6.sons ? (*m_2)._kind_6.sons->Sup.len : 0)-1); }
			add__P8dDSotTW25BkfbyspojGg(result, (*m_2)._kind_6.sons->data[((NI) 0)]);
		}
		LA14_: ;
	}
	break;
	default:
	{
		{
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA19_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
			result = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		}
		LA19_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	T3_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	T3_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddr__jht1XYyYWKYwfRpm130Gcg_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ newflags;
{	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		m = canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2(n);
		if (!!((m == NIM_NIL))) goto LA3_;
		gen__jht1XYyYWKYwfRpm130Gcg(c, m, dest, flags);
		goto BeforeRet_;
	}
	LA3_: ;
	newflags = ((flags & ~ 1) | 2);
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T7_ = isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5((*n)._kind_6.sons->data[((NI) 0)]);
		if (T7_) goto LA8_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T7_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		LA8_: ;
		if (!T7_) goto LA9_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 0)], dest, newflags);
	}
	goto LA5_;
	LA9_: ;
	{
		NI tmp;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], newflags);
		{
			NI T16_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA14_;
			T16_ = (NI)0;
			T16_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T16_));
		}
		LA14_: ;
		{
			if (!(((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(tmp)- 0].Field1)) goto LA19_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 23), ((NI) ((*dest))), tmp, ((NI) 0));
			(*(*c).prc).slots[(tmp)- 0].Field1 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 8);
		}
		goto LA17_;
		LA19_: ;
		{
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 22), ((NI) ((*dest))), tmp, ((NI) 0));
		}
		LA17_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
	if (!(T2_)) goto LA3_;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	T2_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	T1_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genIf__lTwxbV0wsOSkbi9adg16xrw_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_152;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				it = (*n)._kind_6.sons->data[i];
				{
					NI T14_;
					NI tmp;
					NI elsePos;
					T14_ = (NI)0;
					T14_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T14_ == ((NI) 2))) goto LA15_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
					elsePos = (NI)0;
					{
						NIM_BOOL T19_;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						T19_ = (NIM_BOOL)0;
						T19_ = isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6((*it)._kind_6.sons->data[((NI) 0)]);
						if (!T19_) goto LA20_;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 1)) >= (NU)((*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
						gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], tmp, 0);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 1)) >= (NU)((*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
						elsePos = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159), tmp);
					}
					goto LA17_;
					LA20_: ;
					{
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*it)._kind_6.sons->data[((NI) 0)], tmp, 0);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						elsePos = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, (*it)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), tmp);
					}
					LA17_: ;
					freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
					clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					gen__jht1XYyYWKYwfRpm130Gcg(c, (*it)._kind_6.sons->data[((NI) 1)], dest, 0);
					{
						NI T25_;
						NI TM__24XApAWKNvaMkcyklm8bNA_151;
						NI T28_;
						NI T29_;
						T25_ = (NI)0;
						T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (nimSubInt(T25_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_151)) { raiseOverflow(); };
						if (!(i < (NI)(TM__24XApAWKNvaMkcyklm8bNA_151))) goto LA26_;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
						T28_ = (NI)0;
						T28_ = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T29_ = endings->Sup.len++;
						endings->data[T29_] = T28_;
					}
					LA26_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				goto LA12_;
				LA15_: ;
				{
					clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					gen__jht1XYyYWKYwfRpm130Gcg(c, (*it)._kind_6.sons->data[((NI) 0)], dest, 0);
				}
				LA12_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_152)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_152);
			} LA11: ;
		}
	}
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_153;
				if (!(i_3 < L)) goto LA34;
				if ((NU)(i_3) >= (NU)(endings ? endings->Sup.len : 0)){ raiseIndexError2(i_3,(endings ? endings->Sup.len : 0)-1); }
				endPos = endings->data[i_3];
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				if (nimAddInt(i_3, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_153)) { raiseOverflow(); };
				i_3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_153);
				{
					NI T37_;
					T37_ = (endings ? endings->Sup.len : 0);
					if (!!((T37_ == L))) goto LA38_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA38_: ;
			} LA34: ;
		}
	}
	clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genCase__lTwxbV0wsOSkbi9adg16xrw_9)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI tmp;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		if (!!(T3_)) goto LA4_;
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
	}
	LA1_: ;
	endings = NIM_NIL;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*n)._kind_6.sons->data[((NI) 0)], tmp, 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_155;
				if (!(i_2 < colontmp_)) goto LA14;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				it = (*n)._kind_6.sons->data[i];
				{
					NI T17_;
					T17_ = (NI)0;
					T17_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T17_ == ((NI) 1))) goto LA18_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					gen__jht1XYyYWKYwfRpm130Gcg(c, (*it)._kind_6.sons->data[((NI) 0)], dest, 0);
				}
				goto LA15_;
				LA18_: ;
				{
					NI b;
					NI elsePos;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
					b = rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2(c, it);
					gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 163), tmp, b);
					T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T21_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					elsePos = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, T21_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), tmp);
					T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					gen__jht1XYyYWKYwfRpm130Gcg(c, T22_, dest, 0);
					{
						NI T25_;
						NI TM__24XApAWKNvaMkcyklm8bNA_154;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
						NI T29_;
						NI T30_;
						T25_ = (NI)0;
						T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (nimSubInt(T25_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_154)) { raiseOverflow(); };
						if (!(i < (NI)(TM__24XApAWKNvaMkcyklm8bNA_154))) goto LA26_;
						T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T28_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
						T29_ = (NI)0;
						T29_ = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, T28_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T30_ = endings->Sup.len++;
						endings->data[T30_] = T29_;
					}
					LA26_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				LA15_: ;
				clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_155)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_155);
			} LA14: ;
		}
	}
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_156;
				if (!(i_3 < L)) goto LA34;
				if ((NU)(i_3) >= (NU)(endings ? endings->Sup.len : 0)){ raiseIndexError2(i_3,(endings ? endings->Sup.len : 0)-1); }
				endPos = endings->data[i_3];
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				if (nimAddInt(i_3, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_156)) { raiseOverflow(); };
				i_3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_156);
				{
					NI T37_;
					T37_ = (endings ? endings->Sup.len : 0);
					if (!!((T37_ == L))) goto LA38_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA38_: ;
			} LA34: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__ZRCO5A5eUGuEhpgXduomEQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	NIM_BOOL T7_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	T2_ = !(((*(*n)._kind_4.sym).position == ((NI) 0)));
	LA5_: ;
	T1_ = T2_;
	if (T1_) goto LA6_;
	T7_ = (NIM_BOOL)0;
	T7_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
	if (!(T7_)) goto LA8_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
	T7_ = !(((*n)._kind_1.intVal == IL64(0)));
	LA8_: ;
	T1_ = T7_;
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI p) {
	NI dist;
	NI T1_;
	NI TM__24XApAWKNvaMkcyklm8bNA_159;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	if (nimSubInt(p, T1_, &TM__24XApAWKNvaMkcyklm8bNA_159)) { raiseOverflow(); };
	dist = (NI)(TM__24XApAWKNvaMkcyklm8bNA_159);
	{
		NIM_BOOL T4_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -8388607) < dist);
		if (!(T4_)) goto LA5_;
		T4_ = (dist < ((NI) 8388607));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_160);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T8_);
	}
	LA6_: ;
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 162), ((NI) 0), dist);
}
N_LIB_PRIVATE N_NIMCALL(void, popBlock__NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen) {
	{
		NI f;
		tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
		NI i;
		NI L;
		NI T2_;
		f = (NI)0;
		colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
		if ((NU)(oldLen) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)){ raiseIndexError2(oldLen,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1); }
		colontmp_ = (*(*c).prc).blocks->data[oldLen].fixups;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_161;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)){ raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1); }
				f = colontmp_->data[i];
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, f);
				if (nimAddInt(i, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_161)) { raiseOverflow(); };
				i = (NI)(TM__24XApAWKNvaMkcyklm8bNA_161);
				{
					NI T7_;
					T7_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T7_ == L))) goto LA8_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA8_: ;
			} LA4: ;
		}
	}
	if ((oldLen) < ((NI) 0) || (oldLen) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(oldLen, ((NI) 0), ((NI) IL64(9223372036854775807))); }
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) setLengthSeqV2(&((*(*c).prc).blocks)->Sup, (&NTI__JokFGfUW6i9b6aeU7xu6xBw_), ((NI) (oldLen))));
}
N_LIB_PRIVATE N_NIMCALL(void, genWhile__Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI lab1;
	NI oldLen;
	NI T1_;
	NI T2_;
	lab1 = genLabel__ZRCO5A5eUGuEhpgXduomEQ(c);
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTI__JokFGfUW6i9b6aeU7xu6xBw_)));
	T2_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T2_].label), TM__24XApAWKNvaMkcyklm8bNA_157.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T2_].fixups), TM__24XApAWKNvaMkcyklm8bNA_157.fixups, (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
	{
		NIM_BOOL T5_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T5_ = (NIM_BOOL)0;
		T5_ = isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T5_) goto LA6_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
	}
	goto LA3_;
	LA6_: ;
	{
		NIM_BOOL T9_;
		NI tmp;
		NI lab2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		T9_ = (NIM_BOOL)0;
		T9_ = isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T9_) goto LA10_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], 0);
		lab2 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159), tmp);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab2);
	}
	goto LA3_;
	LA10_: ;
	{
		NI tmp_2;
		NI lab2_2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		lab2_2 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), tmp_2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab2_2);
	}
	LA3_: ;
	popBlock__NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
}
N_LIB_PRIVATE N_NIMCALL(void, genBlock__lTwxbV0wsOSkbi9adg16xrw_10)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI oldRegisterCount;
	NI oldLen;
	NI T1_;
	tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ T2_;
	NI T3_;
	oldRegisterCount = (*(*c).prc).maxSlots;
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
	T2_.label = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	T2_.fixups = NIM_NIL;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTI__JokFGfUW6i9b6aeU7xu6xBw_)));
	T3_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T3_].label), T2_.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T3_].fixups), T2_.fixups, (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	popBlock__NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = oldRegisterCount;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_162;
				if (!(i_2 < (*(*c).prc).maxSlots)) goto LA6;
				i = i_2;
				{
					NIM_BOOL colontmp_;
					tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
					if (!!((i == ((NI) ((*dest)))))) goto LA9_;
					colontmp_ = NIM_FALSE;
					colontmp__2 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 0);
					if ((NU)(i) > (NU)(65535)){ raiseIndexError2(i, 65535); }
					(*(*c).prc).slots[(i)- 0].Field0 = colontmp_;
					(*(*c).prc).slots[(i)- 0].Field1 = colontmp__2;
				}
				LA9_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_162)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_162);
			} LA6: ;
		}
	}
	clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genReturn__Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	}
	LA3_: ;
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
}
N_LIB_PRIVATE N_NIMCALL(void, genRaise__Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI dest;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	dest = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 154), dest, ((NI) 0), ((NI) 0));
	freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBreak__Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI lab1;
{	lab1 = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI TM__24XApAWKNvaMkcyklm8bNA_163;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
			if (nimSubInt(T6_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_163)) { raiseOverflow(); };
			colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_163);
			res = colontmp_;
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_164;
					if (!(((NI) 0) <= res)) goto LA8;
					i = res;
					{
						NI T13_;
						if ((NU)(i) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)){ raiseIndexError2(i,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1); }
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
						if (!((*(*c).prc).blocks->data[i].label == (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym)) goto LA11_;
						if ((NU)(i) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)){ raiseIndexError2(i,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1); }
						asgnRef((void**) (&(*(*c).prc).blocks->data[i].fixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[i].fixups), (&NTI__qwqHTkRvwhrRyENtudHQ7g_)));
						T13_ = (*(*c).prc).blocks->data[i].fixups->Sup.len++;
						(*(*c).prc).blocks->data[i].fixups->data[T13_] = lab1;
						goto BeforeRet_;
					}
					LA11_: ;
					if (nimSubInt(res, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_164)) { raiseOverflow(); };
					res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_164);
				} LA8: ;
			}
		}
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_165));
	}
	goto LA1_;
	LA3_: ;
	{
		NI T15_;
		NI T16_;
		T15_ = (((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		if ((NU)(T15_) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)){ raiseIndexError2(T15_,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1); }
		asgnRef((void**) (&(*(*c).prc).blocks->data[T15_].fixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[T15_].fixups), (&NTI__qwqHTkRvwhrRyENtudHQ7g_)));
		T16_ = (*(*c).prc).blocks->data[T15_].fixups->Sup.len++;
		(*(*c).prc).blocks->data[T15_].fixups->data[T16_] = lab1;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTry__lTwxbV0wsOSkbi9adg16xrw_11)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI ehPos;
	NI jumpToFinally;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fin;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	ehPos = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 164), ((NI) 0));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 0)], dest, 0);
	clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
	jumpToFinally = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, ehPos);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_169;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				it = (*n)._kind_6.sons->data[i];
				{
					NI endExcept;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
					if (!!(((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107)))) goto LA14_;
					endExcept = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), ((NI) 0));
					{
						NI j;
						NI colontmp__2;
						NI T17_;
						NI TM__24XApAWKNvaMkcyklm8bNA_166;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T17_ = (NI)0;
						T17_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
						if (nimSubInt(T17_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_166)) { raiseOverflow(); };
						colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_166);
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
								NI T24_;
								NI TM__24XApAWKNvaMkcyklm8bNA_168;
								if (!(i_3 < colontmp__2)) goto LA19;
								j = i_3;
								{
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
									if ((NU)(j) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
									if (!!(((*(*it)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4)))) goto LA22_;
									failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_167));
								}
								LA22_: ;
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(j) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(j,((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
								typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*it)._kind_6.sons->data[j]).typ, IL64(36275087638308880));
								T24_ = (NI)0;
								T24_ = genType__H4AMs0GuxljbeG3aMubkXA(c, typ);
								gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), ((NI) 0), T24_);
								if (nimAddInt(i_3, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_168)) { raiseOverflow(); };
								i_3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_168);
							} LA19: ;
						}
					}
					{
						NI T27_;
						T27_ = (NI)0;
						T27_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
						if (!(T27_ == ((NI) 1))) goto LA28_;
						gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), ((NI) 0), ((NI) 0));
					}
					LA28_: ;
					T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T30_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					gen__jht1XYyYWKYwfRpm130Gcg(c, T30_, dest, 0);
					clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
					{
						NI T33_;
						NI T36_;
						NI T37_;
						T33_ = (NI)0;
						T33_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (!(i < T33_)) goto LA34_;
						T36_ = (NI)0;
						T36_ = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T37_ = endings->Sup.len++;
						endings->data[T37_] = T36_;
					}
					LA34_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endExcept);
				}
				LA14_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_169)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_169);
			} LA11: ;
		}
	}
	fin = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, jumpToFinally);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, fin, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), ((NI) 0), ((NI) 0));
	{
		NI endPos;
		NI i_4;
		NI L;
		NI T39_;
		endPos = (NI)0;
		i_4 = ((NI) 0);
		T39_ = (endings ? endings->Sup.len : 0);
		L = T39_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_170;
				if (!(i_4 < L)) goto LA41;
				if ((NU)(i_4) >= (NU)(endings ? endings->Sup.len : 0)){ raiseIndexError2(i_4,(endings ? endings->Sup.len : 0)-1); }
				endPos = endings->data[i_4];
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				if (nimAddInt(i_4, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_170)) { raiseOverflow(); };
				i_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_170);
				{
					NI T44_;
					T44_ = (endings ? endings->Sup.len : 0);
					if (!!((T44_ == L))) goto LA45_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA45_: ;
			} LA41: ;
		}
	}
	{
		if (!((*fin).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA49_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*fin).kind)>>3] &(1U<<((NU)((*fin).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*fin)._kind_6.sons ? (*fin)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*fin)._kind_6.sons ? (*fin)._kind_6.sons->Sup.len : 0)-1); }
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*fin)._kind_6.sons->data[((NI) 0)], 0);
		clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
	}
	LA49_: ;
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, fin, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 167), ((NI) 0), ((NI) 0));
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getOwner__ZAdOX9bNnuzwXclhv6dmGLg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	result = (*(*c).prc).sym;
	{
		if (!(result == 0)) goto LA3_;
		result = (*c).module;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_180;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					a = (*n)._kind_6.sons->data[i];
					{
						{
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
							goto LA5;
						}
						LA8_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T28_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA12_;
							{
								NI i_3;
								NI colontmp__2;
								NI T15_;
								NI TM__24XApAWKNvaMkcyklm8bNA_175;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T15_ = (NI)0;
								T15_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
								if (nimSubInt(T15_, ((NI) 2), &TM__24XApAWKNvaMkcyklm8bNA_175)) { raiseOverflow(); };
								colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_175);
								i_4 = ((NI) 0);
								{
									while (1) {
										NI TM__24XApAWKNvaMkcyklm8bNA_176;
										if (!(i_4 < colontmp__2)) goto LA17;
										i_3 = i_4;
										{
											if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
											if ((NU)(i_3) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
											if (!((*(*a)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA20_;
											{
												NIM_BOOL T24_;
												T24_ = (NIM_BOOL)0;
												if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
												if ((NU)(i_3) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
												if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a)._kind_6.sons->data[i_3]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
												T24_ = (((*(*(*a)._kind_6.sons->data[i_3])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
												if (!(T24_)) goto LA25_;
												if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
												if ((NU)(i_3) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
												if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a)._kind_6.sons->data[i_3]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
												T24_ = !(((*(*(*a)._kind_6.sons->data[i_3])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
												LA25_: ;
												if (!!(T24_)) goto LA26_;
												if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
												if ((NU)(i_3) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
												if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a)._kind_6.sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a)._kind_6.sons->data[i_3]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
												setSlot__wdPbhGpyRtpS49bqSwMfggA(c, (*(*a)._kind_6.sons->data[i_3])._kind_4.sym);
											}
											LA26_: ;
											if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
											if ((NU)(i_3) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
											checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, (*a)._kind_6.sons->data[i_3]);
										}
										LA20_: ;
										if (nimAddInt(i_4, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_176)) { raiseOverflow(); };
										i_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_176);
									} LA17: ;
								}
							}
							T28_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T28_ = getOwner__ZAdOX9bNnuzwXclhv6dmGLg(c);
							T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T29_ = lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2((*c).graph, a, T28_);
							gen__M9cKwar4hMj62R1lH9bydpDQ(c, T29_, 0);
						}
						goto LA10_;
						LA12_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
							if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
							if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
							if (!((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA31_;
							if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
							if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
							if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*a)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
							s = (*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
							if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
							if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
							checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, (*a)._kind_6.sons->data[((NI) 0)]);
							{
								NIM_BOOL T35_;
								T35_ = (NIM_BOOL)0;
								T35_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
								if (!(T35_)) goto LA36_;
								T35_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
								LA36_: ;
								if (!T35_) goto LA37_;
								{
									if (!((*s).position == ((NI) 0))) goto LA41_;
									{
										NIM_BOOL T45_;
										T45_ = (NIM_BOOL)0;
										T45_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen(s);
										if (!T45_) goto LA46_;
										importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*a).info, s);
									}
									goto LA43_;
									LA46_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sa;
										sa = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*a).info, (*c).config);
										{
											if (!!(!(((*sa).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27))))) goto LA51_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_177));
										}
										LA51_: ;
										add__P8dDSotTW25BkfbyspojGg((*c).globals, sa);
										(*s).position = len__P89cqdlERShb9alU3iC0yj8wast((*c).globals);
									}
									LA43_: ;
								}
								LA41_: ;
								{
									NI tmp;
									NI val;
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
									if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
									if (!!(((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA55_;
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
									if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
									tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*a)._kind_6.sons->data[((NI) 0)], 2);
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
									if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
									val = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*a)._kind_6.sons->data[((NI) 2)], 0);
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
									if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
									genAdditionalCopy__fHDMHFiJenKpiVlCE7zlvA(c, (*a)._kind_6.sons->data[((NI) 2)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), tmp, ((NI) 0), val);
									freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, val);
									freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
								}
								LA55_: ;
							}
							goto LA33_;
							LA37_: ;
							{
								setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
								{
									tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T62_;
									NI T63_;
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
									if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
									if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA60_;
									T62_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
									T62_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*s).typ);
									if (((*s).position) < ((NI) 0) || ((*s).position) > ((NI) 65535)){ raiseRangeErrorI((*s).position, ((NI) 0), ((NI) 65535)); }
									T63_ = (NI)0;
									T63_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
									gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, a, T62_, ((NI) ((*s).position)), T63_);
								}
								goto LA58_;
								LA60_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le;
									{
										if (!!(!(((*s).typ == NIM_NIL)))) goto LA67_;
										failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_178));
									}
									LA67_: ;
									{
										NIM_BOOL T71_;
										tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T74_;
										NI T75_;
										T71_ = (NIM_BOOL)0;
										T71_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*s).typ);
										if (!!(T71_)) goto LA72_;
										T74_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
										T74_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*s).typ);
										if (((*s).position) < ((NI) 0) || ((*s).position) > ((NI) 65535)){ raiseRangeErrorI((*s).position, ((NI) 0), ((NI) 65535)); }
										T75_ = (NI)0;
										T75_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
										gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, a, T74_, ((NI) ((*s).position)), T75_);
									}
									LA72_: ;
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
									if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
									le = (*a)._kind_6.sons->data[((NI) 0)];
									{
										if (!!(!(((*le).typ == NIM_NIL)))) goto LA78_;
										failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_179));
									}
									LA78_: ;
									{
										NIM_BOOL T82_;
										NIM_BOOL T83_;
										NI cc;
										tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T87_;
										T82_ = (NIM_BOOL)0;
										T83_ = (NIM_BOOL)0;
										T83_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*le).typ);
										T82_ = !(T83_);
										if (!(T82_)) goto LA84_;
										T82_ = ((2312 &(1U<<((NU)((*s).kind)&31U)))!=0);
										LA84_: ;
										if (!T82_) goto LA85_;
										cc = getTemp__duEomvr9bK43tarDYX26gsA(c, (*le).typ);
										if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
										if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
										gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*a)._kind_6.sons->data[((NI) 2)], cc, 0);
										T87_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
										T87_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(le, NIM_TRUE);
										if (((*s).position) < ((NI) 0) || ((*s).position) > ((NI) 65535)){ raiseRangeErrorI((*s).position, ((NI) 0), ((NI) 65535)); }
										gABC__UIRVqkSOpk264WekB9cpXRw(c, le, T87_, ((NI) ((*s).position)), cc, ((NI) 0));
										freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, cc);
									}
									goto LA80_;
									LA85_: ;
									{
										if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
										if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
										if (((*s).position) < ((NI) 0) || ((*s).position) > ((NI) 65535)){ raiseRangeErrorI((*s).position, ((NI) 0), ((NI) 65535)); }
										gen__4hhMx9acAaFJrVXUkV9bC0RA(c, (*a)._kind_6.sons->data[((NI) 2)], ((NI) ((*s).position)), 0);
									}
									LA80_: ;
								}
								LA58_: ;
							}
							LA33_: ;
						}
						goto LA10_;
						LA31_: ;
						{
							{
								NI tmp_2;
								tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T94_;
								NI T95_;
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
								if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA92_;
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
								tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*a)._kind_6.sons->data[((NI) 0)], 0);
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
								T94_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
								T94_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*(*a)._kind_6.sons->data[((NI) 0)]).typ);
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
								T95_ = (NI)0;
								T95_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
								gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, a, T94_, tmp_2, T95_);
								freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
							}
							goto LA90_;
							LA92_: ;
							{
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(((NI) 0)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
								if ((NU)(((NI) 2)) >= (NU)((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*a)._kind_6.sons ? (*a)._kind_6.sons->Sup.len : 0)-1); }
								genAsgn__441oTPupNGUtbMyisB9aUyA(c, (*a)._kind_6.sons->data[((NI) 0)], (*a)._kind_6.sons->data[((NI) 2)], NIM_TRUE);
							}
							LA90_: ;
						}
						LA10_: ;
					} LA5: ;
					if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_180)) { raiseOverflow(); };
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_180);
				} LA4: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__lTwxbV0wsOSkbi9adg16xrw_12)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* intType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T6_);
	intType = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	seqType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NI tmp;
		NI T11_;
		NI T12_;
		if (!((*seqType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA9_;
		tmp = getTemp__duEomvr9bK43tarDYX26gsA(c, intType);
		T11_ = (NI)0;
		T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), tmp, T11_);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		T12_ = (NI)0;
		T12_ = genType__H4AMs0GuxljbeG3aMubkXA(c, seqType);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), ((NI) ((*dest))), T12_);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 169), tmp, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	LA9_: ;
	{
		NI T15_;
		NI tmp_2;
		NI T18_;
		T15_ = (NI)0;
		T15_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T15_)) goto LA16_;
		tmp_2 = getTemp__duEomvr9bK43tarDYX26gsA(c, intType);
		T18_ = (NI)0;
		T18_ = genType__H4AMs0GuxljbeG3aMubkXA(c, intType);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 171), tmp_2, T18_);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI a;
						NI TM__24XApAWKNvaMkcyklm8bNA_181;
						if (!(i_2 < colontmp_)) goto LA22;
						i = i_2;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						x = (*n)._kind_6.sons->data[i];
						a = genx__uIB1V7YFWyQzDYKijoL1tA(c, x, 0);
						if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
						preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 18), ((NI) ((*dest))), tmp_2, a);
						gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 29), tmp_2, tmp_2, IL64(1));
						freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
						if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_181)) { raiseOverflow(); };
						i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_181);
					} LA22: ;
				}
			}
		}
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
	}
	LA16_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__lTwxbV0wsOSkbi9adg16xrw_13)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T6_);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_182;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					x = (*n)._kind_6.sons->data[i];
					{
						NI a;
						NI b;
						if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA13_;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 0)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
						a = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*x)._kind_6.sons->data[((NI) 0)], 0);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(((NI) 1)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
						b = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*x)._kind_6.sons->data[((NI) 1)], 0);
						if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
						gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 35), ((NI) ((*dest))), a, b);
						freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, b);
						freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a);
					}
					goto LA11_;
					LA13_: ;
					{
						NI a_2;
						a_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, x, 0);
						if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
						gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 34), ((NI) ((*dest))), a_2, ((NI) 0));
						freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, a_2);
					}
					LA11_: ;
					if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_182)) { raiseOverflow(); };
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_182);
				} LA10: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__lTwxbV0wsOSkbi9adg16xrw_14)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350136322064));
	{
		NI T10_;
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA8_;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1); }
		T10_ = (NI)0;
		T10_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*t).sons->data[((NI) 0)]);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 168), ((NI) ((*dest))), T10_);
	}
	goto LA6_;
	LA8_: ;
	{
		NI T12_;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		T12_ = (NI)0;
		T12_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T12_);
	}
	LA6_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_184;
				if (!(i_2 < colontmp_)) goto LA15;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				it = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T18_;
					NI idx;
					NI tmp;
					T18_ = (NIM_BOOL)0;
					T18_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
					if (!(T18_)) goto LA19_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					T18_ = ((*(*it)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					LA19_: ;
					if (!T18_) goto LA20_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					idx = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*it)._kind_6.sons->data[((NI) 0)]);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
					preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) ((*dest))), idx, tmp);
					freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
				}
				goto LA16_;
				LA20_: ;
				{
					globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_183));
				}
				LA16_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_184)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_184);
			} LA15: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__lTwxbV0wsOSkbi9adg16xrw_15)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), T6_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_185;
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
				if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
				it = (*n)._kind_6.sons->data[i];
				{
					NI idx;
					NI tmp;
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA12_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 0)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					idx = genField__hsBsLv9cKR5frmhKTX7rURw(c, (*it)._kind_6.sons->data[((NI) 0)]);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(((NI) 1)) >= (NU)((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*it)._kind_6.sons ? (*it)._kind_6.sons->Sup.len : 0)-1); }
					if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
					preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) ((*dest))), idx, tmp);
					freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
				}
				goto LA10_;
				LA12_: ;
				{
					NI tmp_2;
					tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, it, 0);
					if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
					if ((i) < ((NI) 0) || (i) > ((NI) 65535)){ raiseRangeErrorI(i, ((NI) 0), ((NI) 65535)); }
					preventFalseAlias__fHDMHFiJenKpiVlCE7zlvA_2(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), ((NI) ((*dest))), ((NI) (i)), tmp_2);
					freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
				}
				LA10_: ;
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_185)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_185);
			} LA9: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat__lTwxbV0wsOSkbi9adg16xrw_16)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag signedIntegers;
	tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag unsignedIntegers;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dst;
	NI64 srcSize;
	NI64 dstSize;
	signedIntegers = IL64(66571993088);
	unsignedIntegers = IL64(34084860461060);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	src = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
	dst = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350136322320));
	srcSize = getSize__vCG1GF2Iu043oALVyuJfOw((*c).config, src);
	dstSize = getSize__vCG1GF2Iu043oALVyuJfOw((*c).config, dst);
	{
		NIM_BOOL T3_;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T11_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T11_ = (NI)0;
			T11_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T11_));
		}
		LA9_: ;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4), ((NI) ((*dest))), tmp, ((NI) 0));
		{
			if (!!((dstSize == IL64(8)))) goto LA14_;
			{
				if (!((signedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA18_;
				{
					NI64 TM__24XApAWKNvaMkcyklm8bNA_186;
					if (!(dstSize <= srcSize)) goto LA22_;
					if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
					if (nimMulInt64(dstSize, IL64(8), &TM__24XApAWKNvaMkcyklm8bNA_186)) { raiseOverflow(); };
					if (((NI64)(TM__24XApAWKNvaMkcyklm8bNA_186)) < ((NI) 0) || ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_186)) > ((NI) 65535)){ raiseRangeErrorI((NI64)(TM__24XApAWKNvaMkcyklm8bNA_186), ((NI) 0), ((NI) 65535)); }
					gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 97), ((NI) ((*dest))), ((NI) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_186))), ((NI) 0));
				}
				LA22_: ;
			}
			goto LA16_;
			LA18_: ;
			{
				if (!((unsignedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA25_;
				{
					NIM_BOOL T29_;
					NI64 TM__24XApAWKNvaMkcyklm8bNA_187;
					T29_ = (NIM_BOOL)0;
					T29_ = ((signedIntegers &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
					if (T29_) goto LA30_;
					T29_ = (dstSize < srcSize);
					LA30_: ;
					if (!T29_) goto LA31_;
					if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
					if (nimMulInt64(dstSize, IL64(8), &TM__24XApAWKNvaMkcyklm8bNA_187)) { raiseOverflow(); };
					if (((NI64)(TM__24XApAWKNvaMkcyklm8bNA_187)) < ((NI) 0) || ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_187)) > ((NI) 65535)){ raiseRangeErrorI((NI64)(TM__24XApAWKNvaMkcyklm8bNA_187), ((NI) 0), ((NI) 65535)); }
					gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) ((*dest))), ((NI) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_187))), ((NI) 0));
				}
				LA31_: ;
			}
			goto LA16_;
			LA25_: ;
			LA16_: ;
		}
		LA14_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T34_;
		NIM_BOOL T35_;
		NI tmp_2;
		T34_ = (NIM_BOOL)0;
		T35_ = (NIM_BOOL)0;
		T35_ = (srcSize == dstSize);
		if (!(T35_)) goto LA36_;
		T35_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA36_: ;
		T34_ = T35_;
		if (!(T34_)) goto LA37_;
		T34_ = ((IL64(481036337152) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA37_: ;
		if (!T34_) goto LA38_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T44_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA42_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T44_ = (NI)0;
			T44_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T44_));
		}
		LA42_: ;
		{
			if (!((*dst).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA47_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 8), ((NI) ((*dest))), tmp_2, ((NI) 0));
		}
		goto LA45_;
		LA47_: ;
		{
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 9), ((NI) ((*dest))), tmp_2, ((NI) 0));
		}
		LA45_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_2);
	}
	goto LA1_;
	LA38_: ;
	{
		NIM_BOOL T51_;
		NIM_BOOL T52_;
		NI tmp_3;
		T51_ = (NIM_BOOL)0;
		T52_ = (NIM_BOOL)0;
		T52_ = (srcSize == dstSize);
		if (!(T52_)) goto LA53_;
		T52_ = ((IL64(481036337152) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA53_: ;
		T51_ = T52_;
		if (!(T51_)) goto LA54_;
		T51_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA54_: ;
		if (!T51_) goto LA55_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_3 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T61_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA59_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T61_ = (NI)0;
			T61_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T61_));
		}
		LA59_: ;
		{
			if (!((*src).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA64_;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 10), ((NI) ((*dest))), tmp_3, ((NI) 0));
			{
				if (!((unsignedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA68_;
				if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
				gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96), ((NI) ((*dest))), ((NI) 32), ((NI) 0));
			}
			LA68_: ;
		}
		goto LA62_;
		LA64_: ;
		{
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 11), ((NI) ((*dest))), tmp_3, ((NI) 0));
		}
		LA62_: ;
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_3);
	}
	goto LA1_;
	LA55_: ;
	{
		NIM_BOOL T72_;
		NI tmp_4;
		NI64 imm;
		NI T81_;
		T72_ = (NIM_BOOL)0;
		T72_ = ((73400320 &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		if (!(T72_)) goto LA73_;
		T72_ = ((*dst).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		LA73_: ;
		if (!T72_) goto LA74_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_4 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T80_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA78_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T80_ = (NI)0;
			T80_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T80_));
		}
		LA78_: ;
		T81_ = (NI)0;
		{
			if (!((69206016 &((NU64)1<<((NU)((*src).kind)&63U)))!=0)) goto LA84_;
			T81_ = ((NI) 1);
		}
		goto LA82_;
		LA84_: ;
		{
			T81_ = ((NI) 2);
		}
		LA82_: ;
		imm = ((NI64) (T81_));
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABI__2Xc89bNXyQiyYVPoh9brP5Lg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 12), ((NI) ((*dest))), tmp_4, imm);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_4);
	}
	goto LA1_;
	LA74_: ;
	{
		NIM_BOOL T88_;
		NI tmp_5;
		NI T97_;
		T88_ = (NIM_BOOL)0;
		T88_ = ((IL64(2216689664) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		if (!(T88_)) goto LA89_;
		T88_ = ((69206016 &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA89_: ;
		if (!T88_) goto LA90_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp_5 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T96_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA94_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			T96_ = (NI)0;
			T96_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T96_));
		}
		LA94_: ;
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		T97_ = (NI)0;
		T97_ = genType__H4AMs0GuxljbeG3aMubkXA(c, dst);
		gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 181), ((NI) ((*dest))), T97_);
		if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), ((NI) ((*dest))), tmp_5, ((NI) 0));
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp_5);
	}
	goto LA1_;
	LA90_: ;
	{
		NimStringDesc* T99_;
		T99_ = (NimStringDesc*)0;
		T99_ = rawNewString((reprEnum((NI)(*src).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*src).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + (reprEnum((NI)(*dst).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*dst).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 36);
appendString(T99_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_188));
appendString(T99_, reprEnum((NI)(*src).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
appendString(T99_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_189));
appendString(T99_, reprEnum((NI)(*dst).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T99_);
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((IL64(1152921504606847232) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__jht1XYyYWKYwfRpm130Gcg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		s = (*n)._kind_4.sym;
		checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, n);
		switch ((*s).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11):
		{
			genRdVar__jht1XYyYWKYwfRpm130Gcg_2(c, n, dest, flags);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
		{
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ(c, s);
				if (!T6_) goto LA7_;
			}
			goto LA4_;
			LA7_: ;
			{
				NIM_BOOL T10_;
				T10_ = (NIM_BOOL)0;
				T10_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUg_2vmgen(s);
				if (!T10_) goto LA11_;
				importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA4_;
			LA11_: ;
			LA4_: ;
			genLit__lTwxbV0wsOSkbi9adg16xrw(c, n, dest);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constVal;
			{
				if (!!(((*s).ast == NIM_NIL))) goto LA16_;
				constVal = (*s).ast;
			}
			goto LA14_;
			LA16_: ;
			{
				constVal = (*(*s).typ).n;
			}
			LA14_: ;
			gen__jht1XYyYWKYwfRpm130Gcg(c, constVal, dest, 0);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20):
		{
			{
				NI T24_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA22_;
				T24_ = (NI)0;
				T24_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
				(*dest) = ((NI) (T24_));
			}
			LA22_: ;
			{
				NIM_BOOL T27_;
				T27_ = (NIM_BOOL)0;
				T27_ = (((NI) -32768) <= (*s).position);
				if (!(T27_)) goto LA28_;
				T27_ = ((*s).position <= ((NI) 32767));
				LA28_: ;
				if (!T27_) goto LA29_;
				if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
				gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), ((NI) ((*dest))), (*s).position);
			}
			goto LA25_;
			LA29_: ;
			{
				NI lit;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
				T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T32_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*s).position)));
				lit = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, T32_);
				if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
				gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), ((NI) ((*dest))), lit);
			}
			LA25_: ;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
		{
			genTypeLit__E6EPoKGcZLyzaPi29aeeG7A(c, (*s).typ, dest);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
		{
			{
				NIM_BOOL T37_;
				T37_ = (NIM_BOOL)0;
				T37_ = !(((*(*c).prc).sym == NIM_NIL));
				if (!(T37_)) goto LA38_;
				T37_ = ((*(*(*c).prc).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
				LA38_: ;
				if (!T37_) goto LA39_;
				genRdVar__jht1XYyYWKYwfRpm130Gcg_2(c, n, dest, flags);
			}
			goto LA35_;
			LA39_: ;
			{
				NimStringDesc* T42_;
				T42_ = (NimStringDesc*)0;
				T42_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T42_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_57));
appendString(T42_, (*(*s).name).s);
				globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T42_);
			}
			LA35_: ;
		}
		break;
		default:
		{
			NimStringDesc* T44_;
			T44_ = (NimStringDesc*)0;
			T44_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T44_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_57));
appendString(T44_, (*(*s).name).s);
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T44_);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA48_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
			s_2 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				if (!!(((*s_2).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA52_;
				genMagic__nCoAHjo16P5zqJafFfwLew(c, n, dest, (*s_2).magic);
			}
			goto LA50_;
			LA52_: ;
			{
				NimStringDesc* T57_;
				if (!((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA55_;
				T57_ = (NimStringDesc*)0;
				T57_ = rawNewString(((*(*s_2).name).s ? (*(*s_2).name).s->Sup.len : 0) + 35);
appendString(T57_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_136));
appendString(T57_, (*(*s_2).name).s);
appendString(T57_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_137));
				localError__NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, T57_);
			}
			goto LA50_;
			LA55_: ;
			{
				NIM_BOOL T59_;
				T59_ = (NIM_BOOL)0;
				T59_ = matches__52uSyG4N9c9cuGgSFhItwpgQ(s_2, TM__24XApAWKNvaMkcyklm8bNA_139, 3);
				if (!T59_) goto LA60_;
				genMarshalLoad__lTwxbV0wsOSkbi9adg16xrw_6(c, n, dest);
			}
			goto LA50_;
			LA60_: ;
			{
				NIM_BOOL T63_;
				T63_ = (NIM_BOOL)0;
				T63_ = matches__52uSyG4N9c9cuGgSFhItwpgQ(s_2, TM__24XApAWKNvaMkcyklm8bNA_143, 3);
				if (!T63_) goto LA64_;
				genMarshalStore__lTwxbV0wsOSkbi9adg16xrw_7(c, n, dest);
			}
			goto LA50_;
			LA64_: ;
			{
				genCall__lTwxbV0wsOSkbi9adg16xrw_5(c, n, dest);
				clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
			}
			LA50_: ;
		}
		goto LA46_;
		LA48_: ;
		{
			genCall__lTwxbV0wsOSkbi9adg16xrw_5(c, n, dest);
			clearDest__PBCZ6McIZ4IzXStdFkY0Pwvmgen(c, n, dest);
		}
		LA46_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		{
			NIM_BOOL T71_;
			T71_ = (NIM_BOOL)0;
			T71_ = isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3(n);
			if (!T71_) goto LA72_;
			{
				NI T78_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA76_;
				T78_ = (NI)0;
				T78_ = getTemp__duEomvr9bK43tarDYX26gsA(c, (*n).typ);
				(*dest) = ((NI) (T78_));
			}
			LA76_: ;
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
			gABx__vCfZ9bElZa5k2CDWM9coPmBA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), ((NI) ((*dest))), ((NI) ((*n)._kind_1.intVal)));
		}
		goto LA69_;
		LA72_: ;
		{
			genLit__lTwxbV0wsOSkbi9adg16xrw(c, n, dest);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T84_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T87_;
			T84_ = (NIM_BOOL)0;
			T84_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
			if (!!(T84_)) goto LA85_;
			T87_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T87_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*n).typ, (*n).info, (*c).config);
			genLit__lTwxbV0wsOSkbi9adg16xrw(c, T87_, dest);
		}
		goto LA82_;
		LA85_: ;
		{
			unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		}
		LA82_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genAsgn__441oTPupNGUtbMyisB9aUyA(c, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)], ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73)));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genObjAccess__jht1XYyYWKYwfRpm130Gcg_4(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedObjAccess__jht1XYyYWKYwfRpm130Gcg_5(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genArrAccess__jht1XYyYWKYwfRpm130Gcg_6(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref__jht1XYyYWKYwfRpm130Gcg_7(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		genAddr__jht1XYyYWKYwfRpm130Gcg_8(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		genIf__lTwxbV0wsOSkbi9adg16xrw_8(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0)-1); }
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase__lTwxbV0wsOSkbi9adg16xrw_9(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genWhile__Y59crI4YgTHHCWclw3gn72A_4(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock__lTwxbV0wsOSkbi9adg16xrw_10(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		genReturn__Y59crI4YgTHHCWclw3gn72A_5(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaise__Y59crI4YgTHHCWclw3gn72A_6(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		genBreak__Y59crI4YgTHHCWclw3gn72A_7(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		genTry__lTwxbV0wsOSkbi9adg16xrw_11(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM__24XApAWKNvaMkcyklm8bNA_171;
						if (!(i_2 < colontmp_)) goto LA108;
						i = i_2;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
						if ((NU)(i) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
						x = (*n)._kind_6.sons->data[i];
						gen__M9cKwar4hMj62R1lH9bydpDQ(c, x, 0);
						if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_171)) { raiseOverflow(); };
						i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_171);
					} LA108: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NI T114_;
		NI TM__24XApAWKNvaMkcyklm8bNA_174;
		{
			NI i_3;
			NI colontmp__2;
			NI T111_;
			NI TM__24XApAWKNvaMkcyklm8bNA_172;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T111_ = (NI)0;
			T111_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (nimSubInt(T111_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_172)) { raiseOverflow(); };
			colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_172);
			i_4 = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_173;
					if (!(i_4 < colontmp__2)) goto LA113;
					i_3 = i_4;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
					if ((NU)(i_3) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(i_3,((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
					gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[i_3], 0);
					if (nimAddInt(i_4, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_173)) { raiseOverflow(); };
					i_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_173);
				} LA113: ;
			}
		}
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		T114_ = (NI)0;
		T114_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (nimSubInt(T114_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_174)) { raiseOverflow(); };
		if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_174)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_174),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[(NI)(TM__24XApAWKNvaMkcyklm8bNA_174)], dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T116_;
		T116_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T116_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		gen__jht1XYyYWKYwfRpm130Gcg(c, T116_, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 0)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 0)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
		genVarSection__Y59crI4YgTHHCWclw3gn72A_8(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T124_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10)); }
		T124_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T124_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
		genLit__lTwxbV0wsOSkbi9adg16xrw(c, T124_, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		NI tmp0;
		NI tmp1;
		NI tmp2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp0 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp1 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 2)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		tmp2 = genx__uIB1V7YFWyQzDYKijoL1tA(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 101), tmp0, tmp1, tmp2);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp1);
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp2);
		{
			tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T130_;
			if (!(((NI) 0) <= ((NI) ((*dest))))) goto LA128_;
			T130_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
			T130_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(n, NIM_TRUE);
			if (((*dest)) < ((NI) 0) || ((*dest)) > ((NI) 65535)){ raiseRangeErrorI((*dest), ((NI) 0), ((NI) 65535)); }
			gABC__UIRVqkSOpk264WekB9cpXRw(c, n, T130_, ((NI) ((*dest))), tmp0, ((NI) 0));
			freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, tmp0);
		}
		goto LA126_;
		LA128_: ;
		{
			(*dest) = ((NI) (tmp0));
		}
		LA126_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
	{
		unused__PdPp9auRJ0XpJGdnl3WqcjAvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
		gen__jht1XYyYWKYwfRpm130Gcg(c, (*n)._kind_6.sons->data[((NI) 0)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		genArrayConstr__lTwxbV0wsOSkbi9adg16xrw_12(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		genSetConstr__lTwxbV0wsOSkbi9adg16xrw_13(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr__lTwxbV0wsOSkbi9adg16xrw_14(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		genTupleConstr__lTwxbV0wsOSkbi9adg16xrw_15(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		{
			if (!(((*c).features &(1U<<((NU)(((tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A) 0))&7U)))!=0)) goto LA141_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 1)) >= (NU)((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 1),((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0)-1); }
			genConv__5o3JB8z8Vaytpw5QzBCu2w(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 92));
		}
		goto LA139_;
		LA141_: ;
		{
			genCastIntFloat__lTwxbV0wsOSkbi9adg16xrw_16(c, n, dest);
		}
		LA139_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		genTypeLit__E6EPoKGcZLyzaPi29aeeG7A(c, (*n).typ, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		{
			NIM_BOOL T149_;
			T149_ = (NIM_BOOL)0;
			T149_ = !(((*n).typ == NIM_NIL));
			if (!(T149_)) goto LA150_;
			T149_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*n).typ);
			LA150_: ;
			if (!T149_) goto LA151_;
			genTypeLit__E6EPoKGcZLyzaPi29aeeG7A(c, (*n).typ, dest);
		}
		goto LA147_;
		LA151_: ;
		{
			NimStringDesc* T154_;
			NimStringDesc* T155_;
			T154_ = (NimStringDesc*)0;
			T155_ = (NimStringDesc*)0;
			T155_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
			T154_ = rawNewString((T155_ ? T155_->Sup.len : 0) + 28);
appendString(T154_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_190));
appendString(T154_, T155_);
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T154_);
		}
		LA147_: ;
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, gen__M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI tmp;
	tmp = ((NI) -1);
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		if ((tmp) < ((NI) 0) || (tmp) > ((NI) 65535)){ raiseRangeErrorI(tmp, ((NI) 0), ((NI) 65535)); }
		freeTemp__uXRUl7Cw6nSkkjyL59cV9c9bA(c, ((NI) (tmp)));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff) {
	NU64 oldInstr;
	NI TM__24XApAWKNvaMkcyklm8bNA_202;
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -8388607) < diff);
		if (!(T3_)) goto LA4_;
		T3_ = (diff < ((NI) 8388607));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_201);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T7_);
	}
	LA5_: ;
	if ((NU)(pc) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(pc,((*c).code ? (*c).code->Sup.len : 0)-1); }
	oldInstr = (*c).code->data[pc];
	if ((NU)(pc) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(pc,((*c).code ? (*c).code->Sup.len : 0)-1); }
	if (nimAddInt(diff, ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_202)) { raiseOverflow(); };
	(*c).code->data[pc] = (NU64)((NU64)(oldInstr & 16777215ULL) | (NU64)((NU64)(((NU64) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_202)))) << (NU64)(24ULL)));
}
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps__c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).code ? (*c).code->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = start;
		{
			while (1) {
				tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc;
				NI TM__24XApAWKNvaMkcyklm8bNA_212;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1); }
				if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(0ULL)) & 255ULL)) < ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(0ULL)) & 255ULL)) > ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(0ULL)) & 255ULL), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)); }
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(0ULL)) & 255ULL)));
				switch (opc) {
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159):
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160):
				{
					NI reg;
					NI d;
					NI TM__24XApAWKNvaMkcyklm8bNA_191;
					NI TM__24XApAWKNvaMkcyklm8bNA_192;
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1); }
					if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(8ULL)) & 65535ULL)) < ((NI) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(8ULL)) & 65535ULL)) > ((NI) 65535)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(8ULL)) & 65535ULL), ((NI) 0), ((NI) 65535)); }
					reg = ((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(8ULL)) & 65535ULL)));
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1); }
					if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL)) < ((NI) (IL64(-9223372036854775807) - IL64(1))) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL)) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL), ((NI) (IL64(-9223372036854775807) - IL64(1))), ((NI) IL64(9223372036854775807))); }
					if (nimSubInt(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))), ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_191)) { raiseOverflow(); };
					if (nimAddInt(i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_191), &TM__24XApAWKNvaMkcyklm8bNA_192)) { raiseOverflow(); };
					d = (NI)(TM__24XApAWKNvaMkcyklm8bNA_192);
					{
						NI iters;
						NI res;
						iters = (NI)0;
						res = ((NI) 10);
						{
							while (1) {
								NI TM__24XApAWKNvaMkcyklm8bNA_198;
								if (!(((NI) 0) <= res)) goto LA8;
								iters = res;
								if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1); }
								if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL)) < ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL)) > ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)); }
								switch (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL)))) {
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161):
								{
									NI TM__24XApAWKNvaMkcyklm8bNA_193;
									NI TM__24XApAWKNvaMkcyklm8bNA_194;
									if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1); }
									if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL)) < ((NI) (IL64(-9223372036854775807) - IL64(1))) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL)) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL), ((NI) (IL64(-9223372036854775807) - IL64(1))), ((NI) IL64(9223372036854775807))); }
									if (nimSubInt(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL))), ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_193)) { raiseOverflow(); };
									if (nimAddInt(d, (NI)(TM__24XApAWKNvaMkcyklm8bNA_193), &TM__24XApAWKNvaMkcyklm8bNA_194)) { raiseOverflow(); };
									d = (NI)(TM__24XApAWKNvaMkcyklm8bNA_194);
								}
								break;
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159):
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160):
								{
									{
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1); }
										if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(8ULL)) & 65535ULL)) < ((NI) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(8ULL)) & 65535ULL)) > ((NI) 65535)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(8ULL)) & 65535ULL), ((NI) 0), ((NI) 65535)); }
										if (!!((((NI) (((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(8ULL)) & 65535ULL))))) == ((NI) (reg))))) goto LA13_;
										goto LA6;
									}
									LA13_: ;
									{
										NI TM__24XApAWKNvaMkcyklm8bNA_195;
										NI TM__24XApAWKNvaMkcyklm8bNA_196;
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1); }
										if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL)) < ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL)) > ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)); }
										if (!(((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL))) == opc)) goto LA17_;
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1); }
										if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL)) < ((NI) (IL64(-9223372036854775807) - IL64(1))) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL)) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL), ((NI) (IL64(-9223372036854775807) - IL64(1))), ((NI) IL64(9223372036854775807))); }
										if (nimSubInt(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL))), ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_195)) { raiseOverflow(); };
										if (nimAddInt(d, (NI)(TM__24XApAWKNvaMkcyklm8bNA_195), &TM__24XApAWKNvaMkcyklm8bNA_196)) { raiseOverflow(); };
										d = (NI)(TM__24XApAWKNvaMkcyklm8bNA_196);
									}
									goto LA15_;
									LA17_: ;
									{
										NI TM__24XApAWKNvaMkcyklm8bNA_197;
										if (nimAddInt(d, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_197)) { raiseOverflow(); };
										d = (NI)(TM__24XApAWKNvaMkcyklm8bNA_197);
									}
									LA15_: ;
								}
								break;
								default:
								{
									goto LA6;
								}
								break;
								}
								if (nimSubInt(res, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_198)) { raiseOverflow(); };
								res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_198);
							} LA8: ;
						}
					} LA6: ;
					{
						NI TM__24XApAWKNvaMkcyklm8bNA_199;
						NI TM__24XApAWKNvaMkcyklm8bNA_200;
						NI TM__24XApAWKNvaMkcyklm8bNA_203;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1); }
						if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL)) < ((NI) (IL64(-9223372036854775807) - IL64(1))) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL)) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL), ((NI) (IL64(-9223372036854775807) - IL64(1))), ((NI) IL64(9223372036854775807))); }
						if (nimSubInt(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))), ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_199)) { raiseOverflow(); };
						if (nimAddInt(i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_199), &TM__24XApAWKNvaMkcyklm8bNA_200)) { raiseOverflow(); };
						if (!!((d == (NI)(TM__24XApAWKNvaMkcyklm8bNA_200)))) goto LA23_;
						if (nimSubInt(d, i, &TM__24XApAWKNvaMkcyklm8bNA_203)) { raiseOverflow(); };
						finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A(c, i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_203));
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161):
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 162):
				{
					NI d_2;
					NI TM__24XApAWKNvaMkcyklm8bNA_204;
					NI TM__24XApAWKNvaMkcyklm8bNA_205;
					NI iters_2;
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1); }
					if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL)) < ((NI) (IL64(-9223372036854775807) - IL64(1))) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL)) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL), ((NI) (IL64(-9223372036854775807) - IL64(1))), ((NI) IL64(9223372036854775807))); }
					if (nimSubInt(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))), ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_204)) { raiseOverflow(); };
					if (nimAddInt(i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_204), &TM__24XApAWKNvaMkcyklm8bNA_205)) { raiseOverflow(); };
					d_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_205);
					iters_2 = ((NI) 10);
					{
						while (1) {
							NIM_BOOL T28_;
							NI TM__24XApAWKNvaMkcyklm8bNA_206;
							NI TM__24XApAWKNvaMkcyklm8bNA_207;
							NI TM__24XApAWKNvaMkcyklm8bNA_208;
							T28_ = (NIM_BOOL)0;
							if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1); }
							if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL)) < ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL)) > ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)); }
							T28_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161));
							if (!(T28_)) goto LA29_;
							T28_ = (((NI) 0) < iters_2);
							LA29_: ;
							if (!T28_) goto LA27;
							if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1); }
							if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(24ULL)) & 16777215ULL)) < ((NI) (IL64(-9223372036854775807) - IL64(1))) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(24ULL)) & 16777215ULL)) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(24ULL)) & 16777215ULL), ((NI) (IL64(-9223372036854775807) - IL64(1))), ((NI) IL64(9223372036854775807))); }
							if (nimSubInt(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(24ULL)) & 16777215ULL))), ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_206)) { raiseOverflow(); };
							if (nimAddInt(d_2, (NI)(TM__24XApAWKNvaMkcyklm8bNA_206), &TM__24XApAWKNvaMkcyklm8bNA_207)) { raiseOverflow(); };
							d_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_207);
							if (nimSubInt(iters_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_208)) { raiseOverflow(); };
							iters_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_208);
						} LA27: ;
					}
					{
						if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1); }
						if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL)) < ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL)) > ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)); }
						if (!(((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1))) goto LA32_;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1); }
						if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1); }
						(*c).code->data[i] = (*c).code->data[d_2];
					}
					goto LA30_;
					LA32_: ;
					{
						NI TM__24XApAWKNvaMkcyklm8bNA_209;
						NI TM__24XApAWKNvaMkcyklm8bNA_210;
						NI TM__24XApAWKNvaMkcyklm8bNA_211;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1); }
						if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL)) < ((NI) (IL64(-9223372036854775807) - IL64(1))) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL)) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL), ((NI) (IL64(-9223372036854775807) - IL64(1))), ((NI) IL64(9223372036854775807))); }
						if (nimSubInt(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))), ((NI) 8388608), &TM__24XApAWKNvaMkcyklm8bNA_209)) { raiseOverflow(); };
						if (nimAddInt(i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_209), &TM__24XApAWKNvaMkcyklm8bNA_210)) { raiseOverflow(); };
						if (!!((d_2 == (NI)(TM__24XApAWKNvaMkcyklm8bNA_210)))) goto LA35_;
						if (nimSubInt(d_2, i, &TM__24XApAWKNvaMkcyklm8bNA_211)) { raiseOverflow(); };
						finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A(c, i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_211));
					}
					goto LA30_;
					LA35_: ;
					LA30_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				if (nimAddInt(i_2, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_212)) { raiseOverflow(); };
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_212);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, genProc__82SK3f7Ee6e9aktSfHKYXUw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NI result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	result = (NI)0;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
	if ((NU)(((NI) 5)) >= (NU)((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 5),((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)-1); }
	x = (*(*s).ast)._kind_6.sons->data[((NI) 5)];
	{
		NIM_BOOL T3_;
		NI last;
		NI T7_;
		NI TM__24XApAWKNvaMkcyklm8bNA_4;
		NU64 eofInstr;
		NI T14_;
		NI TM__24XApAWKNvaMkcyklm8bNA_5;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		NIM_BOOL T21_;
		NI procStart;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* p;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* T22_;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* oldPrc;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (T3_) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
		T3_ = ((*(*x)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = ((*c).code ? (*c).code->Sup.len : 0);
		if (nimSubInt(T7_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_4)) { raiseOverflow(); };
		last = (NI)(TM__24XApAWKNvaMkcyklm8bNA_4);
		eofInstr = (NU64)0;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = (((NI) 0) <= last);
			if (!(T10_)) goto LA11_;
			if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1); }
			if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL)) < ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL)) > ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)); }
			T10_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0));
			LA11_: ;
			if (!T10_) goto LA12_;
			if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1); }
			eofInstr = (*c).code->data[last];
			if ((last) < ((NI) 0) || (last) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(last, ((NI) 0), ((NI) IL64(9223372036854775807))); }
			asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) setLengthSeqV2(&((*c).code)->Sup, (&NTI__YdLNCDKYeipzJx3I8Xw82Q_), ((NI) (last))));
			if ((last) < ((NI) 0) || (last) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(last, ((NI) 0), ((NI) IL64(9223372036854775807))); }
			asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_), ((NI) (last))));
		}
		LA12_: ;
		T14_ = ((*c).code ? (*c).code->Sup.len : 0);
		if (nimAddInt(T14_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_5)) { raiseOverflow(); };
		result = (NI)(TM__24XApAWKNvaMkcyklm8bNA_5);
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T19_;
			if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA17_;
			nimZeroMem((void*)T19_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T19_[0] = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result)));
			T19_[1] = x;
			x = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), T19_, 2);
		}
		goto LA15_;
		LA17_: ;
		{
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 0)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
			asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 0)]), newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result))));
		}
		LA15_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 5)) >= (NU)((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 5),((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)-1); }
		asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 5)]), x);
		T21_ = (NIM_BOOL)0;
		T21_ = isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_2ast(s);
		body = transformBody__ocxOgPRHWfivNZELIhOv7w((*c).graph, s, !(T21_));
		procStart = xjmp__CFWx1g9bVDa8Rcl7VoJ82Wg(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
		T22_ = (tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ*)0;
		T22_ = (tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ*) newObj((&NTI__FM7mzTFsA8pyUhXVKKO6Gw_), sizeof(tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ));
		if ((*T22_).blocks) { nimGCunrefNoCycle((*T22_).blocks); (*T22_).blocks = NIM_NIL; }
		asgnRef((void**) (&(*T22_).sym), s);
		p = T22_;
		oldPrc = (*c).prc;
		asgnRef((void**) (&(*c).prc), p);
		genParams__yHS9cbYsE7NJ9b9appE7eVGpA(c, (*(*s).typ).n);
		{
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
			if (!(T25_)) goto LA26_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 2)) >= (NU)((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)-1); }
			T25_ = !(((*(*(*s).ast)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
			LA26_: ;
			if (!T25_) goto LA27_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
			if ((NU)(((NI) 2)) >= (NU)((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 2),((*(*s).ast)._kind_6.sons ? (*(*s).ast)._kind_6.sons->Sup.len : 0)-1); }
			genGenericParams__4wahcx9bmpD7ffT1schyhBg(c, (*(*s).ast)._kind_6.sons->data[((NI) 2)]);
		}
		LA27_: ;
		{
			NIM_BOOL colontmp_;
			tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
			NI TM__24XApAWKNvaMkcyklm8bNA_15;
			if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0)) goto LA31_;
			colontmp_ = NIM_TRUE;
			colontmp__2 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
			if ((NU)((*(*c).prc).maxSlots) > (NU)(65535)){ raiseIndexError2((*(*c).prc).maxSlots, 65535); }
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0].Field0 = colontmp_;
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0].Field1 = colontmp__2;
			if (nimAddInt((*(*c).prc).maxSlots, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_15)) { raiseOverflow(); };
			(*(*c).prc).maxSlots = (NI)(TM__24XApAWKNvaMkcyklm8bNA_15);
		}
		LA31_: ;
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, body, 0);
		gABC__UIRVqkSOpk264WekB9cpXRw(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, procStart);
		if ((NI64)((NU64)((NU64)((NU64)(eofInstr) >> (NU64)(8ULL)) & 65535ULL)) < ((NI) 0) || (NI64)((NU64)((NU64)((NU64)(eofInstr) >> (NU64)(8ULL)) & 65535ULL)) > ((NI) 65535)){ raiseRangeErrorI((NU64)((NU64)((NU64)(eofInstr) >> (NU64)(8ULL)) & 65535ULL), ((NI) 0), ((NI) 65535)); }
		gABC__UIRVqkSOpk264WekB9cpXRw(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) ((NU64)((NU64)((NU64)(eofInstr) >> (NU64)(8ULL)) & 65535ULL))), ((NI) 0), ((NI) 0));
		optimizeJumps__c4Ny4S2QTBXPlybhF7naeg(c, result);
		(*s).offset = (*(*c).prc).maxSlots;
		asgnRef((void**) (&(*c).prc), oldPrc);
	}
	goto LA1_;
	LA5_: ;
	{
		(*(*c).prc).maxSlots = (*s).offset;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3)); }
		if ((NU)(((NI) 0)) >= (NU)((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)){ raiseIndexError2(((NI) 0),((*x)._kind_6.sons ? (*x)._kind_6.sons->Sup.len : 0)-1); }
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*(*x)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*x)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0))){ raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51)); }
		result = ((NI) ((*(*x)._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof__11BORrgbqmd0BtSK02pBqQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {
	NI last;
	NI T1_;
	NI TM__24XApAWKNvaMkcyklm8bNA_213;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	if (nimSubInt(T1_, ((NI) 1), &TM__24XApAWKNvaMkcyklm8bNA_213)) { raiseOverflow(); };
	last = (NI)(TM__24XApAWKNvaMkcyklm8bNA_213);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) 0) <= last);
		if (!(T4_)) goto LA5_;
		if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)){ raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1); }
		if ((NI64)((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL)) < ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0) || (NI64)((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL)) > ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)){ raiseRangeErrorI((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 186)); }
		T4_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) ((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		{
			NI T10_;
			NI T11_;
			T10_ = ((*c).code ? (*c).code->Sup.len : 0);
			T11_ = ((*c).debug ? (*c).debug->Sup.len : 0);
			if (!!((T10_ == T11_))) goto LA12_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_214));
		}
		LA12_: ;
		if ((last) < ((NI) 0) || (last) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(last, ((NI) 0), ((NI) IL64(9223372036854775807))); }
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) setLengthSeqV2(&((*c).code)->Sup, (&NTI__YdLNCDKYeipzJx3I8Xw82Q_), ((NI) (last))));
		if ((last) < ((NI) 0) || (last) > ((NI) IL64(9223372036854775807))){ raiseRangeErrorI(last, ((NI) 0), ((NI) IL64(9223372036854775807))); }
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_), ((NI) (last))));
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genExpr__iSa9ao3PEkzo8fCmeMa1Kvg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresValue) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof__11BORrgbqmd0BtSK02pBqQ(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&d), 0);
	{
		if (!(((NI) (d)) < ((NI) 0))) goto LA4_;
		{
			if (!requiresValue) goto LA8_;
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_215));
		}
		LA8_: ;
		d = ((NI) 0);
	}
	LA4_: ;
	if ((d) < ((NI) 0) || (d) > ((NI) 65535)){ raiseRangeErrorI(d, ((NI) 0), ((NI) 65535)); }
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) (d)), ((NI) 0), ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genStmt__PEuKCZcy9a56kIfBOLoHU5Q_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof__11BORrgbqmd0BtSK02pBqQ(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen__jht1XYyYWKYwfRpm130Gcg(c, n, (&d), 0);
	gABC__UIRVqkSOpk264WekB9cpXRw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) 0), ((NI) 0), ((NI) 0));
	{
		if (!(((NI) 0) <= ((NI) (d)))) goto LA4_;
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_216));
	}
	LA4_: ;
	return result;
}
