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

#include "nimbase.h"
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <setjmp.h>
#include <signal.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 Exception Exception;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
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_BaseChunk__ooTOQtY4pXzug675aBB6BA tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA;
typedef struct tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TSafePoint TSafePoint;
typedef struct RootObj RootObj;
typedef struct tySequence__QbmGqFaLnb1IWWToREeaIA tySequence__QbmGqFaLnb1IWWToREeaIA;
typedef struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA;
typedef struct GcFrameHeader GcFrameHeader;
typedef struct tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g;
typedef struct tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw;
typedef struct tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw;
typedef struct tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg;
typedef struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ;
typedef struct tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA;
typedef struct tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw;
typedef struct tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg;
typedef struct tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA;
typedef struct tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw;
typedef struct tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw;
typedef struct tyObject_OSError__THeHlGxHorUQ17FON5jY0g tyObject_OSError__THeHlGxHorUQ17FON5jY0g;
typedef struct tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg;
typedef struct tySequence__9aKpvUh0ca6Bp9cKAwrowqUg tySequence__9aKpvUh0ca6Bp9cKAwrowqUg;
typedef struct tyObject_RangeDefect__sGgAy9cDrJNoXUSezcMnS5w tyObject_RangeDefect__sGgAy9cDrJNoXUSezcMnS5w;
typedef struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw;
typedef struct tyTuple__PsEhl3dzznmmJiLAuIXZOg tyTuple__PsEhl3dzznmmJiLAuIXZOg;
typedef struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg tySequence__QnmOtn1Iv4LvxOXoMn8Rbg;
typedef struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w;
typedef struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA;
typedef struct tySequence__4Murtwnm0Fyc7F9acrytEXw tySequence__4Murtwnm0Fyc7F9acrytEXw;
typedef struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA;
typedef struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg tySequence__q9bTuOB0JXh1iZ3CSGdRLbg;
typedef struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA;
typedef struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA;
typedef struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw;
typedef struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw;
typedef struct tySequence__lo3S1lKyiPLhGGB9cBawd6A tySequence__lo3S1lKyiPLhGGB9cBawd6A;
typedef struct tySequence__oKtVqsc9bQVCNyrijELM4OQ tySequence__oKtVqsc9bQVCNyrijELM4OQ;
typedef struct tyTuple__Db8CrQifKGIsKc3w71w7Lw tyTuple__Db8CrQifKGIsKc3w71w7Lw;
typedef struct tySequence__qy6Iwdy00wN560qud54HTg tySequence__qy6Iwdy00wN560qud54HTg;
typedef struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg;
typedef struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ tySequence__k67v9bwvvQDmS1ynyGGUbeQ;
typedef struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ;
typedef struct tySequence__cLsClAAfd0MKkoBQVyvdvw tySequence__cLsClAAfd0MKkoBQVyvdvw;
typedef struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw tyTuple__FEYH9alRJhHD0uTKF2vnIqw;
typedef struct tySequence__fZ9aerq6GRgd1Id9b1cf7NuA tySequence__fZ9aerq6GRgd1Id9b1cf7NuA;
typedef struct tyTuple__D9cr9aW4733sg56WAiSRpttQ tyTuple__D9cr9aW4733sg56WAiSRpttQ;
typedef struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw;
typedef struct tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg;
typedef struct tySequence__q9cq1Li6c1nMjHpacEbCj0g tySequence__q9cq1Li6c1nMjHpacEbCj0g;
typedef struct tySequence__vAEg9bb6P9cAvzrQae7aeKyA tySequence__vAEg9bb6P9cAvzrQae7aeKyA;
typedef struct tyObject_DepNcolonObjectType___T7a6etQXL0CBg8BjsbsXpA tyObject_DepNcolonObjectType___T7a6etQXL0CBg8BjsbsXpA;
typedef struct tySequence__UnGSk9aaLosDroi2QDrlOfQ tySequence__UnGSk9aaLosDroi2QDrlOfQ;
typedef struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg;
typedef struct tySequence__EK3kb9a029axOL6ZINxWj1hw tySequence__EK3kb9a029axOL6ZINxWj1hw;
typedef struct tyTuple__Ztb9b8BdGY9bQ5Qd69ajoC2fQ tyTuple__Ztb9b8BdGY9bQ5Qd69ajoC2fQ;
typedef struct tySequence__Jhh6ks9carRtwV9aOuM8yMNw tySequence__Jhh6ks9carRtwV9aOuM8yMNw;
typedef struct tyTuple__8vGER9aaTtt9bUk9avNQ3fEIg tyTuple__8vGER9aaTtt9bUk9avNQ3fEIg;
typedef struct tySequence__GR8qmV1kNRcoQ2g76VFy3A tySequence__GR8qmV1kNRcoQ2g76VFy3A;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyTuple__kuMQ1fbjJlHtwKTmBGAe6g tyTuple__kuMQ1fbjJlHtwKTmBGAe6g;
typedef struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ tySequence__6H5Oh5UUvVCLiakt9aTwtUQ;
typedef struct tyObject_DivByZeroDefect__1jktkmId3HEtpgl3NFg3mg tyObject_DivByZeroDefect__1jktkmId3HEtpgl3NFg3mg;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA;
typedef struct tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA;
typedef struct tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct tySequence__kGCKZrVGM65uzo2SGY9bxMQ tySequence__kGCKZrVGM65uzo2SGY9bxMQ;
typedef struct tySequence__TXTtz79abNCf5jWrlvNZpOw tySequence__TXTtz79abNCf5jWrlvNZpOw;
typedef struct tySequence__ShKVNN7kN9a0hT6rhE7ADzg tySequence__ShKVNN7kN9a0hT6rhE7ADzg;
typedef struct tyObject_History__nemqwCae5qEp6Zk6QXd7RA tyObject_History__nemqwCae5qEp6Zk6QXd7RA;
typedef struct tySequence__ed0C0uAUZPhvw3RAc5hfYg tySequence__ed0C0uAUZPhvw3RAc5hfYg;
typedef struct tySequence__s4MJIltFooh7znZAPDHauw tySequence__s4MJIltFooh7znZAPDHauw;
typedef struct tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ;
typedef struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ tyTuple__Q066krdfdsSnR5DaFMOk9bQ;
typedef struct tySequence__PPSNlMjxeLUadep32xHHyA tySequence__PPSNlMjxeLUadep32xHHyA;
typedef struct tyObject_TNodePair__LqlRPj2RevSKiPVchbJI5Q tyObject_TNodePair__LqlRPj2RevSKiPVchbJI5Q;
typedef struct tySequence__shxop0zPIs5Ec3k71aCLuQ tySequence__shxop0zPIs5Ec3k71aCLuQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__IjAwukZ9aSEsol9c48He4FYQ tySequence__IjAwukZ9aSEsol9c48He4FYQ;
typedef struct tyTuple__T1RBf8m9axj9bvJRlYejkpkQ tyTuple__T1RBf8m9axj9bvJRlYejkpkQ;
typedef struct tySequence__qIo1GWQhO9cOgsAJDKUY8kw tySequence__qIo1GWQhO9cOgsAJDKUY8kw;
typedef struct tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g;
typedef struct tySequence__wbHXzzfwTCmsKuzoRrgI3g tySequence__wbHXzzfwTCmsKuzoRrgI3g;
typedef struct tySequence__1KIIbxJRtGjuxcp9a9bbC09cA tySequence__1KIIbxJRtGjuxcp9a9bbC09cA;
typedef struct tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA;
typedef struct tySequence__4eQHGndY6XBYpFOH09apV8Q tySequence__4eQHGndY6XBYpFOH09apV8Q;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tySequence__hIN6NiV2heFnG19c6HdDacw tySequence__hIN6NiV2heFnG19c6HdDacw;
typedef struct tyObject_MappingcolonObjectType___DlP7ZB0VJF31Xvkyqvp6Qw tyObject_MappingcolonObjectType___DlP7ZB0VJF31Xvkyqvp6Qw;
typedef struct tySequence__spLz9azjOgbpYKrtmm9aMHEw tySequence__spLz9azjOgbpYKrtmm9aMHEw;
typedef struct tyObject_TocItem__f5Z7HAch49an2qSNSGguP7Q tyObject_TocItem__f5Z7HAch49an2qSNSGguP7Q;
typedef struct tySequence__JSDKkkE7gMRTYRB9bRZ9bH7Q tySequence__JSDKkkE7gMRTYRB9bRZ9bH7Q;
typedef struct tyObject_ItemFragment__s61pcFD9bQO8uWIzfNjndzg tyObject_ItemFragment__s61pcFD9bQO8uWIzfNjndzg;
typedef struct tyObject_RstNode__o7Mf73b09cQpxU9cdK19aKkqQ tyObject_RstNode__o7Mf73b09cQpxU9cdK19aKkqQ;
typedef struct tySequence__YYKlUlCjbni3i58WM0kegw tySequence__YYKlUlCjbni3i58WM0kegw;
typedef struct tyTuple__KPVKrfx82Va9azSnb0dl1RQ tyTuple__KPVKrfx82Va9azSnb0dl1RQ;
typedef struct tySequence__bLuZlbeJhlfg9axVlmjdJXw tySequence__bLuZlbeJhlfg9axVlmjdJXw;
typedef struct tyObject_Item__T7UjOImKJxoSfGY6SB3KMg tyObject_Item__T7UjOImKJxoSfGY6SB3KMg;
typedef struct tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA;
typedef struct tySequence__hf5PiuqqytWiEcddgIR5sQ tySequence__hf5PiuqqytWiEcddgIR5sQ;
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9axCnCRMUx32AHzFgBrzSMg) (Exception* e);
typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
typedef N_NIMCALL_PTR(void, tyProc__NFmM6mqUOVW3cJg4yvk8Fw) (Exception* e);
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 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 tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* tyUncheckedArray__ZmKqClc9ax53kOIBjZHAevQ[1];
struct tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA {
NI prevSize;
NI size;
};
struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw {
  tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA Sup;
tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* next;
tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* prev;
tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw* freeList;
NI free;
NI acc;
NIM_ALIGN(16) NU8 data[SEQ_DECL_SIZE];
};
typedef NI8 tyArray__mkmEeKAWtk2yS9bBb1lUWXA[256];
struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA {
  tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA Sup;
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* next;
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* prev;
NIM_ALIGN(16) NU8 data[SEQ_DECL_SIZE];
};
struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA {
NI size;
NI acc;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* next;
};
typedef NU tyArray__VqSA39cBDWnwnJySTumCdjw[8];
struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg {
tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* next;
NI key;
tyArray__VqSA39cBDWnwnJySTumCdjw bits;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
struct tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw {
tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw* next;
NI zeroField;
};
typedef tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* tyUncheckedArray__lED78RHKnUlkUe9bGKidr6g[1];
typedef NI tyArray__OQPb4glXtXQGOV29cAX1uQg[4];
struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ {
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* next;
NU key;
tyArray__OQPb4glXtXQGOV29cAX1uQg bits;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef N_NIMCALL_PTR(void, tyProc__W6IXMh2CA4X1rFYGjUb4yg) (NimStringDesc* msg);
struct RootObj {
TNimType* m_type;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__QbmGqFaLnb1IWWToREeaIA* trace;
Exception* up;
};
struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
typedef NU8 tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ;
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
typedef NU8 tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
};
typedef N_NIMCALL_PTR(void, Finalizer) (void* self);
struct tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw {
  Exception Sup;
};
struct tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g {
  tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw Sup;
};
struct tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg {
  tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw Sup;
};
struct tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw {
  tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg Sup;
};
typedef NIM_CHAR tyArray__gpc2RrLEcWgv7ONpLYNHOw[2001];
typedef N_NOCONV_PTR(void, tyProc__ZEo3s9cIqJYP74f7GMZM2FA) (int a);
typedef tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ tyArray__9aTRall1siQT9bXabu2aKXUg[3500];
typedef NIM_CHAR tyArray__4y4exD1dAnu89atYV5jeSuw[250];
struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ {
  Exception Sup;
};
struct tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA {
  tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ Sup;
};
struct tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw {
  tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA Sup;
};
struct tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg {
  tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw Sup;
};
struct tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA {
  tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ Sup;
};
struct tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw {
  tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw Sup;
};
struct tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw {
  tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw Sup;
};
struct tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw {
NI a;
NI b;
};
struct tyObject_OSError__THeHlGxHorUQ17FON5jY0g {
  tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ Sup;
NI32 errorCode;
};
struct tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg {
  tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA Sup;
};
typedef NU8 tyArray__YtcvxHNKV4YiecPE9ap1mcA[20];
typedef NF tyArray__yp9a149boki9cCCWgfXI0Ip4A[23];
typedef NIM_CHAR tyArray__PGLh8drTnaWr3s1qUUSq2Q[500];
struct tyObject_RangeDefect__sGgAy9cDrJNoXUSezcMnS5w {
  tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw Sup;
};
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
} _kind_4;
struct {tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
} _kind_5;
struct {tySequence__IeU9azYSNIK3V9b36Ir6NZcw* sons;
} _kind_6;
};
};
typedef NU8 tyArray__cdsir9aPB24hAk6k77P9b9bCA[8];
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ {
NU32 module;
NI32 item;
};
struct tyTuple__PsEhl3dzznmmJiLAuIXZOg {
NU32 Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA {
NU16 line;
NI16 col;
NU32 file;
};
struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA Field1;
};
struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA {
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
NI32 operand;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeId_0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
};
typedef NU8 tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw;
typedef NU64 tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
typedef NU16 tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag;
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU16 tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw;
typedef NU8 tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ;
struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA {
tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA {
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
NU32 name;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typ;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
NI32 ast;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw locFlags;
tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA annex;
NI32 constraint;
};
typedef NU8 tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg;
typedef NU8 tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg;
typedef NU64 tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw {
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* types;
NI32 n;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__Db8CrQifKGIsKc3w71w7Lw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ key;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* concreteTypes;
};
typedef NU8 tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ;
struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ {
tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
NI Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* head;
tySequence__q9cq1Li6c1nMjHpacEbCj0g* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyTuple__D9cr9aW4733sg56WAiSRpttQ {
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw Field0;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw Field1;
};
struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg {
NI module;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ packed_0;
};
struct tyTuple__Ztb9b8BdGY9bQ5Qd69ajoC2fQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field0;
NimStringDesc* Field1;
};
struct tyTuple__8vGER9aaTtt9bUk9avNQ3fEIg {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field0;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field1;
};
struct tyTuple__kuMQ1fbjJlHtwKTmBGAe6g {
NI Field0;
NI Field1;
NimStringDesc* Field2;
};
struct tyObject_DivByZeroDefect__1jktkmId3HEtpgl3NFg3mg {
  tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg Sup;
};
typedef NU8 tyEnum_TRegisterKind__drcwtBjsw5cM6mbg9chBM9bg;
struct tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA {
tyEnum_TRegisterKind__drcwtBjsw5cM6mbg9chBM9bg kind;
union{
NI64 intVal;
NF floatVal;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node;
tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA* regAddr;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** nodeAddr;
};
};
struct tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* concreteTypes;
NI compilesId;
};
typedef NU8 tyEnum_Nilability__XDKthSvkddpY2lzfr6uPgA;
typedef NU8 tyEnum_TransitionKind__MTYoDYWJEv6ZS8OvFNF5IA;
struct tyObject_History__nemqwCae5qEp6Zk6QXd7RA {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tyEnum_Nilability__XDKthSvkddpY2lzfr6uPgA nilability;
tyEnum_TransitionKind__MTYoDYWJEv6ZS8OvFNF5IA kind;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node;
};
typedef NU16 tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw;
struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
};
struct tyObject_TNodePair__LqlRPj2RevSKiPVchbJI5Q {
NI h;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key;
NI val;
};
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
struct tyTuple__T1RBf8m9axj9bvJRlYejkpkQ {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field0;
NIM_BOOL Field1;
NI Field2;
};
typedef NU8 tyEnum_JsonNodeKind__SME9c3kTLtQAHAI8HiX0v8A;
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
typedef NU8 tyEnum_TJSTypeKind__tpKLAXT6CPyZ9cMNxf1ZsAQ;
struct tyObject_TocItem__f5Z7HAch49an2qSNSGguP7Q {
NimStringDesc* content;
NimStringDesc* sortName;
};
struct tyObject_ItemFragment__s61pcFD9bQO8uWIzfNjndzg {
NIM_BOOL isRst;
union{
struct {tyObject_RstNode__o7Mf73b09cQpxU9cdK19aKkqQ* rst;
} _isRst_1;
struct {NimStringDesc* str;
} _isRst_2;
};
};
typedef NU8 tyEnum_FootnoteType__jXnI8xEO3SXxVR9afYCJnyQ;
struct tyTuple__KPVKrfx82Va9azSnb0dl1RQ {
tyEnum_FootnoteType__jXnI8xEO3SXxVR9afYCJnyQ Field0;
NI Field1;
NI Field2;
NI Field3;
NimStringDesc* Field4;
};
struct tyObject_Item__T7UjOImKJxoSfGY6SB3KMg {
tySequence__JSDKkkE7gMRTYRB9bRZ9bH7Q* descRst;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* substitutions;
NimStringDesc* sortName;
};
struct tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linkTitle;
NimStringDesc* linkDesc;
};
struct tySequence__QbmGqFaLnb1IWWToREeaIA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__9aKpvUh0ca6Bp9cKAwrowqUg {
  TGenericSeq Sup;
  NI16 data[SEQ_DECL_SIZE];
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence__PXIzfWocnrafGz5p3CP5LA {
  TGenericSeq Sup;
  tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw {
  TGenericSeq Sup;
  tyTuple__PsEhl3dzznmmJiLAuIXZOg data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg {
  TGenericSeq Sup;
  tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w data[SEQ_DECL_SIZE];
};
struct tySequence__4Murtwnm0Fyc7F9acrytEXw {
  TGenericSeq Sup;
  tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA data[SEQ_DECL_SIZE];
};
struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg {
  TGenericSeq Sup;
  tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA data[SEQ_DECL_SIZE];
};
struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw {
  TGenericSeq Sup;
  tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw data[SEQ_DECL_SIZE];
};
struct tySequence__lo3S1lKyiPLhGGB9cBawd6A {
  TGenericSeq Sup;
  tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ data[SEQ_DECL_SIZE];
};
struct tySequence__oKtVqsc9bQVCNyrijELM4OQ {
  TGenericSeq Sup;
  tyTuple__Db8CrQifKGIsKc3w71w7Lw data[SEQ_DECL_SIZE];
};
struct tySequence__qy6Iwdy00wN560qud54HTg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg data[SEQ_DECL_SIZE];
};
struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ {
  TGenericSeq Sup;
  tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ data[SEQ_DECL_SIZE];
};
struct tySequence__cLsClAAfd0MKkoBQVyvdvw {
  TGenericSeq Sup;
  tyTuple__FEYH9alRJhHD0uTKF2vnIqw data[SEQ_DECL_SIZE];
};
struct tySequence__fZ9aerq6GRgd1Id9b1cf7NuA {
  TGenericSeq Sup;
  tyTuple__D9cr9aW4733sg56WAiSRpttQ data[SEQ_DECL_SIZE];
};
struct tySequence__vAEg9bb6P9cAvzrQae7aeKyA {
  TGenericSeq Sup;
  tyObject_DepNcolonObjectType___T7a6etQXL0CBg8BjsbsXpA* data[SEQ_DECL_SIZE];
};
struct tySequence__UnGSk9aaLosDroi2QDrlOfQ {
  TGenericSeq Sup;
  tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg data[SEQ_DECL_SIZE];
};
struct tySequence__EK3kb9a029axOL6ZINxWj1hw {
  TGenericSeq Sup;
  tyTuple__Ztb9b8BdGY9bQ5Qd69ajoC2fQ data[SEQ_DECL_SIZE];
};
struct tySequence__Jhh6ks9carRtwV9aOuM8yMNw {
  TGenericSeq Sup;
  tyTuple__8vGER9aaTtt9bUk9avNQ3fEIg data[SEQ_DECL_SIZE];
};
struct tySequence__GR8qmV1kNRcoQ2g76VFy3A {
  TGenericSeq Sup;
  tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* data[SEQ_DECL_SIZE];
};
struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ {
  TGenericSeq Sup;
  NU8 data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__kGCKZrVGM65uzo2SGY9bxMQ {
  TGenericSeq Sup;
  tyEnum_Nilability__XDKthSvkddpY2lzfr6uPgA data[SEQ_DECL_SIZE];
};
struct tySequence__ShKVNN7kN9a0hT6rhE7ADzg {
  TGenericSeq Sup;
  tyObject_History__nemqwCae5qEp6Zk6QXd7RA data[SEQ_DECL_SIZE];
};
struct tySequence__TXTtz79abNCf5jWrlvNZpOw {
  TGenericSeq Sup;
  tySequence__ShKVNN7kN9a0hT6rhE7ADzg* data[SEQ_DECL_SIZE];
};
struct tySequence__ed0C0uAUZPhvw3RAc5hfYg {
  TGenericSeq Sup;
  tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* data[SEQ_DECL_SIZE];
};
struct tySequence__s4MJIltFooh7znZAPDHauw {
  TGenericSeq Sup;
  tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* data[SEQ_DECL_SIZE];
};
struct tySequence__PPSNlMjxeLUadep32xHHyA {
  TGenericSeq Sup;
  tyObject_TNodePair__LqlRPj2RevSKiPVchbJI5Q data[SEQ_DECL_SIZE];
};
struct tySequence__shxop0zPIs5Ec3k71aCLuQ {
  TGenericSeq Sup;
  NIM_BOOL data[SEQ_DECL_SIZE];
};
struct tySequence__IjAwukZ9aSEsol9c48He4FYQ {
  TGenericSeq Sup;
  tyTuple__T1RBf8m9axj9bvJRlYejkpkQ data[SEQ_DECL_SIZE];
};
struct tySequence__qIo1GWQhO9cOgsAJDKUY8kw {
  TGenericSeq Sup;
  tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* data[SEQ_DECL_SIZE];
};
struct tySequence__wbHXzzfwTCmsKuzoRrgI3g {
  TGenericSeq Sup;
  tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw data[SEQ_DECL_SIZE];
};
struct tySequence__1KIIbxJRtGjuxcp9a9bbC09cA {
  TGenericSeq Sup;
  tyObject_ProcessObj__vyZqvZvf09c7OWgG4Opi2aA* data[SEQ_DECL_SIZE];
};
struct tySequence__4eQHGndY6XBYpFOH09apV8Q {
  TGenericSeq Sup;
  tyTuple__UV3llMMYFckfui8YMBuUZA data[SEQ_DECL_SIZE];
};
struct tySequence__hIN6NiV2heFnG19c6HdDacw {
  TGenericSeq Sup;
  tyObject_MappingcolonObjectType___DlP7ZB0VJF31Xvkyqvp6Qw* data[SEQ_DECL_SIZE];
};
struct tySequence__spLz9azjOgbpYKrtmm9aMHEw {
  TGenericSeq Sup;
  tyObject_TocItem__f5Z7HAch49an2qSNSGguP7Q data[SEQ_DECL_SIZE];
};
struct tySequence__JSDKkkE7gMRTYRB9bRZ9bH7Q {
  TGenericSeq Sup;
  tyObject_ItemFragment__s61pcFD9bQO8uWIzfNjndzg data[SEQ_DECL_SIZE];
};
struct tySequence__YYKlUlCjbni3i58WM0kegw {
  TGenericSeq Sup;
  tyTuple__KPVKrfx82Va9azSnb0dl1RQ data[SEQ_DECL_SIZE];
};
struct tySequence__bLuZlbeJhlfg9axVlmjdJXw {
  TGenericSeq Sup;
  tyObject_Item__T7UjOImKJxoSfGY6SB3KMg data[SEQ_DECL_SIZE];
};
struct tySequence__hf5PiuqqytWiEcddgIR5sQ {
  TGenericSeq Sup;
  tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA data[SEQ_DECL_SIZE];
};
struct tySequence__q9cq1Li6c1nMjHpacEbCj0g {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* data[SEQ_DECL_SIZE];
};
static N_INLINE(void, initStackBottom)(void);
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5469)(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack, void* position);
N_LIB_PRIVATE N_NIMCALL(void, initGC__system_2398)(void);
N_LIB_PRIVATE N_NIMCALL(void, init__system_4951)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, NI cap);
N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1751)(NI size);
N_LIB_PRIVATE N_NIMCALL(void*, alloc0__system_4845)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* allocator, NI size);
N_LIB_PRIVATE N_NIMCALL(void*, alloc__system_4841)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* allocator, NI size);
N_LIB_PRIVATE N_NIMCALL(void*, rawAlloc__system_4625)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI requestedSize);
static N_INLINE(NI, roundup__system_3761)(NI x, NI v);
N_LIB_PRIVATE N_NIMCALL(tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*, getSmallChunk__system_4604)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, getBigChunk__system_4581)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI size);
static N_INLINE(void, mappingSearch__system_3909)(NI* r, NI* fl, NI* sl);
static N_INLINE(NI, msbit__system_3884)(NU32 x);
static N_INLINE(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, findSuitableBlock__system_3941)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI* fl, NI* sl);
static N_INLINE(NI, lsbit__system_3892)(NU32 x);
N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, requestOsChunks__system_4504)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI size);
static N_INLINE(void*, osAllocPages__system_3781)(NI size);
N_LIB_PRIVATE N_NOINLINE(void, raiseOutOfMem__system_3756)(void);
static N_INLINE(void, rawWrite)(FILE* f, NCSTRING s);
static N_INLINE(NI, nimCStrLen)(NCSTRING a);
static N_INLINE(void*, osTryAllocPages__system_3784)(NI size);
static N_INLINE(void, incCurrMem__system_4024)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI bytes);
N_LIB_PRIVATE N_NIMCALL(void, addHeapLink__system_4108)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* p, NI size);
N_LIB_PRIVATE N_NIMCALL(void*, llAlloc__system_4041)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI size);
static N_INLINE(void, zeroMem__system_1730)(void* p, NI size);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4290)(tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*, intSetGet__system_4251)(tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* t, NI key);
static N_INLINE(NI, pageIndex__system_4486)(tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(void, splitChunk__system_4555)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, splitChunk2__system_4550)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c, NI size);
static N_INLINE(void, updatePrevSize__system_4545)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c, NI prevSize);
static N_INLINE(NIM_BOOL, isAccessible__system_4527)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, void* p);
static N_INLINE(NI, pageIndex__system_4493)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, incl__system_4321)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*, intSetPut__system_4273)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* t, NI key);
N_LIB_PRIVATE N_NIMCALL(void, addChunkToMatrix__system_4015)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* b);
static N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, mappingInsert__system_3927)(NI r);
static N_INLINE(void, setBit__system_3895)(NI nr, NU32* dest);
N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix2__system_4006)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* b, NI fl, NI sl);
static N_INLINE(void, clearBit__system_3902)(NI nr, NU32* dest);
static N_INLINE(void, listAdd__system_4642)(tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw** head, tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* c);
static N_INLINE(void, listRemove__system_4695)(tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw** head, tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, getHugeChunk__system_4596)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*, getBottom__system_4067)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a);
N_LIB_PRIVATE N_NIMCALL(void, add__system_4214)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw** t, NI key, NI upperBound);
N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*, allocAvlNode__system_4083)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI key, NI upperBound);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(void, skew__system_4204)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw** t);
N_LIB_PRIVATE N_NIMCALL(void, split__system_4207)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw** t);
N_LIB_PRIVATE N_NIMCALL(void, init__system_4957)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s);
static N_INLINE(NI, atomicInc__system_1724)(NI* memLoc, NI x);
static N_NIMCALL(void, Marker_tySequence__QbmGqFaLnb1IWWToREeaIA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_LIB_PRIVATE N_NIMCALL(void, doOperation__system_5367)(void* p, tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ op);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5336)(void* usr);
static N_INLINE(void, decRef__system_5381)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(void, rtlAddZCT__system_5379)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5330)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(void, add__system_4925)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1749)(NI size);
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p);
N_LIB_PRIVATE N_NOCONV(void, deallocImpl__system_1753)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, dealloc__system_4849)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* allocator, void* p);
N_LIB_PRIVATE N_NIMCALL(void, rawDealloc__system_4754)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, void* p);
static N_INLINE(tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*, pageAddr__system_4500)(void* p);
static N_INLINE(NIM_BOOL, isSmallChunk__system_4411)(tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c);
N_LIB_PRIVATE N_NIMCALL(void, freeBigChunk__system_4560)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c);
static N_INLINE(NIM_BOOL, chunkUnused__system_4417)(tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c);
N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix__system_3976)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* b);
N_LIB_PRIVATE N_NIMCALL(void, excl__system_4343)(tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, del__system_4223)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw** t, NI x);
static N_INLINE(void, deallocAvlNode__system_4105)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* n);
N_LIB_PRIVATE N_NIMCALL(void, freeHugeChunk__system_4600)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c);
static N_INLINE(void, decCurrMem__system_4031)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI bytes);
static N_INLINE(void, osDeallocPages__system_3787)(void* p, NI size);
N_LIB_PRIVATE N_NIMCALL(void, markS__system_5785)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(void, incl__system_5082)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell);
N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*, cellSetPut__system_5028)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* t, NU key);
static N_INLINE(NI, nextTry__system_4985)(NI h, NI maxHash);
N_LIB_PRIVATE N_NIMCALL(void, cellSetEnlarge__system_5015)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* t);
N_LIB_PRIVATE N_NIMCALL(void, cellSetRawInsert__system_4998)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* t, tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data, tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* desc);
N_LIB_PRIVATE N_NIMCALL(void, forAllChildren__system_5364)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell, tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ op);
static N_INLINE(void*, cellToUsr__system_5333)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell);
N_LIB_PRIVATE N_NIMCALL(void, forAllChildrenAux__system_5370)(void* dest, TNimType* mt, tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ op);
N_LIB_PRIVATE N_NIMCALL(void, forAllSlotsAux__system_5601)(void* dest, TNimNode* n, tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ op);
N_LIB_PRIVATE N_NIMCALL(TNimNode*, selectBranch__system_3710)(void* aa, TNimNode* n);
N_LIB_PRIVATE N_NIMCALL(NU, getDiscriminant__system_3690)(void* aa, TNimNode* n);
static N_INLINE(NI, starpercent___system_736)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(NI, align__system_1624)(NI address, NI alignment);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__system_5128)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell);
N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*, cellSetGet__system_4989)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* t, NU key);
static N_NIMCALL(void, Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)(void* p, NI op);
static N_NIMCALL(void, TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
N_LIB_PRIVATE N_NOCONV(void, signalHandler)(int sign);
N_LIB_PRIVATE N_NIMCALL(void, showErrorMessage__system_2538)(NCSTRING data, NI length);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toNimStr)(NCSTRING str, NI len);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewStringNoInit)(NI space);
N_LIB_PRIVATE N_NIMCALL(void*, newObjNoInit)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(void*, rawNewObj__system_5713)(TNimType* typ, NI size, tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
N_LIB_PRIVATE N_NIMCALL(void, collectCT__system_5360)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
static N_INLINE(NI, getOccupiedMem__system_4885)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a);
N_LIB_PRIVATE N_NIMCALL(void, collectCTBody__system_5906)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5454)(void);
N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5450)(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack);
static N_INLINE(void, prepareForInteriorPointerChecking__system_4806)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a);
N_LIB_PRIVATE N_NIMCALL(NI, lowGauge__system_4164)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* n);
N_LIB_PRIVATE N_NIMCALL(NI, highGauge__system_4172)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* n);
CLANG_NO_SANITIZE_ADDRESS N_LIB_PRIVATE void markStackAndRegisters__system_5843(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5466)(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack, void* position);
N_LIB_PRIVATE N_NIMCALL(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ*, getActiveStack__system_5472)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isActiveStack__system_5475)(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack);
static N_INLINE(void, gcMark__system_5834)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch, void* p);
N_LIB_PRIVATE N_NIMCALL(void*, interiorAllocatedPtr__system_4808)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, void* p);
static N_INLINE(NI, percentpercent___system_776)(NI x, NI y);
static N_INLINE(NIM_BOOL, lteqpercent___system_985)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*, inRange__system_4192)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root, NI key);
static N_INLINE(void, incRef__system_5374)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, collectZCT__system_5824)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
N_LIB_PRIVATE N_NIMCALL(void, prepareDealloc__system_5496)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell);
N_LIB_PRIVATE N_NIMCALL(void, collectCycles__system_5826)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
N_LIB_PRIVATE N_NIMCALL(void, cellsetReset__system_5599)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s);
N_LIB_PRIVATE N_NIMCALL(void, deinit__system_4977)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s);
N_LIB_PRIVATE N_NIMCALL(void, markGlobals__system_5793)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
N_LIB_PRIVATE N_NIMCALL(void, sweep__system_5781)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
static N_INLINE(NIM_BOOL, isCell__system_4474)(void* p);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_5050)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell);
N_LIB_PRIVATE N_NIMCALL(void, freeCyclicCell__system_5777)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(NI, getOccupiedMem__system_1942)(void);
N_LIB_PRIVATE N_NIMCALL(void, unmarkStackAndRegisters__system_5898)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
static N_INLINE(void, addNewObjToZCT__system_5698)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* res, tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch);
static N_INLINE(void, popSafePoint)(void);
static N_INLINE(void, popCurrentException)(void);
static N_INLINE(void, asgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
static N_INLINE(void, sysFatal__system_2900)(NimStringDesc* message) __attribute__((noreturn));
static N_NIMCALL(void, Marker_tyRef__uerrneZ83HrI24PYGM9bkXQ)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
N_LIB_PRIVATE N_NOINLINE(void*, newObjRC1)(TNimType* typ, NI size);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(void, sysFatal__system_3385)(NimStringDesc* message) __attribute__((noreturn));
static N_NIMCALL(void, Marker_tyRef__qZuxwNGOWjWgqnLVJlr20w)(void* p, NI op);
static N_INLINE(NI, resize__system_5961)(NI old);
N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5951)(TGenericSeq* a, NI elemAlign);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionAux__system_2868)(Exception* e);
static N_INLINE(void, pushCurrentException)(Exception* e);
N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledError__system_2857)(Exception* e);
N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledErrorAux__system_2754)(Exception* e);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_2725)(tySequence__QbmGqFaLnb1IWWToREeaIA* stackTraceEntries);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, add__system_2308)(NimStringDesc** x, NCSTRING y);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isOnStack__system_5362)(void* p);
static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___systemZassertions_23)(NimStringDesc** dest);
N_LIB_PRIVATE N_NIMCALL(void, writeToStdErr__system_2533)(NCSTRING msg, NI length);
static N_INLINE(void, rawWriteString)(FILE* f, NCSTRING s, NI length);
N_LIB_PRIVATE N_NIMCALL(void, registerSignalHandler__system_2985)(void);
N_LIB_PRIVATE N_NIMCALL(NI, getRefcount)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, procAddrError)(NCSTRING name);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
static N_NIMCALL(void, Marker_tyRef__pZq9a89chzDPcYZo9bViSdp9aQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5955)(TGenericSeq* a, NI elemAlign, NI elemSize, NI index);
N_LIB_PRIVATE N_NIMCALL(TNimType*, extGetCellType)(void* c);
static N_NIMCALL(void, Marker_tyRef__uqGx5zvUvUW2CTnTL0oZQQ)(void* p, NI op);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_NIMCALL(void, Marker_tyRef__0NUycR3lTt5ae7Mj01Qw8A)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6472)(void* dest, void* src, TNimType* mt, NIM_BOOL shallow);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap);
N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6477)(void* dest, void* src, TNimNode* n, NIM_BOOL shallow);
N_LIB_PRIVATE N_NIMCALL(void, genericResetAux__system_6469)(void* dest, TNimNode* n);
N_LIB_PRIVATE N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
static N_INLINE(void, chckObjAsgn)(TNimType* a, TNimType* b);
static N_INLINE(void, sysFatal__system_3300)(NimStringDesc* message) __attribute__((noreturn));
static N_NIMCALL(void, Marker_tyRef__dBcwgJxypEuB4lCVFzmF7A)(void* p, NI op);
static N_NIMCALL(void, Marker_tyRef__y7Z2XdNq5H6ZFNpULQZbHw)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7810)(NimStringDesc* s, NI first, NI last);
static N_NIMCALL(void, Marker_tyRef__MdotPfdEWddcwl4HcVVgeQ)(void* p, NI op);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
static N_NIMCALL(void, Marker_tyRef__Iyrru9apujUM04065F6aukQ)(void* p, NI op);
static N_INLINE(void, showErrorMessage2__system_2546)(NimStringDesc* data);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_NIMCALL(void, Marker_tyRef__tzjmdCJU9ba9bCYuvNDRGTaw)(void* p, NI op);
static N_INLINE(void, addEscapedChar__system_7551)(NimStringDesc** s, NIM_CHAR c);
static N_NIMCALL(void, Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, objectInitAux__system_6587)(void* dest, TNimNode* n);
N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ);
static N_NIMCALL(void, Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_7519)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_1549)(NimStringDesc* x, NimStringDesc* y);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size);
static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimBoolToStr)(NIM_BOOL x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2116)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(void*, seqToPtr__pureZjson_2096)(tySequence__qIo1GWQhO9cOgsAJDKUY8kw* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___pureZjson_2063)(tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* a, tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___pureZjson_4484)(tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* node);
static N_INLINE(void*, seqToPtr__extccomp_2569)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x);
static N_INLINE(void*, seqToPtr__icZcbackend_432)(tySequence__48JTohSgTy339bRxHzUD8KA* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___sourcemap_460)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___sourcemap_470)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___packagesZdocutilsZrst_2637)(tyTuple__KPVKrfx82Va9azSnb0dl1RQ* x, tyTuple__KPVKrfx82Va9azSnb0dl1RQ* y);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___packagesZdocutilsZrst_2651)(tyTuple__KPVKrfx82Va9azSnb0dl1RQ* x, tyTuple__KPVKrfx82Va9azSnb0dl1RQ* y);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__packagesZdocutilsZrst_2661)(tyEnum_FootnoteType__jXnI8xEO3SXxVR9afYCJnyQ x, tyEnum_FootnoteType__jXnI8xEO3SXxVR9afYCJnyQ y);
N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_4038)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a);
N_LIB_PRIVATE N_NIMCALL(NI, getTotalMem__system_1944)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
static N_INLINE(void, initStackBottomWith)(void* locals);
N_LIB_PRIVATE NIM_CONST tyArray__mkmEeKAWtk2yS9bBb1lUWXA fsLookupTable__system_3883 = {((NI8) -1),
((NI8) 0),
((NI8) 1),
((NI8) 1),
((NI8) 2),
((NI8) 2),
((NI8) 2),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 3),
((NI8) 3),
((NI8) 3),
((NI8) 3),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 6),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7),
((NI8) 7)}
;
N_LIB_PRIVATE TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTIexception__XEycrCsme5C8CVWAYEcdBQ_;
N_LIB_PRIVATE TNimType NTIcstring__S9agCYBinaYZnGWcjTdxclg_;
N_LIB_PRIVATE TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
N_LIB_PRIVATE TNimType NTIstacktraceentry__3r2E7OgmrW3VdUTaooCuyA_;
N_LIB_PRIVATE TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_;
N_LIB_PRIVATE TNimType NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_;
N_LIB_PRIVATE TNimType NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_;
N_LIB_PRIVATE TNimType NTIreraisedefect__FrYFS0tS67oFwxrxEzeY3g_;
N_LIB_PRIVATE TNimType NTIrefreraisedefect__uerrneZ83HrI24PYGM9bkXQ_;
N_LIB_PRIVATE TNimType NTIarithmeticdefect__yjY3JjKvpN49bcCtb79caSzg_;
N_LIB_PRIVATE TNimType NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_;
N_LIB_PRIVATE TNimType NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_;
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_7, "over- or underflow", 18);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_9, "[[reraised from:\012", 17);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_10, "]]\012", 3);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_11, "(", 1);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_12, ", ", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_13, ")", 1);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_14, "\012", 1);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_15, "no exception to reraise", 23);
N_LIB_PRIVATE TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
N_LIB_PRIVATE TNimType NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_;
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_16, " (invalid data!)", 16);
N_LIB_PRIVATE TNimType NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_;
N_LIB_PRIVATE TNimType NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_;
N_LIB_PRIVATE TNimType NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_;
N_LIB_PRIVATE TNimType NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_;
N_LIB_PRIVATE TNimType NTIassertiondefect__mYCf6XCmDNW6jPOa4L9aUeg_;
N_LIB_PRIVATE TNimType NTIrefassertiondefect__uqGx5zvUvUW2CTnTL0oZQQ_;
N_LIB_PRIVATE TNimType NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_;
N_LIB_PRIVATE TNimType NTIrefioerror__0NUycR3lTt5ae7Mj01Qw8A_;
N_LIB_PRIVATE TNimType NTIuint4954__M4na42GvebBMnI5wV9cYMxg_;
N_LIB_PRIVATE TNimType NTIint5150__sVg18TP9cLifHyygRe9cro9aA_;
N_LIB_PRIVATE TNimType NTIint56__chXunH2dwinSkhpA6JnsXw_;
N_LIB_PRIVATE TNimType NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_;
N_LIB_PRIVATE TNimType NTIchar__nmiMWKVIe46vacnhAFrQvw_;
N_LIB_PRIVATE TNimType NTIobjectassignmentdefect__Gcuu3i2jDl8UzBOlrS9bQiw_;
N_LIB_PRIVATE TNimType NTIrefobjectassignmentdefect__dBcwgJxypEuB4lCVFzmF7A_;
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_21, "invalid object assignment", 25);
extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
N_LIB_PRIVATE TNimType NTIindexdefect__u6F3F9a1S8b9bXsVEwdArMcw_;
N_LIB_PRIVATE TNimType NTIrefindexdefect__y7Z2XdNq5H6ZFNpULQZbHw_;
N_LIB_PRIVATE TNimType NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_;
N_LIB_PRIVATE TNimType NTIoserror__THeHlGxHorUQ17FON5jY0g_;
N_LIB_PRIVATE TNimType NTIrefoserror__Iyrru9apujUM04065F6aukQ_;
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_22, "No stack traceback available\012", 29);
N_LIB_PRIVATE TNimType NTIeoferror__kIdEdoaj8I8RXN2AU5W3mg_;
N_LIB_PRIVATE TNimType NTIrefeoferror__tzjmdCJU9ba9bCYuvNDRGTaw_;
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_23, "\"", 1);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_24, "\\a", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_25, "\\b", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_26, "\\t", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_27, "\\n", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_28, "\\v", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_29, "\\f", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_30, "\\r", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_31, "\\e", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_32, "\\\\", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_33, "\\\'", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_34, "\\\"", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_35, "\\x", 2);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_36, "0123456789ABCDEF", 16);
extern TNimType NTIseqLutf4954charT__9aKpvUh0ca6Bp9cKAwrowqUg_;
N_LIB_PRIVATE TNimType NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_;
N_LIB_PRIVATE TNimType NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_;
N_LIB_PRIVATE TNimType NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_;
N_LIB_PRIVATE TNimType NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_;
N_LIB_PRIVATE TNimType NTIbyte__k3HXouOuhqAKq0dx450lXQ_;
N_LIB_PRIVATE NIM_CONST tyArray__yp9a149boki9cCCWgfXI0Ip4A powtens__system_6219 = {1.0,
10.0,
100.0,
1000.0,
10000.0,
100000.0,
1000000.0,
10000000.0,
100000000.0,
1000000000.0,
10000000000.0,
100000000000.0,
1000000000000.0,
10000000000000.0,
100000000000000.0,
1000000000000000.0,
10000000000000000.0,
1e+17,
1e+18,
1e+19,
1e+20,
1e+21,
1e+22}
;
N_LIB_PRIVATE TNimType NTIrangedefect__sGgAy9cDrJNoXUSezcMnS5w_;
extern TNimType NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_;
extern TNimType NTIseqLlitidT__9bAGqSvkAaFL9bWjsEPslrFA_;
extern TNimType NTIseqLLlitid_stringTT__PXIzfWocnrafGz5p3CP5LA_;
extern TNimType NTIseqLbiggestintT__IHUFRsFxZNv7YydiUO2esQ_;
extern TNimType NTIseqLLlitid_int5150TT__b89aLriiJnVTD186H6zNIgg_;
extern TNimType NTIseqLLlitid_packeditemidTT__wE9cZkGC9cv7Iz9ckZOIyaW9aw_;
extern TNimType NTIseqLint5150T__48JTohSgTy339bRxHzUD8KA_;
extern TNimType NTIseqLLpackeditemid_packedlineinfoTT__QnmOtn1Iv4LvxOXoMn8Rbg_;
extern TNimType NTIseqLpackednodeT__4Murtwnm0Fyc7F9acrytEXw_;
extern TNimType NTIseqLpackedsymT__q9bTuOB0JXh1iZ3CSGdRLbg_;
extern TNimType NTIseqLpackedtypeT__DPZr9aMyRppVlNZ9ajSyOZ9bw_;
extern TNimType NTIseqLpackeditemidT__lo3S1lKyiPLhGGB9cBawd6A_;
extern TNimType NTIseqLLpackeditemid_packeditemidTT__oKtVqsc9bQVCNyrijELM4OQ_;
extern TNimType NTIseqLpackedinstantiationT__qy6Iwdy00wN560qud54HTg_;
extern TNimType NTIseqLLttypeattachedop_packeditemid_packeditemidTT__k67v9bwvvQDmS1ynyGGUbeQ_;
extern TNimType NTIseqLLpackeditemid_int_packeditemidTT__cLsClAAfd0MKkoBQVyvdvw_;
extern TNimType NTIseqLLintset_intsetTT__fZ9aerq6GRgd1Id9b1cf7NuA_;
extern TNimType NTIseqLdepnT__vAEg9bb6P9cAvzrQae7aeKyA_;
extern TNimType NTIseqLfullidT__UnGSk9aaLosDroi2QDrlOfQ_;
N_LIB_PRIVATE TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
N_LIB_PRIVATE TNimType NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_;
extern TNimType NTIseqLtupleLsym58psym_key58stringTT__EK3kb9a029axOL6ZINxWj1hw_;
extern TNimType NTIseqLLpsym_tlineinfoTT__Jhh6ks9carRtwV9aOuM8yMNw_;
extern TNimType NTIseqLsuggestT__GR8qmV1kNRcoQ2g76VFy3A_;
N_LIB_PRIVATE TNimType NTIcint__nlCscttRCss70IBTyuBqnA_;
extern TNimType NTIseqLbyteT__6H5Oh5UUvVCLiakt9aTwtUQ_;
N_LIB_PRIVATE TNimType NTIdivbyzerodefect__1jktkmId3HEtpgl3NFg3mg_;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
extern TNimType NTItnodekind__clSgDh22o9au33BrVH9bDQZw_;
extern TNimType NTIttypekind__b28l2MkhJpnFhatVrsrXpg_;
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_37, "true", 4);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_38, "false", 5);
extern TNimType NTIpinstantiation__eg8se9cZBHdzb5ZM7CrYNVg_;
extern TNimType NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_;
extern TNimType NTIseqLnilabilityT__kGCKZrVGM65uzo2SGY9bxMQ_;
extern TNimType NTIseqLseqLhistoryTT__TXTtz79abNCf5jWrlvNZpOw_;
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_39, "\'", 1);
extern TNimType NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_;
extern TNimType NTItspecialword__N2XsqTpO5IzOf2KmXwk4Dw_;
N_LIB_PRIVATE TNimType NTIint__hLlQjbV9bLNq5PFxYcqacsA_;
extern TNimType NTIseqLstateT__s4MJIltFooh7znZAPDHauw_;
extern TNimType NTItnodepairseq__PPSNlMjxeLUadep32xHHyA_;
extern TNimType NTIseqLboolT__shxop0zPIs5Ec3k71aCLuQ_;
extern TNimType NTIseqLtupleLfin58pnode_inexcept58bool_label58naturalTT__IjAwukZ9aSEsol9c48He4FYQ_;
extern TNimType NTIjsonnodekind__SME9c3kTLtQAHAI8HiX0v8A_;
extern TNimType NTIseqLintsetT__wbHXzzfwTCmsKuzoRrgI3g_;
extern TNimType NTIseqLprocessT__1KIIbxJRtGjuxcp9a9bbC09cA_;
extern TNimType NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_;
extern TNimType NTItsymkind__sjiB9b9aO1FRPetW6gPYZbfw_;
extern TNimType NTItjstypekind__tpKLAXT6CPyZ9cMNxf1ZsAQ_;
extern TNimType NTIseqLmappingT__hIN6NiV2heFnG19c6HdDacw_;
extern TNimType NTIseqLtocitemT__spLz9azjOgbpYKrtmm9aMHEw_;
extern TNimType NTIitempre__JSDKkkE7gMRTYRB9bRZ9bH7Q_;
extern TNimType NTIitemfragment__s61pcFD9bQO8uWIzfNjndzg_;
extern TNimType NTIseqLfootnotesubstT__YYKlUlCjbni3i58WM0kegw_;
extern TNimType NTIfootnotesubst__KPVKrfx82Va9azSnb0dl1RQ_;
extern TNimType NTIseqLitemT__bLuZlbeJhlfg9axVlmjdJXw_;
extern TNimType NTIseqLindexentryT__hf5PiuqqytWiEcddgIR5sQ_;
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_40, "[GC] total memory: ", 19);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_41, "\012[GC] occupied memory: ", 23);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_42, "\012[GC] stack scans: ", 19);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_43, "\012[GC] stack cells: ", 19);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_44, "\012[GC] cycle collections: ", 25);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_45, "\012[GC] max threshold: ", 21);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_46, "\012[GC] zct capacity: ", 20);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_47, "\012[GC] max cycle table size: ", 28);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_48, "\012[GC] max pause time [ms]: ", 27);
STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_49, "[GC] max stack size: ", 21);
N_LIB_PRIVATE NI nim_program_result;
N_LIB_PRIVATE tyProc__9axCnCRMUx32AHzFgBrzSMg globalRaiseHook__system_2291;
N_LIB_PRIVATE tyProc__9axCnCRMUx32AHzFgBrzSMg localRaiseHook__system_2294;
N_LIB_PRIVATE tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ outOfMemHook__system_2296;
N_LIB_PRIVATE tyProc__NFmM6mqUOVW3cJg4yvk8Fw unhandledExceptionHook__system_2299;
N_LIB_PRIVATE TNimType strDesc__system_2412 = {((NI) 8), 0, ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 28), 2, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL}
;
N_LIB_PRIVATE tyProc__W6IXMh2CA4X1rFYGjUb4yg errorMessageWriter__system_2528;
N_LIB_PRIVATE TFrame* framePtr__system_2566;
N_LIB_PRIVATE TSafePoint* excHandler__system_2567;
N_LIB_PRIVATE Exception* currException__system_2568;
N_LIB_PRIVATE GcFrameHeader* gcFramePtr__system_2569;
N_LIB_PRIVATE tyProc__W6IXMh2CA4X1rFYGjUb4yg onUnhandledException__system_2753;
N_LIB_PRIVATE tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5283;
N_LIB_PRIVATE NI globalMarkersLen;
N_LIB_PRIVATE tyArray__9aTRall1siQT9bXabu2aKXUg globalMarkers;
N_LIB_PRIVATE NI threadLocalMarkersLen;
N_LIB_PRIVATE tyArray__9aTRall1siQT9bXabu2aKXUg threadLocalMarkers;
N_LIB_PRIVATE NI gHeapidGenerator__system_5550;
N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5469)(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack, void* position) {
}
N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom) {
	{
		if (!(gch__system_5283.stack.bottom == NIM_NIL)) goto LA3_;
		gch__system_5283.stack.bottom = theStackBottom;
	}
	goto LA1_;
	LA3_: ;
	{
		NI a;
		NI b;
		if (!!((theStackBottom == gch__system_5283.stack.bottom))) goto LA6_;
		a = ((NI) (ptrdiff_t) (theStackBottom));
		b = ((NI) (ptrdiff_t) (gch__system_5283.stack.bottom));
		gch__system_5283.stack.bottom = ((void*) (((a >= b) ? a : b)));
	}
	goto LA1_;
	LA6_: ;
	LA1_: ;
	setPosition__system_5469((&gch__system_5283.stack), theStackBottom);
}
static N_INLINE(void, initStackBottom)(void) {
	void* volatile locals;
	locals = ((void*) ((&locals)));
	nimGC_setStackBottom(locals);
}
static N_INLINE(NI, roundup__system_3761)(NI x, NI v) {
	NI result;
	result = (NI)0;
	result = (NI)((NI)(x + (NI)(v - ((NI) 1))) & (NI)((NU64) ~((NI)(v - ((NI) 1)))));
	return result;
}
static N_INLINE(NI, msbit__system_3884)(NU32 x) {
	NI result;
	NI a;
	result = (NI)0;
	{
		if (!((NU32)(x) <= (NU32)(((NU32) 65535)))) goto LA3_;
		{
			if (!((NU32)(x) <= (NU32)(((NU32) 255)))) goto LA7_;
			a = ((NI) 0);
		}
		goto LA5_;
		LA7_: ;
		{
			a = ((NI) 8);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!((NU32)(x) <= (NU32)(((NU32) 16777215)))) goto LA13_;
			a = ((NI) 16);
		}
		goto LA11_;
		LA13_: ;
		{
			a = ((NI) 24);
		}
		LA11_: ;
	}
	LA1_: ;
	result = (NI)(((NI) (fsLookupTable__system_3883[((NU32)((NU32)(x) >> (NU64)(a)))- 0])) + a);
	return result;
}
static N_INLINE(void, mappingSearch__system_3909)(NI* r, NI* fl, NI* sl) {
	NI t;
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = msbit__system_3884(((NU32) ((*r))));
	T2_ = (NI)0;
	T2_ = roundup__system_3761((NI)((NU64)(((NI) 1)) << (NU64)((NI)(T1_ - ((NI) 5)))), ((NI) 4096));
	t = (NI)(T2_ - ((NI) 1));
	(*r) = (NI)((*r) + t);
	(*r) = (NI)((*r) & (NI)((NU64) ~(t)));
	(*r) = (((*r) <= ((NI) 1056964608)) ? (*r) : ((NI) 1056964608));
	(*fl) = msbit__system_3884(((NU32) ((*r))));
	(*sl) = (NI)((NI)((NI64)((*r)) >> (NU64)((NI)((*fl) - ((NI) 5)))) - ((NI) 32));
	(*fl) -= ((NI) 6);
}
static N_INLINE(NI, lsbit__system_3892)(NU32 x) {
	NI result;
	result = (NI)0;
	result = msbit__system_3884((NU32)(x & (NU32)((NU32)((NU32)((NU32) ~(x))) + (NU32)(((NU32) 1)))));
	return result;
}
static N_INLINE(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, findSuitableBlock__system_3941)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI* fl, NI* sl) {
	tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* result;
	NU32 tmp;
	result = (tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*)0;
	tmp = (NU32)((*a).slBitmap[((*fl))- 0] & (NU32)((NU64)(((NU32) IL64(4294967295))) << (NU64)((*sl))));
	result = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	{
		if (!!((tmp == ((NU32) 0)))) goto LA3_;
		(*sl) = lsbit__system_3892(tmp);
		result = (*a).matrix[((*fl))- 0][((*sl))- 0];
	}
	goto LA1_;
	LA3_: ;
	{
		(*fl) = lsbit__system_3892((NU32)((*a).flBitmap & (NU32)((NU64)(((NU32) IL64(4294967295))) << (NU64)((NI)((*fl) + ((NI) 1))))));
		{
			if (!(((NI) 0) < (*fl))) goto LA8_;
			(*sl) = lsbit__system_3892((*a).slBitmap[((*fl))- 0]);
			result = (*a).matrix[((*fl))- 0][((*sl))- 0];
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, nimCStrLen)(NCSTRING a) {
	NI result;
	size_t T1_;
	result = (NI)0;
	T1_ = (size_t)0;
	T1_ = strlen(a);
	result = ((NI) (T1_));
	return result;
}
static N_INLINE(void, rawWrite)(FILE* f, NCSTRING s) {
	size_t T1_;
	int T2_;
	T1_ = (size_t)0;
	T1_ = fwrite(((void*) (s)), ((size_t) 1), ((size_t) ((s ? nimCStrLen(s) : 0))), f);
	(void)(T1_);
	T2_ = (int)0;
	T2_ = fflush(f);
	(void)(T2_);
}
N_LIB_PRIVATE N_NOINLINE(void, raiseOutOfMem__system_3756)(void) {
	{
		if (!!((outOfMemHook__system_2296 == NIM_NIL))) goto LA3_;
		outOfMemHook__system_2296();
	}
	LA3_: ;
	rawWrite(stderr, "out of memory\012");
	exit(((NI) 1));
}
static N_INLINE(void*, osAllocPages__system_3781)(NI size) {
	void* result;
	result = (void*)0;
	result = VirtualAlloc(NIM_NIL, size, ((NI32) 12288), ((NI32) 4));
	{
		if (!(result == NIM_NIL)) goto LA3_;
		raiseOutOfMem__system_3756();
	}
	LA3_: ;
	return result;
}
static N_INLINE(void*, osTryAllocPages__system_3784)(NI size) {
	void* result;
	result = (void*)0;
	result = VirtualAlloc(NIM_NIL, size, ((NI32) 12288), ((NI32) 4));
	return result;
}
static N_INLINE(void, incCurrMem__system_4024)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI bytes) {
	(*a).currMem += bytes;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_INLINE(void, zeroMem__system_1730)(void* p, NI size) {
	nimZeroMem(p, size);
}
N_LIB_PRIVATE N_NIMCALL(void*, llAlloc__system_4041)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI size) {
	void* result;
	result = (void*)0;
	{
		NIM_BOOL T3_;
		tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* old;
		void* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).llmem == ((tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = ((*(*a).llmem).size < size);
		LA4_: ;
		if (!T3_) goto LA5_;
		old = (*a).llmem;
		T7_ = (void*)0;
		T7_ = osAllocPages__system_3781(((NI) 4096));
		(*a).llmem = ((tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA*) (T7_));
		incCurrMem__system_4024(a, ((NI) 4096));
		(*(*a).llmem).size = ((NI) 4072);
		(*(*a).llmem).acc = ((NI) 24);
		(*(*a).llmem).next = old;
	}
	LA5_: ;
	result = ((void*) ((NI)(((NI) (ptrdiff_t) ((*a).llmem)) + (*(*a).llmem).acc)));
	(*(*a).llmem).size -= size;
	(*(*a).llmem).acc += size;
	zeroMem__system_1730(result, ((NI) (size)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addHeapLink__system_4108)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* p, NI size) {
	tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* it;
	it = (&(*a).heapLinks);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !((it == ((tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw*) NIM_NIL)));
			if (!(T3_)) goto LA4_;
			T3_ = (((NI) 30) <= (*it).len);
			LA4_: ;
			if (!T3_) goto LA2;
			it = (*it).next;
		} LA2: ;
	}
	{
		tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* n;
		void* T9_;
		tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* colontmp_;
		NI colontmp__2;
		if (!(it == ((tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw*) NIM_NIL))) goto LA7_;
		T9_ = (void*)0;
		T9_ = llAlloc__system_4041(a, ((NI) 496));
		n = ((tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw*) (T9_));
		(*n).next = (*a).heapLinks.next;
		(*a).heapLinks.next = n;
		colontmp_ = p;
		colontmp__2 = size;
		(*n).chunks[(((NI) 0))- 0].Field0 = colontmp_;
		(*n).chunks[(((NI) 0))- 0].Field1 = colontmp__2;
		(*n).len = ((NI) 1);
	}
	goto LA5_;
	LA7_: ;
	{
		NI L;
		tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* colontmp__3;
		NI colontmp__4;
		L = (*it).len;
		colontmp__3 = p;
		colontmp__4 = size;
		(*it).chunks[(L)- 0].Field0 = colontmp__3;
		(*it).chunks[(L)- 0].Field1 = colontmp__4;
		(*it).len += ((NI) 1);
	}
	LA5_: ;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*, intSetGet__system_4251)(tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* t, NI key) {
	tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* result;
	tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* it;
{	result = (tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*)0;
	it = (*t).data[((NI)(key & ((NI) 255)))- 0];
	{
		while (1) {
			if (!!((it == ((tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*) NIM_NIL)))) goto LA2;
			{
				if (!((*it).key == key)) goto LA5_;
				result = it;
				goto BeforeRet_;
			}
			LA5_: ;
			it = (*it).next;
		} LA2: ;
	}
	result = ((tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*) NIM_NIL);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4290)(tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* s, NI key) {
	NIM_BOOL result;
	tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* t;
	result = (NIM_BOOL)0;
	t = intSetGet__system_4251(s, (NI)((NI64)(key) >> (NU64)(((NI) 9))));
	{
		NI u;
		if (!!((t == ((tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*) NIM_NIL)))) goto LA3_;
		u = (NI)(key & ((NI) 511));
		result = !(((NU)((*t).bits[((NI)((NI64)(u) >> (NU64)(((NI) 6))))- 0] & (NU)((NU64)(((NU) 1)) << (NU64)((NI)(u & ((NI) 63))))) == ((NU) 0)));
	}
	goto LA1_;
	LA3_: ;
	{
		result = NIM_FALSE;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, pageIndex__system_4486)(tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c) {
	NI result;
	result = (NI)0;
	result = (NI)((NI64)(((NI) (ptrdiff_t) (c))) >> (NU64)(((NI) 12)));
	return result;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, requestOsChunks__system_4504)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI size) {
	tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* result;
	NI size_2;
	NI nxt;
	tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* next;
	NI lastSize;
	NI prv;
	tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* prev;
	result = (tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*)0;
	{
		NI usedMem;
		if (!!((*a).blockChunkSizeIncrease)) goto LA3_;
		usedMem = (*a).occ;
		{
			if (!(usedMem < ((NI) 65536))) goto LA7_;
			(*a).nextChunkSize = ((NI) 16384);
		}
		goto LA5_;
		LA7_: ;
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = roundup__system_3761((NI)((NI64)(usedMem) >> (NU64)(((NI) 2))), ((NI) 4096));
			(*a).nextChunkSize = ((T10_ <= (NI)((*a).nextChunkSize * ((NI) 2))) ? T10_ : (NI)((*a).nextChunkSize * ((NI) 2)));
			(*a).nextChunkSize = (((*a).nextChunkSize <= ((NI) 1056964608)) ? (*a).nextChunkSize : ((NI) 1056964608));
		}
		LA5_: ;
	}
	LA3_: ;
	size_2 = size;
	{
		void* T15_;
		if (!((*a).nextChunkSize < size_2)) goto LA13_;
		T15_ = (void*)0;
		T15_ = osAllocPages__system_3781(size_2);
		result = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (T15_));
	}
	goto LA11_;
	LA13_: ;
	{
		void* T17_;
		T17_ = (void*)0;
		T17_ = osTryAllocPages__system_3784((*a).nextChunkSize);
		result = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (T17_));
		{
			void* T22_;
			if (!(result == ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL))) goto LA20_;
			T22_ = (void*)0;
			T22_ = osAllocPages__system_3781(size_2);
			result = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (T22_));
			(*a).blockChunkSizeIncrease = NIM_TRUE;
		}
		goto LA18_;
		LA20_: ;
		{
			size_2 = (*a).nextChunkSize;
		}
		LA18_: ;
	}
	LA11_: ;
	incCurrMem__system_4024(a, size_2);
	(*a).freeMem += size_2;
	addHeapLink__system_4108(a, result, size_2);
	(*result).next = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*result).prev = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*result).Sup.size = size_2;
	nxt = pluspercent___system_696(((NI) (ptrdiff_t) (result)), size_2);
	next = ((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*) (nxt));
	{
		NI T26_;
		NIM_BOOL T27_;
		T26_ = (NI)0;
		T26_ = pageIndex__system_4486(next);
		T27_ = (NIM_BOOL)0;
		T27_ = contains__system_4290((&(*a).chunkStarts), T26_);
		if (!T27_) goto LA28_;
		(*next).prevSize = (NI)(size_2 | (NI)((*next).prevSize & ((NI) 1)));
	}
	LA28_: ;
	{
		if (!!(((*a).lastSize == ((NI) 0)))) goto LA32_;
		lastSize = (*a).lastSize;
	}
	goto LA30_;
	LA32_: ;
	{
		lastSize = ((NI) 4096);
	}
	LA30_: ;
	prv = minuspercent___system_716(((NI) (ptrdiff_t) (result)), lastSize);
	prev = ((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*) (prv));
	{
		NIM_BOOL T37_;
		NI T38_;
		T37_ = (NIM_BOOL)0;
		T38_ = (NI)0;
		T38_ = pageIndex__system_4486(prev);
		T37_ = contains__system_4290((&(*a).chunkStarts), T38_);
		if (!(T37_)) goto LA39_;
		T37_ = ((*prev).size == lastSize);
		LA39_: ;
		if (!T37_) goto LA40_;
		(*result).Sup.prevSize = (NI)(lastSize | (NI)((*result).Sup.prevSize & ((NI) 1)));
	}
	goto LA35_;
	LA40_: ;
	{
		(*result).Sup.prevSize = (NI)(((NI) 0) | (NI)((*result).Sup.prevSize & ((NI) 1)));
	}
	LA35_: ;
	(*a).lastSize = size_2;
	return result;
}
static N_INLINE(NI, pageIndex__system_4493)(void* p) {
	NI result;
	result = (NI)0;
	result = (NI)((NI64)(((NI) (ptrdiff_t) (p))) >> (NU64)(((NI) 12)));
	return result;
}
static N_INLINE(NIM_BOOL, isAccessible__system_4527)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, void* p) {
	NIM_BOOL result;
	NI T1_;
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = pageIndex__system_4493(p);
	result = contains__system_4290((&(*a).chunkStarts), T1_);
	return result;
}
static N_INLINE(void, updatePrevSize__system_4545)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c, NI prevSize) {
	tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* ri;
	NI T1_;
	T1_ = (NI)0;
	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (c)), (*c).Sup.size);
	ri = ((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*) (T1_));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = isAccessible__system_4527((&(*a)), ((void*) (ri)));
		if (!T4_) goto LA5_;
		(*ri).prevSize = (NI)(prevSize | (NI)((*ri).prevSize & ((NI) 1)));
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*, intSetPut__system_4273)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* t, NI key) {
	tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* result;
	result = (tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*)0;
	result = intSetGet__system_4251((&(*t)), key);
	{
		void* T5_;
		if (!(result == ((tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*) NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = llAlloc__system_4041(a, ((NI) 80));
		result = ((tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*) (T5_));
		(*result).next = (*t).data[((NI)(key & ((NI) 255)))- 0];
		(*t).data[((NI)(key & ((NI) 255)))- 0] = result;
		(*result).key = key;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__system_4321)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* s, NI key) {
	tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* t;
	NI u;
	t = intSetPut__system_4273(a, s, (NI)((NI64)(key) >> (NU64)(((NI) 9))));
	u = (NI)(key & ((NI) 511));
	(*t).bits[((NI)((NI64)(u) >> (NU64)(((NI) 6))))- 0] = (NU)((*t).bits[((NI)((NI64)(u) >> (NU64)(((NI) 6))))- 0] | (NU)((NU64)(((NU) 1)) << (NU64)((NI)(u & ((NI) 63)))));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, splitChunk2__system_4550)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c, NI size) {
	tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* result;
	NI T1_;
	NI T2_;
	result = (tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*)0;
	T1_ = (NI)0;
	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (c)), size);
	result = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (T1_));
	(*result).Sup.size = (NI)((*c).Sup.size - size);
	(*result).next = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*result).prev = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*result).Sup.prevSize = size;
	updatePrevSize__system_4545(a, c, (*result).Sup.size);
	(*c).Sup.size = size;
	T2_ = (NI)0;
	T2_ = pageIndex__system_4486((*((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA**) (&(result)))));
	incl__system_4321(a, (&(*a).chunkStarts), T2_);
	return result;
}
static N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, mappingInsert__system_3927)(NI r) {
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ result;
	nimZeroMem((void*)(&result), sizeof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ));
	result.Field0 = msbit__system_3884(((NU32) (r)));
	result.Field1 = (NI)((NI)((NI64)(r) >> (NU64)((NI)(result.Field0 - ((NI) 5)))) - ((NI) 32));
	result.Field0 -= ((NI) 6);
	return result;
}
static N_INLINE(void, setBit__system_3895)(NI nr, NU32* dest) {
	(*dest) = (NU32)((*dest) | (NU32)((NU64)(((NU32) 1)) << (NU64)((NI)(nr & ((NI) 31)))));
}
N_LIB_PRIVATE N_NIMCALL(void, addChunkToMatrix__system_4015)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* b) {
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
	NI fl;
	NI sl;
	T1_ = mappingInsert__system_3927((*b).Sup.size);
	fl = T1_.Field0;
	sl = T1_.Field1;
	(*b).prev = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*b).next = (*a).matrix[(fl)- 0][(sl)- 0];
	{
		if (!!(((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL)))) goto LA4_;
		(*(*a).matrix[(fl)- 0][(sl)- 0]).prev = b;
	}
	LA4_: ;
	(*a).matrix[(fl)- 0][(sl)- 0] = b;
	setBit__system_3895(sl, (&(*a).slBitmap[(fl)- 0]));
	setBit__system_3895(fl, (&(*a).flBitmap));
}
N_LIB_PRIVATE N_NIMCALL(void, splitChunk__system_4555)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c, NI size) {
	tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* rest;
	rest = splitChunk2__system_4550(a, c, size);
	addChunkToMatrix__system_4015(a, rest);
}
static N_INLINE(void, clearBit__system_3902)(NI nr, NU32* dest) {
	(*dest) = (NU32)((*dest) & (NU32)((NU32) ~((NU32)((NU64)(((NU32) 1)) << (NU64)((NI)(nr & ((NI) 31)))))));
}
N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix2__system_4006)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* b, NI fl, NI sl) {
	(*a).matrix[(fl)- 0][(sl)- 0] = (*b).next;
	{
		if (!!(((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL)))) goto LA3_;
		(*(*a).matrix[(fl)- 0][(sl)- 0]).prev = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		clearBit__system_3902(sl, (&(*a).slBitmap[(fl)- 0]));
		{
			if (!((*a).slBitmap[(fl)- 0] == ((NU32) 0))) goto LA8_;
			clearBit__system_3902(fl, (&(*a).flBitmap));
		}
		LA8_: ;
	}
	LA1_: ;
	(*b).prev = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*b).next = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, getBigChunk__system_4581)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI size) {
	tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* result;
	NI size_2;
	NI fl;
	NI sl;
	NI T19_;
	result = (tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*)0;
	size_2 = size;
	fl = ((NI) 0);
	sl = ((NI) 0);
	mappingSearch__system_3909((&size_2), (&fl), (&sl));
	result = findSuitableBlock__system_3941((&(*a)), (&fl), (&sl));
	{
		if (!(result == ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL))) goto LA3_;
		{
			if (!(size_2 < ((NI) 524288))) goto LA7_;
			result = requestOsChunks__system_4504(a, ((NI) 524288));
			splitChunk__system_4555(a, result, size_2);
		}
		goto LA5_;
		LA7_: ;
		{
			result = requestOsChunks__system_4504(a, size_2);
			{
				if (!(size_2 < (*result).Sup.size)) goto LA12_;
				splitChunk__system_4555(a, result, size_2);
			}
			LA12_: ;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		removeChunkFromMatrix2__system_4006(a, result, fl, sl);
		{
			if (!((NI)(size_2 + ((NI) 4096)) <= (*result).Sup.size)) goto LA17_;
			splitChunk__system_4555(a, result, size_2);
		}
		LA17_: ;
	}
	LA1_: ;
	(*result).Sup.prevSize = ((NI) 1);
	T19_ = (NI)0;
	T19_ = pageIndex__system_4486((*((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA**) (&(result)))));
	incl__system_4321(a, (&(*a).chunkStarts), T19_);
	(*a).freeMem -= size_2;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*, getSmallChunk__system_4604)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a) {
	tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* result;
	tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* res;
	result = (tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*)0;
	res = getBigChunk__system_4581(a, ((NI) 4096));
	result = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) (res));
	return result;
}
static N_INLINE(void, listAdd__system_4642)(tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw** head, tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* c) {
	(*c).next = (*head);
	{
		if (!!(((*head) == ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL)))) goto LA3_;
		(*(*head)).prev = c;
	}
	LA3_: ;
	(*head) = c;
}
static N_INLINE(void, listRemove__system_4695)(tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw** head, tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* c) {
	{
		if (!(c == (*head))) goto LA3_;
		(*head) = (*c).next;
		{
			if (!!(((*head) == ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL)))) goto LA7_;
			(*(*head)).prev = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL);
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		(*(*c).prev).next = (*c).next;
		{
			if (!!(((*c).next == ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL)))) goto LA12_;
			(*(*c).next).prev = (*c).prev;
		}
		LA12_: ;
	}
	LA1_: ;
	(*c).next = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL);
	(*c).prev = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*, getHugeChunk__system_4596)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI size) {
	tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* result;
	void* T1_;
	NI T2_;
	result = (tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*)0;
	T1_ = (void*)0;
	T1_ = osAllocPages__system_3781(size);
	result = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (T1_));
	incCurrMem__system_4024(a, size);
	(*result).next = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*result).prev = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*result).Sup.size = size;
	(*result).Sup.prevSize = ((NI) 1);
	T2_ = (NI)0;
	T2_ = pageIndex__system_4486((*((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA**) (&(result)))));
	incl__system_4321(a, (&(*a).chunkStarts), T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*, getBottom__system_4067)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a) {
	tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* result;
	result = (tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*)0;
	result = (&(*a).bottomData);
	{
		if (!((*result).link[(((NI) 0))- 0] == ((tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*) NIM_NIL))) goto LA3_;
		(*result).link[(((NI) 0))- 0] = result;
		(*result).link[(((NI) 1))- 0] = result;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*, allocAvlNode__system_4083)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI key, NI upperBound) {
	tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* result;
	tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* bottom;
	result = (tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*)0;
	{
		if (!!(((*a).freeAvlNodes == ((tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*) NIM_NIL)))) goto LA3_;
		result = (*a).freeAvlNodes;
		(*a).freeAvlNodes = (*(*a).freeAvlNodes).link[(((NI) 0))- 0];
	}
	goto LA1_;
	LA3_: ;
	{
		void* T6_;
		T6_ = (void*)0;
		T6_ = llAlloc__system_4041(a, ((NI) 40));
		result = ((tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*) (T6_));
	}
	LA1_: ;
	(*result).key = key;
	(*result).upperBound = upperBound;
	bottom = getBottom__system_4067(a);
	(*result).link[(((NI) 0))- 0] = bottom;
	(*result).link[(((NI) 1))- 0] = bottom;
	(*result).level = ((NI) 1);
	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;
}
N_LIB_PRIVATE N_NIMCALL(void, skew__system_4204)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw** t) {
	{
		tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* temp;
		if (!((*(*(*t)).link[(((NI) 0))- 0]).level == (*(*t)).level)) goto LA3_;
		temp = (*t);
		(*t) = (*(*t)).link[(((NI) 0))- 0];
		(*temp).link[(((NI) 0))- 0] = (*(*t)).link[(((NI) 1))- 0];
		(*(*t)).link[(((NI) 1))- 0] = temp;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, split__system_4207)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw** t) {
	{
		tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* temp;
		if (!((*(*(*(*t)).link[(((NI) 1))- 0]).link[(((NI) 1))- 0]).level == (*(*t)).level)) goto LA3_;
		temp = (*t);
		(*t) = (*(*t)).link[(((NI) 1))- 0];
		(*temp).link[(((NI) 1))- 0] = (*(*t)).link[(((NI) 0))- 0];
		(*(*t)).link[(((NI) 0))- 0] = temp;
		(*(*t)).level += ((NI) 1);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, add__system_4214)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw** t, NI key, NI upperBound) {
	{
		if (!((*(*t)).link[(((NI) 0))- 0] == (*t))) goto LA3_;
		(*t) = allocAvlNode__system_4083(a, key, upperBound);
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ltpercent___system_1005(key, (*(*t)).key);
			if (!T8_) goto LA9_;
			add__system_4214(a, &(*(*t)).link[(((NI) 0))- 0], key, upperBound);
		}
		goto LA6_;
		LA9_: ;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = ltpercent___system_1005((*(*t)).key, key);
			if (!T12_) goto LA13_;
			add__system_4214(a, &(*(*t)).link[(((NI) 1))- 0], key, upperBound);
		}
		goto LA6_;
		LA13_: ;
		{
		}
		LA6_: ;
		skew__system_4204(t);
		split__system_4207(t);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void*, rawAlloc__system_4625)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI requestedSize) {
	void* result;
	NI size;
	result = (void*)0;
	size = roundup__system_3761(requestedSize, ((NI) 16));
	{
		NI s;
		tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* c;
		if (!(size <= ((NI) 4032))) goto LA3_;
		s = (NI)(size / ((NI) 16));
		c = (*a).freeSmallChunks[(s)- 0];
		{
			if (!(c == ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL))) goto LA7_;
			c = getSmallChunk__system_4604(a);
			(*c).freeList = ((tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw*) NIM_NIL);
			(*c).Sup.size = size;
			(*c).acc = size;
			(*c).free = (NI)(((NI) 4032) - size);
			(*c).next = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL);
			(*c).prev = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) NIM_NIL);
			listAdd__system_4642(&(*a).freeSmallChunks[(s)- 0], c);
			result = ((void*) ((*c).data));
		}
		goto LA5_;
		LA7_: ;
		{
			{
				NI T14_;
				if (!((*c).freeList == ((tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw*) NIM_NIL))) goto LA12_;
				T14_ = (NI)0;
				T14_ = pluspercent___system_696(((NI) (ptrdiff_t) ((*c).data)), (*c).acc);
				result = ((void*) (T14_));
				(*c).acc += size;
			}
			goto LA10_;
			LA12_: ;
			{
				result = ((void*) ((*c).freeList));
				(*c).freeList = (*(*c).freeList).next;
			}
			LA10_: ;
			(*c).free -= size;
		}
		LA5_: ;
		{
			if (!((*c).free < size)) goto LA18_;
			listRemove__system_4695(&(*a).freeSmallChunks[(s)- 0], c);
		}
		LA18_: ;
		(*a).occ += size;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c_2;
		NI T30_;
		size = (NI)(requestedSize + ((NI) 32));
		{
			if (!(((NI) 1056964609) <= size)) goto LA23_;
			c_2 = getHugeChunk__system_4596(a, size);
		}
		goto LA21_;
		LA23_: ;
		{
			c_2 = getBigChunk__system_4581(a, size);
		}
		LA21_: ;
		result = ((void*) ((*c_2).data));
		{
			if (!((*a).root == ((tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*) NIM_NIL))) goto LA28_;
			(*a).root = getBottom__system_4067(a);
		}
		LA28_: ;
		T30_ = (NI)0;
		T30_ = pluspercent___system_696(((NI) (ptrdiff_t) (result)), size);
		add__system_4214(a, &(*a).root, ((NI) (ptrdiff_t) (result)), T30_);
		(*a).occ += (*c_2).Sup.size;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, alloc__system_4841)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* allocator, NI size) {
	void* result;
	NI T1_;
	result = (void*)0;
	result = rawAlloc__system_4625(allocator, (NI)(((NI) (size)) + ((NI) 16)));
	(*((tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw*) (result))).zeroField = ((NI) 1);
	T1_ = (NI)0;
	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (result)), ((NI) 16));
	result = ((void*) (T1_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, alloc0__system_4845)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* allocator, NI size) {
	void* result;
	result = (void*)0;
	result = alloc__system_4841(allocator, size);
	zeroMem__system_1730(result, size);
	return result;
}
N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1751)(NI size) {
	void* result;
	result = (void*)0;
	result = alloc0__system_4845((&gch__system_5283.region), size);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, init__system_4951)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, NI cap) {
	void* T1_;
	(*s).len = ((NI) 0);
	(*s).cap = cap;
	T1_ = (void*)0;
	T1_ = alloc0Impl__system_1751(((NI) ((NI)(cap * ((NI) 8)))));
	(*s).d = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g**) (T1_));
}
N_LIB_PRIVATE N_NIMCALL(void, init__system_4957)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = alloc0Impl__system_1751(((NI) 8192));
	(*s).data = ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ**) (T1_));
	(*s).max = ((NI) 1023);
	(*s).counter = ((NI) 0);
	(*s).head = ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL);
}
static N_INLINE(NI, atomicInc__system_1724)(NI* memLoc, NI x) {
	NI result;
	result = (NI)0;
	(*memLoc) += x;
	result = (*memLoc);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initGC__system_2398)(void) {
	NI T1_;
	gch__system_5283.cycleThreshold = ((NI) 4194304);
	gch__system_5283.zctThreshold = ((NI) 500);
	gch__system_5283.stat.stackScans = ((NI) 0);
	gch__system_5283.stat.cycleCollections = ((NI) 0);
	gch__system_5283.stat.maxThreshold = ((NI) 0);
	gch__system_5283.stat.maxStackSize = ((NI) 0);
	gch__system_5283.stat.maxStackCells = ((NI) 0);
	gch__system_5283.stat.cycleTableSize = ((NI) 0);
	init__system_4951((&gch__system_5283.zct), ((NI) 1024));
	init__system_4951((&gch__system_5283.tempStack), ((NI) 1024));
	init__system_4951((&gch__system_5283.decStack), ((NI) 1024));
	init__system_4957((&gch__system_5283.marked));
	init__system_4951((&gch__system_5283.additionalRoots), ((NI) 1024));
	T1_ = (NI)0;
	T1_ = atomicInc__system_1724((&gHeapidGenerator__system_5550), ((NI) 1));
	gch__system_5283.gcThreadId = (NI)(T1_ - ((NI) 1));
}
static N_NIMCALL(void, Marker_tySequence__QbmGqFaLnb1IWWToREeaIA)(void* p, NI op) {
	tySequence__QbmGqFaLnb1IWWToREeaIA* a;
	NI T1_;
	a = (tySequence__QbmGqFaLnb1IWWToREeaIA*)p;
	T1_ = (NI)0;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5336)(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;
}
N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1749)(NI size) {
	void* result;
	result = (void*)0;
	result = alloc__system_4841((&gch__system_5283.region), size);
	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__system_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*, pageAddr__system_4500)(void* p) {
	tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* result;
	result = (tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*)0;
	result = ((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*) ((NI)(((NI) (ptrdiff_t) (p)) & ((NI) -4096))));
	return result;
}
static N_INLINE(NIM_BOOL, isSmallChunk__system_4411)(tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*c).size <= ((NI) 4032));
	return result;
}
static N_INLINE(NIM_BOOL, chunkUnused__system_4417)(tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NI)((*c).prevSize & ((NI) 1)) == ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix__system_3976)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* b) {
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
	NI fl;
	NI sl;
	T1_ = mappingInsert__system_3927((*b).Sup.size);
	fl = T1_.Field0;
	sl = T1_.Field1;
	{
		if (!!(((*b).next == ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL)))) goto LA4_;
		(*(*b).next).prev = (*b).prev;
	}
	LA4_: ;
	{
		if (!!(((*b).prev == ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL)))) goto LA8_;
		(*(*b).prev).next = (*b).next;
	}
	LA8_: ;
	{
		if (!((*a).matrix[(fl)- 0][(sl)- 0] == b)) goto LA12_;
		(*a).matrix[(fl)- 0][(sl)- 0] = (*b).next;
		{
			if (!((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL))) goto LA16_;
			clearBit__system_3902(sl, (&(*a).slBitmap[(fl)- 0]));
			{
				if (!((*a).slBitmap[(fl)- 0] == ((NU32) 0))) goto LA20_;
				clearBit__system_3902(fl, (&(*a).flBitmap));
			}
			LA20_: ;
		}
		LA16_: ;
	}
	LA12_: ;
	(*b).prev = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
	(*b).next = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) NIM_NIL);
}
N_LIB_PRIVATE N_NIMCALL(void, excl__system_4343)(tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A* s, NI key) {
	tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* t;
	t = intSetGet__system_4251((&(*s)), (NI)((NI64)(key) >> (NU64)(((NI) 9))));
	{
		NI u;
		if (!!((t == ((tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*) NIM_NIL)))) goto LA3_;
		u = (NI)(key & ((NI) 511));
		(*t).bits[((NI)((NI64)(u) >> (NU64)(((NI) 6))))- 0] = (NU)((*t).bits[((NI)((NI64)(u) >> (NU64)(((NI) 6))))- 0] & (NU)((NU64) ~((NU)((NU64)(((NU) 1)) << (NU64)((NI)(u & ((NI) 63)))))));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, freeBigChunk__system_4560)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c) {
	tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c_2;
	NI prevSize;
	tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* ri;
	NI T24_;
	c_2 = c;
	(*a).freeMem += (*c_2).Sup.size;
	(*c_2).Sup.prevSize = (NI)((*c_2).Sup.prevSize & ((NI) -2));
	prevSize = (*c_2).Sup.prevSize;
	{
		tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* le;
		NI T5_;
		if (!!((prevSize == ((NI) 0)))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_716(((NI) (ptrdiff_t) (c_2)), prevSize);
		le = ((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*) (T5_));
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isAccessible__system_4527((&(*a)), ((void*) (le)));
			if (!(T8_)) goto LA9_;
			T8_ = chunkUnused__system_4417(le);
			LA9_: ;
			if (!T8_) goto LA10_;
			{
				NIM_BOOL T14_;
				NIM_BOOL T15_;
				NI T19_;
				T14_ = (NIM_BOOL)0;
				T15_ = (NIM_BOOL)0;
				T15_ = isSmallChunk__system_4411(le);
				T14_ = !(T15_);
				if (!(T14_)) goto LA16_;
				T14_ = ((*le).size < ((NI) 1056964608));
				LA16_: ;
				if (!T14_) goto LA17_;
				removeChunkFromMatrix__system_3976(a, ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (le)));
				(*le).size += (*c_2).Sup.size;
				T19_ = (NI)0;
				T19_ = pageIndex__system_4486((*((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA**) (&(c_2)))));
				excl__system_4343((&(*a).chunkStarts), T19_);
				c_2 = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (le));
				{
					tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* rest;
					if (!(((NI) 1056964608) < (*c_2).Sup.size)) goto LA22_;
					rest = splitChunk2__system_4550(a, c_2, ((NI) 1056964608));
					addChunkToMatrix__system_4015(a, c_2);
					c_2 = rest;
				}
				LA22_: ;
			}
			LA17_: ;
		}
		LA10_: ;
	}
	LA3_: ;
	T24_ = (NI)0;
	T24_ = pluspercent___system_696(((NI) (ptrdiff_t) (c_2)), (*c_2).Sup.size);
	ri = ((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*) (T24_));
	{
		NIM_BOOL T27_;
		T27_ = (NIM_BOOL)0;
		T27_ = isAccessible__system_4527((&(*a)), ((void*) (ri)));
		if (!(T27_)) goto LA28_;
		T27_ = chunkUnused__system_4417(ri);
		LA28_: ;
		if (!T27_) goto LA29_;
		{
			NIM_BOOL T33_;
			NIM_BOOL T34_;
			NI T38_;
			T33_ = (NIM_BOOL)0;
			T34_ = (NIM_BOOL)0;
			T34_ = isSmallChunk__system_4411(ri);
			T33_ = !(T34_);
			if (!(T33_)) goto LA35_;
			T33_ = ((*c_2).Sup.size < ((NI) 1056964608));
			LA35_: ;
			if (!T33_) goto LA36_;
			removeChunkFromMatrix__system_3976(a, ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (ri)));
			(*c_2).Sup.size += (*ri).size;
			T38_ = (NI)0;
			T38_ = pageIndex__system_4486(ri);
			excl__system_4343((&(*a).chunkStarts), T38_);
			{
				tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* rest_2;
				if (!(((NI) 1056964608) < (*c_2).Sup.size)) goto LA41_;
				rest_2 = splitChunk2__system_4550(a, c_2, ((NI) 1056964608));
				addChunkToMatrix__system_4015(a, rest_2);
			}
			LA41_: ;
		}
		LA36_: ;
	}
	LA29_: ;
	addChunkToMatrix__system_4015(a, c_2);
}
static N_INLINE(void, deallocAvlNode__system_4105)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* n) {
	(*n).link[(((NI) 0))- 0] = (*a).freeAvlNodes;
	(*a).freeAvlNodes = n;
}
N_LIB_PRIVATE N_NIMCALL(void, del__system_4223)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw** t, NI x) {
{	{
		if (!((*(*t)).link[(((NI) 0))- 0] == (*t))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	(*a).last = (*t);
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = ltpercent___system_1005(x, (*(*t)).key);
		if (!T7_) goto LA8_;
		del__system_4223(a, &(*(*t)).link[(((NI) 0))- 0], x);
	}
	goto LA5_;
	LA8_: ;
	{
		(*a).deleted = (*t);
		del__system_4223(a, &(*(*t)).link[(((NI) 1))- 0], x);
	}
	LA5_: ;
	{
		NIM_BOOL T13_;
		NIM_BOOL T14_;
		T13_ = (NIM_BOOL)0;
		T14_ = (NIM_BOOL)0;
		T14_ = ((*t) == (*a).last);
		if (!(T14_)) goto LA15_;
		T14_ = !(((*(*a).deleted).link[(((NI) 0))- 0] == (*a).deleted));
		LA15_: ;
		T13_ = T14_;
		if (!(T13_)) goto LA16_;
		T13_ = (x == (*(*a).deleted).key);
		LA16_: ;
		if (!T13_) goto LA17_;
		(*(*a).deleted).key = (*(*t)).key;
		(*(*a).deleted).upperBound = (*(*t)).upperBound;
		(*a).deleted = getBottom__system_4067(a);
		(*t) = (*(*t)).link[(((NI) 1))- 0];
		deallocAvlNode__system_4105(a, (*a).last);
	}
	goto LA11_;
	LA17_: ;
	{
		NIM_BOOL T20_;
		T20_ = (NIM_BOOL)0;
		T20_ = ((*(*(*t)).link[(((NI) 0))- 0]).level < (NI)((*(*t)).level - ((NI) 1)));
		if (T20_) goto LA21_;
		T20_ = ((*(*(*t)).link[(((NI) 1))- 0]).level < (NI)((*(*t)).level - ((NI) 1)));
		LA21_: ;
		if (!T20_) goto LA22_;
		(*(*t)).level -= ((NI) 1);
		{
			if (!((*(*t)).level < (*(*(*t)).link[(((NI) 1))- 0]).level)) goto LA26_;
			(*(*(*t)).link[(((NI) 1))- 0]).level = (*(*t)).level;
		}
		LA26_: ;
		skew__system_4204(t);
		skew__system_4204(&(*(*t)).link[(((NI) 1))- 0]);
		skew__system_4204(&(*(*(*t)).link[(((NI) 1))- 0]).link[(((NI) 1))- 0]);
		split__system_4207(t);
		split__system_4207(&(*(*t)).link[(((NI) 1))- 0]);
	}
	goto LA11_;
	LA22_: ;
	LA11_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, decCurrMem__system_4031)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, NI bytes) {
	(*a).maxMem = (((*a).maxMem >= (*a).currMem) ? (*a).maxMem : (*a).currMem);
	(*a).currMem -= bytes;
}
static N_INLINE(void, osDeallocPages__system_3787)(void* p, NI size) {
	{
		int T3_;
		int T6_;
		T3_ = (int)0;
		T3_ = VirtualFree(p, ((NI) 0), ((NI32) 32768));
		if (!(T3_ == ((NI32) 0))) goto LA4_;
		T6_ = (int)0;
		T6_ = printf("virtualFree failing!");
		exit(((NI) 1));
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, freeHugeChunk__system_4600)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c) {
	NI size;
	NI T1_;
	size = (*c).Sup.size;
	T1_ = (NI)0;
	T1_ = pageIndex__system_4486(&c->Sup);
	excl__system_4343((&(*a).chunkStarts), T1_);
	decCurrMem__system_4031(a, size);
	osDeallocPages__system_3787(((void*) (c)), size);
}
N_LIB_PRIVATE N_NIMCALL(void, rawDealloc__system_4754)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, void* p) {
	tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c;
	c = pageAddr__system_4500(p);
	{
		NIM_BOOL T3_;
		tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* c_2;
		NI s;
		tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw* f;
		T3_ = (NIM_BOOL)0;
		T3_ = isSmallChunk__system_4411(c);
		if (!T3_) goto LA4_;
		c_2 = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) (c));
		s = (*c_2).Sup.size;
		(*a).occ -= s;
		f = ((tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw*) (p));
		(*f).zeroField = ((NI) 0);
		(*f).next = (*c_2).freeList;
		(*c_2).freeList = f;
		{
			if (!((*c_2).free < s)) goto LA8_;
			listAdd__system_4642(&(*a).freeSmallChunks[((NI)(s / ((NI) 16)))- 0], c_2);
			(*c_2).free += s;
		}
		goto LA6_;
		LA8_: ;
		{
			(*c_2).free += s;
			{
				if (!((*c_2).free == ((NI) 4032))) goto LA13_;
				listRemove__system_4695(&(*a).freeSmallChunks[((NI)(s / ((NI) 16)))- 0], c_2);
				(*c_2).Sup.size = ((NI) 4096);
				freeBigChunk__system_4560(a, ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (c_2)));
			}
			LA13_: ;
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c_3;
		c_3 = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (c));
		(*a).occ -= (*c_3).Sup.size;
		(*a).deleted = getBottom__system_4067(a);
		del__system_4223(a, &(*a).root, ((NI) (ptrdiff_t) ((*c_3).data)));
		{
			if (!(((NI) 1056964609) <= (*c_3).Sup.size)) goto LA18_;
			freeHugeChunk__system_4600(a, c_3);
		}
		goto LA16_;
		LA18_: ;
		{
			freeBigChunk__system_4560(a, c_3);
		}
		LA16_: ;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, dealloc__system_4849)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* allocator, void* p) {
	void* x;
	NI T1_;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (p)), ((NI) 16));
	x = ((void*) (T1_));
	rawDealloc__system_4754(allocator, x);
}
N_LIB_PRIVATE N_NOCONV(void, deallocImpl__system_1753)(void* p) {
	dealloc__system_4849((&gch__system_5283.region), p);
}
N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p) {
	deallocImpl__system_1753(p);
}
static N_INLINE(void, add__system_4925)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
		void* T5_;
		if (!((*s).cap <= (*s).len)) goto LA3_;
		(*s).cap = (NI)((NI)((*s).cap * ((NI) 3)) / ((NI) 2));
		T5_ = (void*)0;
		T5_ = allocImpl__system_1749(((NI) ((NI)((*s).cap * ((NI) 8)))));
		d = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g**) (T5_));
		copyMem__system_1733(((void*) (d)), ((void*) ((*s).d)), ((NI) ((NI)((*s).len * ((NI) 8)))));
		dealloc(((void*) ((*s).d)));
		(*s).d = d;
	}
	LA3_: ;
	(*s).d[(*s).len] = c;
	(*s).len += ((NI) 1);
}
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5330)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	{
		if (!((NI)((*c).refcount & ((NI) 4)) == ((NI) 0))) goto LA3_;
		(*c).refcount = (NI)((*c).refcount | ((NI) 4));
		add__system_4925(s, c);
	}
	LA3_: ;
}
static N_INLINE(void, rtlAddZCT__system_5379)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5330((&gch__system_5283.zct), c);
}
static N_INLINE(void, decRef__system_5381)(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_5379(c);
	}
	LA4_: ;
}
static N_INLINE(NI, nextTry__system_4985)(NI h, NI maxHash) {
	NI result;
	result = (NI)0;
	result = (NI)((NI)((NI)(((NI) 5) * h) + ((NI) 1)) & maxHash);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, cellSetRawInsert__system_4998)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* t, tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data, tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* desc) {
	NI h;
	h = (NI)(((NI) ((*desc).key)) & (*t).max);
	{
		while (1) {
			if (!!((data[h] == ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL)))) goto LA2;
			h = nextTry__system_4985(h, (*t).max);
		} LA2: ;
	}
	data[h] = desc;
}
N_LIB_PRIVATE N_NIMCALL(void, cellSetEnlarge__system_5015)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* t) {
	NI oldMax;
	tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** n;
	void* T1_;
	oldMax = (*t).max;
	(*t).max = (NI)((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) - ((NI) 1));
	T1_ = (void*)0;
	T1_ = alloc0Impl__system_1751(((NI) ((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 8)))));
	n = ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ**) (T1_));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= oldMax)) goto LA4;
				i = res;
				{
					if (!!(((*t).data[i] == ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL)))) goto LA7_;
					cellSetRawInsert__system_4998((&(*t)), n, (*t).data[i]);
				}
				LA7_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	dealloc(((void*) ((*t).data)));
	(*t).data = n;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*, cellSetPut__system_5028)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* t, NU key) {
	tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* result;
	NI h;
	void* T19_;
{	result = (tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*)0;
	h = (NI)(((NI) (key)) & (*t).max);
	{
		while (1) {
			tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* x;
			x = (*t).data[h];
			{
				if (!(x == ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL))) goto LA5_;
				goto LA1;
			}
			LA5_: ;
			{
				if (!((*x).key == key)) goto LA9_;
				result = x;
				goto BeforeRet_;
			}
			LA9_: ;
			h = nextTry__system_4985(h, (*t).max);
		}
	} LA1: ;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) < (NI)((*t).counter * ((NI) 3)));
		if (T13_) goto LA14_;
		T13_ = ((NI)((NI)((*t).max + ((NI) 1)) - (*t).counter) < ((NI) 4));
		LA14_: ;
		if (!T13_) goto LA15_;
		cellSetEnlarge__system_5015(t);
	}
	LA15_: ;
	(*t).counter += ((NI) 1);
	h = (NI)(((NI) (key)) & (*t).max);
	{
		while (1) {
			if (!!(((*t).data[h] == ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL)))) goto LA18;
			h = nextTry__system_4985(h, (*t).max);
		} LA18: ;
	}
	T19_ = (void*)0;
	T19_ = alloc0Impl__system_1751(((NI) 48));
	result = ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) (T19_));
	(*result).next = (*t).head;
	(*result).key = key;
	(*t).head = result;
	(*t).data[h] = result;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__system_5082)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell) {
	NU u;
	tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* t;
	u = ((NU) (ptrdiff_t) (cell));
	t = cellSetPut__system_5028(s, (NU)((NU64)(u) >> (NU64)(((NI) 12))));
	u = (NU)((NU64)((NU)((NU64)(u) % (NU64)(((NU) 4096)))) / (NU64)(((NU) 16)));
	(*t).bits[((NU)((NU64)(u) >> (NU64)(((NI) 6))))- 0] = (NI)((*t).bits[((NU)((NU64)(u) >> (NU64)(((NI) 6))))- 0] | (NI)((NU64)(((NI) 1)) << (NU64)((NU)(u & ((NU) 63)))));
}
static N_INLINE(void*, cellToUsr__system_5333)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell) {
	void* result;
	NI T1_;
	result = (void*)0;
	T1_ = (NI)0;
	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (cell)), ((NI) 16));
	result = ((void*) (T1_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU, getDiscriminant__system_3690)(void* aa, TNimNode* n) {
	NU result;
	NU d;
	NU a;
{	result = (NU)0;
	d = (NU)0;
	a = ((NU) (ptrdiff_t) (aa));
	switch ((*(*n).typ).size) {
	case ((NI) 1):
	{
		d = ((NU) ((*((NU8*) ((NU)((NU64)(a) + (NU64)(((NU) ((*n).offset)))))))));
	}
	break;
	case ((NI) 2):
	{
		d = ((NU) ((*((NU16*) ((NU)((NU64)(a) + (NU64)(((NU) ((*n).offset)))))))));
	}
	break;
	case ((NI) 4):
	{
		d = ((NU) ((*((NU32*) ((NU)((NU64)(a) + (NU64)(((NU) ((*n).offset)))))))));
	}
	break;
	case ((NI) 8):
	{
		d = ((NU) ((*((NU64*) ((NU)((NU64)(a) + (NU64)(((NU) ((*n).offset)))))))));
	}
	break;
	default:
	{
		d = ((NU) 0);
	}
	break;
	}
	result = d;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(TNimNode*, selectBranch__system_3710)(void* aa, TNimNode* n) {
	TNimNode* result;
	NU discr;
	result = (TNimNode*)0;
	discr = getDiscriminant__system_3690(aa, n);
	{
		if (!((NU64)(discr) < (NU64)(((NU) ((*n).len))))) goto LA3_;
		result = (*n).sons[(discr)- 0];
		{
			if (!(result == ((TNimNode*) NIM_NIL))) goto LA7_;
			result = (*n).sons[((*n).len)- 0];
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = (*n).sons[((*n).len)- 0];
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, forAllSlotsAux__system_5601)(void* dest, TNimNode* n, tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ op) {
	NI d;
	d = ((NI) (ptrdiff_t) (dest));
	switch ((*n).kind) {
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 1):
	{
		NI T2_;
		T2_ = (NI)0;
		T2_ = pluspercent___system_696(d, (*n).offset);
		forAllChildrenAux__system_5370(((void*) (T2_)), (*n).typ, op);
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 2):
	{
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((*n).len - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA6;
					i = res;
					{
						if (!((*(*n).sons[(i)- 0]).kind == ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 1))) goto LA9_;
						{
							NI T15_;
							if (!((289406976 &((NU64)1<<((NU)((*(*(*n).sons[(i)- 0]).typ).kind)&63U)))!=0)) goto LA13_;
							T15_ = (NI)0;
							T15_ = pluspercent___system_696(d, (*(*n).sons[(i)- 0]).offset);
							doOperation__system_5367((*((void**) (T15_))), op);
						}
						goto LA11_;
						LA13_: ;
						{
							NI T17_;
							T17_ = (NI)0;
							T17_ = pluspercent___system_696(d, (*(*n).sons[(i)- 0]).offset);
							forAllChildrenAux__system_5370(((void*) (T17_)), (*(*n).sons[(i)- 0]).typ, op);
						}
						LA11_: ;
					}
					goto LA7_;
					LA9_: ;
					{
						forAllSlotsAux__system_5601(dest, (*n).sons[(i)- 0], op);
					}
					LA7_: ;
					res += ((NI) 1);
				} LA6: ;
			}
		}
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 3):
	{
		TNimNode* m;
		m = selectBranch__system_3710(dest, n);
		{
			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA22_;
			forAllSlotsAux__system_5601(dest, m, op);
		}
		LA22_: ;
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 0):
	{
	}
	break;
	}
}
static N_INLINE(NI, starpercent___system_736)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) * (NU64)(((NU) (y))))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, forAllChildrenAux__system_5370)(void* dest, TNimType* mt, tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ op) {
	NI d;
{	d = ((NI) (ptrdiff_t) (dest));
	{
		if (!(dest == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((((*mt).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w) 0))&7U)))!=0))) goto LA7_;
		switch ((*mt).kind) {
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 22):
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 28):
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 24):
		{
			doOperation__system_5367((*((void**) (d))), op);
		}
		break;
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 17):
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 18):
		{
			forAllSlotsAux__system_5601(dest, (*mt).node, op);
		}
		break;
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 16):
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 4):
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 27):
		{
			{
				NI i;
				NI colontmp_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
				res = ((NI) 0);
				{
					while (1) {
						NI T15_;
						NI T16_;
						if (!(res <= colontmp_)) goto LA14;
						i = res;
						T15_ = (NI)0;
						T15_ = starpercent___system_736(i, (*(*mt).base).size);
						T16_ = (NI)0;
						T16_ = pluspercent___system_696(d, T15_);
						forAllChildrenAux__system_5370(((void*) (T16_)), (*mt).base, op);
						res += ((NI) 1);
					} LA14: ;
				}
			}
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA7_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, align__system_1624)(NI address, NI alignment) {
	NI result;
	result = (NI)0;
	{
		if (!(alignment == ((NI) 0))) goto LA3_;
		result = address;
	}
	goto LA1_;
	LA3_: ;
	{
		result = (NI)((NI)(address + (NI)(alignment - ((NI) 1))) & (NI)((NU64) ~((NI)(alignment - ((NI) 1)))));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, forAllChildren__system_5364)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell, tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ op) {
	tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
	marker = (*(*cell).typ).marker;
	{
		void* T5_;
		if (!!((marker == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = cellToUsr__system_5333(cell);
		marker(T5_, ((NI) (op)));
	}
	goto LA1_;
	LA3_: ;
	{
		switch ((*(*cell).typ).kind) {
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 22):
		{
			void* T8_;
			T8_ = (void*)0;
			T8_ = cellToUsr__system_5333(cell);
			forAllChildrenAux__system_5370(T8_, (*(*cell).typ).base, op);
		}
		break;
		case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 24):
		{
			NI d;
			void* T10_;
			TGenericSeq* s;
			T10_ = (void*)0;
			T10_ = cellToUsr__system_5333(cell);
			d = ((NI) (ptrdiff_t) (T10_));
			s = ((TGenericSeq*) (d));
			{
				if (!!((s == ((TGenericSeq*) NIM_NIL)))) goto LA13_;
				{
					NI i;
					NI colontmp_;
					NI res;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (NI)((*s).len - ((NI) 1));
					res = ((NI) 0);
					{
						while (1) {
							NI T18_;
							NI T19_;
							NI T20_;
							NI T21_;
							if (!(res <= colontmp_)) goto LA17;
							i = res;
							T18_ = (NI)0;
							T18_ = align__system_1624(((NI) 16), (*(*(*cell).typ).base).align);
							T19_ = (NI)0;
							T19_ = pluspercent___system_696(d, T18_);
							T20_ = (NI)0;
							T20_ = starpercent___system_736(i, (*(*(*cell).typ).base).size);
							T21_ = (NI)0;
							T21_ = pluspercent___system_696(T19_, T20_);
							forAllChildrenAux__system_5370(((void*) (T21_)), (*(*cell).typ).base, op);
							res += ((NI) 1);
						} LA17: ;
					}
				}
			}
			LA13_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*, cellSetGet__system_4989)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* t, NU key) {
	tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* result;
	NI h;
{	result = (tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*)0;
	h = (NI)(((NI) (key)) & (*t).max);
	{
		while (1) {
			if (!!(((*t).data[h] == ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL)))) goto LA2;
			{
				if (!((*(*t).data[h]).key == key)) goto LA5_;
				result = (*t).data[h];
				goto BeforeRet_;
			}
			LA5_: ;
			h = nextTry__system_4985(h, (*t).max);
		} LA2: ;
	}
	result = ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__system_5128)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell) {
	NIM_BOOL result;
	NU u;
	tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* t;
	result = (NIM_BOOL)0;
	u = ((NU) (ptrdiff_t) (cell));
	t = cellSetGet__system_4989((&(*s)), (NU)((NU64)(u) >> (NU64)(((NI) 12))));
	{
		if (!!((t == ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL)))) goto LA3_;
		u = (NU)((NU64)((NU)((NU64)(u) % (NU64)(((NU) 4096)))) / (NU64)(((NU) 16)));
		result = !(((NI)((*t).bits[((NU)((NU64)(u) >> (NU64)(((NI) 6))))- 0] & (NI)((NU64)(((NI) 1)) << (NU64)((NU)(u & ((NU) 63))))) == ((NI) 0)));
		{
			if (!!(result)) goto LA7_;
			(*t).bits[((NU)((NU64)(u) >> (NU64)(((NI) 6))))- 0] = (NI)((*t).bits[((NU)((NU64)(u) >> (NU64)(((NI) 6))))- 0] | (NI)((NU64)(((NI) 1)) << (NU64)((NU)(u & ((NU) 63)))));
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		incl__system_5082(s, cell);
		result = NIM_FALSE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, markS__system_5785)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	incl__system_5082((&(*gch).marked), c);
	forAllChildren__system_5364(c, ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) 1));
	{
		while (1) {
			tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* d;
			if (!(((NI) 0) < (*gch).tempStack.len)) goto LA2;
			(*gch).tempStack.len -= ((NI) 1);
			d = (*gch).tempStack.d[(*gch).tempStack.len];
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = containsOrIncl__system_5128((&(*gch).marked), d);
				if (!!(T5_)) goto LA6_;
				forAllChildren__system_5364(d, ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) 1));
			}
			LA6_: ;
		} LA2: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, doOperation__system_5367)(void* p, tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ op) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c;
{	{
		if (!(p == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	c = usrToCell__system_5336(p);
	switch (op) {
	case ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) 2):
	{
		decRef__system_5381(c);
	}
	break;
	case ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) 3):
	{
		add__system_4925((&gch__system_5283.tempStack), c);
	}
	break;
	case ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) 0):
	{
		markS__system_5785((&gch__system_5283), c);
	}
	break;
	case ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) 1):
	{
		add__system_4925((&gch__system_5283.tempStack), c);
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op) {
	doOperation__system_5367(d, ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) (op)));
}
static N_NIMCALL(void, Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)(void* p, NI op) {
	Exception* a;
	a = (Exception*)p;
	nimGCvisit((void*)(*a).parent, op);
	nimGCvisit((void*)(*a).message, op);
	nimGCvisit((void*)(*a).trace, op);
	nimGCvisit((void*)(*a).up, op);
}
static N_NIMCALL(void, TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)(void) {
	nimGCvisit((void*)currException__system_2568, 0);
}
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc) {
	{
		if (!(threadLocalMarkersLen <= ((NI) 3499))) goto LA3_;
		threadLocalMarkers[(threadLocalMarkersLen)- 0] = markerProc;
		threadLocalMarkersLen += ((NI) 1);
	}
	goto LA1_;
	LA3_: ;
	{
		rawWrite(stderr, "[GC] cannot register thread local variable; too many thread local variables");
		exit(((NI) 1));
	}
	LA1_: ;
}
static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).prev = excHandler__system_2567;
	excHandler__system_2567 = s;
}
static N_INLINE(NI, getOccupiedMem__system_4885)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a) {
	NI result;
	result = (NI)0;
	result = (*a).occ;
	return result;
}
N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5450)(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack) {
	NI result;
	void* volatile pos;
	result = (NI)0;
	pos = ((void*) ((&pos)));
	{
		if (!!((pos == NIM_NIL))) goto LA3_;
		result = minuspercent___system_716(((NI) (ptrdiff_t) ((*stack).bottom)), ((NI) (ptrdiff_t) (pos)));
	}
	goto LA1_;
	LA3_: ;
	{
		result = ((NI) 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5454)(void) {
	NI result;
	result = (NI)0;
	result = ((NI) 0);
	{
		tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack;
		NI T2_;
		stack = (tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ*)0;
		stack = (&gch__system_5283.stack);
		T2_ = (NI)0;
		T2_ = stackSize__system_5450(stack);
		result = (NI)(result + T2_);
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, lowGauge__system_4164)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* n) {
	NI result;
	tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* it;
	result = (NI)0;
	it = n;
	{
		while (1) {
			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
			result = (*it).key;
			it = (*it).link[(((NI) 0))- 0];
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, highGauge__system_4172)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* n) {
	NI result;
	tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* it;
	result = (NI)0;
	result = ((NI) -1);
	it = n;
	{
		while (1) {
			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
			result = (*it).upperBound;
			it = (*it).link[(((NI) 1))- 0];
		} LA2: ;
	}
	return result;
}
static N_INLINE(void, prepareForInteriorPointerChecking__system_4806)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a) {
	(*a).minLargeObj = lowGauge__system_4164((*a).root);
	(*a).maxLargeObj = highGauge__system_4172((*a).root);
}
N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5466)(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack, void* position) {
}
N_LIB_PRIVATE N_NIMCALL(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ*, getActiveStack__system_5472)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* result;
	result = (tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ*)0;
	result = (&(*gch).stack);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isActiveStack__system_5475)(tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = NIM_TRUE;
	return result;
}
static N_INLINE(NI, percentpercent___system_776)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) % (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(NIM_BOOL, lteqpercent___system_985)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) <= (NU64)(((NU) (y))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*, inRange__system_4192)(tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root, NI key) {
	tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* result;
	tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* it;
{	result = (tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*)0;
	it = root;
	{
		while (1) {
			NIM_BOOL T9_;
			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = lteqpercent___system_985((*it).key, key);
				if (!(T5_)) goto LA6_;
				T5_ = ltpercent___system_1005(key, (*it).upperBound);
				LA6_: ;
				if (!T5_) goto LA7_;
				result = it;
				goto BeforeRet_;
			}
			LA7_: ;
			T9_ = (NIM_BOOL)0;
			T9_ = ltpercent___system_1005((*it).key, key);
			it = (*it).link[(T9_)- 0];
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, interiorAllocatedPtr__system_4808)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a, void* p) {
	void* result;
	result = (void*)0;
	{
		NIM_BOOL T3_;
		tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c;
		T3_ = (NIM_BOOL)0;
		T3_ = isAccessible__system_4527(a, p);
		if (!T3_) goto LA4_;
		c = pageAddr__system_4500(p);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = chunkUnused__system_4417(c);
			if (!!(T8_)) goto LA9_;
			{
				NIM_BOOL T13_;
				tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* c_2;
				NI offset;
				T13_ = (NIM_BOOL)0;
				T13_ = isSmallChunk__system_4411(c);
				if (!T13_) goto LA14_;
				c_2 = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) (c));
				offset = minuspercent___system_716((NI)(((NI) (ptrdiff_t) (p)) & ((NI) 4095)), ((NI) 64));
				{
					NIM_BOOL T18_;
					tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw* d;
					NI T21_;
					NI T22_;
					NI T23_;
					T18_ = (NIM_BOOL)0;
					T18_ = ltpercent___system_1005(offset, (*c_2).acc);
					if (!T18_) goto LA19_;
					T21_ = (NI)0;
					T21_ = pluspercent___system_696(((NI) (ptrdiff_t) ((*c_2).data)), offset);
					T22_ = (NI)0;
					T22_ = percentpercent___system_776(offset, (*c_2).Sup.size);
					T23_ = (NI)0;
					T23_ = minuspercent___system_716(T21_, T22_);
					d = ((tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw*) (T23_));
					{
						NIM_BOOL T26_;
						T26_ = (NIM_BOOL)0;
						T26_ = ltpercent___system_1005(((NI) 1), (*d).zeroField);
						if (!T26_) goto LA27_;
						result = ((void*) (d));
					}
					LA27_: ;
				}
				LA19_: ;
			}
			goto LA11_;
			LA14_: ;
			{
				tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c_3;
				NU8* d_2;
				c_3 = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (c));
				d_2 = (*c_3).data;
				{
					NIM_BOOL T32_;
					T32_ = (NIM_BOOL)0;
					T32_ = (((void*) (d_2)) <= p);
					if (!(T32_)) goto LA33_;
					T32_ = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw*) (d_2))).zeroField);
					LA33_: ;
					if (!T32_) goto LA34_;
					result = ((void*) (d_2));
				}
				LA34_: ;
			}
			LA11_: ;
		}
		LA9_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI q;
		q = ((NI) (ptrdiff_t) (p));
		{
			NIM_BOOL T39_;
			tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* avlNode;
			T39_ = (NIM_BOOL)0;
			T39_ = lteqpercent___system_985((*a).minLargeObj, q);
			if (!(T39_)) goto LA40_;
			T39_ = lteqpercent___system_985(q, (*a).maxLargeObj);
			LA40_: ;
			if (!T39_) goto LA41_;
			avlNode = inRange__system_4192((*a).root, q);
			{
				void* k;
				tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c_4;
				tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* T47_;
				if (!!((avlNode == ((tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw*) NIM_NIL)))) goto LA45_;
				k = ((void*) ((*avlNode).key));
				T47_ = (tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*)0;
				T47_ = pageAddr__system_4500(k);
				c_4 = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (T47_));
				{
					NIM_BOOL T50_;
					T50_ = (NIM_BOOL)0;
					T50_ = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw*) (k))).zeroField);
					if (!T50_) goto LA51_;
					result = k;
				}
				LA51_: ;
			}
			LA45_: ;
		}
		LA41_: ;
	}
	LA1_: ;
	return result;
}
static N_INLINE(void, incRef__system_5374)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(void, gcMark__system_5834)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch, void* p) {
	NI c;
	c = ((NI) (ptrdiff_t) (p));
	{
		NIM_BOOL T3_;
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* objStart;
		void* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005(((NI) 4096), c);
		if (!T3_) goto LA4_;
		T6_ = (void*)0;
		T6_ = interiorAllocatedPtr__system_4808((&(*gch).region), p);
		objStart = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T6_));
		{
			if (!!((objStart == ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) NIM_NIL)))) goto LA9_;
			incRef__system_5374(objStart);
			add__system_4925((&(*gch).decStack), objStart);
		}
		LA9_: ;
	}
	LA4_: ;
}
CLANG_NO_SANITIZE_ADDRESS N_LIB_PRIVATE void markStackAndRegisters__system_5843(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	jmp_buf registers;
	tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* T1_;
	T1_ = (tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ*)0;
	T1_ = getActiveStack__system_5472(gch);
	setPosition__system_5466(T1_, ((void*) ((&registers))));
	{
		int T4_;
		T4_ = (int)0;
		T4_ = setjmp(registers);
		if (!(T4_ == ((NI32) 0))) goto LA5_;
		{
			tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* stack;
			NI max;
			NI sp;
			stack = (tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ*)0;
			stack = (&(*gch).stack);
			max = ((NI) (ptrdiff_t) ((*stack).bottom));
			sp = ((NI) (ptrdiff_t) ((&registers)));
			{
				NIM_BOOL T10_;
				NI regEnd;
				T10_ = (NIM_BOOL)0;
				T10_ = isActiveStack__system_5475(stack);
				if (!T10_) goto LA11_;
				regEnd = pluspercent___system_696(sp, ((NI)sizeof(jmp_buf)));
				{
					while (1) {
						NIM_BOOL T15_;
						T15_ = (NIM_BOOL)0;
						T15_ = ltpercent___system_1005(sp, regEnd);
						if (!T15_) goto LA14;
						gcMark__system_5834(gch, (*((void**) (sp))));
						sp = pluspercent___system_696(sp, ((NI) 8));
					} LA14: ;
				}
			}
			LA11_: ;
			sp = (NI)(sp & ((NI) -8));
			{
				while (1) {
					NIM_BOOL T18_;
					T18_ = (NIM_BOOL)0;
					T18_ = ltpercent___system_1005(sp, (NI)(max - ((NI) 64)));
					if (!T18_) goto LA17;
					gcMark__system_5834(gch, ((void**) (sp))[(((NI) 0))- 0]);
					gcMark__system_5834(gch, ((void**) (sp))[(((NI) 1))- 0]);
					gcMark__system_5834(gch, ((void**) (sp))[(((NI) 2))- 0]);
					gcMark__system_5834(gch, ((void**) (sp))[(((NI) 3))- 0]);
					gcMark__system_5834(gch, ((void**) (sp))[(((NI) 4))- 0]);
					gcMark__system_5834(gch, ((void**) (sp))[(((NI) 5))- 0]);
					gcMark__system_5834(gch, ((void**) (sp))[(((NI) 6))- 0]);
					gcMark__system_5834(gch, ((void**) (sp))[(((NI) 7))- 0]);
					sp = pluspercent___system_696(sp, ((NI) 64));
				} LA17: ;
			}
			{
				while (1) {
					NIM_BOOL T21_;
					T21_ = (NIM_BOOL)0;
					T21_ = lteqpercent___system_985(sp, max);
					if (!T21_) goto LA20;
					gcMark__system_5834(gch, (*((void**) (sp))));
					sp = pluspercent___system_696(sp, ((NI) 8));
				} LA20: ;
			}
		}
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, prepareDealloc__system_5496)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell) {
	TNimType* t;
	t = (*cell).typ;
	{
		void* T5_;
		if (!!(((*t).finalizer == NIM_NIL))) goto LA3_;
		gch__system_5283.recGcLock += ((NI) 1);
		T5_ = (void*)0;
		T5_ = cellToUsr__system_5333(cell);
		((Finalizer) ((*t).finalizer))(T5_);
		gch__system_5283.recGcLock -= ((NI) 1);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, collectZCT__system_5824)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	NIM_BOOL result;
	NI* L;
	result = (NIM_BOOL)0;
	L = (&(*gch).zct.len);
	{
		while (1) {
			tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c;
			if (!(((NI) 0) < (*L))) goto LA2;
			c = (*gch).zct.d[((NI) 0)];
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			(*gch).zct.d[((NI) 0)] = (*gch).zct.d[(NI)((*L) - ((NI) 1))];
			(*L) -= ((NI) 1);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
				if (!T5_) goto LA6_;
				prepareDealloc__system_5496(c);
				forAllChildren__system_5364(c, ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) 2));
				rawDealloc__system_4754((&(*gch).region), ((void*) (c)));
			}
			LA6_: ;
		} LA2: ;
	}
	result = NIM_TRUE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, deinit__system_4977)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s) {
	tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* it;
	it = (*s).head;
	{
		while (1) {
			tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* n;
			if (!!((it == ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL)))) goto LA2;
			n = (*it).next;
			dealloc(((void*) (it)));
			it = n;
		} LA2: ;
	}
	(*s).head = ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL);
	dealloc(((void*) ((*s).data)));
	(*s).data = ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ**) NIM_NIL);
	(*s).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, cellsetReset__system_5599)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s) {
	deinit__system_4977(s);
	init__system_4957(s);
}
N_LIB_PRIVATE N_NIMCALL(void, markGlobals__system_5793)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
	{
		if (!((*gch).gcThreadId == ((NI) 0))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(globalMarkersLen - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA7;
					i = res;
					globalMarkers[(i)- 0]();
					res += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3_: ;
	{
		NI i_2;
		NI colontmp__2;
		NI res_2;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = (NI)(threadLocalMarkersLen - ((NI) 1));
		res_2 = ((NI) 0);
		{
			while (1) {
				if (!(res_2 <= colontmp__2)) goto LA10;
				i_2 = res_2;
				threadLocalMarkers[(i_2)- 0]();
				res_2 += ((NI) 1);
			} LA10: ;
		}
	}
	d = (*gch).additionalRoots.d;
	{
		NI i_3;
		NI colontmp__3;
		NI res_3;
		i_3 = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = (NI)((*gch).additionalRoots.len - ((NI) 1));
		res_3 = ((NI) 0);
		{
			while (1) {
				if (!(res_3 <= colontmp__3)) goto LA13;
				i_3 = res_3;
				markS__system_5785(gch, d[i_3]);
				res_3 += ((NI) 1);
			} LA13: ;
		}
	}
}
static N_INLINE(NIM_BOOL, isCell__system_4474)(void* p) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__tyvcm5yLPYnoTcF4QCMaWw*) (p))).zeroField);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_5050)(tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* cell) {
	NIM_BOOL result;
	NU u;
	tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* t;
	result = (NIM_BOOL)0;
	u = ((NU) (ptrdiff_t) (cell));
	t = cellSetGet__system_4989(s, (NU)((NU64)(u) >> (NU64)(((NI) 12))));
	{
		if (!!((t == ((tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ*) NIM_NIL)))) goto LA3_;
		u = (NU)((NU64)((NU)((NU64)(u) % (NU64)(((NU) 4096)))) / (NU64)(((NU) 16)));
		result = !(((NI)((*t).bits[((NU)((NU64)(u) >> (NU64)(((NI) 6))))- 0] & (NI)((NU64)(((NI) 1)) << (NU64)((NU)(u & ((NU) 63))))) == ((NI) 0)));
	}
	goto LA1_;
	LA3_: ;
	{
		result = NIM_FALSE;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeCyclicCell__system_5777)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	prepareDealloc__system_5496(c);
	rawDealloc__system_4754((&(*gch).region), ((void*) (c)));
}
N_LIB_PRIVATE N_NIMCALL(void, sweep__system_5781)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	{
		void* x;
		x = (void*)0;
		(*gch).region.locked = NIM_TRUE;
		{
			NI s;
			s = (NI)0;
			{
				NI h;
				NI res;
				h = (NI)0;
				res = ((NI) 0);
				{
					while (1) {
						tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* r;
						if (!(res <= ((NI) 255))) goto LA5;
						h = res;
						r = (*gch).region.chunkStarts.data[(h)- 0];
						{
							while (1) {
								NI i;
								if (!!((r == ((tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg*) NIM_NIL)))) goto LA7;
								i = ((NI) 0);
								{
									while (1) {
										NU w;
										NI j;
										if (!(i <= ((NI) 7))) goto LA9;
										w = (*r).bits[(i)- 0];
										j = ((NI) 0);
										{
											while (1) {
												if (!!((w == ((NU) 0)))) goto LA11;
												{
													NI T16_;
													if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA14_;
													T16_ = (NI)0;
													T16_ = pluspercent___system_696((NI)((NU64)(i) << (NU64)(((NI) 6))), j);
													s = (NI)((NI)((NU64)((*r).key) << (NU64)(((NI) 9))) | T16_);
													{
														NIM_BOOL T19_;
														tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA* c;
														T19_ = (NIM_BOOL)0;
														T19_ = contains__system_4290((&(*gch).region.chunkStarts), s);
														if (!T19_) goto LA20_;
														c = ((tyObject_BaseChunk__ooTOQtY4pXzug675aBB6BA*) ((NI)((NU64)(s) << (NU64)(((NI) 12)))));
														{
															NIM_BOOL T24_;
															T24_ = (NIM_BOOL)0;
															T24_ = chunkUnused__system_4417(c);
															if (!!(T24_)) goto LA25_;
															{
																NIM_BOOL T29_;
																tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* c_2;
																NI size;
																NI a;
																NI limit;
																T29_ = (NIM_BOOL)0;
																T29_ = isSmallChunk__system_4411(c);
																if (!T29_) goto LA30_;
																c_2 = ((tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw*) (c));
																size = (*c_2).Sup.size;
																a = ((NI) (ptrdiff_t) ((*c_2).data));
																limit = (NI)(a + (*c_2).acc);
																{
																	while (1) {
																		NIM_BOOL T34_;
																		T34_ = (NIM_BOOL)0;
																		T34_ = ltpercent___system_1005(a, limit);
																		if (!T34_) goto LA33;
																		x = ((void*) (a));
																		{
																			NIM_BOOL T37_;
																			tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c_3;
																			T37_ = (NIM_BOOL)0;
																			T37_ = isCell__system_4474(x);
																			if (!T37_) goto LA38_;
																			c_3 = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (x));
																			{
																				NIM_BOOL T42_;
																				T42_ = (NIM_BOOL)0;
																				T42_ = contains__system_5050((&(*gch).marked), c_3);
																				if (!!(T42_)) goto LA43_;
																				freeCyclicCell__system_5777(gch, c_3);
																			}
																			LA43_: ;
																		}
																		LA38_: ;
																		a = pluspercent___system_696(a, size);
																	} LA33: ;
																}
															}
															goto LA27_;
															LA30_: ;
															{
																tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* c_4;
																c_4 = ((tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA*) (c));
																x = ((void*) ((*c_4).data));
																{
																	NIM_BOOL T48_;
																	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c_5;
																	T48_ = (NIM_BOOL)0;
																	T48_ = isCell__system_4474(x);
																	if (!T48_) goto LA49_;
																	c_5 = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (x));
																	{
																		NIM_BOOL T53_;
																		T53_ = (NIM_BOOL)0;
																		T53_ = contains__system_5050((&(*gch).marked), c_5);
																		if (!!(T53_)) goto LA54_;
																		freeCyclicCell__system_5777(gch, c_5);
																	}
																	LA54_: ;
																}
																LA49_: ;
															}
															LA27_: ;
														}
														LA25_: ;
													}
													LA20_: ;
												}
												LA14_: ;
												j += ((NI) 1);
												w = (NU)((NU64)(w) >> (NU64)(((NI) 1)));
											} LA11: ;
										}
										i += ((NI) 1);
									} LA9: ;
								}
								r = (*r).next;
							} LA7: ;
						}
						res += ((NI) 1);
					} LA5: ;
				}
			}
		}
		(*gch).region.locked = NIM_FALSE;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, collectCycles__system_5826)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
	{
		while (1) {
			NIM_BOOL T3_;
			if (!(((NI) 0) < (*gch).zct.len)) goto LA2;
			T3_ = (NIM_BOOL)0;
			T3_ = collectZCT__system_5824(gch);
			(void)(T3_);
		} LA2: ;
	}
	cellsetReset__system_5599((&(*gch).marked));
	d = (*gch).decStack.d;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((*gch).decStack.len - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				markS__system_5785(gch, d[i]);
				res += ((NI) 1);
			} LA6: ;
		}
	}
	markGlobals__system_5793(gch);
	sweep__system_5781(gch);
}
N_LIB_PRIVATE N_NIMCALL(NI, getOccupiedMem__system_1942)(void) {
	NI result;
	result = (NI)0;
	result = gch__system_5283.region.occ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, unmarkStackAndRegisters__system_5898)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
	d = (*gch).decStack.d;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((*gch).decStack.len - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				decRef__system_5381(d[i]);
				res += ((NI) 1);
			} LA3: ;
		}
	}
	(*gch).decStack.len = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, collectCTBody__system_5906)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	NI T1_;
	T1_ = (NI)0;
	T1_ = stackSize__system_5454();
	(*gch).stat.maxStackSize = (((*gch).stat.maxStackSize >= T1_) ? (*gch).stat.maxStackSize : T1_);
	prepareForInteriorPointerChecking__system_4806((&(*gch).region));
	markStackAndRegisters__system_5843(gch);
	(*gch).stat.maxStackCells = (((*gch).stat.maxStackCells >= (*gch).decStack.len) ? (*gch).stat.maxStackCells : (*gch).decStack.len);
	(*gch).stat.stackScans += ((NI) 1);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = collectZCT__system_5824(gch);
		if (!T4_) goto LA5_;
		{
			NIM_BOOL T9_;
			NI T10_;
			NI T14_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NI)0;
			T10_ = getOccupiedMem__system_4885((&(*gch).region));
			T9_ = ((*gch).cycleThreshold <= T10_);
			if (T9_) goto LA11_;
			T9_ = NIM_FALSE;
			LA11_: ;
			if (!T9_) goto LA12_;
			collectCycles__system_5826(gch);
			(*gch).stat.cycleCollections += ((NI) 1);
			T14_ = (NI)0;
			T14_ = getOccupiedMem__system_1942();
			(*gch).cycleThreshold = ((((NI) 4194304) >= (NI)(T14_ * ((NI) 2))) ? ((NI) 4194304) : (NI)(T14_ * ((NI) 2)));
			(*gch).stat.maxThreshold = (((*gch).stat.maxThreshold >= (*gch).cycleThreshold) ? (*gch).stat.maxThreshold : (*gch).cycleThreshold);
		}
		LA12_: ;
	}
	LA5_: ;
	unmarkStackAndRegisters__system_5898(gch);
}
N_LIB_PRIVATE N_NIMCALL(void, collectCT__system_5360)(tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T7_;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*gch).zctThreshold <= (*gch).zct.len);
		if (T5_) goto LA6_;
		T7_ = (NIM_BOOL)0;
		T7_ = NIM_TRUE;
		if (!(T7_)) goto LA8_;
		T9_ = (NI)0;
		T9_ = getOccupiedMem__system_4885((&(*gch).region));
		T7_ = ((*gch).cycleThreshold <= T9_);
		LA8_: ;
		T5_ = T7_;
		LA6_: ;
		T4_ = T5_;
		if (T4_) goto LA10_;
		T4_ = NIM_FALSE;
		LA10_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA11_;
		T3_ = ((*gch).recGcLock == ((NI) 0));
		LA11_: ;
		if (!T3_) goto LA12_;
		collectCTBody__system_5906(gch);
		(*gch).zctThreshold = ((((NI) 500) >= (NI)((*gch).zct.len * ((NI) 2))) ? ((NI) 500) : (NI)((*gch).zct.len * ((NI) 2)));
	}
	LA12_: ;
}
static N_INLINE(void, addNewObjToZCT__system_5698)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* res, tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	NI L;
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
{	L = (*gch).zct.len;
	d = (*gch).zct.d;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c;
		if (!(((NI) 8) < L)) goto LA3_;
		c = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		c = d[(NI)(L - ((NI) 1))];
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
			if (!T7_) goto LA8_;
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			d[(NI)(L - ((NI) 1))] = res;
			goto BeforeRet_;
		}
		LA8_: ;
		c = d[(NI)(L - ((NI) 2))];
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
			if (!T12_) goto LA13_;
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			d[(NI)(L - ((NI) 2))] = res;
			goto BeforeRet_;
		}
		LA13_: ;
		c = d[(NI)(L - ((NI) 3))];
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
			if (!T17_) goto LA18_;
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			d[(NI)(L - ((NI) 3))] = res;
			goto BeforeRet_;
		}
		LA18_: ;
		c = d[(NI)(L - ((NI) 4))];
		{
			NIM_BOOL T22_;
			T22_ = (NIM_BOOL)0;
			T22_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
			if (!T22_) goto LA23_;
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			d[(NI)(L - ((NI) 4))] = res;
			goto BeforeRet_;
		}
		LA23_: ;
		c = d[(NI)(L - ((NI) 5))];
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
			if (!T27_) goto LA28_;
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			d[(NI)(L - ((NI) 5))] = res;
			goto BeforeRet_;
		}
		LA28_: ;
		c = d[(NI)(L - ((NI) 6))];
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
			if (!T32_) goto LA33_;
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			d[(NI)(L - ((NI) 6))] = res;
			goto BeforeRet_;
		}
		LA33_: ;
		c = d[(NI)(L - ((NI) 7))];
		{
			NIM_BOOL T37_;
			T37_ = (NIM_BOOL)0;
			T37_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
			if (!T37_) goto LA38_;
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			d[(NI)(L - ((NI) 7))] = res;
			goto BeforeRet_;
		}
		LA38_: ;
		c = d[(NI)(L - ((NI) 8))];
		{
			NIM_BOOL T42_;
			T42_ = (NIM_BOOL)0;
			T42_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
			if (!T42_) goto LA43_;
			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
			d[(NI)(L - ((NI) 8))] = res;
			goto BeforeRet_;
		}
		LA43_: ;
		add__system_4925((&(*gch).zct), res);
	}
	goto LA1_;
	LA3_: ;
	{
		d[L] = res;
		(*gch).zct.len += ((NI) 1);
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void*, rawNewObj__system_5713)(TNimType* typ, NI size, tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ* gch) {
	void* result;
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* res;
	void* T1_;
	result = (void*)0;
	collectCT__system_5360(gch);
	T1_ = (void*)0;
	T1_ = rawAlloc__system_4625((&(*gch).region), (NI)(size + ((NI) 16)));
	res = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	(*res).typ = typ;
	(*res).refcount = ((NI) 4);
	addNewObjToZCT__system_5698(res, gch);
	result = cellToUsr__system_5333(res);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, newObjNoInit)(TNimType* typ, NI size) {
	void* result;
	result = (void*)0;
	result = rawNewObj__system_5713(typ, size, (&gch__system_5283));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewStringNoInit)(NI space) {
	NimStringDesc* result;
	NI s;
	void* T5_;
	result = (NimStringDesc*)0;
	s = space;
	{
		if (!(s < ((NI) 7))) goto LA3_;
		s = ((NI) 7);
	}
	LA3_: ;
	T5_ = (void*)0;
	T5_ = newObjNoInit((&strDesc__system_2412), (NI)((NI)(((NI) 16) + s) + ((NI) 1)));
	result = ((NimStringDesc*) (T5_));
	(*result).Sup.reserved = s;
	(*result).Sup.len = ((NI) 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toNimStr)(NCSTRING str, NI len) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = rawNewStringNoInit(len);
	(*result).Sup.len = len;
	copyMem__system_1733(((void*) ((*result).data)), ((void*) (str)), ((NI) ((NI)(len + ((NI) 1)))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!(((void*) (str)) == NIM_NIL)) goto LA3_;
		result = ((NimStringDesc*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		result = toNimStr(str, (str ? nimCStrLen(str) : 0));
	}
	LA1_: ;
	return result;
}
static N_INLINE(void, popSafePoint)(void) {
	excHandler__system_2567 = (*excHandler__system_2567).prev;
}
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_5336(src);
		incRef__system_5374(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5336((*dest));
		decRef__system_5381(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currException__system_2568), (*currException__system_2568).up);
}
static N_NIMCALL(void, Marker_tyRef__uerrneZ83HrI24PYGM9bkXQ)(void* p, NI op) {
	tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g* a;
	a = (tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g*)p;
	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.up, op);
}
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size) {
	void* result;
	result = (void*)0;
	result = rawNewObj__system_5713(typ, size, (&gch__system_5283));
	zeroMem__system_1730(result, ((NI) (size)));
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void*, newObjRC1)(TNimType* typ, NI size) {
	void* result;
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* res;
	void* T1_;
	result = (void*)0;
	collectCT__system_5360((&gch__system_5283));
	T1_ = (void*)0;
	T1_ = rawAlloc__system_4625((&gch__system_5283.region), (NI)(size + ((NI) 16)));
	res = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	(*res).typ = typ;
	(*res).refcount = ((NI) 8);
	result = cellToUsr__system_5333(res);
	zeroMem__system_1730(result, ((NI) (size)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		{
			tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T9_;
			if (!!(((NI)((*src).Sup.reserved & ((NI) (IL64(-9223372036854775807) - IL64(1)))) == ((NI) 0)))) goto LA7_;
			result = src;
			T9_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
			T9_ = usrToCell__system_5336(((void*) (result)));
			incRef__system_5374(T9_);
		}
		goto LA5_;
		LA7_: ;
		{
			NI s;
			void* T15_;
			s = (*src).Sup.len;
			{
				if (!(s < ((NI) 7))) goto LA13_;
				s = ((NI) 7);
			}
			LA13_: ;
			T15_ = (void*)0;
			T15_ = newObjRC1((&strDesc__system_2412), (NI)((NI)(((NI) 16) + s) + ((NI) 1)));
			result = ((NimStringDesc*) (T15_));
			(*result).Sup.reserved = s;
			(*result).Sup.len = (*src).Sup.len;
			copyMem__system_1733(((void*) ((*result).data)), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		}
		LA5_: ;
	}
	LA3_: ;
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T1_;
	T1_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = usrToCell__system_5336(p);
	decRef__system_5381(T1_);
}
static N_NIMCALL(void, Marker_tyRef__qZuxwNGOWjWgqnLVJlr20w)(void* p, NI op) {
	tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw* a;
	a = (tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw*)p;
	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
}
static N_INLINE(void, sysFatal__system_3385)(NimStringDesc* message) {
	tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw*) newObj((&NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_), sizeof(tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_);
	(*T1_).Sup.Sup.Sup.name = "OverflowDefect";
	T2_ = NIM_NIL;
	T2_ = (*T1_).Sup.Sup.Sup.message; (*T1_).Sup.Sup.Sup.message = copyStringRC1(message);
	if (T2_) nimGCunrefNoCycle(T2_);
	raiseExceptionEx((Exception*)T1_, "OverflowDefect", "sysFatal", "fatal.nim", 54);
}
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void) {
	sysFatal__system_3385(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_7));
}
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len) {
	void* result;
	NI size;
	NI T1_;
	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_6;
	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_8;
	result = (void*)0;
	T1_ = (NI)0;
	T1_ = align__system_1624(((NI) 16), (*(*typ).base).align);
	if (nimMulInt(len, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_6)) { raiseOverflow(); };
	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_6), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_8)) { raiseOverflow(); };
	size = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_8);
	result = newObj(typ, size);
	(*((TGenericSeq*) (result))).len = len;
	(*((TGenericSeq*) (result))).reserved = len;
	return result;
}
static N_INLINE(NI, resize__system_5961)(NI old) {
	NI result;
	result = (NI)0;
	{
		if (!(old <= ((NI) 0))) goto LA3_;
		result = ((NI) 4);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(old < ((NI) 65536))) goto LA6_;
		result = (NI)(old * ((NI) 2));
	}
	goto LA1_;
	LA6_: ;
	{
		result = (NI)((NI)(old * ((NI) 3)) / ((NI) 2));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5951)(TGenericSeq* a, NI elemAlign) {
	void* result;
	NI T1_;
	NI T2_;
	result = (void*)0;
	T1_ = (NI)0;
	T1_ = align__system_1624(((NI) 16), elemAlign);
	T2_ = (NI)0;
	T2_ = pluspercent___system_696(((NI) (ptrdiff_t) (a)), T1_);
	result = ((void*) (T2_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ) {
	TGenericSeq* result;
	result = (TGenericSeq*)0;
	{
		void* T5_;
		if (!(s == ((TGenericSeq*) NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = newSeq(typ, ((NI) 1));
		result = ((TGenericSeq*) (T5_));
		(*result).len = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = s;
		{
			NI r;
			void* T11_;
			void* T12_;
			void* T13_;
			if (!((NI)((*result).reserved & ((NI) IL64(4611686018427387903))) <= (*result).len)) goto LA9_;
			r = resize__system_5961((NI)((*result).reserved & ((NI) IL64(4611686018427387903))));
			T11_ = (void*)0;
			T11_ = newSeq(typ, r);
			result = ((TGenericSeq*) (T11_));
			(*result).len = (*s).len;
			T12_ = (void*)0;
			T12_ = dataPointer__system_5951(result, (*(*typ).base).align);
			T13_ = (void*)0;
			T13_ = dataPointer__system_5951(s, (*(*typ).base).align);
			copyMem__system_1733(T12_, T13_, ((NI) ((NI)((*s).len * (*(*typ).base).size))));
			(*s).len = ((NI) 0);
		}
		LA9_: ;
	}
	LA1_: ;
	return result;
}
static N_INLINE(void, pushCurrentException)(Exception* e) {
	asgnRef((void**) (&(*e).up), currException__system_2568);
	asgnRef((void**) (&currException__system_2568), e);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space) {
	NimStringDesc* result;
	NI s;
	void* T5_;
	result = (NimStringDesc*)0;
	s = space;
	{
		if (!(s < ((NI) 7))) goto LA3_;
		s = ((NI) 7);
	}
	LA3_: ;
	T5_ = (void*)0;
	T5_ = newObj((&strDesc__system_2412), (NI)((NI)(((NI) 16) + s) + ((NI) 1)));
	result = ((NimStringDesc*) (T5_));
	(*result).Sup.reserved = s;
	(*result).Sup.len = ((NI) 0);
	return result;
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!(dest == ((NimStringDesc*) NIM_NIL))) goto LA3_;
		result = rawNewStringNoInit(addlen);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((NI)((*dest).Sup.len + addlen) <= (NI)((*dest).Sup.reserved & ((NI) IL64(4611686018427387903))))) goto LA6_;
		result = dest;
	}
	goto LA1_;
	LA6_: ;
	{
		NI sp;
		NI T9_;
		T9_ = (NI)0;
		T9_ = resize__system_5961((NI)((*dest).Sup.reserved & ((NI) IL64(4611686018427387903))));
		sp = ((T9_ >= (NI)((*dest).Sup.len + addlen)) ? T9_ : (NI)((*dest).Sup.len + addlen));
		result = rawNewStringNoInit(sp);
		(*result).Sup.len = (*dest).Sup.len;
		copyMem__system_1733(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*dest).data[((NI) 0)]))), ((NI) ((NI)((*dest).Sup.len + ((NI) 1)))));
		(*result).Sup.reserved = sp;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!(s == ((NimStringDesc*) NIM_NIL))) goto LA3_;
		result = rawNewStringNoInit(((NI) 1));
		(*result).Sup.len = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = s;
		{
			NI r;
			if (!((NI)((*result).Sup.reserved & ((NI) IL64(4611686018427387903))) <= (*result).Sup.len)) goto LA8_;
			r = resize__system_5961((NI)((*result).Sup.reserved & ((NI) IL64(4611686018427387903))));
			result = rawNewStringNoInit(r);
			(*result).Sup.len = (*s).Sup.len;
			copyMem__system_1733(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*s).data[((NI) 0)]))), ((NI) ((NI)((*s).Sup.len + ((NI) 1)))));
			(*result).Sup.reserved = r;
		}
		LA8_: ;
	}
	LA1_: ;
	(*result).data[(*result).Sup.len] = c;
	(*result).data[(NI)((*result).Sup.len + ((NI) 1))] = 0;
	(*result).Sup.len += ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isOnStack__system_5362)(void* p) {
	NIM_BOOL result;
	void* volatile stackTop;
	NI a;
	tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ* T1_;
	NI b;
	NI T2_;
	NI x;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	stackTop = ((void*) ((&stackTop)));
	T1_ = (tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ*)0;
	T1_ = getActiveStack__system_5472((&gch__system_5283));
	a = ((NI) (ptrdiff_t) ((*T1_).bottom));
	b = ((NI) (ptrdiff_t) (stackTop));
	T2_ = (NI)0;
	T2_ = a;
	a = b;
	b = T2_;
	x = ((NI) (ptrdiff_t) (p));
	T3_ = (NIM_BOOL)0;
	T3_ = lteqpercent___system_985(a, x);
	if (!(T3_)) goto LA4_;
	T3_ = lteqpercent___system_985(x, b);
	LA4_: ;
	result = T3_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isOnStack__system_5362(((void*) (dest)));
		if (!!(T3_)) goto LA4_;
		{
			tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
			if (!!((src == NIM_NIL))) goto LA8_;
			T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
			T10_ = usrToCell__system_5336(src);
			incRef__system_5374(T10_);
		}
		LA8_: ;
		{
			NIM_BOOL T13_;
			tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T16_;
			T13_ = (NIM_BOOL)0;
			T13_ = lteqpercent___system_985(((NI) 4096), ((NI) (ptrdiff_t) ((*dest))));
			if (!T13_) goto LA14_;
			T16_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
			T16_ = usrToCell__system_5336((*dest));
			decRef__system_5381(T16_);
		}
		LA14_: ;
	}
	goto LA1_;
	LA4_: ;
	{
	}
	LA1_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, add__system_2308)(NimStringDesc** x, NCSTRING y) {
	NI i;
	i = ((NI) 0);
	{
		if (!!((((void*) (y)) == NIM_NIL))) goto LA3_;
		{
			while (1) {
				if (!!(((NU8)(y[i]) == (NU8)(0)))) goto LA6;
				unsureAsgnRef((void**) (&(*x)), addChar((*x), y[i]));
				i += ((NI) 1);
			} LA6: ;
		}
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mnewString)(NI len) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = rawNewString(len);
	(*result).Sup.len = len;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen) {
	NimStringDesc* result;
	NI n;
	result = (NimStringDesc*)0;
	n = ((newLen >= ((NI) 0)) ? newLen : ((NI) 0));
	{
		if (!(s == ((NimStringDesc*) NIM_NIL))) goto LA3_;
		result = mnewString(newLen);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(n <= (NI)((*s).Sup.reserved & ((NI) IL64(4611686018427387903))))) goto LA6_;
		result = s;
	}
	goto LA1_;
	LA6_: ;
	{
		NI sp;
		NI T9_;
		T9_ = (NI)0;
		T9_ = resize__system_5961((NI)((*s).Sup.reserved & ((NI) IL64(4611686018427387903))));
		sp = ((T9_ >= newLen) ? T9_ : newLen);
		result = rawNewStringNoInit(sp);
		(*result).Sup.len = (*s).Sup.len;
		copyMem__system_1733(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*s).data[((NI) 0)]))), ((NI) ((NI)((*s).Sup.len + ((NI) 1)))));
		zeroMem__system_1730(((void*) ((&(*result).data[(*s).Sup.len]))), ((NI) ((NI)(newLen - (*s).Sup.len))));
		(*result).Sup.reserved = sp;
	}
	LA1_: ;
	(*result).Sup.len = n;
	(*result).data[n] = 0;
	return result;
}
static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
	addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_2725)(tySequence__QbmGqFaLnb1IWWToREeaIA* stackTraceEntries) {
	NimStringDesc* result;
	tySequence__QbmGqFaLnb1IWWToREeaIA* s;
	result = NIM_NIL;
	s = stackTraceEntries;
	result = rawNewString(((NI) 2000));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (s ? s->Sup.len : 0);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if (!(s->data[i].line == ((NI) -10))) goto LA7_;
					result = resizeString(result, 17);
appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_9));
				}
				goto LA5_;
				LA7_: ;
				{
					if (!(s->data[i].line == ((NI) -100))) goto LA10_;
					result = resizeString(result, 3);
appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_10));
				}
				goto LA5_;
				LA10_: ;
				{
					NI oldLenX60gensym69_;
					oldLenX60gensym69_ = (result ? result->Sup.len : 0);
					add__system_2308((&result), s->data[i].filename);
					{
						if (!(((NI) 0) < s->data[i].line)) goto LA15_;
						result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_11));
						addInt__stdZprivateZdigitsutils_189((&result), s->data[i].line);
						{
							if (!NIM_FALSE) goto LA19_;
							result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_12));
							addInt__stdZprivateZdigitsutils_189((&result), ((NI) 0));
						}
						LA19_: ;
						result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_13));
					}
					LA15_: ;
					{
						NI kX60gensym69_;
						NI colontmp__2;
						NI res_2;
						kX60gensym69_ = (NI)0;
						colontmp__2 = (NI)0;
						colontmp__2 = ((((NI) 1) >= (NI)(((NI) 25) - (NI)((result ? result->Sup.len : 0) - oldLenX60gensym69_))) ? ((NI) 1) : (NI)(((NI) 25) - (NI)((result ? result->Sup.len : 0) - oldLenX60gensym69_)));
						res_2 = ((NI) 1);
						{
							while (1) {
								if (!(res_2 <= colontmp__2)) goto LA23;
								kX60gensym69_ = res_2;
								result = addChar(result, 32);
								res_2 += ((NI) 1);
							} LA23: ;
						}
					}
					add__system_2308((&result), s->data[i].procname);
					result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
				}
				LA5_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == ((NimStringDesc*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___systemZassertions_23)(NimStringDesc** dest) {
}
N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledErrorAux__system_2754)(Exception* e) {
	tyArray__gpc2RrLEcWgv7ONpLYNHOw buf;
	NI L;
	nimZeroMem((void*)buf, sizeof(tyArray__gpc2RrLEcWgv7ONpLYNHOw));
	L = ((NI) 0);
	{
		NI T3_;
		NimStringDesc* trace;
		T3_ = ((*e).trace ? (*e).trace->Sup.len : 0);
		if (!!((T3_ == ((NI) 0)))) goto LA4_;
		trace = dollar___system_2725((*e).trace);
		{
			if (!((NI)(L + (trace ? trace->Sup.len : 0)) < ((NI) 2000))) goto LA8_;
			copyMem__system_1733(((void*) ((&buf[(L)- 0]))), ((void*) (nimToCStringConv(trace))), ((NI) ((trace ? trace->Sup.len : 0))));
			L += (trace ? trace->Sup.len : 0);
		}
		LA8_: ;
		eqdestroy___systemZassertions_23((&trace));
	}
	LA4_: ;
	{
		if (!((NI)(L + ((NI) 28)) < ((NI) 2000))) goto LA12_;
		copyMem__system_1733(((void*) ((&buf[(L)- 0]))), ((void*) ("Error: unhandled exception: ")), ((NI) 28));
		L += ((NI) 28);
	}
	LA12_: ;
	{
		if (!((NI)(L + ((*e).message ? (*e).message->Sup.len : 0)) < ((NI) 2000))) goto LA16_;
		copyMem__system_1733(((void*) ((&buf[(L)- 0]))), ((void*) (nimToCStringConv((*e).message))), ((NI) (((*e).message ? (*e).message->Sup.len : 0))));
		L += ((*e).message ? (*e).message->Sup.len : 0);
	}
	LA16_: ;
	{
		if (!((NI)(L + ((NI) 2)) < ((NI) 2000))) goto LA20_;
		copyMem__system_1733(((void*) ((&buf[(L)- 0]))), ((void*) (" [")), ((NI) 2));
		L += ((NI) 2);
	}
	LA20_: ;
	{
		if (!((NI)(L + ((*e).name ? nimCStrLen((*e).name) : 0)) < ((NI) 2000))) goto LA24_;
		copyMem__system_1733(((void*) ((&buf[(L)- 0]))), ((void*) ((*e).name)), ((NI) (((*e).name ? nimCStrLen((*e).name) : 0))));
		L += ((*e).name ? nimCStrLen((*e).name) : 0);
	}
	LA24_: ;
	{
		if (!((NI)(L + ((NI) 2)) < ((NI) 2000))) goto LA28_;
		copyMem__system_1733(((void*) ((&buf[(L)- 0]))), ((void*) ("]\012")), ((NI) 2));
		L += ((NI) 2);
	}
	LA28_: ;
	{
		NimStringDesc* T34_;
		if (!!((onUnhandledException__system_2753 == NIM_NIL))) goto LA32_;
		T34_ = NIM_NIL;
		T34_ = cstrToNimstr(((NCSTRING) (buf)));
		onUnhandledException__system_2753(T34_);
	}
	goto LA30_;
	LA32_: ;
	{
		showErrorMessage__system_2538(((NCSTRING) (buf)), L);
	}
	LA30_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledError__system_2857)(Exception* e) {
	{
		if (!!((unhandledExceptionHook__system_2299 == NIM_NIL))) goto LA3_;
		unhandledExceptionHook__system_2299(e);
	}
	LA3_: ;
	reportUnhandledErrorAux__system_2754(e);
}
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionAux__system_2868)(Exception* e) {
{	{
		if (!!((localRaiseHook__system_2294 == NIM_NIL))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = localRaiseHook__system_2294(e);
			if (!!(T7_)) goto LA8_;
			goto BeforeRet_;
		}
		LA8_: ;
	}
	LA3_: ;
	{
		if (!!((globalRaiseHook__system_2291 == NIM_NIL))) goto LA12_;
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = globalRaiseHook__system_2291(e);
			if (!!(T16_)) goto LA17_;
			goto BeforeRet_;
		}
		LA17_: ;
	}
	LA12_: ;
	{
		if (!!((excHandler__system_2567 == ((TSafePoint*) NIM_NIL)))) goto LA21_;
		pushCurrentException(e);
		longjmp((*excHandler__system_2567).context, ((int) 1));
	}
	goto LA19_;
	LA21_: ;
	{
		reportUnhandledError__system_2857(e);
		exit(((NI) 1));
	}
	LA19_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line) {
	{
		if (!((*e).name == 0)) goto LA3_;
		(*e).name = ename;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA T11_;
		NI T12_;
		T7_ = (NIM_BOOL)0;
		T7_ = !((((void*) (procname)) == NIM_NIL));
		if (!(T7_)) goto LA8_;
		T7_ = !((((void*) (filename)) == NIM_NIL));
		LA8_: ;
		if (!T7_) goto LA9_;
		nimZeroMem((void*)(&T11_), sizeof(tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA));
		T11_.procname = procname;
		T11_.filename = filename;
		T11_.line = line;
		asgnRef((void**) (&(*e).trace), (tySequence__QbmGqFaLnb1IWWToREeaIA*) incrSeqV3((TGenericSeq*)((*e).trace), (&NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_)));
		T12_ = (*e).trace->Sup.len++;
		(*e).trace->data[T12_] = T11_;
	}
	LA9_: ;
	raiseExceptionAux__system_2868(e);
}
static N_INLINE(void, sysFatal__system_2900)(NimStringDesc* message) {
	tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g*) newObj((&NTIrefreraisedefect__uerrneZ83HrI24PYGM9bkXQ_), sizeof(tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g));
	(*T1_).Sup.Sup.Sup.m_type = (&NTIreraisedefect__FrYFS0tS67oFwxrxEzeY3g_);
	(*T1_).Sup.Sup.name = "ReraiseDefect";
	T2_ = NIM_NIL;
	T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(message);
	if (T2_) nimGCunrefNoCycle(T2_);
	raiseExceptionEx((Exception*)T1_, "ReraiseDefect", "sysFatal", "fatal.nim", 54);
}
N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void) {
	{
		if (!(currException__system_2568 == ((Exception*) NIM_NIL))) goto LA3_;
		sysFatal__system_2900(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_15));
	}
	goto LA1_;
	LA3_: ;
	{
		raiseExceptionAux__system_2868(currException__system_2568);
	}
	LA1_: ;
}
static N_INLINE(void, rawWriteString)(FILE* f, NCSTRING s, NI length) {
	size_t T1_;
	int T2_;
	T1_ = (size_t)0;
	T1_ = fwrite(((void*) (s)), ((size_t) 1), ((size_t) (length)), f);
	(void)(T1_);
	T2_ = (int)0;
	T2_ = fflush(f);
	(void)(T2_);
}
N_LIB_PRIVATE N_NIMCALL(void, writeToStdErr__system_2533)(NCSTRING msg, NI length) {
	rawWriteString(stderr, msg, length);
}
N_LIB_PRIVATE N_NIMCALL(void, showErrorMessage__system_2538)(NCSTRING data, NI length) {
	NIM_BOOL volatile toWrite;
	toWrite = NIM_TRUE;
	{
		TSafePoint TM__Q5wkpxktOdTGvlSRo9bzt9aw_5;
		NimStringDesc* T5_;
		if (!!((errorMessageWriter__system_2528 == NIM_NIL))) goto LA3_;
		pushSafePoint(&TM__Q5wkpxktOdTGvlSRo9bzt9aw_5);
		TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status = setjmp(TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.context);
		if (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status == 0) {
		T5_ = NIM_NIL;
		T5_ = cstrToNimstr(data);
		errorMessageWriter__system_2528(T5_);
		toWrite = NIM_FALSE;
		popSafePoint();
		}
		else {
			popSafePoint();
			{
				TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status = 0;
				popCurrentException();
			}
		}
		if (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status != 0) reraiseException();
	}
	LA3_: ;
	{
		if (!toWrite) goto LA10_;
		writeToStdErr__system_2533(data, length);
	}
	LA10_: ;
}
N_LIB_PRIVATE N_NOCONV(void, signalHandler)(int sign) {
	NCSTRING msg;
	msg = (NCSTRING)0;
	{
		if (!(sign == ((int) 2))) goto LA3_;
		msg = "SIGINT: Interrupted by Ctrl-C.\012";
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(sign == ((int) 11))) goto LA6_;
		msg = "SIGSEGV: Illegal storage access. (Attempt to read from nil\?)\012";
	}
	goto LA1_;
	LA6_: ;
	{
		if (!(sign == ((int) 22))) goto LA9_;
		msg = "SIGABRT: Abnormal termination.\012";
	}
	goto LA1_;
	LA9_: ;
	{
		if (!(sign == ((int) 8))) goto LA12_;
		msg = "SIGFPE: Arithmetic error.\012";
	}
	goto LA1_;
	LA12_: ;
	{
		if (!(sign == ((int) 4))) goto LA15_;
		msg = "SIGILL: Illegal operation.\012";
	}
	goto LA1_;
	LA15_: ;
	{
		if (!NIM_FALSE) goto LA18_;
		msg = "SIGBUS: Illegal storage access. (Attempt to read from nil\?)\012";
	}
	goto LA1_;
	LA18_: ;
	{
		{
			msg = "unknown signal\012";
		}
	}
	LA1_: ;
	showErrorMessage__system_2538(msg, (msg ? nimCStrLen(msg) : 0));
	exit(((NI) 1));
}
N_LIB_PRIVATE N_NIMCALL(void, registerSignalHandler__system_2985)(void) {
	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T1_;
	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T2_;
	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T3_;
	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T4_;
	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T5_;
	T1_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
	T1_ = signal(((int) 2), signalHandler);
	T2_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
	T2_ = signal(((int) 11), signalHandler);
	T3_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
	T3_ = signal(((int) 22), signalHandler);
	T4_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
	T4_ = signal(((int) 8), signalHandler);
	T5_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
	T5_ = signal(((int) 4), signalHandler);
}
N_LIB_PRIVATE N_NIMCALL(NI, getRefcount)(void* p) {
	NI result;
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T1_;
	result = (NI)0;
	T1_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = usrToCell__system_5336(p);
	result = (NI)((NI64)((*T1_).refcount) >> (NU64)(((NI) 3)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, nimLoadLibrary)(NimStringDesc* path) {
	void* result;
	HINSTANCE T1_;
	result = (void*)0;
	T1_ = (HINSTANCE)0;
	T1_ = LoadLibraryA(nimToCStringConv(path));
	result = ((void*) (T1_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nimLoadLibraryError)(NimStringDesc* path) {
	NI32 loadError;
	rawWrite(stderr, "could not load: ");
	rawWrite(stderr, nimToCStringConv(path));
	loadError = GetLastError();
	{
		if (!(loadError == ((NI32) 193))) goto LA3_;
		rawWrite(stderr, "\012(bad format; library may be wrong architecture)");
	}
	LA3_: ;
	rawWrite(stderr, "\012");
	exit(((NI) 1));
}
N_LIB_PRIVATE N_NIMCALL(void, procAddrError)(NCSTRING name) {
	rawWrite(stderr, "could not import: ");
	rawWrite(stderr, name);
	rawWrite(stderr, "\012");
	exit(((NI) 1));
}
N_LIB_PRIVATE N_NIMCALL(void*, nimGetProcAddr)(void* lib, NCSTRING name) {
	void* result;
	tyArray__4y4exD1dAnu89atYV5jeSuw decorated;
	NI m;
{	result = (void*)0;
	result = GetProcAddress(((HINSTANCE) (lib)), name);
	{
		if (!!((result == NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)decorated, sizeof(tyArray__4y4exD1dAnu89atYV5jeSuw));
	decorated[(((NI) 0))- 0] = 95;
	m = ((NI) 1);
	{
		while (1) {
			if (!(m < ((NI) 245))) goto LA6;
			{
				if (!((NU8)(name[(NI)(m - ((NI) 1))]) == (NU8)(0))) goto LA9_;
				goto LA5;
			}
			LA9_: ;
			decorated[(m)- 0] = name[(NI)(m - ((NI) 1))];
			m += ((NI) 1);
		} LA6: ;
	} LA5: ;
	decorated[(m)- 0] = 64;
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				NI k;
				if (!(res <= ((NI) 50))) goto LA13;
				i = res;
				k = (NI)(i * ((NI) 4));
				{
					if (!((NI)(k / ((NI) 100)) == ((NI) 0))) goto LA16_;
					{
						if (!((NI)(k / ((NI) 10)) == ((NI) 0))) goto LA20_;
						m = (NI)(m + ((NI) 1));
					}
					goto LA18_;
					LA20_: ;
					{
						m = (NI)(m + ((NI) 2));
					}
					LA18_: ;
				}
				goto LA14_;
				LA16_: ;
				{
					m = (NI)(m + ((NI) 3));
				}
				LA14_: ;
				decorated[((NI)(m + ((NI) 1)))- 0] = 0;
				{
					while (1) {
						NI T26_;
						T26_ = (NI)0;
						T26_ = percentpercent___system_776(k, ((NI) 10));
						decorated[(m)- 0] = ((NIM_CHAR) (((NI) ((NI)(((NI) 48) + T26_)))));
						m -= ((NI) 1);
						k = (NI)(k / ((NI) 10));
						{
							if (!(k == ((NI) 0))) goto LA29_;
							goto LA24;
						}
						LA29_: ;
					}
				} LA24: ;
				result = GetProcAddress(((HINSTANCE) (lib)), ((NCSTRING) (decorated)));
				{
					if (!!((result == NIM_NIL))) goto LA33_;
					goto BeforeRet_;
				}
				LA33_: ;
				res += ((NI) 1);
			} LA13: ;
		}
	}
	procAddrError(name);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc) {
	{
		if (!(globalMarkersLen <= ((NI) 3499))) goto LA3_;
		globalMarkers[(globalMarkersLen)- 0] = markerProc;
		globalMarkersLen += ((NI) 1);
	}
	goto LA1_;
	LA3_: ;
	{
		rawWrite(stderr, "[GC] cannot register global variable; too many global variables");
		exit(((NI) 1));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ) {
	NimStringDesc* result;
	TNimNode* n;
	NimStringDesc* T19_;
	NimStringDesc* T20_;
{	result = NIM_NIL;
	n = (*typ).node;
	{
		NI o;
		if (!!((((*typ).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w) 2))&7U)))!=0))) goto LA3_;
		o = (NI)(e - (*(*n).sons[(((NI) 0))- 0]).offset);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (((NI) 0) <= o);
			if (!(T7_)) goto LA8_;
			T7_ = ltpercent___system_1005(o, (*(*typ).node).len);
			LA8_: ;
			if (!T7_) goto LA9_;
			result = cstrToNimstr((*(*n).sons[(o)- 0]).name);
			goto BeforeRet_;
		}
		LA9_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		TNimNode** s;
		s = (*n).sons;
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((*n).len - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA14;
					i = res;
					{
						if (!((*s[(i)- 0]).offset == e)) goto LA17_;
						result = cstrToNimstr((*s[(i)- 0]).name);
						goto BeforeRet_;
					}
					LA17_: ;
					res += ((NI) 1);
				} LA14: ;
			}
		}
	}
	LA1_: ;
	T19_ = NIM_NIL;
	T20_ = NIM_NIL;
	T20_ = dollar___systemZdollars_3(e);
	T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 16);
