/* Generated by Nim Compiler v1.6.14 */
#define NIM_INTBITS 64

#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__CRPlhL1hATwZc5hefTGOQQ tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg;
typedef struct tySequence__YdLNCDKYeipzJx3I8Xw82Q tySequence__YdLNCDKYeipzJx3I8Xw82Q;
typedef struct tySequence__Gl8s23LA3EFz4kIlya9ameg tySequence__Gl8s23LA3EFz4kIlya9ameg;
typedef struct tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tySequence__eJWcQvhuN2q0rM6THoByqQ tySequence__eJWcQvhuN2q0rM6THoByqQ;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg;
typedef struct tyObject_Profiler__vPk6nUD8QeNW2bHH4WZfpw tyObject_Profiler__vPk6nUD8QeNW2bHH4WZfpw;
typedef struct tyObject_TStackFrame__0GloFoQJxIWYG3W9cguBcAQ tyObject_TStackFrame__0GloFoQJxIWYG3W9cguBcAQ;
typedef struct tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g;
typedef struct tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg;
typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
typedef struct tyTuple__0y4YQo9b9byJ83c0H89bBtdRw tyTuple__0y4YQo9b9byJ83c0H89bBtdRw;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyTuple__5pg9aIYdyrJM6GlDgyTDumg tyTuple__5pg9aIYdyrJM6GlDgyTDumg;
typedef struct tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw {
  RootObj Sup;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
};
typedef NU8 tyEnum_TEvalMode__iWSxkwmhTDY7fh9aYmp69akQ;
typedef NU8 tySet_tyEnum_TSandboxFlag__6jKj8dTCDIUGegA1P2RahA;
struct tyObject_Profiler__vPk6nUD8QeNW2bHH4WZfpw {
NF tEnter;
tyObject_TStackFrame__0GloFoQJxIWYG3W9cguBcAQ* tos;
};
struct tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg {
tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
NI counter;
};
struct tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ {
  tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw Sup;
tySequence__YdLNCDKYeipzJx3I8Xw82Q* code;
tySequence__Gl8s23LA3EFz4kIlya9ameg* debug;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* globals;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constants;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* types;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* currentExceptionA;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* currentExceptionB;
NI exceptionInstr;
tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw* prc;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* callsite;
tyEnum_TEvalMode__iWSxkwmhTDY7fh9aYmp69akQ mode;
tySet_tyEnum_TSandboxFlag__6jKj8dTCDIUGegA1P2RahA features;
NIM_BOOL traceActive;
NI loopIterations;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw comesFromHeuristic;
tySequence__eJWcQvhuN2q0rM6THoByqQ* callbacks;
NimStringDesc* errorFlag;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph;
NI oldErrorCount;
tyObject_Profiler__vPk6nUD8QeNW2bHH4WZfpw profiler;
NI* templInstCounter;
tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g* vmstateDiff;
tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg procToCodePos;
};
struct tyTuple__0y4YQo9b9byJ83c0H89bBtdRw {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA* args, void* ClE_0);
void* ClE_0;
} tyProc__vkuGXw0bPP9b9cpazTHQY9bqg;
struct tyTuple__5pg9aIYdyrJM6GlDgyTDumg {
NimStringDesc* Field0;
tyProc__vkuGXw0bPP9b9cpazTHQY9bqg Field1;
};
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
struct tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA {
NI ra;
NI rb;
NI rc;
tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA* slots;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* currentException;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw currentLineInfo;
};
struct tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g {
  TGenericSeq Sup;
  tyTuple__0y4YQo9b9byJ83c0H89bBtdRw data[SEQ_DECL_SIZE];
};
struct tySequence__YdLNCDKYeipzJx3I8Xw82Q {
  TGenericSeq Sup;
  NU64 data[SEQ_DECL_SIZE];
};
struct tySequence__Gl8s23LA3EFz4kIlya9ameg {
  TGenericSeq Sup;
  tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__eJWcQvhuN2q0rM6THoByqQ {
  TGenericSeq Sup;
  tyTuple__5pg9aIYdyrJM6GlDgyTDumg data[SEQ_DECL_SIZE];
};
struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
  TGenericSeq Sup;
  tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3320)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4798)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStrNode__ast_3805)(NimStringDesc* strVal, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNode__ast_3711)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(void, append__macrocacheimpl_4)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5319)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5281)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5326)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5324)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5275)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyTree__ast_4432)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
STRING_LITERAL(TM__2OYppT69ajXDLATpXvoLHDA_2, "inc", 3);
extern TNimType NTIseqLLpsym_pnodeTT__ztPIC2M9bqhs0KjYuE9c9cN8g_;
STRING_LITERAL(TM__2OYppT69ajXDLATpXvoLHDA_3, "add", 3);
STRING_LITERAL(TM__2OYppT69ajXDLATpXvoLHDA_4, "incl", 4);
STRING_LITERAL(TM__2OYppT69ajXDLATpXvoLHDA_5, "put", 3);
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5228;
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5319)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5281)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5324)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5275((&gch__system_5228.zct), c);
}
static N_INLINE(void, decRef__system_5326)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5324(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5281(src);
		incRef__system_5319(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5281((*dest));
		decRef__system_5326(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, append__macrocacheimpl_4)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyTuple__0y4YQo9b9byJ83c0H89bBtdRw T1_;
	NI T2_;
	nimZeroMem((void*)(&T1_), sizeof(tyTuple__0y4YQo9b9byJ83c0H89bBtdRw));
	T1_.Field0 = (*c).module;
	T1_.Field1 = n;
	asgnRef((void**) (&(*c).vmstateDiff), (tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g*) incrSeqV3((TGenericSeq*)((*c).vmstateDiff), (&NTIseqLLpsym_pnodeTT__ztPIC2M9bqhs0KjYuE9c9cN8g_)));
	T2_ = (*c).vmstateDiff->Sup.len++;
	asgnRef((void**) (&(*c).vmstateDiff->data[T2_].Field0), T1_.Field0);
	asgnRef((void**) (&(*c).vmstateDiff->data[T2_].Field1), T1_.Field1);
}
N_LIB_PRIVATE N_NIMCALL(void, recordInc__macrocacheimpl_20)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* key, NI64 by) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* recorded;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	recorded = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 163), info);
	T1_ = NIM_NIL;
	T1_ = newStrNode__ast_3805(((NimStringDesc*) &TM__2OYppT69ajXDLATpXvoLHDA_2), info);
	add__ast_4798(recorded, T1_);
	T2_ = NIM_NIL;
	T2_ = newStrNode__ast_3805(key, info);
	add__ast_4798(recorded, T2_);
	T3_ = NIM_NIL;
	T3_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), by);
	add__ast_4798(recorded, T3_);
	append__macrocacheimpl_4(c, recorded);
}
N_LIB_PRIVATE N_NIMCALL(void, recordAdd__macrocacheimpl_61)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* recorded;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	recorded = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 163), info);
	T1_ = NIM_NIL;
	T1_ = newStrNode__ast_3805(((NimStringDesc*) &TM__2OYppT69ajXDLATpXvoLHDA_3), info);
	add__ast_4798(recorded, T1_);
	T2_ = NIM_NIL;
	T2_ = newStrNode__ast_3805(key, info);
	add__ast_4798(recorded, T2_);
	T3_ = NIM_NIL;
	T3_ = copyTree__ast_4432(val);
	add__ast_4798(recorded, T3_);
	append__macrocacheimpl_4(c, recorded);
}
N_LIB_PRIVATE N_NIMCALL(void, recordIncl__macrocacheimpl_79)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* recorded;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	recorded = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 163), info);
	T1_ = NIM_NIL;
	T1_ = newStrNode__ast_3805(((NimStringDesc*) &TM__2OYppT69ajXDLATpXvoLHDA_4), info);
	add__ast_4798(recorded, T1_);
	T2_ = NIM_NIL;
	T2_ = newStrNode__ast_3805(key, info);
	add__ast_4798(recorded, T2_);
	T3_ = NIM_NIL;
	T3_ = copyTree__ast_4432(val);
	add__ast_4798(recorded, T3_);
	append__macrocacheimpl_4(c, recorded);
}
N_LIB_PRIVATE N_NIMCALL(void, recordPut__macrocacheimpl_38)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* key, NimStringDesc* k, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* recorded;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
	recorded = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 163), info);
	T1_ = NIM_NIL;
	T1_ = newStrNode__ast_3805(((NimStringDesc*) &TM__2OYppT69ajXDLATpXvoLHDA_5), info);
	add__ast_4798(recorded, T1_);
	T2_ = NIM_NIL;
	T2_ = newStrNode__ast_3805(key, info);
	add__ast_4798(recorded, T2_);
	T3_ = NIM_NIL;
	T3_ = newStrNode__ast_3805(k, info);
	add__ast_4798(recorded, T3_);
	T4_ = NIM_NIL;
	T4_ = copyTree__ast_4432(val);
	add__ast_4798(recorded, T4_);
	append__macrocacheimpl_4(c, recorded);
}