appendString(T19_, T20_);
appendString(T19_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_16));
	result = T19_;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__pZq9a89chzDPcYZo9bViSdp9aQ)(void* p, NI op) {
	tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw* a;
	a = (tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*)p;
	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		{
			if (!!(((NI)((*src).Sup.reserved & ((NI) (IL64(-9223372036854775807) - IL64(1)))) == ((NI) 0)))) goto LA7_;
			result = src;
		}
		goto LA5_;
		LA7_: ;
		{
			result = rawNewStringNoInit((*src).Sup.len);
			(*result).Sup.len = (*src).Sup.len;
			copyMem__system_1733(((void*) ((*result).data)), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		}
		LA5_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5955)(TGenericSeq* a, NI elemAlign, NI elemSize, NI index) {
	void* result;
	NI T1_;
	NI T2_;
	NI T3_;
	NI T4_;
	result = (void*)0;
	T1_ = (NI)0;
	T1_ = align__system_1624(((NI) 16), elemAlign);
	T2_ = (NI)0;
	T2_ = pluspercent___system_696(((NI) (ptrdiff_t) (a)), T1_);
	T3_ = (NI)0;
	T3_ = starpercent___system_736(index, elemSize);
	T4_ = (NI)0;
	T4_ = pluspercent___system_696(T2_, T3_);
	result = ((void*) (T4_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(TNimType*, extGetCellType)(void* c) {
	TNimType* result;
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T1_;
	result = (TNimType*)0;
	T1_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = usrToCell__system_5336(c);
	result = (*T1_).typ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen) {
	TGenericSeq* result;
	result = (TGenericSeq*)0;
	{
		void* T5_;
		if (!(s == ((TGenericSeq*) NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = newSeq(typ, newLen);
		result = ((TGenericSeq*) (T5_));
	}
	goto LA1_;
	LA3_: ;
	{
		NI elemSize;
		NI elemAlign;
		elemSize = (*(*typ).base).size;
		elemAlign = (*(*typ).base).align;
		{
			NI r;
			NI T11_;
			void* T12_;
			void* T13_;
			void* T14_;
			if (!((NI)((*s).reserved & ((NI) IL64(4611686018427387903))) < newLen)) goto LA9_;
			T11_ = (NI)0;
			T11_ = resize__system_5961((NI)((*s).reserved & ((NI) IL64(4611686018427387903))));
			r = ((T11_ >= newLen) ? T11_ : newLen);
			T12_ = (void*)0;
			T12_ = newSeq(typ, r);
			result = ((TGenericSeq*) (T12_));
			T13_ = (void*)0;
			T13_ = dataPointer__system_5951(result, elemAlign);
			T14_ = (void*)0;
			T14_ = dataPointer__system_5951(s, elemAlign);
			copyMem__system_1733(T13_, T14_, ((NI) ((NI)((*s).len * elemSize))));
			(*s).len = ((NI) 0);
		}
		goto LA7_;
		LA9_: ;
		{
			void* T27_;
			NI T28_;
			NI T29_;
			if (!(newLen < (*s).len)) goto LA16_;
			result = s;
			{
				if (!!((((*(*typ).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w) 0))&7U)))!=0))) goto LA20_;
				{
					NI i;
					NI colontmp_;
					NI res;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (NI)((*result).len - ((NI) 1));
					res = newLen;
					{
						while (1) {
							void* T25_;
							TNimType* T26_;
							if (!(res <= colontmp_)) goto LA24;
							i = res;
							T25_ = (void*)0;
							T25_ = dataPointer__system_5955(result, elemAlign, elemSize, i);
							T26_ = (TNimType*)0;
							T26_ = extGetCellType(((void*) (result)));
							forAllChildrenAux__system_5370(T25_, (*T26_).base, ((tyEnum_WalkOp__a4oUR0is9aWyyexM7XXJ1gQ) 2));
							res += ((NI) 1);
						} LA24: ;
					}
				}
			}
			LA20_: ;
			T27_ = (void*)0;
			T27_ = dataPointer__system_5955(result, elemAlign, elemSize, newLen);
			T28_ = (NI)0;
			T28_ = minuspercent___system_716((*result).len, newLen);
			T29_ = (NI)0;
			T29_ = starpercent___system_736(T28_, elemSize);
			zeroMem__system_1730(T27_, ((NI) (T29_)));
		}
		goto LA7_;
		LA16_: ;
		{
			void* T31_;
			NI T32_;
			NI T33_;
			result = s;
			T31_ = (void*)0;
			T31_ = dataPointer__system_5955(result, elemAlign, elemSize, (*result).len);
			T32_ = (NI)0;
			T32_ = minuspercent___system_716(newLen, (*result).len);
			T33_ = (NI)0;
			T33_ = starpercent___system_736(T32_, elemSize);
			zeroMem__system_1730(T31_, ((NI) (T33_)));
		}
		LA7_: ;
		(*result).len = newLen;
	}
	LA1_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__uqGx5zvUvUW2CTnTL0oZQQ)(void* p, NI op) {
	tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg* a;
	a = (tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg*)p;
	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.up, op);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7810)(NimStringDesc* s, NI first, NI last) {
	NimStringDesc* result;
	NI first_2;
	NI L;
	result = NIM_NIL;
	first_2 = ((first >= ((NI) 0)) ? first : ((NI) 0));
	L = (((NI)((NI)(((last <= ((s ? s->Sup.len : 0)-1)) ? last : ((s ? s->Sup.len : 0)-1)) - first_2) + ((NI) 1)) >= ((NI) 0)) ? (NI)((NI)(((last <= ((s ? s->Sup.len : 0)-1)) ? last : ((s ? s->Sup.len : 0)-1)) - first_2) + ((NI) 1)) : ((NI) 0));
	result = mnewString(((NI) (L)));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(L - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				result->data[i] = s->data[(NI)(i + first_2)];
				res += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = mnewString(((NI) 1));
	result->data[((NI) 0)] = x;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__0NUycR3lTt5ae7Mj01Qw8A)(void* p, NI op) {
	tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA* a;
	a = (tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA*)p;
	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.up, op);
}
N_LIB_PRIVATE N_NIMCALL(void, GC_disableMarkAndSweep__system_2267)(void) {
	gch__system_5283.cycleThreshold = ((NI) IL64(9223372036854775806));
}
N_LIB_PRIVATE N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len) {
	void* result;
	NI size;
	NI T1_;
	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_17;
	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_18;
	result = (void*)0;
	T1_ = (NI)0;
	T1_ = align__system_1624(((NI) 16), (*(*typ).base).align);
	if (nimMulInt(len, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_17)) { raiseOverflow(); };
	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_17), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_18)) { raiseOverflow(); };
	size = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_18);
	result = newObjRC1(typ, size);
	(*((TGenericSeq*) (result))).len = len;
	(*((TGenericSeq*) (result))).reserved = len;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap) {
	void* result;
	NI s;
	NI T1_;
	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_19;
	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_20;
	result = (void*)0;
	T1_ = (NI)0;
	T1_ = align__system_1624(((NI) 16), (*(*typ).base).align);
	if (nimMulInt(cap, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_19)) { raiseOverflow(); };
	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_19), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_20)) { raiseOverflow(); };
	s = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_20);
	{
		if (!(((*(*typ).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w) 0))&7U)))!=0)) goto LA4_;
		result = newObjNoInit(typ, s);
	}
	goto LA2_;
	LA4_: ;
	{
		result = newObj(typ, s);
	}
	LA2_: ;
	(*((TGenericSeq*) (result))).len = ((NI) 0);
	(*((TGenericSeq*) (result))).reserved = cap;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genericReset)(void* dest, TNimType* mt) {
	NI d;
	d = ((NI) (ptrdiff_t) (dest));
	switch ((*mt).kind) {
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 22):
	{
		unsureAsgnRef(((void**) (dest)), NIM_NIL);
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 28):
	{
		unsureAsgnRef(((void**) (dest)), NIM_NIL);
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 24):
	{
		unsureAsgnRef(((void**) (dest)), NIM_NIL);
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 18):
	{
		genericResetAux__system_6469(dest, (*mt).node);
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 17):
	{
		TNimType** pint;
		genericResetAux__system_6469(dest, (*mt).node);
		pint = ((TNimType**) (dest));
		(*pint) = ((TNimType*) NIM_NIL);
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 16):
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 4):
	{
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					NI T10_;
					NI T11_;
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					T10_ = (NI)0;
					T10_ = starpercent___system_736(i, (*(*mt).base).size);
					T11_ = (NI)0;
					T11_ = pluspercent___system_696(d, T10_);
					genericReset(((void*) (T11_)), (*mt).base);
					res += ((NI) 1);
				} LA9: ;
			}
		}
	}
	break;
	default:
	{
		zeroMem__system_1730(dest, ((NI) ((*mt).size)));
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genericResetAux__system_6469)(void* dest, TNimNode* n) {
	NI d;
	d = ((NI) (ptrdiff_t) (dest));
	switch ((*n).kind) {
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 0):
	{
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 1):
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = pluspercent___system_696(d, (*n).offset);
		genericReset(((void*) (T3_)), (*n).typ);
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 2):
	{
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((*n).len - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA7;
					i = res;
					genericResetAux__system_6469(dest, (*n).sons[(i)- 0]);
					res += ((NI) 1);
				} LA7: ;
			}
		}
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 3):
	{
		TNimNode* m;
		NI T13_;
		m = selectBranch__system_3710(dest, n);
		{
			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA11_;
			genericResetAux__system_6469(dest, m);
		}
		LA11_: ;
		T13_ = (NI)0;
		T13_ = pluspercent___system_696(d, (*n).offset);
		zeroMem__system_1730(((void*) (T13_)), ((NI) ((*(*n).typ).size)));
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6477)(void* dest, void* src, TNimNode* n, NIM_BOOL shallow) {
	NI d;
	NI s;
	d = ((NI) (ptrdiff_t) (dest));
	s = ((NI) (ptrdiff_t) (src));
	switch ((*n).kind) {
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 1):
	{
		NI T2_;
		NI T3_;
		T2_ = (NI)0;
		T2_ = pluspercent___system_696(d, (*n).offset);
		T3_ = (NI)0;
		T3_ = pluspercent___system_696(s, (*n).offset);
		genericAssignAux__system_6472(((void*) (T2_)), ((void*) (T3_)), (*n).typ, shallow);
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 2):
	{
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((*n).len - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA7;
					i = res;
					genericAssignAux__system_6477(dest, src, (*n).sons[(i)- 0], shallow);
					res += ((NI) 1);
				} LA7: ;
			}
		}
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 3):
	{
		TNimNode* dd;
		TNimNode* m;
		NI T15_;
		NI T16_;
		dd = selectBranch__system_3710(dest, n);
		m = selectBranch__system_3710(src, n);
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = !((m == dd));
			if (!(T11_)) goto LA12_;
			T11_ = !((dd == ((TNimNode*) NIM_NIL)));
			LA12_: ;
			if (!T11_) goto LA13_;
			genericResetAux__system_6469(dest, dd);
		}
		LA13_: ;
		T15_ = (NI)0;
		T15_ = pluspercent___system_696(d, (*n).offset);
		T16_ = (NI)0;
		T16_ = pluspercent___system_696(s, (*n).offset);
		copyMem__system_1733(((void*) (T15_)), ((void*) (T16_)), ((NI) ((*(*n).typ).size)));
		{
			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA19_;
			genericAssignAux__system_6477(dest, src, m, shallow);
		}
		LA19_: ;
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 0):
	{
	}
	break;
	}
}
static N_NIMCALL(void, Marker_tyRef__dBcwgJxypEuB4lCVFzmF7A)(void* p, NI op) {
	tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw* a;
	a = (tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw*)p;
	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.up, op);
}
static N_INLINE(void, sysFatal__system_3300)(NimStringDesc* message) {
	tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw*) newObj((&NTIrefobjectassignmentdefect__dBcwgJxypEuB4lCVFzmF7A_), sizeof(tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw));
	(*T1_).Sup.Sup.Sup.m_type = (&NTIobjectassignmentdefect__Gcuu3i2jDl8UzBOlrS9bQiw_);
	(*T1_).Sup.Sup.name = "ObjectAssignmentDefect";
	T2_ = NIM_NIL;
	T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(message);
	if (T2_) nimGCunrefNoCycle(T2_);
	raiseExceptionEx((Exception*)T1_, "ObjectAssignmentDefect", "sysFatal", "fatal.nim", 54);
}
static N_INLINE(void, chckObjAsgn)(TNimType* a, TNimType* b) {
	{
		if (!!((a == b))) goto LA3_;
		sysFatal__system_3300(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_21));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6472)(void* dest, void* src, TNimType* mt, NIM_BOOL shallow) {
	NI d;
	NI s;
{	d = ((NI) (ptrdiff_t) (dest));
	s = ((NI) (ptrdiff_t) (src));
	switch ((*mt).kind) {
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 28):
	{
		void** x;
		void* s2;
		x = ((void**) (dest));
		s2 = (*((void**) (s)));
		{
			NIM_BOOL T4_;
			NIM_BOOL T5_;
			T4_ = (NIM_BOOL)0;
			T5_ = (NIM_BOOL)0;
			T5_ = (s2 == NIM_NIL);
			if (T5_) goto LA6_;
			T5_ = shallow;
			LA6_: ;
			T4_ = T5_;
			if (T4_) goto LA7_;
			T4_ = !(((NI)((*((TGenericSeq*) (s2))).reserved & ((NI) (IL64(-9223372036854775807) - IL64(1)))) == ((NI) 0)));
			LA7_: ;
			if (!T4_) goto LA8_;
			unsureAsgnRef(x, s2);
		}
		goto LA2_;
		LA8_: ;
		{
			NimStringDesc* T11_;
			T11_ = (NimStringDesc*)0;
			T11_ = copyString(((NimStringDesc*) (s2)));
			unsureAsgnRef(x, ((void*) (T11_)));
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 24):
	{
		void* s2_2;
		TGenericSeq* seq;
		void** x_2;
		s2_2 = (*((void**) (src)));
		seq = ((TGenericSeq*) (s2_2));
		x_2 = ((void**) (dest));
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = (s2_2 == NIM_NIL);
			if (T16_) goto LA17_;
			T16_ = shallow;
			LA17_: ;
			T15_ = T16_;
			if (T15_) goto LA18_;
			T15_ = !(((NI)((*seq).reserved & ((NI) (IL64(-9223372036854775807) - IL64(1)))) == ((NI) 0)));
			LA18_: ;
			if (!T15_) goto LA19_;
			unsureAsgnRef(x_2, s2_2);
			goto BeforeRet_;
		}
		LA19_: ;
		{
			void* ss;
			NI dst;
			NI T25_;
			NI T26_;
			NI T27_;
			NI T28_;
			NI T29_;
			if (!(((*(*mt).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w) 0))&7U)))!=0)) goto LA23_;
			ss = nimNewSeqOfCap(mt, (*seq).len);
			(*((TGenericSeq*) (ss))).len = (*seq).len;
			unsureAsgnRef(x_2, ss);
			dst = ((NI) (ptrdiff_t) ((*((void**) (dest)))));
			T25_ = (NI)0;
			T25_ = align__system_1624(((NI) 16), (*(*mt).base).align);
			T26_ = (NI)0;
			T26_ = pluspercent___system_696(dst, T25_);
			T27_ = (NI)0;
			T27_ = align__system_1624(((NI) 16), (*(*mt).base).align);
			T28_ = (NI)0;
			T28_ = pluspercent___system_696(((NI) (ptrdiff_t) (s2_2)), T27_);
			T29_ = (NI)0;
			T29_ = starpercent___system_736((*seq).len, (*(*mt).base).size);
			copyMem__system_1733(((void*) (T26_)), ((void*) (T28_)), ((NI) (T29_)));
		}
		goto LA21_;
		LA23_: ;
		{
			void* T31_;
			NI dst_2;
			T31_ = (void*)0;
			T31_ = newSeq(mt, (*seq).len);
			unsureAsgnRef(x_2, T31_);
			dst_2 = ((NI) (ptrdiff_t) ((*((void**) (dest)))));
			{
				NI i;
				NI colontmp_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = (NI)((*seq).len - ((NI) 1));
				res = ((NI) 0);
				{
					while (1) {
						NI T35_;
						NI T36_;
						NI T37_;
						NI T38_;
						NI T39_;
						NI T40_;
						NI T41_;
						NI T42_;
						if (!(res <= colontmp_)) goto LA34;
						i = res;
						T35_ = (NI)0;
						T35_ = align__system_1624(((NI) 16), (*(*mt).base).align);
						T36_ = (NI)0;
						T36_ = pluspercent___system_696(dst_2, T35_);
						T37_ = (NI)0;
						T37_ = starpercent___system_736(i, (*(*mt).base).size);
						T38_ = (NI)0;
						T38_ = pluspercent___system_696(T36_, T37_);
						T39_ = (NI)0;
						T39_ = align__system_1624(((NI) 16), (*(*mt).base).align);
						T40_ = (NI)0;
						T40_ = pluspercent___system_696(((NI) (ptrdiff_t) (s2_2)), T39_);
						T41_ = (NI)0;
						T41_ = starpercent___system_736(i, (*(*mt).base).size);
						T42_ = (NI)0;
						T42_ = pluspercent___system_696(T40_, T41_);
						genericAssignAux__system_6472(((void*) (T38_)), ((void*) (T42_)), (*mt).base, shallow);
						res += ((NI) 1);
					} LA34: ;
				}
			}
		}
		LA21_: ;
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 17):
	{
		TNimType* it;
		TNimType** pint;
		TNimType* srcType;
		it = (*mt).base;
		{
			while (1) {
				if (!!((it == ((TNimType*) NIM_NIL)))) goto LA45;
				genericAssignAux__system_6477(dest, src, (*it).node, shallow);
				it = (*it).base;
			} LA45: ;
		}
		genericAssignAux__system_6477(dest, src, (*mt).node, shallow);
		pint = ((TNimType**) (dest));
		srcType = (*((TNimType**) (src)));
		{
			if (!!((srcType == ((TNimType*) NIM_NIL)))) goto LA48_;
			chckObjAsgn(srcType, mt);
		}
		LA48_: ;
		(*pint) = mt;
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 18):
	{
		genericAssignAux__system_6477(dest, src, (*mt).node, shallow);
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 16):
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 4):
	{
		{
			NI i_2;
			NI colontmp__2;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
			res_2 = ((NI) 0);
			{
				while (1) {
					NI T55_;
					NI T56_;
					NI T57_;
					NI T58_;
					if (!(res_2 <= colontmp__2)) goto LA54;
					i_2 = res_2;
					T55_ = (NI)0;
					T55_ = starpercent___system_736(i_2, (*(*mt).base).size);
					T56_ = (NI)0;
					T56_ = pluspercent___system_696(d, T55_);
					T57_ = (NI)0;
					T57_ = starpercent___system_736(i_2, (*(*mt).base).size);
					T58_ = (NI)0;
					T58_ = pluspercent___system_696(s, T57_);
					genericAssignAux__system_6472(((void*) (T56_)), ((void*) (T58_)), (*mt).base, shallow);
					res_2 += ((NI) 1);
				} LA54: ;
			}
		}
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 22):
	{
		unsureAsgnRef(((void**) (dest)), (*((void**) (s))));
	}
	break;
	default:
	{
		copyMem__system_1733(dest, src, ((NI) ((*mt).size)));
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt) {
	genericAssignAux__system_6472(dest, src, mt, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt) {
	void* src_2;
	src_2 = src;
	genericAssign(dest, ((void*) ((&src_2))), mt);
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, newSeq__systemZio_594)(NI len) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result;
	result = NIM_NIL;
	result = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), len);
	return result;
}
static N_NIMCALL(void, Marker_tyRef__y7Z2XdNq5H6ZFNpULQZbHw)(void* p, NI op) {
	tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw* a;
	a = (tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw*)p;
	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.up, op);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7822)(NimStringDesc* s, NI first) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = substr__system_7810(s, first, ((s ? s->Sup.len : 0)-1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, X5BX5D___pureZparseopt_275)(NimStringDesc** s, NI sLen_0, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result;
	NI a;
	NI L;
	result = NIM_NIL;
	a = x.a;
	L = (NI)((NI)((NI)(sLen_0 - x.b) - a) + ((NI) 1));
	result = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				NimStringDesc* T4_;
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				T4_ = NIM_NIL;
				T4_ = result->data[i]; result->data[i] = copyStringRC1(s[(NI)(i + a)]);
				if (T4_) nimGCunrefNoCycle(T4_);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s) {
	NI result;
	NU h;
	result = (NI)0;
	h = ((NU) 0);
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				h = (NU)((NU64)(h) + (NU64)(((NU) (((NU8)(s->data[i]))))));
				h = (NU)((NU64)(h) + (NU64)((NU)((NU64)(h) << (NU64)(((NI) 10)))));
				h = (NU)(h ^ (NU)((NU64)(h) >> (NU64)(((NI) 6))));
				res += ((NI) 1);
			} LA3: ;
		}
	}
	h = (NU)((NU64)(h) + (NU64)((NU)((NU64)(h) << (NU64)(((NI) 3)))));
	h = (NU)(h ^ (NU)((NU64)(h) >> (NU64)(((NI) 11))));
	h = (NU)((NU64)(h) + (NU64)((NU)((NU64)(h) << (NU64)(((NI) 15)))));
	result = ((NI) (h));
	return result;
}
static N_NIMCALL(void, Marker_tyRef__MdotPfdEWddcwl4HcVVgeQ)(void* p, NI op) {
	tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA* a;
	a = (tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA*)p;
	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.up, op);
}
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;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_1549)(NimStringDesc* x, NimStringDesc* y) {
	NI result;
	NI minlen;
	int T1_;
	result = (NI)0;
	minlen = (((x ? x->Sup.len : 0) <= (y ? y->Sup.len : 0)) ? (x ? x->Sup.len : 0) : (y ? y->Sup.len : 0));
	T1_ = (int)0;
	T1_ = nimCmpMem(((void*) (nimToCStringConv(x))), ((void*) (nimToCStringConv(y))), ((NI) (((size_t) (minlen)))));
	result = ((NI) (T1_));
	{
		if (!(result == ((NI) 0))) goto LA4_;
		result = (NI)((x ? x->Sup.len : 0) - (y ? y->Sup.len : 0));
	}
	LA4_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__Iyrru9apujUM04065F6aukQ)(void* p, NI op) {
	tyObject_OSError__THeHlGxHorUQ17FON5jY0g* a;
	a = (tyObject_OSError__THeHlGxHorUQ17FON5jY0g*)p;
	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.up, op);
}
N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void) {
	{
		if (!!((excHandler__system_2567 == ((TSafePoint*) NIM_NIL)))) goto LA3_;
		longjmp((*excHandler__system_2567).context, ((int) 1));
	}
	goto LA1_;
	LA3_: ;
	{
		reportUnhandledError__system_2857(currException__system_2568);
		exit(((NI) 1));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass) {
	NIM_BOOL result;
	TNimType* x;
{	result = (NIM_BOOL)0;
	x = obj;
	{
		if (!(x == subclass)) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		while (1) {
			if (!!((x == subclass))) goto LA6;
			{
				if (!(x == ((TNimType*) NIM_NIL))) goto LA9_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA9_: ;
			x = (*x).base;
		} LA6: ;
	}
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI16, toU16__system_301)(NI x) {
	NI16 result;
	result = (NI16)0;
	result = ((NI16) (x));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, quit__system_7240)(NimStringDesc* errormsg, NI errorcode) {
	rawWrite(stderr, nimToCStringConv(errormsg));
	rawWrite(stderr, "\012");
	exit(errorcode);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stackTraceAvailable__system_2749)(void) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	return result;
}
static N_INLINE(void, showErrorMessage2__system_2546)(NimStringDesc* data) {
	showErrorMessage__system_2538(nimToCStringConv(data), (data ? data->Sup.len : 0));
}
N_LIB_PRIVATE N_NIMCALL(void, writeStackTrace__system_2167)(void) {
	NimStringDesc* s;
	s = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_22));
	showErrorMessage2__system_2546(s);
}
N_LIB_PRIVATE N_NIMCALL(void, insert__nimblecmd_48)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** x, NimStringDesc* item, NI i) {
	NI xlX60gensym1_;
	NI T1_;
	NI jX60gensym1_;
	NimStringDesc* T4_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xlX60gensym1_ = T1_;
	unsureAsgnRef((void**) (&(*x)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) ((NI)(xlX60gensym1_ + ((NI) 1))))));
	jX60gensym1_ = (NI)(xlX60gensym1_ - ((NI) 1));
	{
		while (1) {
			if (!(((NI) (i)) <= jX60gensym1_)) goto LA3;
			asgnRef((void**) (&(*x)->data[(NI)(jX60gensym1_ + ((NI) 1))]), (*x)->data[jX60gensym1_]);
			jX60gensym1_ -= ((NI) 1);
		} LA3: ;
	}
	T4_ = NIM_NIL;
	T4_ = (*x)->data[i]; (*x)->data[i] = copyStringRC1(item);
	if (T4_) nimGCunrefNoCycle(T4_);
}
N_LIB_PRIVATE N_NIMCALL(void, delete__nimblecmd_2128)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** x, NI i) {
	NI xlX60gensym46_;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xlX60gensym46_ = T1_;
	{
		NI jX60gensym46_;
		NI colontmp_;
		NI colontmp__2;
		NI res;
		jX60gensym46_ = (NI)0;
		colontmp_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp_ = ((NI) (i));
		colontmp__2 = (NI)(xlX60gensym46_ - ((NI) 2));
		res = colontmp_;
		{
			while (1) {
				if (!(res <= colontmp__2)) goto LA4;
				jX60gensym46_ = res;
				asgnRef((void**) (&(*x)->data[jX60gensym46_]), (*x)->data[(NI)(jX60gensym46_ + ((NI) 1))]);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	unsureAsgnRef((void**) (&(*x)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) ((NI)(xlX60gensym46_ - ((NI) 1))))));
}
static N_NIMCALL(void, Marker_tyRef__tzjmdCJU9ba9bCYuvNDRGTaw)(void* p, NI op) {
	tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg* a;
	a = (tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg*)p;
	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___stdZsha49_915)(tyArray__YtcvxHNKV4YiecPE9ap1mcA x, tyArray__YtcvxHNKV4YiecPE9ap1mcA y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI f;
		NI res;
		f = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= ((NI) 19))) goto LA3;
				f = ((NI) (res));
				{
					if (!!((x[(f)- 0] == y[(f)- 0]))) goto LA6_;
					goto BeforeRet_;
				}
				LA6_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, insert__extccomp_759)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** x, NimStringDesc* item, NI i) {
	NI xlX60gensym21_;
	NI T1_;
	NI jX60gensym21_;
	NimStringDesc* T4_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xlX60gensym21_ = T1_;
	unsureAsgnRef((void**) (&(*x)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) ((NI)(xlX60gensym21_ + ((NI) 1))))));
	jX60gensym21_ = (NI)(xlX60gensym21_ - ((NI) 1));
	{
		while (1) {
			if (!(((NI) (i)) <= jX60gensym21_)) goto LA3;
			asgnRef((void**) (&(*x)->data[(NI)(jX60gensym21_ + ((NI) 1))]), (*x)->data[jX60gensym21_]);
			jX60gensym21_ -= ((NI) 1);
		} LA3: ;
	}
	T4_ = NIM_NIL;
	T4_ = (*x)->data[i]; (*x)->data[i] = copyStringRC1(item);
	if (T4_) nimGCunrefNoCycle(T4_);
}
static N_INLINE(void, addEscapedChar__system_7551)(NimStringDesc** s, NIM_CHAR c) {
	switch (((NU8)(c))) {
	case 7:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_24));
	}
	break;
	case 8:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_25));
	}
	break;
	case 9:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_26));
	}
	break;
	case 10:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_27));
	}
	break;
	case 11:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_28));
	}
	break;
	case 12:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_29));
	}
	break;
	case 13:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_30));
	}
	break;
	case 27:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_31));
	}
	break;
	case 92:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_32));
	}
	break;
	case 39:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_33));
	}
	break;
	case 34:
	{
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_34));
	}
	break;
	case 32 ... 33:
	case 35 ... 38:
	case 40 ... 91:
	case 93 ... 126:
	{
		unsureAsgnRef((void**) (&(*s)), addChar((*s), c));
	}
	break;
	default:
	{
		NI n;
		unsureAsgnRef((void**) (&(*s)), resizeString((*s), 2));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_35));
		n = ((NU8)(c));
		unsureAsgnRef((void**) (&(*s)), addChar((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_36)->data[(NI)((NI64)((NI)(n & ((NI) 240))) >> (NU64)(((NI) 4)))]));
		unsureAsgnRef((void**) (&(*s)), addChar((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_36)->data[(NI)(n & ((NI) 15))]));
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__pureZos_541)(NimStringDesc** s, NimStringDesc* x) {
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), 1));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_23));
	{
		NIM_CHAR c;
		NI i;
		NI L;
		c = (NIM_CHAR)0;
		i = ((NI) 0);
		L = (x ? x->Sup.len : 0);
		{
			while (1) {
				if (!(i < L)) goto LA3;
				c = x->data[i];
				{
					if (!((NU8)(c) <= (NU8)(127))) goto LA6_;
					addEscapedChar__system_7551(s, c);
				}
				goto LA4_;
				LA6_: ;
				{
					unsureAsgnRef((void**) (&(*s)), addChar((*s), c));
				}
				LA4_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), 1));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_23));
}
N_LIB_PRIVATE N_NIMCALL(tySequence__9aKpvUh0ca6Bp9cKAwrowqUg*, newSeq__stdZprivateZwin95setenv_36)(NI len) {
	tySequence__9aKpvUh0ca6Bp9cKAwrowqUg* result;
	result = NIM_NIL;
	result = (tySequence__9aKpvUh0ca6Bp9cKAwrowqUg*) newSeq((&NTIseqLutf4954charT__9aKpvUh0ca6Bp9cKAwrowqUg_), len);
	return result;
}
static N_NIMCALL(void, Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)(void* p, NI op) {
	RootObj* a;
	a = (RootObj*)p;
}
N_LIB_PRIVATE N_NIMCALL(NI, nimParseBiggestFloat)(NimStringDesc* s, NF* number, NI start) {
	NI result;
	NI i;
	NF sign;
	NI kdigits;
	NI fdigits;
	NI exponent;
	NU64 integer;
	NI fracExponent;
	NI expSign;
	NI firstDigit;
	NIM_BOOL hasSign;
	NI realExponent;
	NIM_BOOL expNegative;
	NI absExponent;
	NI digits;
	tyArray__PGLh8drTnaWr3s1qUUSq2Q t;
	NI ti;
	NI maxlen;
	NI endPos;
{	result = (NI)0;
	i = start;
	sign = 1.0;
	kdigits = ((NI) 0);
	fdigits = ((NI) 0);
	exponent = ((NI) 0);
	integer = 0ULL;
	fracExponent = ((NI) 0);
	expSign = ((NI) 1);
	firstDigit = ((NI) -1);
	hasSign = NIM_FALSE;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (i < (s ? s->Sup.len : 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((NU8)(s->data[i]) == (NU8)(43));
		if (T5_) goto LA6_;
		T5_ = ((NU8)(s->data[i]) == (NU8)(45));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		hasSign = NIM_TRUE;
		{
			if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA11_;
			sign = -1.0;
		}
		LA11_: ;
		i += ((NI) 1);
	}
	LA7_: ;
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((NI)(i + ((NI) 2)) < (s ? s->Sup.len : 0));
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((NU8)(s->data[i]) == (NU8)(78));
		if (T17_) goto LA18_;
		T17_ = ((NU8)(s->data[i]) == (NU8)(110));
		LA18_: ;
		T15_ = T17_;
		LA16_: ;
		if (!T15_) goto LA19_;
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(65));
			if (T23_) goto LA24_;
			T23_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(97));
			LA24_: ;
			if (!T23_) goto LA25_;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(78));
				if (T29_) goto LA30_;
				T29_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(110));
				LA30_: ;
				if (!T29_) goto LA31_;
				{
					NIM_BOOL T35_;
					T35_ = (NIM_BOOL)0;
					T35_ = ((s ? s->Sup.len : 0) <= (NI)(i + ((NI) 3)));
					if (T35_) goto LA36_;
					T35_ = !((((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) == ((NU8)(95))));
					LA36_: ;
					if (!T35_) goto LA37_;
					(*number) = NAN;
					result = (NI)((NI)(i + ((NI) 3)) - start);
					goto BeforeRet_;
				}
				LA37_: ;
			}
			LA31_: ;
		}
		LA25_: ;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA19_: ;
	{
		NIM_BOOL T41_;
		NIM_BOOL T43_;
		T41_ = (NIM_BOOL)0;
		T41_ = ((NI)(i + ((NI) 2)) < (s ? s->Sup.len : 0));
		if (!(T41_)) goto LA42_;
		T43_ = (NIM_BOOL)0;
		T43_ = ((NU8)(s->data[i]) == (NU8)(73));
		if (T43_) goto LA44_;
		T43_ = ((NU8)(s->data[i]) == (NU8)(105));
		LA44_: ;
		T41_ = T43_;
		LA42_: ;
		if (!T41_) goto LA45_;
		{
			NIM_BOOL T49_;
			T49_ = (NIM_BOOL)0;
			T49_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(78));
			if (T49_) goto LA50_;
			T49_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(110));
			LA50_: ;
			if (!T49_) goto LA51_;
			{
				NIM_BOOL T55_;
				T55_ = (NIM_BOOL)0;
				T55_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(70));
				if (T55_) goto LA56_;
				T55_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(102));
				LA56_: ;
				if (!T55_) goto LA57_;
				{
					NIM_BOOL T61_;
					T61_ = (NIM_BOOL)0;
					T61_ = ((s ? s->Sup.len : 0) <= (NI)(i + ((NI) 3)));
					if (T61_) goto LA62_;
					T61_ = !((((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) == ((NU8)(95))));
					LA62_: ;
					if (!T61_) goto LA63_;
					(*number) = ((NF)(INF) * (NF)(sign));
					result = (NI)((NI)(i + ((NI) 3)) - start);
					goto BeforeRet_;
				}
				LA63_: ;
			}
			LA57_: ;
		}
		LA51_: ;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA45_: ;
	{
		NIM_BOOL T67_;
		T67_ = (NIM_BOOL)0;
		T67_ = (i < (s ? s->Sup.len : 0));
		if (!(T67_)) goto LA68_;
		T67_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
		LA68_: ;
		if (!T67_) goto LA69_;
		firstDigit = (NI)(((NU8)(s->data[i])) - ((NI) 48));
	}
	LA69_: ;
	{
		while (1) {
			NIM_BOOL T73_;
			T73_ = (NIM_BOOL)0;
			T73_ = (i < (s ? s->Sup.len : 0));
			if (!(T73_)) goto LA74_;
			T73_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
			LA74_: ;
			if (!T73_) goto LA72;
			kdigits += ((NI) 1);
			integer = (NU64)((NU64)((NU64)((NU64)(integer) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
			i += ((NI) 1);
			{
				while (1) {
					NIM_BOOL T77_;
					T77_ = (NIM_BOOL)0;
					T77_ = (i < (s ? s->Sup.len : 0));
					if (!(T77_)) goto LA78_;
					T77_ = ((NU8)(s->data[i]) == (NU8)(95));
					LA78_: ;
					if (!T77_) goto LA76;
					i += ((NI) 1);
				} LA76: ;
			}
		} LA72: ;
	}
	{
		NIM_BOOL T81_;
		T81_ = (NIM_BOOL)0;
		T81_ = (i < (s ? s->Sup.len : 0));
		if (!(T81_)) goto LA82_;
		T81_ = ((NU8)(s->data[i]) == (NU8)(46));
		LA82_: ;
		if (!T81_) goto LA83_;
		i += ((NI) 1);
		{
			if (!(kdigits <= ((NI) 0))) goto LA87_;
			{
				while (1) {
					NIM_BOOL T91_;
					T91_ = (NIM_BOOL)0;
					T91_ = (i < (s ? s->Sup.len : 0));
					if (!(T91_)) goto LA92_;
					T91_ = ((NU8)(s->data[i]) == (NU8)(48));
					LA92_: ;
					if (!T91_) goto LA90;
					fracExponent += ((NI) 1);
					i += ((NI) 1);
					{
						while (1) {
							NIM_BOOL T95_;
							T95_ = (NIM_BOOL)0;
							T95_ = (i < (s ? s->Sup.len : 0));
							if (!(T95_)) goto LA96_;
							T95_ = ((NU8)(s->data[i]) == (NU8)(95));
							LA96_: ;
							if (!T95_) goto LA94;
							i += ((NI) 1);
						} LA94: ;
					}
				} LA90: ;
			}
		}
		LA87_: ;
		{
			NIM_BOOL T99_;
			NIM_BOOL T100_;
			T99_ = (NIM_BOOL)0;
			T100_ = (NIM_BOOL)0;
			T100_ = (firstDigit == ((NI) -1));
			if (!(T100_)) goto LA101_;
			T100_ = (i < (s ? s->Sup.len : 0));
			LA101_: ;
			T99_ = T100_;
			if (!(T99_)) goto LA102_;
			T99_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
			LA102_: ;
			if (!T99_) goto LA103_;
			firstDigit = (NI)(((NU8)(s->data[i])) - ((NI) 48));
		}
		LA103_: ;
		{
			while (1) {
				NIM_BOOL T107_;
				T107_ = (NIM_BOOL)0;
				T107_ = (i < (s ? s->Sup.len : 0));
				if (!(T107_)) goto LA108_;
				T107_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
				LA108_: ;
				if (!T107_) goto LA106;
				fdigits += ((NI) 1);
				fracExponent += ((NI) 1);
				integer = (NU64)((NU64)((NU64)((NU64)(integer) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
				i += ((NI) 1);
				{
					while (1) {
						NIM_BOOL T111_;
						T111_ = (NIM_BOOL)0;
						T111_ = (i < (s ? s->Sup.len : 0));
						if (!(T111_)) goto LA112_;
						T111_ = ((NU8)(s->data[i]) == (NU8)(95));
						LA112_: ;
						if (!T111_) goto LA110;
						i += ((NI) 1);
					} LA110: ;
				}
			} LA106: ;
		}
	}
	LA83_: ;
	{
		NIM_BOOL T115_;
		NIM_BOOL T117_;
		NIM_BOOL T119_;
		T115_ = (NIM_BOOL)0;
		T115_ = ((NI)(kdigits + fdigits) <= ((NI) 0));
		if (!(T115_)) goto LA116_;
		T117_ = (NIM_BOOL)0;
		T117_ = (i == start);
		if (T117_) goto LA118_;
		T119_ = (NIM_BOOL)0;
		T119_ = (i == (NI)(start + ((NI) 1)));
		if (!(T119_)) goto LA120_;
		T119_ = hasSign;
		LA120_: ;
		T117_ = T119_;
		LA118_: ;
		T115_ = T117_;
		LA116_: ;
		if (!T115_) goto LA121_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA121_: ;
	{
		NIM_BOOL T125_;
		T125_ = (NIM_BOOL)0;
		T125_ = ((NI)(i + ((NI) 1)) < (s ? s->Sup.len : 0));
		if (!(T125_)) goto LA126_;
		T125_ = (((NU8)(s->data[i])) == ((NU8)(101)) || ((NU8)(s->data[i])) == ((NU8)(69)));
		LA126_: ;
		if (!T125_) goto LA127_;
		i += ((NI) 1);
		{
			NIM_BOOL T131_;
			T131_ = (NIM_BOOL)0;
			T131_ = ((NU8)(s->data[i]) == (NU8)(43));
			if (T131_) goto LA132_;
			T131_ = ((NU8)(s->data[i]) == (NU8)(45));
			LA132_: ;
			if (!T131_) goto LA133_;
			{
				if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA137_;
				expSign = ((NI) -1);
			}
			LA137_: ;
			i += ((NI) 1);
		}
		LA133_: ;
		{
			if (!!((((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57))))) goto LA141_;
			result = ((NI) 0);
			goto BeforeRet_;
		}
		LA141_: ;
		{
			while (1) {
				NIM_BOOL T145_;
				T145_ = (NIM_BOOL)0;
				T145_ = (i < (s ? s->Sup.len : 0));
				if (!(T145_)) goto LA146_;
				T145_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
				LA146_: ;
				if (!T145_) goto LA144;
				exponent = (NI)((NI)(exponent * ((NI) 10)) + (NI)(((NU8)(s->data[i])) - ((NI) 48)));
				i += ((NI) 1);
				{
					while (1) {
						NIM_BOOL T149_;
						T149_ = (NIM_BOOL)0;
						T149_ = (i < (s ? s->Sup.len : 0));
						if (!(T149_)) goto LA150_;
						T149_ = ((NU8)(s->data[i]) == (NU8)(95));
						LA150_: ;
						if (!T149_) goto LA148;
						i += ((NI) 1);
					} LA148: ;
				}
			} LA144: ;
		}
	}
	LA127_: ;
	realExponent = (NI)((NI)(expSign * exponent) - fracExponent);
	expNegative = (realExponent < ((NI) 0));
	absExponent = (realExponent > 0? (realExponent) : -(realExponent));
	{
		if (!(((NI) 999) < absExponent)) goto LA153_;
		{
			if (!(integer == 0ULL)) goto LA157_;
			(*number) = 0.0;
		}
		goto LA155_;
		LA157_: ;
		{
			if (!expNegative) goto LA160_;
			(*number) = ((NF)(0.0) * (NF)(sign));
		}
		goto LA155_;
		LA160_: ;
		{
			(*number) = ((NF)(INF) * (NF)(sign));
		}
		LA155_: ;
		result = (NI)(i - start);
		goto BeforeRet_;
	}
	LA153_: ;
	digits = (NI)(kdigits + fdigits);
	{
		NIM_BOOL T165_;
		NIM_BOOL T167_;
		NI slop;
		T165_ = (NIM_BOOL)0;
		T165_ = (digits <= ((NI) 15));
		if (T165_) goto LA166_;
		T167_ = (NIM_BOOL)0;
		T167_ = (digits <= ((NI) 16));
		if (!(T167_)) goto LA168_;
		T167_ = (firstDigit <= ((NI) 8));
		LA168_: ;
		T165_ = T167_;
		LA166_: ;
		if (!T165_) goto LA169_;
		{
			if (!(absExponent <= ((NI) 22))) goto LA173_;
			{
				if (!expNegative) goto LA177_;
				(*number) = ((NF)(((NF)(sign) * (NF)(((NF) (integer))))) / (NF)(powtens__system_6219[(absExponent)- 0]));
			}
			goto LA175_;
			LA177_: ;
			{
				(*number) = ((NF)(((NF)(sign) * (NF)(((NF) (integer))))) * (NF)(powtens__system_6219[(absExponent)- 0]));
			}
			LA175_: ;
			result = (NI)(i - start);
			goto BeforeRet_;
		}
		LA173_: ;
		slop = (NI)((NI)(((NI) 15) - kdigits) - fdigits);
		{
			NIM_BOOL T182_;
			T182_ = (NIM_BOOL)0;
			T182_ = (absExponent <= (NI)(((NI) 22) + slop));
			if (!(T182_)) goto LA183_;
			T182_ = !(expNegative);
			LA183_: ;
			if (!T182_) goto LA184_;
			(*number) = ((NF)(((NF)(((NF)(sign) * (NF)(((NF) (integer))))) * (NF)(powtens__system_6219[(slop)- 0]))) * (NF)(powtens__system_6219[((NI)(absExponent - slop))- 0]));
			result = (NI)(i - start);
			goto BeforeRet_;
		}
		LA184_: ;
	}
	LA169_: ;
	nimZeroMem((void*)t, sizeof(tyArray__PGLh8drTnaWr3s1qUUSq2Q));
	ti = ((NI) 0);
	maxlen = ((NI) 494);
	endPos = i;
	result = (NI)(endPos - start);
	i = start;
	{
		NIM_BOOL T188_;
		T188_ = (NIM_BOOL)0;
		T188_ = (i < endPos);
		if (!(T188_)) goto LA189_;
		T188_ = ((NU8)(s->data[i]) == (NU8)(46));
		LA189_: ;
		if (!T188_) goto LA190_;
		i += ((NI) 1);
	}
	LA190_: ;
	{
		while (1) {
			NIM_BOOL T194_;
			T194_ = (NIM_BOOL)0;
			T194_ = (i < endPos);
			if (!(T194_)) goto LA195_;
			T194_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)) || ((NU8)(s->data[i])) == ((NU8)(43)) || ((NU8)(s->data[i])) == ((NU8)(45)));
			LA195_: ;
			if (!T194_) goto LA193;
			{
				if (!(ti < maxlen)) goto LA198_;
				t[(ti)- 0] = s->data[i];
				ti += ((NI) 1);
			}
			LA198_: ;
			i += ((NI) 1);
			{
				while (1) {
					NIM_BOOL T202_;
					T202_ = (NIM_BOOL)0;
					T202_ = (i < endPos);
					if (!(T202_)) goto LA203_;
					T202_ = (((NU8)(s->data[i])) == ((NU8)(46)) || ((NU8)(s->data[i])) == ((NU8)(95)));
					LA203_: ;
					if (!T202_) goto LA201;
					i += ((NI) 1);
				} LA201: ;
			}
		} LA193: ;
	}
	t[(ti)- 0] = 69;
	ti += ((NI) 1);
	{
		if (!expNegative) goto LA206_;
		t[(ti)- 0] = 45;
	}
	goto LA204_;
	LA206_: ;
	{
		t[(ti)- 0] = 43;
	}
	LA204_: ;
	ti += ((NI) 4);
	t[((NI)(ti - ((NI) 1)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
	absExponent = (NI)(absExponent / ((NI) 10));
	t[((NI)(ti - ((NI) 2)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
	absExponent = (NI)(absExponent / ((NI) 10));
	t[((NI)(ti - ((NI) 3)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
	(*number) = strtod(((NCSTRING) (t)), ((NCSTRING*) NIM_NIL));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, objectInitAux__system_6587)(void* dest, TNimNode* n) {
	NI d;
	d = ((NI) (ptrdiff_t) (dest));
	switch ((*n).kind) {
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 0):
	{
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 1):
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = pluspercent___system_696(d, (*n).offset);
		objectInit(((void*) (T3_)), (*n).typ);
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 2):
	{
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((*n).len - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA7;
					i = res;
					objectInitAux__system_6587(dest, (*n).sons[(i)- 0]);
					res += ((NI) 1);
				} LA7: ;
			}
		}
	}
	break;
	case ((tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw) 3):
	{
		TNimNode* m;
		m = selectBranch__system_3710(dest, n);
		{
			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA11_;
			objectInitAux__system_6587(dest, m);
		}
		LA11_: ;
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ) {
	NI d;
	d = ((NI) (ptrdiff_t) (dest));
	switch ((*typ).kind) {
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 17):
	{
		TNimType** pint;
		pint = ((TNimType**) (dest));
		(*pint) = typ;
		objectInitAux__system_6587(dest, (*typ).node);
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 18):
	{
		objectInitAux__system_6587(dest, (*typ).node);
	}
	break;
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 16):
	case ((tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ) 4):
	{
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((NI)((*typ).size / (*(*typ).base).size) - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					NI T7_;
					if (!(res <= colontmp_)) goto LA6;
					i = res;
					T7_ = (NI)0;
					T7_ = pluspercent___system_696(d, (NI)(i * (*(*typ).base).size));
					objectInit(((void*) (T7_)), (*typ).base);
					res += ((NI) 1);
				} LA6: ;
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt) {
	genericAssignAux__system_6472(dest, src, mt, NIM_TRUE);
}
N_LIB_PRIVATE N_NIMCALL(tySequence__IeU9azYSNIK3V9b36Ir6NZcw*, at___ast_3364)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** a, NI aLen_0) {
	tySequence__IeU9azYSNIK3V9b36Ir6NZcw* result;
	result = NIM_NIL;
	result = (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) newSeq((&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) (aLen_0)));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(aLen_0 - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				asgnRef((void**) (&result->data[i]), a[i]);
				res += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___icZrodfiles_173)(tyArray__cdsir9aPB24hAk6k77P9b9bCA x, tyArray__cdsir9aPB24hAk6k77P9b9bCA y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI f;
		NI res;
		f = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= ((NI) 7))) goto LA3;
				f = ((NI) (res));
				{
					if (!!((x[(f)- 0] == y[(f)- 0]))) goto LA6_;
					goto BeforeRet_;
				}
				LA6_: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__9bAGqSvkAaFL9bWjsEPslrFA*, newSeq__icZic_3260)(NI len) {
	tySequence__9bAGqSvkAaFL9bWjsEPslrFA* result;
	result = NIM_NIL;
	result = (tySequence__9bAGqSvkAaFL9bWjsEPslrFA*) newSeq((&NTIseqLlitidT__9bAGqSvkAaFL9bWjsEPslrFA_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__PXIzfWocnrafGz5p3CP5LA*, newSeq__icZic_3310)(NI len) {
	tySequence__PXIzfWocnrafGz5p3CP5LA* result;
	result = NIM_NIL;
	result = (tySequence__PXIzfWocnrafGz5p3CP5LA*) newSeq((&NTIseqLLlitid_stringTT__PXIzfWocnrafGz5p3CP5LA_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__IHUFRsFxZNv7YydiUO2esQ*, newSeq__icZic_3372)(NI len) {
	tySequence__IHUFRsFxZNv7YydiUO2esQ* result;
	result = NIM_NIL;
	result = (tySequence__IHUFRsFxZNv7YydiUO2esQ*) newSeq((&NTIseqLbiggestintT__IHUFRsFxZNv7YydiUO2esQ_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__b89aLriiJnVTD186H6zNIgg*, newSeq__icZic_3426)(NI len) {
	tySequence__b89aLriiJnVTD186H6zNIgg* result;
	result = NIM_NIL;
	result = (tySequence__b89aLriiJnVTD186H6zNIgg*) newSeq((&NTIseqLLlitid_int5150TT__b89aLriiJnVTD186H6zNIgg_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw*, newSeq__icZic_3489)(NI len) {
	tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw* result;
	result = NIM_NIL;
	result = (tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw*) newSeq((&NTIseqLLlitid_packeditemidTT__wE9cZkGC9cv7Iz9ckZOIyaW9aw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__48JTohSgTy339bRxHzUD8KA*, newSeq__icZic_3552)(NI len) {
	tySequence__48JTohSgTy339bRxHzUD8KA* result;
	result = NIM_NIL;
	result = (tySequence__48JTohSgTy339bRxHzUD8KA*) newSeq((&NTIseqLint5150T__48JTohSgTy339bRxHzUD8KA_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__QnmOtn1Iv4LvxOXoMn8Rbg*, newSeq__icZic_3614)(NI len) {
	tySequence__QnmOtn1Iv4LvxOXoMn8Rbg* result;
	result = NIM_NIL;
	result = (tySequence__QnmOtn1Iv4LvxOXoMn8Rbg*) newSeq((&NTIseqLLpackeditemid_packedlineinfoTT__QnmOtn1Iv4LvxOXoMn8Rbg_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__4Murtwnm0Fyc7F9acrytEXw*, newSeq__icZic_3682)(NI len) {
	tySequence__4Murtwnm0Fyc7F9acrytEXw* result;
	result = NIM_NIL;
	result = (tySequence__4Murtwnm0Fyc7F9acrytEXw*) newSeq((&NTIseqLpackednodeT__4Murtwnm0Fyc7F9acrytEXw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__q9bTuOB0JXh1iZ3CSGdRLbg*, newSeq__icZic_3740)(NI len) {
	tySequence__q9bTuOB0JXh1iZ3CSGdRLbg* result;
	result = NIM_NIL;
	result = (tySequence__q9bTuOB0JXh1iZ3CSGdRLbg*) newSeq((&NTIseqLpackedsymT__q9bTuOB0JXh1iZ3CSGdRLbg_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw*, newSeq__icZic_3799)(NI len) {
	tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw* result;
	result = NIM_NIL;
	result = (tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw*) newSeq((&NTIseqLpackedtypeT__DPZr9aMyRppVlNZ9ajSyOZ9bw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__lo3S1lKyiPLhGGB9cBawd6A*, newSeq__icZic_3083)(NI len) {
	tySequence__lo3S1lKyiPLhGGB9cBawd6A* result;
	result = NIM_NIL;
	result = (tySequence__lo3S1lKyiPLhGGB9cBawd6A*) newSeq((&NTIseqLpackeditemidT__lo3S1lKyiPLhGGB9cBawd6A_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__oKtVqsc9bQVCNyrijELM4OQ*, newSeq__icZic_4090)(NI len) {
	tySequence__oKtVqsc9bQVCNyrijELM4OQ* result;
	result = NIM_NIL;
	result = (tySequence__oKtVqsc9bQVCNyrijELM4OQ*) newSeq((&NTIseqLLpackeditemid_packeditemidTT__oKtVqsc9bQVCNyrijELM4OQ_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qy6Iwdy00wN560qud54HTg*, newSeq__icZic_4149)(NI len) {
	tySequence__qy6Iwdy00wN560qud54HTg* result;
	result = NIM_NIL;
	result = (tySequence__qy6Iwdy00wN560qud54HTg*) newSeq((&NTIseqLpackedinstantiationT__qy6Iwdy00wN560qud54HTg_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__k67v9bwvvQDmS1ynyGGUbeQ*, newSeq__icZic_4216)(NI len) {
	tySequence__k67v9bwvvQDmS1ynyGGUbeQ* result;
	result = NIM_NIL;
	result = (tySequence__k67v9bwvvQDmS1ynyGGUbeQ*) newSeq((&NTIseqLLttypeattachedop_packeditemid_packeditemidTT__k67v9bwvvQDmS1ynyGGUbeQ_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__cLsClAAfd0MKkoBQVyvdvw*, newSeq__icZic_4284)(NI len) {
	tySequence__cLsClAAfd0MKkoBQVyvdvw* result;
	result = NIM_NIL;
	result = (tySequence__cLsClAAfd0MKkoBQVyvdvw*) newSeq((&NTIseqLLpackeditemid_int_packeditemidTT__cLsClAAfd0MKkoBQVyvdvw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___icZic_6144)(tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ x, tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((x.module == y.module))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((x.item == y.item))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__fZ9aerq6GRgd1Id9b1cf7NuA*, newSeq__reorder_951)(NI len) {
	tySequence__fZ9aerq6GRgd1Id9b1cf7NuA* result;
	result = NIM_NIL;
	result = (tySequence__fZ9aerq6GRgd1Id9b1cf7NuA*) newSeq((&NTIseqLLintset_intsetTT__fZ9aerq6GRgd1Id9b1cf7NuA_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__vAEg9bb6P9cAvzrQae7aeKyA*, newSeq__reorder_478)(NI len) {
	tySequence__vAEg9bb6P9cAvzrQae7aeKyA* result;
	result = NIM_NIL;
	result = (tySequence__vAEg9bb6P9cAvzrQae7aeKyA*) newSeq((&NTIseqLdepnT__vAEg9bb6P9cAvzrQae7aeKyA_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_7519)(NI x, NI y) {
	NI result;
{	result = (NI)0;
	{
		if (!(x == y)) goto LA3_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(x < y)) goto LA7_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA7_: ;
	result = ((NI) 1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__UnGSk9aaLosDroi2QDrlOfQ*, newSeq__icZreplayer_1072)(NI len) {
	tySequence__UnGSk9aaLosDroi2QDrlOfQ* result;
	result = NIM_NIL;
	result = (tySequence__UnGSk9aaLosDroi2QDrlOfQ*) newSeq((&NTIseqLfullidT__UnGSk9aaLosDroi2QDrlOfQ_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___types_1808)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((x.Field0 == y.Field0))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((x.Field1 == y.Field1))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)(void* p, NI op) {
	NI* a;
	a = (NI*)p;
}
N_LIB_PRIVATE N_NIMCALL(void, add__icZic_8922)(tySequence__lo3S1lKyiPLhGGB9cBawd6A** x, tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ* y, NI yLen_0) {
	NI xl;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xl = T1_;
	unsureAsgnRef((void**) (&(*x)), (tySequence__lo3S1lKyiPLhGGB9cBawd6A*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTIseqLpackeditemidT__lo3S1lKyiPLhGGB9cBawd6A_), ((NI) ((NI)(xl + yLen_0)))));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (yLen_0-1);
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				(*x)->data[(NI)(xl + i)] = y[i];
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__modulegraphs_3475)(NimStringDesc** s, NI32 x) {
	addInt__stdZprivateZdigitsutils_189(s, ((NI) (x)));
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_395)(NI32 x, NI32 y) {
	NI result;
{	result = (NI)0;
	{
		if (!(x == y)) goto LA3_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(x < y)) goto LA7_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA7_: ;
	result = ((NI) 1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_401)(NU32 x, NU32 y) {
	NI result;
{	result = (NI)0;
	{
		if (!(x == y)) goto LA3_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((NU32)(x) < (NU32)(y))) goto LA7_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA7_: ;
	result = ((NI) 1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__EK3kb9a029axOL6ZINxWj1hw*, newSeq__lookups_842)(NI len) {
	tySequence__EK3kb9a029axOL6ZINxWj1hw* result;
	result = NIM_NIL;
	result = (tySequence__EK3kb9a029axOL6ZINxWj1hw*) newSeq((&NTIseqLtupleLsym58psym_key58stringTT__EK3kb9a029axOL6ZINxWj1hw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___sigmatch_6056)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((x.Field0 == y.Field0))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((x.Field1 == y.Field1))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__sigmatch_6088)(tySequence__Jhh6ks9carRtwV9aOuM8yMNw** x, NI i) {
	NI xl;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xl = (NI)(T1_ - ((NI) 1));
	asgnRef((void**) (&(*x)->data[i].Field0), (*x)->data[xl].Field0);
	(*x)->data[i].Field1 = (*x)->data[xl].Field1;
	unsureAsgnRef((void**) (&(*x)), (tySequence__Jhh6ks9carRtwV9aOuM8yMNw*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTIseqLLpsym_tlineinfoTT__Jhh6ks9carRtwV9aOuM8yMNw_), ((NI) (xl))));
}
N_LIB_PRIVATE N_NIMCALL(tySequence__GR8qmV1kNRcoQ2g76VFy3A*, newSeq__sigmatch_4830)(NI len) {
	tySequence__GR8qmV1kNRcoQ2g76VFy3A* result;
	result = NIM_NIL;
	result = (tySequence__GR8qmV1kNRcoQ2g76VFy3A*) newSeq((&NTIseqLsuggestT__GR8qmV1kNRcoQ2g76VFy3A_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___lookups_1600)(tyTuple__kuMQ1fbjJlHtwKTmBGAe6g x, tyTuple__kuMQ1fbjJlHtwKTmBGAe6g y) {
	NIM_BOOL result;
	NI c;
	NI c_2;
	NI c_3;
{	result = (NIM_BOOL)0;
	c = cmp__system_7519(x.Field0, y.Field0);
	{
		if (!(c < ((NI) 0))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((NI) 0) < c)) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	c_2 = cmp__system_7519(x.Field1, y.Field1);
	{
		if (!(c_2 < ((NI) 0))) goto LA11_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!(((NI) 0) < c_2)) goto LA15_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA15_: ;
	c_3 = cmp__system_1549(x.Field2, y.Field2);
	{
		if (!(c_3 < ((NI) 0))) goto LA19_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA19_: ;
	{
		if (!(((NI) 0) < c_3)) goto LA23_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA23_: ;
	result = NIM_FALSE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*, newSeq__vm_13656)(NI len) {
	tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* result;
	result = NIM_NIL;
	result = (tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*) newSeq((&NTIseqLbyteT__6H5Oh5UUvVCLiakt9aTwtUQ_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, ze64__system_292)(NI32 x) {
	NI64 result;
	result = (NI64)0;
	result = ((NI64) (((NU64) (((NU32) (x))))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, insert__liftdestructors_1581)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* item, NI i) {
	NI xlX60gensym143_;
	NI T1_;
	NI jX60gensym143_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xlX60gensym143_ = T1_;
	unsureAsgnRef((void**) (&(*x)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) ((NI)(xlX60gensym143_ + ((NI) 1))))));
	jX60gensym143_ = (NI)(xlX60gensym143_ - ((NI) 1));
	{
		while (1) {
			if (!(((NI) (i)) <= jX60gensym143_)) goto LA3;
			asgnRef((void**) (&(*x)->data[(NI)(jX60gensym143_ + ((NI) 1))]), (*x)->data[jX60gensym143_]);
			jX60gensym143_ -= ((NI) 1);
		} LA3: ;
	}
	asgnRef((void**) (&(*x)->data[i]), item);
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___pragmas_1747)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** s, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** b, NI bLen_0) {
	NI a;
	NI L;
	a = x.a;
	L = (NI)((NI)(x.b - a) + ((NI) 1));
	{
		if (!(L == bLen_0)) goto LA3_;
		{
			NI i;
			NI i_2;
			i = (NI)0;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < L)) goto LA7;
					i = i_2;
					asgnRef((void**) (&(*s)->data[(NI)(i + a)]), b[i]);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	goto LA1_;
	LA3_: ;
	{
		NI shiftX60gensym635_;
		NI newLenX60gensym635_;
		NI T9_;
		shiftX60gensym635_ = (NI)(bLen_0 - ((((NI) 0) >= L) ? ((NI) 0) : L));
		T9_ = ((*s) ? (*s)->Sup.len : 0);
		newLenX60gensym635_ = (NI)(T9_ + shiftX60gensym635_);
		{
			if (!(((NI) 0) < shiftX60gensym635_)) goto LA12_;
			unsureAsgnRef((void**) (&(*s)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*s))?&((*s))->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) (newLenX60gensym635_))));
			{
				NI iX60gensym635_;
				NI colontmp_;
				NI colontmp__2;
				NI res;
				iX60gensym635_ = (NI)0;
				colontmp_ = (NI)0;
				colontmp__2 = (NI)0;
				colontmp_ = (NI)(newLenX60gensym635_ - ((NI) 1));
				colontmp__2 = (NI)(a + bLen_0);
				res = colontmp_;
				{
					while (1) {
						if (!(colontmp__2 <= res)) goto LA16;
						iX60gensym635_ = res;
						asgnRef((void**) (&(*s)->data[iX60gensym635_]), (*s)->data[(NI)(iX60gensym635_ - shiftX60gensym635_)]);
						res -= ((NI) 1);
					} LA16: ;
				}
			}
		}
		goto LA10_;
		LA12_: ;
		{
			{
				NI iX60gensym635__2;
				NI colontmp__3;
				NI colontmp__4;
				NI res_2;
				iX60gensym635__2 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__4 = (NI)0;
				colontmp__3 = (NI)(a + bLen_0);
				colontmp__4 = (NI)(newLenX60gensym635_ - ((NI) 1));
				res_2 = colontmp__3;
				{
					while (1) {
						if (!(res_2 <= colontmp__4)) goto LA20;
						iX60gensym635__2 = res_2;
						asgnRef((void**) (&(*s)->data[iX60gensym635__2]), (*s)->data[(NI)(iX60gensym635__2 - shiftX60gensym635_)]);
						res_2 += ((NI) 1);
					} LA20: ;
				}
			}
			unsureAsgnRef((void**) (&(*s)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*s))?&((*s))->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) (newLenX60gensym635_))));
		}
		LA10_: ;
		{
			NI iX60gensym635__3;
			NI colontmp__5;
			NI i_3;
			iX60gensym635__3 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = bLen_0;
			i_3 = ((NI) 0);
			{
				while (1) {
					if (!(i_3 < colontmp__5)) goto LA23;
					iX60gensym635__3 = i_3;
					asgnRef((void**) (&(*s)->data[(NI)(a + iX60gensym635__3)]), b[iX60gensym635__3]);
					i_3 += ((NI) 1);
				} LA23: ;
			}
		}
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__IeU9azYSNIK3V9b36Ir6NZcw*, X5BX5D___transf_1745)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** s, NI sLen_0, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x) {
	tySequence__IeU9azYSNIK3V9b36Ir6NZcw* result;
	NI a;
	NI L;
	result = NIM_NIL;
	a = x.a;
	L = (NI)((NI)(x.b - a) + ((NI) 1));
	result = (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) newSeq((&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				asgnRef((void**) (&result->data[i]), s[(NI)(i + a)]);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, add__closureiters_406)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** y, NI yLen_0) {
	NI xl;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xl = T1_;
	unsureAsgnRef((void**) (&(*x)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) ((NI)(xl + yLen_0)))));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (yLen_0-1);
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				asgnRef((void**) (&(*x)->data[(NI)(xl + i)]), y[i]);
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1723)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, NI i) {
	NI xlX60gensym307_;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xlX60gensym307_ = T1_;
	{
		NI jX60gensym307_;
		NI colontmp_;
		NI colontmp__2;
		NI res;
		jX60gensym307_ = (NI)0;
		colontmp_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp_ = ((NI) (i));
		colontmp__2 = (NI)(xlX60gensym307_ - ((NI) 2));
		res = colontmp_;
		{
			while (1) {
				if (!(res <= colontmp__2)) goto LA4;
				jX60gensym307_ = res;
				asgnRef((void**) (&(*x)->data[jX60gensym307_]), (*x)->data[(NI)(jX60gensym307_ + ((NI) 1))]);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	unsureAsgnRef((void**) (&(*x)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) ((NI)(xlX60gensym307_ - ((NI) 1))))));
}
N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1760)(tySequence__qwqHTkRvwhrRyENtudHQ7g** x, NI i) {
	NI xlX60gensym309_;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xlX60gensym309_ = T1_;
	{
		NI jX60gensym309_;
		NI colontmp_;
		NI colontmp__2;
		NI res;
		jX60gensym309_ = (NI)0;
		colontmp_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp_ = ((NI) (i));
		colontmp__2 = (NI)(xlX60gensym309_ - ((NI) 2));
		res = colontmp_;
		{
			while (1) {
				if (!(res <= colontmp__2)) goto LA4;
				jX60gensym309_ = res;
				(*x)->data[jX60gensym309_] = (*x)->data[(NI)(jX60gensym309_ + ((NI) 1))];
				res += ((NI) 1);
			} LA4: ;
		}
	}
	unsureAsgnRef((void**) (&(*x)), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), ((NI) ((NI)(xlX60gensym309_ - ((NI) 1))))));
}
N_LIB_PRIVATE N_NIMCALL(void, del__closureiters_3582)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, NI i) {
	NI xl;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xl = (NI)(T1_ - ((NI) 1));
	asgnRef((void**) (&(*x)->data[i]), (*x)->data[xl]);
	unsureAsgnRef((void**) (&(*x)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) (xl))));
}
N_LIB_PRIVATE N_NIMCALL(void, nimGCref)(void* p) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c;
	c = usrToCell__system_5336(p);
	add__system_4925((&gch__system_5283.additionalRoots), c);
	incRef__system_5374(c);
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__ast_3247)(NimStringDesc** s, tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw x) {
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (reprEnum((NI)x, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)) ? reprEnum((NI)x, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_))->Sup.len : 0) + 0));
appendString((*s), reprEnum((NI)x, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)));
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__vm_1544)(NimStringDesc** s, NI x) {
	addInt__stdZprivateZdigitsutils_189(s, ((NI) (x)));
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__vm_1742)(NimStringDesc** s, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg x) {
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (reprEnum((NI)x, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)) ? reprEnum((NI)x, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_))->Sup.len : 0) + 0));
appendString((*s), reprEnum((NI)x, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)));
}
N_LIB_PRIVATE N_NIMCALL(void, reset__vm_3154)(tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA* obj) {
	switch ((*obj).kind) {
	case ((tyEnum_TRegisterKind__drcwtBjsw5cM6mbg9chBM9bg) 0):
	break;
	case ((tyEnum_TRegisterKind__drcwtBjsw5cM6mbg9chBM9bg) 2):
	(*obj).intVal = 0;
	break;
	case ((tyEnum_TRegisterKind__drcwtBjsw5cM6mbg9chBM9bg) 3):
	(*obj).floatVal = 0;
	break;
	case ((tyEnum_TRegisterKind__drcwtBjsw5cM6mbg9chBM9bg) 1):
	unsureAsgnRef((void**)&(*obj).node, NIM_NIL);
	break;
	case ((tyEnum_TRegisterKind__drcwtBjsw5cM6mbg9chBM9bg) 4):
	(*obj).regAddr = NIM_NIL;
	break;
	case ((tyEnum_TRegisterKind__drcwtBjsw5cM6mbg9chBM9bg) 5):
	(*obj).nodeAddr = NIM_NIL;
	break;
	} 
	(*obj).kind = 0;
}
N_LIB_PRIVATE N_NIMCALL(NI, clamp__pureZstreams_584)(NI x, NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		if (!(x < a)) goto LA3_;
		result = a;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(b < x)) goto LA7_;
		result = b;
		goto BeforeRet_;
	}
	LA7_: ;
	result = x;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimBoolToStr)(NIM_BOOL x) {
	NimStringDesc* result;
{	result = NIM_NIL;
	{
		if (!x) goto LA3_;
		result = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_37));
	}
	goto LA1_;
	LA3_: ;
	{
		result = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_38));
	}
	LA1_: ;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___options_1113)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw x, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((x.line == y.line))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((x.col == y.col))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!!((x.fileIndex == y.fileIndex))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA*, new__sem_1359)(void) {
	tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* result;
	tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* r;
{	result = NIM_NIL;
	r = NIM_NIL;
	r = (tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA*) newObj((&NTIpinstantiation__eg8se9cZBHdzb5ZM7CrYNVg_), sizeof(tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA));
	result = r;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__vKogasEnJSPhbQmA8r4Y9aA*, newSeq__modulegraphs_2931)(NI len) {
	tySequence__vKogasEnJSPhbQmA8r4Y9aA* result;
	result = NIM_NIL;
	result = (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) newSeq((&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__IeU9azYSNIK3V9b36Ir6NZcw*, X5BX5D___pragmas_1367)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** s, NI sLen_0, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x) {
	tySequence__IeU9azYSNIK3V9b36Ir6NZcw* result;
	NI a;
	NI L;
	result = NIM_NIL;
	a = x.a;
	L = (NI)((NI)((NI)(sLen_0 - x.b) - a) + ((NI) 1));
	result = (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) newSeq((&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				asgnRef((void**) (&result->data[i]), s[(NI)(i + a)]);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1741(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b) {
	NI result;
	NI alen;
	NI blen;
	NI minlen;
	result = (NI)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	minlen = ((alen <= blen) ? alen : blen);
	{
		int T5_;
		if (!(((NI) 0) < minlen)) goto LA3_;
		T5_ = (int)0;
		T5_ = memcmp(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((size_t) (minlen)));
		result = ((NI) (T5_));
		{
			if (!(result == ((NI) 0))) goto LA8_;
			result = (NI)(alen - blen);
		}
		LA8_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = (NI)(alen - blen);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__sem_1829)(NimStringDesc* x, NimStringDesc* y) {
	NI result;
{	result = (NI)0;
	{
		if (!eqStrings(x, y)) goto LA3_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(cmpStrings(x, y) < 0)) goto LA7_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA7_: ;
	result = ((NI) 1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, add__varpartitions_536)(tySequence__qwqHTkRvwhrRyENtudHQ7g** x, NI* y, NI yLen_0) {
	NI xl;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xl = T1_;
	unsureAsgnRef((void**) (&(*x)), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), ((NI) ((NI)(xl + yLen_0)))));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (yLen_0-1);
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				(*x)->data[(NI)(xl + i)] = y[i];
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, toInt__system_1708)(NF f) {
	NI result;
	result = (NI)0;
	{
		if (!(0.0 <= f)) goto LA3_;
		result = ((NI) (((NF)(f) + (NF)(0.5))));
	}
	goto LA1_;
	LA3_: ;
	{
		result = ((NI) (((NF)(f) - (NF)(0.5))));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__kGCKZrVGM65uzo2SGY9bxMQ*, newSeq__nilcheck_345)(NI len) {
	tySequence__kGCKZrVGM65uzo2SGY9bxMQ* result;
	result = NIM_NIL;
	result = (tySequence__kGCKZrVGM65uzo2SGY9bxMQ*) newSeq((&NTIseqLnilabilityT__kGCKZrVGM65uzo2SGY9bxMQ_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__TXTtz79abNCf5jWrlvNZpOw*, newSeq__nilcheck_383)(NI len) {
	tySequence__TXTtz79abNCf5jWrlvNZpOw* result;
	result = NIM_NIL;
	result = (tySequence__TXTtz79abNCf5jWrlvNZpOw*) newSeq((&NTIseqLseqLhistoryTT__TXTtz79abNCf5jWrlvNZpOw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__nilcheck_448)(NI len) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* result;
	result = NIM_NIL;
	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__sem_4227)(NimStringDesc** s, NIM_CHAR x) {
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), 1));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_39));
	addEscapedChar__system_7551(s, x);
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), 1));
appendString((*s), ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_39));
}
N_LIB_PRIVATE N_NIMCALL(void, reset__sem_3738)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* obj) {
	unsureAsgnRef((void**)&(*obj).typ, NIM_NIL);
	(*obj).info.line = 0;
	(*obj).info.col = 0;
	(*obj).info.fileIndex = 0;
	(*obj).flags = 0;
	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15):
	(*obj)._kind_1.intVal = 0;
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 19):
	(*obj)._kind_2.floatVal = 0;
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22):
	unsureAsgnRef((void**)&(*obj)._kind_3.strVal, NIM_NIL);
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	unsureAsgnRef((void**)&(*obj)._kind_4.sym, NIM_NIL);
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	unsureAsgnRef((void**)&(*obj)._kind_5.ident, NIM_NIL);
	break;
	default:
	unsureAsgnRef((void**)&(*obj)._kind_6.sons, NIM_NIL);
	break;
	} 
	(*obj).kind = 0;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__IeU9azYSNIK3V9b36Ir6NZcw*, newSeq__sem_19645)(NI len) {
	tySequence__IeU9azYSNIK3V9b36Ir6NZcw* result;
	result = NIM_NIL;
	result = (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) newSeq((&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__ed0C0uAUZPhvw3RAc5hfYg*, newSeq__lookups_2544)(NI len) {
	tySequence__ed0C0uAUZPhvw3RAc5hfYg* result;
	result = NIM_NIL;
	result = (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) newSeq((&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__importer_4704)(NimStringDesc** s, tyEnum_TSpecialWord__N2XsqTpO5IzOf2KmXwk4Dw x) {
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (reprEnum((NI)x, (&NTItspecialword__N2XsqTpO5IzOf2KmXwk4Dw_)) ? reprEnum((NI)x, (&NTItspecialword__N2XsqTpO5IzOf2KmXwk4Dw_))->Sup.len : 0) + 0));
appendString((*s), reprEnum((NI)x, (&NTItspecialword__N2XsqTpO5IzOf2KmXwk4Dw_)));
}
N_LIB_PRIVATE N_NIMCALL(NI*, new__sem_22338)(void) {
	NI* result;
	NI* r;
{	result = NIM_NIL;
	r = NIM_NIL;
	r = (NI*) newObj((&NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_), sizeof(NI));
	result = r;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isObjSlowPath__system_3323)(TNimType* obj, TNimType* subclass, TNimType** cache) {
	NIM_BOOL result;
	TNimType* x;
{	result = (NIM_BOOL)0;
	x = (*obj).base;
	{
		while (1) {
			if (!!((x == subclass))) goto LA2;
			{
				if (!(x == ((TNimType*) NIM_NIL))) goto LA5_;
				cache[(((NI) 0))- 0] = obj;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA5_: ;
			x = (*x).base;
		} LA2: ;
	}
	cache[(((NI) 1))- 0] = obj;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__passaux_91)(NimStringDesc** s, NIM_BOOL x) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = nimBoolToStr(x);
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (T1_ ? T1_->Sup.len : 0) + 0));
appendString((*s), T1_);
}
N_LIB_PRIVATE N_NIMCALL(tySequence__s4MJIltFooh7znZAPDHauw*, newSeq__injectdestructors_3802)(NI len) {
	tySequence__s4MJIltFooh7znZAPDHauw* result;
	result = NIM_NIL;
	result = (tySequence__s4MJIltFooh7znZAPDHauw*) newSeq((&NTIseqLstateT__s4MJIltFooh7znZAPDHauw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___injectdestructors_430)(tyTuple__Q066krdfdsSnR5DaFMOk9bQ x, tyTuple__Q066krdfdsSnR5DaFMOk9bQ y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((x.Field0 == y.Field0))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((x.Field1 == y.Field1))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__injectdestructors_1880)(NimStringDesc** s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = dollar___renderer_2116(x);
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (T1_ ? T1_->Sup.len : 0) + 0));
appendString((*s), T1_);
}
N_LIB_PRIVATE N_NIMCALL(tySequence__PPSNlMjxeLUadep32xHHyA*, newSeq__treetab_163)(NI len) {
	tySequence__PPSNlMjxeLUadep32xHHyA* result;
	result = NIM_NIL;
	result = (tySequence__PPSNlMjxeLUadep32xHHyA*) newSeq((&NTItnodepairseq__PPSNlMjxeLUadep32xHHyA_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__shxop0zPIs5Ec3k71aCLuQ*, newSeq__cgen_12306)(NI len) {
	tySequence__shxop0zPIs5Ec3k71aCLuQ* result;
	result = NIM_NIL;
	result = (tySequence__shxop0zPIs5Ec3k71aCLuQ*) newSeq((&NTIseqLboolT__shxop0zPIs5Ec3k71aCLuQ_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___cgen_19915)(tyTuple__47w2DboNEPf69aPgubZdd7Q x, tyTuple__47w2DboNEPf69aPgubZdd7Q y) {
	NIM_BOOL result;
	NI c;
	NI c_2;
	NI c_3;
{	result = (NIM_BOOL)0;
	c = cmp__system_7519(x.Field0, y.Field0);
	{
		if (!(c < ((NI) 0))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((NI) 0) < c)) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	c_2 = cmp__system_7519(x.Field1, y.Field1);
	{
		if (!(c_2 < ((NI) 0))) goto LA11_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!(((NI) 0) < c_2)) goto LA15_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA15_: ;
	c_3 = cmp__system_7519(x.Field2, y.Field2);
	{
		if (!(c_3 < ((NI) 0))) goto LA19_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA19_: ;
	{
		if (!(((NI) 0) < c_3)) goto LA23_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA23_: ;
	result = NIM_FALSE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___options_3923)(tyTuple__47w2DboNEPf69aPgubZdd7Q x, tyTuple__47w2DboNEPf69aPgubZdd7Q y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((x.Field0 == y.Field0))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((x.Field1 == y.Field1))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!!((x.Field2 == y.Field2))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__IjAwukZ9aSEsol9c48He4FYQ*, newSeq__cgen_13694)(NI len) {
	tySequence__IjAwukZ9aSEsol9c48He4FYQ* result;
	result = NIM_NIL;
	result = (tySequence__IjAwukZ9aSEsol9c48He4FYQ*) newSeq((&NTIseqLtupleLfin58pnode_inexcept58bool_label58naturalTT__IjAwukZ9aSEsol9c48He4FYQ_), len);
	return result;
}
static N_INLINE(void*, seqToPtr__pureZjson_2096)(tySequence__qIo1GWQhO9cOgsAJDKUY8kw* x) {
	void* result;
	result = (void*)0;
	result = ((void*) (x));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___pureZjson_2080)(tySequence__qIo1GWQhO9cOgsAJDKUY8kw* x, tySequence__qIo1GWQhO9cOgsAJDKUY8kw* y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		void* T3_;
		void* T4_;
		T3_ = (void*)0;
		T3_ = seqToPtr__pureZjson_2096(x);
		T4_ = (void*)0;
		T4_ = seqToPtr__pureZjson_2096(y);
		if (!(T3_ == T4_)) goto LA5_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI T9_;
		NI T10_;
		T9_ = (x ? x->Sup.len : 0);
		T10_ = (y ? y->Sup.len : 0);
		if (!!((T9_ == T10_))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		NI i;
		NI colontmp_;
		NI T14_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T14_ = (x ? x->Sup.len : 0);
		colontmp_ = (NI)(T14_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA16;
				i = res;
				{
					NIM_BOOL T19_;
					T19_ = (NIM_BOOL)0;
					T19_ = eqeq___pureZjson_2063(x->data[i], y->data[i]);
					if (!!(T19_)) goto LA20_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA20_: ;
				res += ((NI) 1);
			} LA16: ;
		}
	}
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__stdZjsonutils_445)(NimStringDesc** s, tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* x) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = dollar___pureZjson_4484(x);
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (T1_ ? T1_->Sup.len : 0) + 0));
appendString((*s), T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__pureZjson_5394)(NimStringDesc** s, tyEnum_JsonNodeKind__SME9c3kTLtQAHAI8HiX0v8A x) {
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (reprEnum((NI)x, (&NTIjsonnodekind__SME9c3kTLtQAHAI8HiX0v8A_)) ? reprEnum((NI)x, (&NTIjsonnodekind__SME9c3kTLtQAHAI8HiX0v8A_))->Sup.len : 0) + 0));
appendString((*s), reprEnum((NI)x, (&NTIjsonnodekind__SME9c3kTLtQAHAI8HiX0v8A_)));
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__extccomp_2092)(NimStringDesc** s, NI x) {
	addInt__stdZprivateZdigitsutils_189(s, x);
}
static N_INLINE(void*, seqToPtr__extccomp_2569)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x) {
	void* result;
	result = (void*)0;
	result = ((void*) (x));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___extccomp_2554)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		void* T3_;
		void* T4_;
		T3_ = (void*)0;
		T3_ = seqToPtr__extccomp_2569(x);
		T4_ = (void*)0;
		T4_ = seqToPtr__extccomp_2569(y);
		if (!(T3_ == T4_)) goto LA5_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI T9_;
		NI T10_;
		T9_ = (x ? x->Sup.len : 0);
		T10_ = (y ? y->Sup.len : 0);
		if (!!((T9_ == T10_))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		NI i;
		NI colontmp_;
		NI T14_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T14_ = (x ? x->Sup.len : 0);
		colontmp_ = (NI)(T14_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA16;
				i = res;
				{
					if (!!(eqStrings(x->data[i], y->data[i]))) goto LA19_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA19_: ;
				res += ((NI) 1);
			} LA16: ;
		}
	}
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, reset__ndi_47)(tySequence__ed0C0uAUZPhvw3RAc5hfYg** obj) {
	unsureAsgnRef((void**) (&(*obj)), NIM_NIL);
}
N_LIB_PRIVATE N_NIMCALL(void, reset__ndi_55)(NimStringDesc** obj) {
	unsureAsgnRef((void**) (&(*obj)), NIM_NIL);
}
N_LIB_PRIVATE N_NIMCALL(tySequence__wbHXzzfwTCmsKuzoRrgI3g*, newSeq__icZdce_1797)(NI len) {
	tySequence__wbHXzzfwTCmsKuzoRrgI3g* result;
	result = NIM_NIL;
	result = (tySequence__wbHXzzfwTCmsKuzoRrgI3g*) newSeq((&NTIseqLintsetT__wbHXzzfwTCmsKuzoRrgI3g_), len);
	return result;
}
static N_INLINE(void*, seqToPtr__icZcbackend_432)(tySequence__48JTohSgTy339bRxHzUD8KA* x) {
	void* result;
	result = (void*)0;
	result = ((void*) (x));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___icZcbackend_417)(tySequence__48JTohSgTy339bRxHzUD8KA* x, tySequence__48JTohSgTy339bRxHzUD8KA* y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		void* T3_;
		void* T4_;
		T3_ = (void*)0;
		T3_ = seqToPtr__icZcbackend_432(x);
		T4_ = (void*)0;
		T4_ = seqToPtr__icZcbackend_432(y);
		if (!(T3_ == T4_)) goto LA5_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI T9_;
		NI T10_;
		T9_ = (x ? x->Sup.len : 0);
		T10_ = (y ? y->Sup.len : 0);
		if (!!((T9_ == T10_))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		NI i;
		NI colontmp_;
		NI T14_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T14_ = (x ? x->Sup.len : 0);
		colontmp_ = (NI)(T14_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA16;
				i = res;
				{
					if (!!((x->data[i] == y->data[i]))) goto LA19_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA19_: ;
				res += ((NI) 1);
			} LA16: ;
		}
	}
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__1KIIbxJRtGjuxcp9a9bbC09cA*, newSeq__pureZosproc_122)(NI len) {
	tySequence__1KIIbxJRtGjuxcp9a9bbC09cA* result;
	result = NIM_NIL;
	result = (tySequence__1KIIbxJRtGjuxcp9a9bbC09cA*) newSeq((&NTIseqLprocessT__1KIIbxJRtGjuxcp9a9bbC09cA_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_153)(NI len) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* result;
	result = NIM_NIL;
	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, clamp__pureZtimes_1374)(NI64 x, NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	{
		if (!(x < a)) goto LA3_;
		result = a;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(b < x)) goto LA7_;
		result = b;
		goto BeforeRet_;
	}
	LA7_: ;
	result = x;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q*, newSeq__extccomp_1558)(NI len) {
	tySequence__4eQHGndY6XBYpFOH09apV8Q* result;
	result = NIM_NIL;
	result = (tySequence__4eQHGndY6XBYpFOH09apV8Q*) newSeq((&NTIseqLtupleLkey58string_value58stringTT__4eQHGndY6XBYpFOH09apV8Q_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__jsgen_3192)(NimStringDesc** s, tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw x) {
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (reprEnum((NI)x, (&NTItsymkind__sjiB9b9aO1FRPetW6gPYZbfw_)) ? reprEnum((NI)x, (&NTItsymkind__sjiB9b9aO1FRPetW6gPYZbfw_))->Sup.len : 0) + 0));
appendString((*s), reprEnum((NI)x, (&NTItsymkind__sjiB9b9aO1FRPetW6gPYZbfw_)));
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__jsgen_2695)(NimStringDesc** s, tyEnum_TJSTypeKind__tpKLAXT6CPyZ9cMNxf1ZsAQ x) {
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (reprEnum((NI)x, (&NTItjstypekind__tpKLAXT6CPyZ9cMNxf1ZsAQ_)) ? reprEnum((NI)x, (&NTItjstypekind__tpKLAXT6CPyZ9cMNxf1ZsAQ_))->Sup.len : 0) + 0));
appendString((*s), reprEnum((NI)x, (&NTItjstypekind__tpKLAXT6CPyZ9cMNxf1ZsAQ_)));
}
N_LIB_PRIVATE N_NIMCALL(tySequence__hIN6NiV2heFnG19c6HdDacw*, newSeq__sourcemap_618)(NI len) {
	tySequence__hIN6NiV2heFnG19c6HdDacw* result;
	result = NIM_NIL;
	result = (tySequence__hIN6NiV2heFnG19c6HdDacw*) newSeq((&NTIseqLmappingT__hIN6NiV2heFnG19c6HdDacw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___sourcemap_460)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((x.Field0 == y.Field0))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((x.Field1 == y.Field1))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___sourcemap_470)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y) {
	NIM_BOOL result;
	NI c;
	NI c_2;
{	result = (NIM_BOOL)0;
	c = cmp__system_7519(x.Field0, y.Field0);
	{
		if (!(c < ((NI) 0))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((NI) 0) < c)) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	c_2 = cmp__system_7519(x.Field1, y.Field1);
	{
		if (!(c_2 < ((NI) 0))) goto LA11_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!(((NI) 0) < c_2)) goto LA15_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA15_: ;
	result = NIM_FALSE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__sourcemap_455)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y) {
	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = eqeq___sourcemap_460(x, y);
		if (!T3_) goto LA4_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = lt___sourcemap_470(x, y);
		if (!T8_) goto LA9_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA9_: ;
	result = ((NI) 1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, insert__system_7537)(NimStringDesc** x, NimStringDesc* item, NI i) {
	NI xl;
	NI j;
	xl = ((*x) ? (*x)->Sup.len : 0);
	unsureAsgnRef((void**) (&(*x)), setLengthStr((*x), ((NI) ((NI)(xl + (item ? item->Sup.len : 0))))));
	j = (NI)(xl - ((NI) 1));
	{
		while (1) {
			if (!(((NI) (i)) <= j)) goto LA2;
			(*x)->data[(NI)(j + (item ? item->Sup.len : 0))] = (*x)->data[j];
			j -= ((NI) 1);
		} LA2: ;
	}
	j = ((NI) 0);
	{
		while (1) {
			if (!(j < (item ? item->Sup.len : 0))) goto LA4;
			(*x)->data[(NI)(j + ((NI) (i)))] = item->data[j];
			j += ((NI) 1);
		} LA4: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(tySequence__spLz9azjOgbpYKrtmm9aMHEw*, newSeq__docgen_3547)(NI len) {
	tySequence__spLz9azjOgbpYKrtmm9aMHEw* result;
	result = NIM_NIL;
	result = (tySequence__spLz9azjOgbpYKrtmm9aMHEw*) newSeq((&NTIseqLtocitemT__spLz9azjOgbpYKrtmm9aMHEw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, add__docgen_5438)(tySequence__JSDKkkE7gMRTYRB9bRZ9bH7Q** x, tyObject_ItemFragment__s61pcFD9bQO8uWIzfNjndzg* y, NI yLen_0) {
	NI xl;
	NI T1_;
	T1_ = ((*x) ? (*x)->Sup.len : 0);
	xl = T1_;
	unsureAsgnRef((void**) (&(*x)), (tySequence__JSDKkkE7gMRTYRB9bRZ9bH7Q*) setLengthSeqV2(((*x))?&((*x))->Sup:NIM_NIL, (&NTIitempre__JSDKkkE7gMRTYRB9bRZ9bH7Q_), ((NI) ((NI)(xl + yLen_0)))));
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (yLen_0-1);
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				genericAssign((void*)(&(*x)->data[(NI)(xl + i)]), (void*)(&y[i]), (&NTIitemfragment__s61pcFD9bQO8uWIzfNjndzg_));
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tySequence__YYKlUlCjbni3i58WM0kegw*, newSeq__packagesZdocutilsZrst_2705)(NI len) {
	tySequence__YYKlUlCjbni3i58WM0kegw* result;
	result = NIM_NIL;
	result = (tySequence__YYKlUlCjbni3i58WM0kegw*) newSeq((&NTIseqLfootnotesubstT__YYKlUlCjbni3i58WM0kegw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___packagesZdocutilsZrst_2637)(tyTuple__KPVKrfx82Va9azSnb0dl1RQ* x, tyTuple__KPVKrfx82Va9azSnb0dl1RQ* y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!(((*x).Field0 == (*y).Field0))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!(((*x).Field1 == (*y).Field1))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!!(((*x).Field2 == (*y).Field2))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!!(((*x).Field3 == (*y).Field3))) goto LA15_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA15_: ;
	{
		if (!!(eqStrings((*x).Field4, (*y).Field4))) goto LA19_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA19_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__packagesZdocutilsZrst_2661)(tyEnum_FootnoteType__jXnI8xEO3SXxVR9afYCJnyQ x, tyEnum_FootnoteType__jXnI8xEO3SXxVR9afYCJnyQ y) {
	NI result;
{	result = (NI)0;
	{
		if (!(x == y)) goto LA3_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(x < y)) goto LA7_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA7_: ;
	result = ((NI) 1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___packagesZdocutilsZrst_2651)(tyTuple__KPVKrfx82Va9azSnb0dl1RQ* x, tyTuple__KPVKrfx82Va9azSnb0dl1RQ* y) {
	NIM_BOOL result;
	NI c;
	NI c_2;
	NI c_3;
	NI c_4;
	NI c_5;
{	result = (NIM_BOOL)0;
	c = cmp__packagesZdocutilsZrst_2661((*x).Field0, (*y).Field0);
	{
		if (!(c < ((NI) 0))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((NI) 0) < c)) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	c_2 = cmp__system_7519((*x).Field1, (*y).Field1);
	{
		if (!(c_2 < ((NI) 0))) goto LA11_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!(((NI) 0) < c_2)) goto LA15_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA15_: ;
	c_3 = cmp__system_7519((*x).Field2, (*y).Field2);
	{
		if (!(c_3 < ((NI) 0))) goto LA19_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA19_: ;
	{
		if (!(((NI) 0) < c_3)) goto LA23_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA23_: ;
	c_4 = cmp__system_7519((*x).Field3, (*y).Field3);
	{
		if (!(c_4 < ((NI) 0))) goto LA27_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA27_: ;
	{
		if (!(((NI) 0) < c_4)) goto LA31_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA31_: ;
	c_5 = cmp__system_1549((*x).Field4, (*y).Field4);
	{
		if (!(c_5 < ((NI) 0))) goto LA35_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA35_: ;
	{
		if (!(((NI) 0) < c_5)) goto LA39_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA39_: ;
	result = NIM_FALSE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__packagesZdocutilsZrst_2632)(tyTuple__KPVKrfx82Va9azSnb0dl1RQ* x, tyTuple__KPVKrfx82Va9azSnb0dl1RQ* y) {
	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = eqeq___packagesZdocutilsZrst_2637(x, y);
		if (!T3_) goto LA4_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = lt___packagesZdocutilsZrst_2651(x, y);
		if (!T8_) goto LA9_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA9_: ;
	result = ((NI) 1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__YYKlUlCjbni3i58WM0kegw*, X5BX5D___packagesZdocutilsZrst_3321)(tyTuple__KPVKrfx82Va9azSnb0dl1RQ* s, NI sLen_0, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x) {
	tySequence__YYKlUlCjbni3i58WM0kegw* result;
	NI a;
	NI L;
	result = NIM_NIL;
	a = x.a;
	L = (NI)((NI)((NI)(sLen_0 - x.b) - a) + ((NI) 1));
	result = (tySequence__YYKlUlCjbni3i58WM0kegw*) newSeq((&NTIseqLfootnotesubstT__YYKlUlCjbni3i58WM0kegw_), ((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				genericAssign((void*)(&result->data[i]), (void*)(&s[(NI)(i + a)]), (&NTIfootnotesubst__KPVKrfx82Va9azSnb0dl1RQ_));
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__bLuZlbeJhlfg9axVlmjdJXw*, newSeq__docgen_5534)(NI len) {
	tySequence__bLuZlbeJhlfg9axVlmjdJXw* result;
	result = NIM_NIL;
	result = (tySequence__bLuZlbeJhlfg9axVlmjdJXw*) newSeq((&NTIseqLitemT__bLuZlbeJhlfg9axVlmjdJXw_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, amp___docgen_5660)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x, tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* result;
	NI T1_;
	NI T2_;
	result = NIM_NIL;
	T1_ = (x ? x->Sup.len : 0);
	T2_ = (y ? y->Sup.len : 0);
	result = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), ((NI) ((NI)(T1_ + T2_))));
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (x ? x->Sup.len : 0);
		colontmp_ = (NI)(T4_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				NimStringDesc* T7_;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				T7_ = NIM_NIL;
				T7_ = result->data[i]; result->data[i] = copyStringRC1(x->data[i]);
				if (T7_) nimGCunrefNoCycle(T7_);
				res += ((NI) 1);
			} LA6: ;
		}
	}
	{
		NI i_2;
		NI colontmp__2;
		NI T9_;
		NI res_2;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		T9_ = (y ? y->Sup.len : 0);
		colontmp__2 = (NI)(T9_ - ((NI) 1));
		res_2 = ((NI) 0);
		{
			while (1) {
				NI T12_;
				NimStringDesc* T13_;
				if (!(res_2 <= colontmp__2)) goto LA11;
				i_2 = res_2;
				T12_ = (x ? x->Sup.len : 0);
				T13_ = NIM_NIL;
				T13_ = result->data[(NI)(i_2 + T12_)]; result->data[(NI)(i_2 + T12_)] = copyStringRC1(y->data[i_2]);
				if (T13_) nimGCunrefNoCycle(T13_);
				res_2 += ((NI) 1);
			} LA11: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___packagesZdocutilsZrstgen_6491)(tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* x, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!(eqStrings((*x).keyword, (*y).keyword))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!(eqStrings((*x).link, (*y).link))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!!(eqStrings((*x).linkTitle, (*y).linkTitle))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!!(eqStrings((*x).linkDesc, (*y).linkDesc))) goto LA15_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA15_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__hf5PiuqqytWiEcddgIR5sQ*, newSeq__packagesZdocutilsZrstgen_6124)(NI len) {
	tySequence__hf5PiuqqytWiEcddgIR5sQ* result;
	result = NIM_NIL;
	result = (tySequence__hf5PiuqqytWiEcddgIR5sQ*) newSeq((&NTIseqLindexentryT__hf5PiuqqytWiEcddgIR5sQ_), len);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStackTrace__system_2521)(Exception* e) {
	NimStringDesc* result;
	result = NIM_NIL;
	{
		if (!!((e == 0))) goto LA3_;
		result = dollar___system_2725((*e).trace);
	}
	goto LA1_;
	LA3_: ;
	{
		result = ((NimStringDesc*) NIM_NIL);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_4038)(tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ* a) {
	NI result;
	result = (NI)0;
	result = (((*a).currMem >= (*a).maxMem) ? (*a).currMem : (*a).maxMem);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_5308)(void) {
	NI result;
	result = (NI)0;
	result = getMaxMem__system_4038((&gch__system_5283.region));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getTotalMem__system_1944)(void) {
	NI result;
	result = (NI)0;
	result = gch__system_5283.region.currMem;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, GC_getStatistics__system_2268)(void) {
	NimStringDesc* result;
	NimStringDesc* T1_;
	NI T2_;
	NimStringDesc* T3_;
	NI T4_;
	NimStringDesc* T5_;
	NimStringDesc* T6_;
	NimStringDesc* T7_;
	NimStringDesc* T8_;
	NimStringDesc* T9_;
	NimStringDesc* T10_;
	NimStringDesc* T11_;
	NimStringDesc* T12_;
	NimStringDesc* T13_;
	NimStringDesc* T14_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T2_ = (NI)0;
	T2_ = getTotalMem__system_1944();
	T3_ = NIM_NIL;
	T3_ = dollar___systemZdollars_3(T2_);
	T4_ = (NI)0;
	T4_ = getOccupiedMem__system_1942();
	T5_ = NIM_NIL;
	T5_ = dollar___systemZdollars_3(T4_);
	T6_ = NIM_NIL;
	T6_ = dollar___systemZdollars_3(gch__system_5283.stat.stackScans);
	T7_ = NIM_NIL;
	T7_ = dollar___systemZdollars_3(gch__system_5283.stat.maxStackCells);
	T8_ = NIM_NIL;
	T8_ = dollar___systemZdollars_3(gch__system_5283.stat.cycleCollections);
	T9_ = NIM_NIL;
	T9_ = dollar___systemZdollars_3(gch__system_5283.stat.maxThreshold);
	T10_ = NIM_NIL;
	T10_ = dollar___systemZdollars_3(gch__system_5283.zct.cap);
	T11_ = NIM_NIL;
	T11_ = dollar___systemZdollars_3(gch__system_5283.stat.cycleTableSize);
	T12_ = NIM_NIL;
	T12_ = dollar___systemZdollars_6((NI64)(gch__system_5283.stat.maxPause / IL64(1000000)));
	T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + (T5_ ? T5_->Sup.len : 0) + (T6_ ? T6_->Sup.len : 0) + (T7_ ? T7_->Sup.len : 0) + (T8_ ? T8_->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + (T11_ ? T11_->Sup.len : 0) + (T12_ ? T12_->Sup.len : 0) + 202);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_40));
appendString(T1_, T3_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_41));
appendString(T1_, T5_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_42));
appendString(T1_, T6_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_43));
appendString(T1_, T7_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_44));
appendString(T1_, T8_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_45));
appendString(T1_, T9_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_46));
appendString(T1_, T10_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_47));
appendString(T1_, T11_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_48));
appendString(T1_, T12_);
appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
	result = T1_;
	T13_ = NIM_NIL;
	T14_ = NIM_NIL;
	T14_ = dollar___systemZdollars_3(gch__system_5283.stat.maxStackSize);
	T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + 22);
appendString(T13_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_49));
appendString(T13_, T14_);
appendString(T13_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
	result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
appendString(result, T13_);
	return result;
}
static N_INLINE(void, initStackBottomWith)(void* locals) {
	nimGC_setStackBottom(locals);
}
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatssystemdotnim_Init000)(void) {
{
	TFrame FR_; FR_.len = 0;

	nimRegisterThreadLocalMarker(TM__Q5wkpxktOdTGvlSRo9bzt9aw_4);

}/* preInitProc end */
{
	initStackBottom();
	initGC__system_2398();
	registerSignalHandler__system_2985();
}
}

N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatssystemdotnim_DatInit000)(void) {
static TNimNode* TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[5];
static TNimNode* TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[3];
static TNimNode TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[26];
NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.size = sizeof(RootObj);
NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.align = NIM_ALIGNOF(RootObj);
NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.kind = 17;
NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.base = 0;
NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.flags = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0].kind = 2;
NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0];
NTIexception__XEycrCsme5C8CVWAYEcdBQ_.size = sizeof(Exception);
NTIexception__XEycrCsme5C8CVWAYEcdBQ_.align = NIM_ALIGNOF(Exception);
NTIexception__XEycrCsme5C8CVWAYEcdBQ_.kind = 17;
NTIexception__XEycrCsme5C8CVWAYEcdBQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[0] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2];
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].offset = offsetof(Exception, parent);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].typ = (&NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].name = "parent";
TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[1] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3];
NTIcstring__S9agCYBinaYZnGWcjTdxclg_.size = sizeof(NCSTRING);
NTIcstring__S9agCYBinaYZnGWcjTdxclg_.align = NIM_ALIGNOF(NCSTRING);
NTIcstring__S9agCYBinaYZnGWcjTdxclg_.kind = 29;
NTIcstring__S9agCYBinaYZnGWcjTdxclg_.base = 0;
NTIcstring__S9agCYBinaYZnGWcjTdxclg_.flags = 3;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].offset = offsetof(Exception, name);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].name = "name";
TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[2] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4];
NTIstring__77mFvmsOLKik79ci2hXkHEg_.size = sizeof(NimStringDesc*);
NTIstring__77mFvmsOLKik79ci2hXkHEg_.align = NIM_ALIGNOF(NimStringDesc*);
NTIstring__77mFvmsOLKik79ci2hXkHEg_.kind = 28;
NTIstring__77mFvmsOLKik79ci2hXkHEg_.base = 0;
NTIstring__77mFvmsOLKik79ci2hXkHEg_.flags = 2;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].offset = offsetof(Exception, message);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].name = "msg";
TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[3] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5];
NTIstacktraceentry__3r2E7OgmrW3VdUTaooCuyA_.size = sizeof(tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA);
NTIstacktraceentry__3r2E7OgmrW3VdUTaooCuyA_.align = NIM_ALIGNOF(tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA);
NTIstacktraceentry__3r2E7OgmrW3VdUTaooCuyA_.kind = 18;
NTIstacktraceentry__3r2E7OgmrW3VdUTaooCuyA_.base = 0;
NTIstacktraceentry__3r2E7OgmrW3VdUTaooCuyA_.flags = 3;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[0] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7];
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].offset = offsetof(tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA, procname);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].name = "procname";
TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[1] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8];
NTIint__rR5Bzr1D5krxoo1NcNyeMA_.size = sizeof(NI);
NTIint__rR5Bzr1D5krxoo1NcNyeMA_.align = NIM_ALIGNOF(NI);
NTIint__rR5Bzr1D5krxoo1NcNyeMA_.kind = 31;
NTIint__rR5Bzr1D5krxoo1NcNyeMA_.base = 0;
NTIint__rR5Bzr1D5krxoo1NcNyeMA_.flags = 3;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].offset = offsetof(tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA, line);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].name = "line";
TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[2] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9];
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].offset = offsetof(tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA, filename);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].name = "filename";
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].len = 3; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].kind = 2; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].sons = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[0];
NTIstacktraceentry__3r2E7OgmrW3VdUTaooCuyA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6];
NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_.size = sizeof(tySequence__QbmGqFaLnb1IWWToREeaIA*);
NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_.align = NIM_ALIGNOF(tySequence__QbmGqFaLnb1IWWToREeaIA*);
NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_.kind = 24;
NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_.base = (&NTIstacktraceentry__3r2E7OgmrW3VdUTaooCuyA_);
NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_.flags = 2;
NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_.marker = Marker_tySequence__QbmGqFaLnb1IWWToREeaIA;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].offset = offsetof(Exception, trace);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].typ = (&NTIseqLstacktraceentryT__QbmGqFaLnb1IWWToREeaIA_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].name = "trace";
TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[4] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10];
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].offset = offsetof(Exception, up);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].typ = (&NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].name = "up";
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].len = 5; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].kind = 2; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].sons = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[0];
NTIexception__XEycrCsme5C8CVWAYEcdBQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1];
NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.size = sizeof(Exception*);
NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.align = NIM_ALIGNOF(Exception*);
NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.kind = 22;
NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.marker = Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw;
NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_.size = sizeof(tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw);
NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_.align = NIM_ALIGNOF(tyObject_Defect__AOhiXnYpYHR09bQfro9bLBWw);
NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_.kind = 17;
NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11].kind = 2;
NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11];
NTIreraisedefect__FrYFS0tS67oFwxrxEzeY3g_.size = sizeof(tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g);
NTIreraisedefect__FrYFS0tS67oFwxrxEzeY3g_.align = NIM_ALIGNOF(tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g);
NTIreraisedefect__FrYFS0tS67oFwxrxEzeY3g_.kind = 17;
NTIreraisedefect__FrYFS0tS67oFwxrxEzeY3g_.base = (&NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12].kind = 2;
NTIreraisedefect__FrYFS0tS67oFwxrxEzeY3g_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12];
NTIrefreraisedefect__uerrneZ83HrI24PYGM9bkXQ_.size = sizeof(tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g*);
NTIrefreraisedefect__uerrneZ83HrI24PYGM9bkXQ_.align = NIM_ALIGNOF(tyObject_ReraiseDefect__FrYFS0tS67oFwxrxEzeY3g*);
NTIrefreraisedefect__uerrneZ83HrI24PYGM9bkXQ_.kind = 22;
NTIrefreraisedefect__uerrneZ83HrI24PYGM9bkXQ_.base = (&NTIreraisedefect__FrYFS0tS67oFwxrxEzeY3g_);
NTIrefreraisedefect__uerrneZ83HrI24PYGM9bkXQ_.marker = Marker_tyRef__uerrneZ83HrI24PYGM9bkXQ;
NTIarithmeticdefect__yjY3JjKvpN49bcCtb79caSzg_.size = sizeof(tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg);
NTIarithmeticdefect__yjY3JjKvpN49bcCtb79caSzg_.align = NIM_ALIGNOF(tyObject_ArithmeticDefect__yjY3JjKvpN49bcCtb79caSzg);
NTIarithmeticdefect__yjY3JjKvpN49bcCtb79caSzg_.kind = 17;
NTIarithmeticdefect__yjY3JjKvpN49bcCtb79caSzg_.base = (&NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13].kind = 2;
NTIarithmeticdefect__yjY3JjKvpN49bcCtb79caSzg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13];
NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_.size = sizeof(tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw);
NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_.align = NIM_ALIGNOF(tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw);
NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_.kind = 17;
NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_.base = (&NTIarithmeticdefect__yjY3JjKvpN49bcCtb79caSzg_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14].kind = 2;
NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14];
NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_.size = sizeof(tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw*);
NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_.align = NIM_ALIGNOF(tyObject_OverflowDefect__CPHzAjT39bZzjUQHYEzAGaw*);
NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_.kind = 22;
NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_.base = (&NTIoverflowdefect__CPHzAjT39bZzjUQHYEzAGaw_);
NTIrefoverflowdefect__qZuxwNGOWjWgqnLVJlr20w_.marker = Marker_tyRef__qZuxwNGOWjWgqnLVJlr20w;
NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.size = sizeof(NIM_BOOL);
NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.align = NIM_ALIGNOF(NIM_BOOL);
NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.kind = 1;
NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.base = 0;
NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.flags = 3;
NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.size = sizeof(NI16);
NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.align = NIM_ALIGNOF(NI16);
NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.kind = 33;
NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.base = 0;
NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.flags = 3;
NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_.size = sizeof(tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ);
NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_.align = NIM_ALIGNOF(tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ);
NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_.kind = 17;
NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15].kind = 2;
NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15];
NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_.size = sizeof(tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA);
NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_.align = NIM_ALIGNOF(tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA);
NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_.kind = 17;
NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_.base = (&NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16].kind = 2;
NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16];
NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_.size = sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw);
NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_.align = NIM_ALIGNOF(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw);
NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_.kind = 17;
NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_.base = (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17].kind = 2;
NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17];
NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_.size = sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*);
NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_.align = NIM_ALIGNOF(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*);
NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_.kind = 22;
NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_.base = (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_);
NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_.marker = Marker_tyRef__pZq9a89chzDPcYZo9bViSdp9aQ;
NTIassertiondefect__mYCf6XCmDNW6jPOa4L9aUeg_.size = sizeof(tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg);
NTIassertiondefect__mYCf6XCmDNW6jPOa4L9aUeg_.align = NIM_ALIGNOF(tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg);
NTIassertiondefect__mYCf6XCmDNW6jPOa4L9aUeg_.kind = 17;
NTIassertiondefect__mYCf6XCmDNW6jPOa4L9aUeg_.base = (&NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18].kind = 2;
NTIassertiondefect__mYCf6XCmDNW6jPOa4L9aUeg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18];
NTIrefassertiondefect__uqGx5zvUvUW2CTnTL0oZQQ_.size = sizeof(tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg*);
NTIrefassertiondefect__uqGx5zvUvUW2CTnTL0oZQQ_.align = NIM_ALIGNOF(tyObject_AssertionDefect__mYCf6XCmDNW6jPOa4L9aUeg*);
NTIrefassertiondefect__uqGx5zvUvUW2CTnTL0oZQQ_.kind = 22;
NTIrefassertiondefect__uqGx5zvUvUW2CTnTL0oZQQ_.base = (&NTIassertiondefect__mYCf6XCmDNW6jPOa4L9aUeg_);
NTIrefassertiondefect__uqGx5zvUvUW2CTnTL0oZQQ_.marker = Marker_tyRef__uqGx5zvUvUW2CTnTL0oZQQ;
NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_.size = sizeof(tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA);
NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_.align = NIM_ALIGNOF(tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA);
NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_.kind = 17;
NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_.base = (&NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19].kind = 2;
NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19];
NTIrefioerror__0NUycR3lTt5ae7Mj01Qw8A_.size = sizeof(tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA*);
NTIrefioerror__0NUycR3lTt5ae7Mj01Qw8A_.align = NIM_ALIGNOF(tyObject_IOError__5GCiDuy5Wsuc9an2QZvqgIA*);
NTIrefioerror__0NUycR3lTt5ae7Mj01Qw8A_.kind = 22;
NTIrefioerror__0NUycR3lTt5ae7Mj01Qw8A_.base = (&NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_);
NTIrefioerror__0NUycR3lTt5ae7Mj01Qw8A_.marker = Marker_tyRef__0NUycR3lTt5ae7Mj01Qw8A;
NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.size = sizeof(NU16);
NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.align = NIM_ALIGNOF(NU16);
NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.kind = 42;
NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.base = 0;
NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.flags = 3;
NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.size = sizeof(NI32);
NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.align = NIM_ALIGNOF(NI32);
NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.kind = 34;
NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.base = 0;
NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.flags = 3;
NTIint56__chXunH2dwinSkhpA6JnsXw_.size = sizeof(NI8);
NTIint56__chXunH2dwinSkhpA6JnsXw_.align = NIM_ALIGNOF(NI8);
NTIint56__chXunH2dwinSkhpA6JnsXw_.kind = 32;
NTIint56__chXunH2dwinSkhpA6JnsXw_.base = 0;
NTIint56__chXunH2dwinSkhpA6JnsXw_.flags = 3;
NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.size = sizeof(NF);
NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.align = NIM_ALIGNOF(NF);
NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.kind = 36;
NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.base = 0;
NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.flags = 3;
NTIchar__nmiMWKVIe46vacnhAFrQvw_.size = sizeof(NIM_CHAR);
NTIchar__nmiMWKVIe46vacnhAFrQvw_.align = NIM_ALIGNOF(NIM_CHAR);
NTIchar__nmiMWKVIe46vacnhAFrQvw_.kind = 2;
NTIchar__nmiMWKVIe46vacnhAFrQvw_.base = 0;
NTIchar__nmiMWKVIe46vacnhAFrQvw_.flags = 3;
NTIobjectassignmentdefect__Gcuu3i2jDl8UzBOlrS9bQiw_.size = sizeof(tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw);
NTIobjectassignmentdefect__Gcuu3i2jDl8UzBOlrS9bQiw_.align = NIM_ALIGNOF(tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw);
NTIobjectassignmentdefect__Gcuu3i2jDl8UzBOlrS9bQiw_.kind = 17;
NTIobjectassignmentdefect__Gcuu3i2jDl8UzBOlrS9bQiw_.base = (&NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20].kind = 2;
NTIobjectassignmentdefect__Gcuu3i2jDl8UzBOlrS9bQiw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20];
NTIrefobjectassignmentdefect__dBcwgJxypEuB4lCVFzmF7A_.size = sizeof(tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw*);
NTIrefobjectassignmentdefect__dBcwgJxypEuB4lCVFzmF7A_.align = NIM_ALIGNOF(tyObject_ObjectAssignmentDefect__Gcuu3i2jDl8UzBOlrS9bQiw*);
NTIrefobjectassignmentdefect__dBcwgJxypEuB4lCVFzmF7A_.kind = 22;
NTIrefobjectassignmentdefect__dBcwgJxypEuB4lCVFzmF7A_.base = (&NTIobjectassignmentdefect__Gcuu3i2jDl8UzBOlrS9bQiw_);
NTIrefobjectassignmentdefect__dBcwgJxypEuB4lCVFzmF7A_.marker = Marker_tyRef__dBcwgJxypEuB4lCVFzmF7A;
NTIindexdefect__u6F3F9a1S8b9bXsVEwdArMcw_.size = sizeof(tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw);
NTIindexdefect__u6F3F9a1S8b9bXsVEwdArMcw_.align = NIM_ALIGNOF(tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw);
NTIindexdefect__u6F3F9a1S8b9bXsVEwdArMcw_.kind = 17;
NTIindexdefect__u6F3F9a1S8b9bXsVEwdArMcw_.base = (&NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].kind = 2;
NTIindexdefect__u6F3F9a1S8b9bXsVEwdArMcw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21];
NTIrefindexdefect__y7Z2XdNq5H6ZFNpULQZbHw_.size = sizeof(tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw*);
NTIrefindexdefect__y7Z2XdNq5H6ZFNpULQZbHw_.align = NIM_ALIGNOF(tyObject_IndexDefect__u6F3F9a1S8b9bXsVEwdArMcw*);
NTIrefindexdefect__y7Z2XdNq5H6ZFNpULQZbHw_.kind = 22;
NTIrefindexdefect__y7Z2XdNq5H6ZFNpULQZbHw_.base = (&NTIindexdefect__u6F3F9a1S8b9bXsVEwdArMcw_);
NTIrefindexdefect__y7Z2XdNq5H6ZFNpULQZbHw_.marker = Marker_tyRef__y7Z2XdNq5H6ZFNpULQZbHw;
NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_.size = sizeof(tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA*);
NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_.align = NIM_ALIGNOF(tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA*);
NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_.kind = 22;
NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_.base = (&NTIvalueerror__5lcTdgqMq62cNGRwBb0thA_);
NTIrefvalueerror__MdotPfdEWddcwl4HcVVgeQ_.marker = Marker_tyRef__MdotPfdEWddcwl4HcVVgeQ;
NTIoserror__THeHlGxHorUQ17FON5jY0g_.size = sizeof(tyObject_OSError__THeHlGxHorUQ17FON5jY0g);
NTIoserror__THeHlGxHorUQ17FON5jY0g_.align = NIM_ALIGNOF(tyObject_OSError__THeHlGxHorUQ17FON5jY0g);
NTIoserror__THeHlGxHorUQ17FON5jY0g_.kind = 17;
NTIoserror__THeHlGxHorUQ17FON5jY0g_.base = (&NTIcatchableerror__8K3kdpxrBD9aI27J0kpSCpQ_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].kind = 1;
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].offset = offsetof(tyObject_OSError__THeHlGxHorUQ17FON5jY0g, errorCode);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].typ = (&NTIint5150__sVg18TP9cLifHyygRe9cro9aA_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].name = "errorCode";
NTIoserror__THeHlGxHorUQ17FON5jY0g_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22];
NTIrefoserror__Iyrru9apujUM04065F6aukQ_.size = sizeof(tyObject_OSError__THeHlGxHorUQ17FON5jY0g*);
NTIrefoserror__Iyrru9apujUM04065F6aukQ_.align = NIM_ALIGNOF(tyObject_OSError__THeHlGxHorUQ17FON5jY0g*);
NTIrefoserror__Iyrru9apujUM04065F6aukQ_.kind = 22;
NTIrefoserror__Iyrru9apujUM04065F6aukQ_.base = (&NTIoserror__THeHlGxHorUQ17FON5jY0g_);
NTIrefoserror__Iyrru9apujUM04065F6aukQ_.marker = Marker_tyRef__Iyrru9apujUM04065F6aukQ;
NTIeoferror__kIdEdoaj8I8RXN2AU5W3mg_.size = sizeof(tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg);
NTIeoferror__kIdEdoaj8I8RXN2AU5W3mg_.align = NIM_ALIGNOF(tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg);
NTIeoferror__kIdEdoaj8I8RXN2AU5W3mg_.kind = 17;
NTIeoferror__kIdEdoaj8I8RXN2AU5W3mg_.base = (&NTIioerror__5GCiDuy5Wsuc9an2QZvqgIA_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23].kind = 2;
NTIeoferror__kIdEdoaj8I8RXN2AU5W3mg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23];
NTIrefeoferror__tzjmdCJU9ba9bCYuvNDRGTaw_.size = sizeof(tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg*);
NTIrefeoferror__tzjmdCJU9ba9bCYuvNDRGTaw_.align = NIM_ALIGNOF(tyObject_EOFError__kIdEdoaj8I8RXN2AU5W3mg*);
NTIrefeoferror__tzjmdCJU9ba9bCYuvNDRGTaw_.kind = 22;
NTIrefeoferror__tzjmdCJU9ba9bCYuvNDRGTaw_.base = (&NTIeoferror__kIdEdoaj8I8RXN2AU5W3mg_);
NTIrefeoferror__tzjmdCJU9ba9bCYuvNDRGTaw_.marker = Marker_tyRef__tzjmdCJU9ba9bCYuvNDRGTaw;
NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.size = sizeof(NI64);
NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.align = NIM_ALIGNOF(NI64);
NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.kind = 35;
NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.base = 0;
NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.flags = 3;
NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.size = sizeof(NU32);
NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.align = NIM_ALIGNOF(NU32);
NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.kind = 43;
NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.base = 0;
NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.flags = 3;
NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.size = sizeof(RootObj*);
NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.align = NIM_ALIGNOF(RootObj*);
NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.kind = 22;
NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.marker = Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA;
NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.size = sizeof(NimStringDesc**);
NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.align = NIM_ALIGNOF(NimStringDesc**);
NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.kind = 21;
NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.base = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.flags = 3;
NTIbyte__k3HXouOuhqAKq0dx450lXQ_.size = sizeof(NU8);
NTIbyte__k3HXouOuhqAKq0dx450lXQ_.align = NIM_ALIGNOF(NU8);
NTIbyte__k3HXouOuhqAKq0dx450lXQ_.kind = 41;
NTIbyte__k3HXouOuhqAKq0dx450lXQ_.base = 0;
NTIbyte__k3HXouOuhqAKq0dx450lXQ_.flags = 3;
NTIrangedefect__sGgAy9cDrJNoXUSezcMnS5w_.size = sizeof(tyObject_RangeDefect__sGgAy9cDrJNoXUSezcMnS5w);
NTIrangedefect__sGgAy9cDrJNoXUSezcMnS5w_.align = NIM_ALIGNOF(tyObject_RangeDefect__sGgAy9cDrJNoXUSezcMnS5w);
NTIrangedefect__sGgAy9cDrJNoXUSezcMnS5w_.kind = 17;
NTIrangedefect__sGgAy9cDrJNoXUSezcMnS5w_.base = (&NTIdefect__AOhiXnYpYHR09bQfro9bLBWw_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24].kind = 2;
NTIrangedefect__sGgAy9cDrJNoXUSezcMnS5w_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24];
NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.size = sizeof(NI);
NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.align = NIM_ALIGNOF(NI);
NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.kind = 31;
NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.base = 0;
NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.flags = 3;
NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.size = sizeof(NI*);
NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.align = NIM_ALIGNOF(NI*);
NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.kind = 22;
NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.flags = 2;
NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.marker = Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg;
NTIcint__nlCscttRCss70IBTyuBqnA_.size = sizeof(int);
NTIcint__nlCscttRCss70IBTyuBqnA_.align = NIM_ALIGNOF(int);
NTIcint__nlCscttRCss70IBTyuBqnA_.kind = 34;
NTIcint__nlCscttRCss70IBTyuBqnA_.base = 0;
NTIcint__nlCscttRCss70IBTyuBqnA_.flags = 3;
NTIdivbyzerodefect__1jktkmId3HEtpgl3NFg3mg_.size = sizeof(tyObject_DivByZeroDefect__1jktkmId3HEtpgl3NFg3mg);
NTIdivbyzerodefect__1jktkmId3HEtpgl3NFg3mg_.align = NIM_ALIGNOF(tyObject_DivByZeroDefect__1jktkmId3HEtpgl3NFg3mg);
NTIdivbyzerodefect__1jktkmId3HEtpgl3NFg3mg_.kind = 17;
NTIdivbyzerodefect__1jktkmId3HEtpgl3NFg3mg_.base = (&NTIarithmeticdefect__yjY3JjKvpN49bcCtb79caSzg_);
TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25].kind = 2;
NTIdivbyzerodefect__1jktkmId3HEtpgl3NFg3mg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25];
NTIint__hLlQjbV9bLNq5PFxYcqacsA_.size = sizeof(NI);
NTIint__hLlQjbV9bLNq5PFxYcqacsA_.align = NIM_ALIGNOF(NI);
NTIint__hLlQjbV9bLNq5PFxYcqacsA_.kind = 31;
NTIint__hLlQjbV9bLNq5PFxYcqacsA_.base = 0;
NTIint__hLlQjbV9bLNq5PFxYcqacsA_.flags = 3;
}

