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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_Table_GpIQt2f0xrasZObyH6X8bg tyObject_Table_GpIQt2f0xrasZObyH6X8bg;
typedef struct TNimType TNimType;
typedef struct tySequence_9chP3SzkaldXzawWQCDsqqg tySequence_9chP3SzkaldXzawWQCDsqqg;
typedef struct TNimNode TNimNode;
typedef struct tyTuple_aGv2fk9ceddvdC01ZJC2Q2g tyTuple_aGv2fk9ceddvdC01ZJC2Q2g;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence_7lEisrXlQEzwtUKW5pzRCw tySequence_7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag;
typedef struct tyObject_ValueError_yoNlBGx0D2tRizIdhQuENw tyObject_ValueError_yoNlBGx0D2tRizIdhQuENw;
typedef struct tyObject_CatchableError_qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError_qrLSDoe2oBoAqNtJ9badtnA;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct tySequence_uB9b75OUPRENsBAu4AnoePA tySequence_uB9b75OUPRENsBAu4AnoePA;
typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_Table_fdKWDDO1P17zvuQPReVgRA tyObject_Table_fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence_fdmz6VkIf1ewwrssKYqRFg tySequence_fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tySequence_48JTohSgTy339bRxHzUD8KA tySequence_48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence_kxu4GK0onha2t9bo86mdVAg tySequence_kxu4GK0onha2t9bo86mdVAg;
typedef struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ tyTuple_xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyObject_Table_IioUJGdqPI6xC7S7QF8MBw tyObject_Table_IioUJGdqPI6xC7S7QF8MBw;
typedef struct tySequence_Qr6E8eH7btq79cFKGaJfGLw tySequence_Qr6E8eH7btq79cFKGaJfGLw;
typedef struct tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g;
typedef struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_Table_G1v8c16HePOldLeucwe05Q tyObject_Table_G1v8c16HePOldLeucwe05Q;
typedef struct tySequence_fIB1rTQ55aFonoft9a9bmljQ tySequence_fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyTuple_OJFzEczluV8Jmo9bRpBfkzw tyTuple_OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence_23SMqauuRsbDANhthj9bWlA tySequence_23SMqauuRsbDANhthj9bWlA;
typedef struct tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_Table_NttoEzoiq5CiphZe81oadg tyObject_Table_NttoEzoiq5CiphZe81oadg;
typedef struct tySequence_squ9b9bUH4OLHf6cEMrt6hVA tySequence_squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyTuple_F3gkSrMB1qp2Tvf9bixVXwg tyTuple_F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyObject_Table_nagDFX4QHx0s6Fvma9blmSg tyObject_Table_nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence_pHNq3oXj9av2sEUdqaqeZjw tySequence_pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tyTuple_wcNatyuf8WOqAhGLhSvgiw tyTuple_wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType__dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType__dNELmBSmY7nthjhZupWO6g;
typedef struct tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ;
typedef struct tySequence_hLW2w9a9bDM1AHB8BIrU3BYw tySequence_hLW2w9a9bDM1AHB8BIrU3BYw;
typedef struct tyTuple_YGgHblKlCINajXDZno8UTQ tyTuple_YGgHblKlCINajXDZno8UTQ;
typedef struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA;
typedef struct tySequence_Ef05srmQTDulnBdXR4Ja6Q tySequence_Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w;
typedef struct tySequence_MvZmat48bhe9b6x9aUD58D5Q tySequence_MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_Table_JrI9bTpOVccKpiJXKOskjFg tyObject_Table_JrI9bTpOVccKpiJXKOskjFg;
typedef struct tySequence_YuKuU17u5ApAIki23DK9bJw tySequence_YuKuU17u5ApAIki23DK9bJw;
typedef struct tyTuple_Wymbvuvlf49clEgp9bKoFN9bw tyTuple_Wymbvuvlf49clEgp9bKoFN9bw;
typedef struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA;
typedef struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg;
typedef struct tySequence_s12F9c4cKfaapm8VzG9a1flQ tySequence_s12F9c4cKfaapm8VzG9a1flQ;
typedef struct tyTuple_8jHm6IGDGecciKpp2bTNxA tyTuple_8jHm6IGDGecciKpp2bTNxA;
typedef struct tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA;
typedef struct tySequence_sII3pVVRkIdBZ2HDPdZddA tySequence_sII3pVVRkIdBZ2HDPdZddA;
typedef struct tyTuple_wROVfG5RQYpjEAhvO3LqdQ tyTuple_wROVfG5RQYpjEAhvO3LqdQ;
typedef struct tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg;
typedef struct tySequence_jwzrUFjG9akTIJTBBFvvqxw tySequence_jwzrUFjG9akTIJTBBFvvqxw;
typedef struct tyTuple_XOVT24GHXwqiEj5GCsEGCA tyTuple_XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ;
typedef struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ tySequence_XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct tyObject_Table_6nOsw5R7jH72bux7HSST9bg tyObject_Table_6nOsw5R7jH72bux7HSST9bg;
typedef struct tySequence_diqJJ1bWuFP7M6rQDS9cBLQ tySequence_diqJJ1bWuFP7M6rQDS9cBLQ;
typedef struct tyTuple_4keOEuB8uAwYehpErwqI9ag tyTuple_4keOEuB8uAwYehpErwqI9ag;
typedef struct tyTuple_Iz0jrTw3w7v6sMzjrqs0nA tyTuple_Iz0jrTw3w7v6sMzjrqs0nA;
typedef struct tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ;
typedef struct tySequence_pUxI6Ljo6IKKHXKOZkQ7Og tySequence_pUxI6Ljo6IKKHXKOZkQ7Og;
typedef struct tyTuple_sr3s7uVHpu9cEbbDnCSg8yQ tyTuple_sr3s7uVHpu9cEbbDnCSg8yQ;
typedef struct tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg;
typedef struct tySequence_MlAD6nAPq9bHKla9cWiIZP0g tySequence_MlAD6nAPq9bHKla9cWiIZP0g;
typedef struct tyTuple_awOivLjlO76sGdHY7nQUjQ tyTuple_awOivLjlO76sGdHY7nQUjQ;
typedef struct tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q;
typedef struct tySequence_oLpBKXzW3hF9aCVMo5EymfQ tySequence_oLpBKXzW3hF9aCVMo5EymfQ;
typedef struct tyObject_Table_XC01wkRgzAyOjTiapde7hQ tyObject_Table_XC01wkRgzAyOjTiapde7hQ;
typedef struct tySequence_wAC0kXbVGkLoWP8vdi0sUw tySequence_wAC0kXbVGkLoWP8vdi0sUw;
typedef struct tyTuple_A9cRoiotm9actU8lLMnN9bYcw tyTuple_A9cRoiotm9actU8lLMnN9bYcw;
typedef struct tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg;
typedef struct tySequence_5PunAJrNQYcB8dF0jau3pQ tySequence_5PunAJrNQYcB8dF0jau3pQ;
typedef struct tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA;
typedef struct tyTuple_zwpS6d6iewrdlBSTNFoyVA tyTuple_zwpS6d6iewrdlBSTNFoyVA;
struct tyObject_Table_GpIQt2f0xrasZObyH6X8bg {
tySequence_9chP3SzkaldXzawWQCDsqqg* data;
NI counter;
};
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct tyTuple_aGv2fk9ceddvdC01ZJC2Q2g {
NI Field0;
void* Field1;
NI Field2;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA {
tySequence_7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct RootObj {
TNimType* m_type;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence_uB9b75OUPRENsBAu4AnoePA* trace;
NU raiseId;
Exception* up;
};
struct tyObject_CatchableError_qrLSDoe2oBoAqNtJ9badtnA {
  Exception Sup;
};
struct tyObject_ValueError_yoNlBGx0D2tRizIdhQuENw {
  tyObject_CatchableError_qrLSDoe2oBoAqNtJ9badtnA Sup;
};
struct tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag {
  tyObject_ValueError_yoNlBGx0D2tRizIdhQuENw Sup;
};
struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct tyObject_Table_fdKWDDO1P17zvuQPReVgRA {
tySequence_fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence_48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence_kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_Table_IioUJGdqPI6xC7S7QF8MBw {
tySequence_Qr6E8eH7btq79cFKGaJfGLw* data;
NI counter;
};
typedef NU8 tyArray_qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyObject_Table_G1v8c16HePOldLeucwe05Q {
tySequence_fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
struct tyTuple_OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence_23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyObject_Table_NttoEzoiq5CiphZe81oadg {
tySequence_squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyTuple_F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_Table_nagDFX4QHx0s6Fvma9blmSg {
tySequence_pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
struct tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType__dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple_wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg Field2;
};
struct tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ {
tySequence_hLW2w9a9bDM1AHB8BIrU3BYw* data;
NI counter;
};
struct tyTuple_YGgHblKlCINajXDZno8UTQ {
NI Field0;
NI Field1;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* tyArray_PsPyPA45AAjHu4uDGHNjTg[4];
typedef NU8 tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray_PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence_MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 lockLevel;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
struct tyObject_Table_JrI9bTpOVccKpiJXKOskjFg {
tySequence_YuKuU17u5ApAIki23DK9bJw* data;
NI counter;
};
struct tyTuple_Wymbvuvlf49clEgp9bKoFN9bw {
NI Field0;
NI Field1;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
};
struct {NF floatVal;
};
struct {NimStringDesc* strVal;
};
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
};
struct {tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* ident;
};
struct {tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
};
};
NimStringDesc* comment;
};
struct tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg {
tySequence_s12F9c4cKfaapm8VzG9a1flQ* data;
NI counter;
};
struct tyTuple_8jHm6IGDGecciKpp2bTNxA {
NI Field0;
NI64 Field1;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA {
tySequence_sII3pVVRkIdBZ2HDPdZddA* data;
NI counter;
};
struct tyTuple_wROVfG5RQYpjEAhvO3LqdQ {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* Field2;
};
struct tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg {
tySequence_jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyTuple_XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ {
tySequence_XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyObject_Table_6nOsw5R7jH72bux7HSST9bg {
tySequence_diqJJ1bWuFP7M6rQDS9cBLQ* data;
NI counter;
};
struct tyTuple_Iz0jrTw3w7v6sMzjrqs0nA {
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple_4keOEuB8uAwYehpErwqI9ag {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyTuple_Iz0jrTw3w7v6sMzjrqs0nA Field2;
};
struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
struct tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ {
tySequence_pUxI6Ljo6IKKHXKOZkQ7Og* data;
NI counter;
};
struct tyTuple_sr3s7uVHpu9cEbbDnCSg8yQ {
NI Field0;
NimStringDesc* Field1;
NI Field2;
};
struct tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg {
tySequence_MlAD6nAPq9bHKla9cWiIZP0g* data;
NI counter;
NI first;
NI last;
};
struct tyTuple_awOivLjlO76sGdHY7nQUjQ {
NI Field0;
NI Field1;
NimStringDesc* Field2;
tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q* Field3;
};
typedef NU8 tyEnum_JsonNodeKind_RUngo7nCHe6O8aBGIcrhtg;
struct tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q {
tyEnum_JsonNodeKind_RUngo7nCHe6O8aBGIcrhtg kind;
union{
struct {NimStringDesc* str;
};
struct {NI64 num;
};
struct {NF fnum;
};
struct {NIM_BOOL bval;
};
struct {tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg fields;
};
struct {tySequence_oLpBKXzW3hF9aCVMo5EymfQ* elems;
};
};
};
struct tyObject_Table_XC01wkRgzAyOjTiapde7hQ {
tySequence_wAC0kXbVGkLoWP8vdi0sUw* data;
NI counter;
};
struct tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linkTitle;
NimStringDesc* linkDesc;
};
struct tyTuple_A9cRoiotm9actU8lLMnN9bYcw {
NI Field0;
tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg Field1;
tySequence_5PunAJrNQYcB8dF0jau3pQ* Field2;
};
struct tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tyTuple_zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tySequence_9chP3SzkaldXzawWQCDsqqg {
  TGenericSeq Sup;
  tyTuple_aGv2fk9ceddvdC01ZJC2Q2g data[SEQ_DECL_SIZE];
};
struct tySequence_7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple_xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence_48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence_fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence_kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence_Qr6E8eH7btq79cFKGaJfGLw {
  TGenericSeq Sup;
  tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g data[SEQ_DECL_SIZE];
};
struct tySequence_fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple_OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence_23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence_squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple_F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence_pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple_wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence_hLW2w9a9bDM1AHB8BIrU3BYw {
  TGenericSeq Sup;
  tyTuple_YGgHblKlCINajXDZno8UTQ data[SEQ_DECL_SIZE];
};
struct tySequence_YuKuU17u5ApAIki23DK9bJw {
  TGenericSeq Sup;
  tyTuple_Wymbvuvlf49clEgp9bKoFN9bw data[SEQ_DECL_SIZE];
};
struct tySequence_s12F9c4cKfaapm8VzG9a1flQ {
  TGenericSeq Sup;
  tyTuple_8jHm6IGDGecciKpp2bTNxA data[SEQ_DECL_SIZE];
};
struct tySequence_sII3pVVRkIdBZ2HDPdZddA {
  TGenericSeq Sup;
  tyTuple_wROVfG5RQYpjEAhvO3LqdQ data[SEQ_DECL_SIZE];
};
struct tySequence_jwzrUFjG9akTIJTBBFvvqxw {
  TGenericSeq Sup;
  tyTuple_XOVT24GHXwqiEj5GCsEGCA data[SEQ_DECL_SIZE];
};
struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct tySequence_diqJJ1bWuFP7M6rQDS9cBLQ {
  TGenericSeq Sup;
  tyTuple_4keOEuB8uAwYehpErwqI9ag data[SEQ_DECL_SIZE];
};
struct tySequence_pUxI6Ljo6IKKHXKOZkQ7Og {
  TGenericSeq Sup;
  tyTuple_sr3s7uVHpu9cEbbDnCSg8yQ data[SEQ_DECL_SIZE];
};
struct tySequence_MlAD6nAPq9bHKla9cWiIZP0g {
  TGenericSeq Sup;
  tyTuple_awOivLjlO76sGdHY7nQUjQ data[SEQ_DECL_SIZE];
};
struct tySequence_5PunAJrNQYcB8dF0jau3pQ {
  TGenericSeq Sup;
  tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg data[SEQ_DECL_SIZE];
};
struct tySequence_wAC0kXbVGkLoWP8vdi0sUw {
  TGenericSeq Sup;
  tyTuple_A9cRoiotm9actU8lLMnN9bYcw data[SEQ_DECL_SIZE];
};
struct tySequence_uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
struct tySequence_Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence_MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple_zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence_oLpBKXzW3hF9aCVMo5EymfQ {
  TGenericSeq Sup;
  tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q* data[SEQ_DECL_SIZE];
};
N_NOINLINE(void, chckNil)(void* p);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
static N_NIMCALL(void, Marker_tySequence_9chP3SzkaldXzawWQCDsqqg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, rawGet_pJC7JHVRNtUUDTiQZ8plCgtables)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg t, void* key, NI* hc);
static N_INLINE(NI, hash_7gl3lTUUVpX34lnpKJqWSAhashes)(void* x);
static N_INLINE(NIM_BOOL, isFilled_5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NI, nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables)(NI h, NI maxHash);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NI, subInt)(NI a, NI b);
static N_INLINE(NIM_BOOL, mustRehash_qu7bkfOlld3ZqX4akPQiHwtables)(NI length, NI counter);
N_NIMCALL(NI, mulInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_nhw9bTVfE6OkiLzyZXzMd2g)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_LmaHS4VRBw21v38Bn9cFz9aw)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg* t, tySequence_9chP3SzkaldXzawWQCDsqqg** data, void* key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_dnp0S0givr4a9aDtgzNUbswtables)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg t, void* key, NI hc);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence_7lEisrXlQEzwtUKW5pzRCw)(void* p, NI op);
static N_INLINE(NI, rawGet_aseVP1phVqFWkLGjK22lyQtables)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash_6PCYkKlCNhq9cnRLnqWKkwQ)(NimStringDesc* x);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_P4cqx62gVTX9c2bQ9bXSUNLQ)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_yQ7epY8a0RazcWyuwV5Ntg)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA* t, tySequence_7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(NI, rawGetKnownHC_HSQlXRmDev9cP9bGdOA5HsvQtables)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI hc);
static N_NIMCALL(void, Marker_tySequence_fdmz6VkIf1ewwrssKYqRFg)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_kxu4GK0onha2t9bo86mdVAg)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_Qr6E8eH7btq79cFKGaJfGLw)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_fIB1rTQ55aFonoft9a9bmljQ)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_23SMqauuRsbDANhthj9bWlA)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_squ9b9bUH4OLHf6cEMrt6hVA)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_pHNq3oXj9av2sEUdqaqeZjw)(void* p, NI op);
static N_INLINE(NI, rawGet_8eLPyJNN6hcR50ctxeSkDgtables)(tyObject_Table_G1v8c16HePOldLeucwe05Q t, NI key, NI* hc);
static N_INLINE(NI, hash_aWv89bCLOibANstPF9bHQoyQhashes)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_IhIQ7TfMuHBewVVmTQrOlQ)(tyObject_Table_G1v8c16HePOldLeucwe05Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_2E5CplI9bWrWY15XwFVf2bA)(tyObject_Table_G1v8c16HePOldLeucwe05Q* t, tySequence_fIB1rTQ55aFonoft9a9bmljQ** data, NI key, tyArray_qtqsWM5aXmcpMIVmvq3kAA val, NI hc, NI h);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
static N_INLINE(NI, rawGetKnownHC_UaWZNeEgUaDIcsfDXIvasAtables)(tyObject_Table_G1v8c16HePOldLeucwe05Q t, NI key, NI hc);
static N_NIMCALL(void, Marker_tySequence_hLW2w9a9bDM1AHB8BIrU3BYw)(void* p, NI op);
static N_INLINE(NI, rawGet_6JakEI68PBBdEMzqcwDJCAtables)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ t, NI key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_e2mchzYwFdhwebJni6CqZg)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_0NF4fuOYJP4YH8beRyMvWg)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ* t, tySequence_hLW2w9a9bDM1AHB8BIrU3BYw** data, NI key, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_eNcUgWoz7pcvMX3xYaDRLgtables)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ t, NI key, NI hc);
static N_NIMCALL(void, Marker_tySequence_YuKuU17u5ApAIki23DK9bJw)(void* p, NI op);
static N_INLINE(NI, rawGet_aS7VMifwQ5UsdOtD1Dx7GAtables)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg t, NI key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_NZJD7XooFe3vwlZMQikupw)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_zd631ggeGEiPTefqYEGpiA)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg* t, tySequence_YuKuU17u5ApAIki23DK9bJw** data, NI key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_abkoCGbCZlz6d4aa4hHxhgtables)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg t, NI key, NI hc);
static N_INLINE(NI, rawGet_UJsERo5BkViQH6ie2d9asaQtables)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash_XFPFecV5bGJUDhwku4bw7A)(tyArray_qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq__76rDYGuUQDl2xSav8vUDiA)(tyArray_qtqsWM5aXmcpMIVmvq3kAA a, tyArray_qtqsWM5aXmcpMIVmvq3kAA b);
static N_INLINE(NI, rawGet_3B39bms3hJS0Syhd7xxEULgtables)(tyObject_Table_NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_Ia9aKwc9aYyF2xX8fakDniHw)(tyObject_Table_NttoEzoiq5CiphZe81oadg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_XH2oBuEgDaY43m9bc9czCHzQ)(tyObject_Table_NttoEzoiq5CiphZe81oadg* t, tySequence_squ9b9bUH4OLHf6cEMrt6hVA** data, NimStringDesc* key, NI64 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_A9bYZN6s9cFvr27D9aBNRZxQwtables)(tyObject_Table_NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_tNDb8HX4Pcd05E6w80ngeA_2)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key);
static N_INLINE(NI, rawGet_SMyMIOHvYU9bKbIDA9aXa0CQtables)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_6K1KMyIJ44JU1rDXMt00fQ)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_dphYj2K2cQV4c59cmH9bTrwQ)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA* t, tySequence_23SMqauuRsbDANhthj9bWlA** data, NimStringDesc* key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_So4NwPMLEKibXtBM4tOfkQtables)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_HJN1GCNkXuSaKainyv8E2w_2)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key);
static N_INLINE(NI, rawGet_z5lyUFnYWNZgtnmQvNIG1Atables)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_xUzvAyBcVu9b8xJ84vmmdgg)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_X9afgMwIB5o1VDnyZkF63LA)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg* t, tySequence_pHNq3oXj9av2sEUdqaqeZjw** data, NimStringDesc* key, tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_TSpYtoROqC7475f9bg4iXugtables)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI hc);
static N_NIMCALL(void, Marker_tySequence_s12F9c4cKfaapm8VzG9a1flQ)(void* p, NI op);
static N_INLINE(NI, rawGet_WHgMCdcTgzDXYwrCU5rygAtables)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI* hc);
static N_INLINE(NI, hash_sTYVuBLDBQbglYNxcT9bWrghashes)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_eoqIM0Hd0SjhaY9cur9b4i8w)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_9bGCjjc8EMS6OJa9a9anUwMjg)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg* t, tySequence_s12F9c4cKfaapm8VzG9a1flQ** data, NI64 key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_K1f7gLsHF5x79adahVjRo5Atables)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_wtlRvAPpfH5zwFZ6PVJ9bEw)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_u9aJV4Xxo1Qv0WGIfVav9c2Q)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw* t, tySequence_Qr6E8eH7btq79cFKGaJfGLw** data, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_bT8cRF5uMfM8lc5JOL9baswtables)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
static N_NIMCALL(void, Marker_tySequence_sII3pVVRkIdBZ2HDPdZddA)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_jwzrUFjG9akTIJTBBFvvqxw)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_XUL1TrMU0tgXmaMFCIYgFQ)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_diqJJ1bWuFP7M6rQDS9cBLQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet_w2fZhqPRZdan2r9a51X3ZXA)(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_kgVnhJBOCSxuahhdbN9cidg)(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* t);
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert_EhLhU9b3JGmgVjguB3HOsgQ)(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ t, tySequence_XUL1TrMU0tgXmaMFCIYgFQ** data, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI val);
static N_INLINE(NI, rawGet_kRkMedOi9aSBIvfUrXCRvxQtables)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_C3S2Q2U8lwkz8doGQgUxug)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_Gf66Iv0CJwvyroazPxyGpA)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t, tySequence_sII3pVVRkIdBZ2HDPdZddA** data, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_zkkRq29b9amWxeaphfvlnK6wtables)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__0A9bslyIJ49bWrftLGh13rvg)(tyArray_qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet_JC4YP8wfdV9aPnE9bz5sPkhA)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_lFm9aQmmTsb5E6B6Jx9bb6dQ)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg* t);
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert_3TJBMrgzatHsknHA6jSouA)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg t, tySequence_jwzrUFjG9akTIJTBBFvvqxw** data, NimStringDesc* key, NI val);
static N_INLINE(NI, rawGet_xRsE9bd9cmMxcEsI9aaY9cppuAtables)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_s8GP5B2qbnsxFlutyTGcnw)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_7en31G7VfABQHDdprxuYPA)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg* t, tySequence_diqJJ1bWuFP7M6rQDS9cBLQ** data, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyTuple_Iz0jrTw3w7v6sMzjrqs0nA val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_2LQwcr0umtLrUHRkcv9bHNAtables)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
static N_INLINE(NI, rawGet_VHL4jbXDU6F0885vBGFikgtables)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI* hc);
static N_INLINE(NI, hash_ixIcN23Rzgwj4rjH9cMHDWQhashes)(NI32 x);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_WznuIAS2HbbgwoQgMlLNGA)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_wUVYiyWmQ9cvzc9aNVobHWfA)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ* t, tySequence_kxu4GK0onha2t9bo86mdVAg** data, NI32 key, NI32 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_WbZNr9ajY1NXktE9abGpy5rgtables)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI hc);
static N_INLINE(NI, rawGet_QnNqXOulpiE3rTDm0rj6bgtables)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_8q9c9aCPUMM0w7HNF4dndgQg)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_IVJyWWnSh59cPztkOuQNV0g)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA* t, tySequence_fdmz6VkIf1ewwrssKYqRFg** data, NI32 key, tySequence_48JTohSgTy339bRxHzUD8KA* val, NI hc, NI h);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
static N_INLINE(NI, rawGetKnownHC_4Fsb1T2VnPSV6oxoQiJufQtables)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI hc);
static N_NIMCALL(void, Marker_tySequence_pUxI6Ljo6IKKHXKOZkQ7Og)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence_MlAD6nAPq9bHKla9cWiIZP0g)(void* p, NI op);
static N_INLINE(NI, rawGet_hi24HVDthGVUIUfuDpjqIQtables)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_VYLD6MqB59amU6bk9ahC8zNw)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_K9c1MhW8jYPmeOjDdrH9ajyg)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ* t, tySequence_pUxI6Ljo6IKKHXKOZkQ7Og** data, NimStringDesc* key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_so4qfaUZuauODRq3tIG3Igtables)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet_U8BE8F1hkorXEqb1x9baemQ)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI* hc);
static N_INLINE(NI, rawGet_B8emH5taC0NsYyBRssSIiwtables)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_9cAm9cItwB6y9bUzyB9bE1NBlA)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_K9b9aplmUERncrp49bmzOdPnw)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg* t, tySequence_MlAD6nAPq9bHKla9cWiIZP0g** data, NimStringDesc* key, tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q* val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC_9cQeRP9bxZubT9bE5dfTSZEew)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI hc);
static N_NIMCALL(void, Marker_tySequence_wAC0kXbVGkLoWP8vdi0sUw)(void* p, NI op);
static N_INLINE(NI, rawGet_amoK2sCC6NAXbAYzoteO2wtables)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ t, tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash_qsZ1IgNQkpu0AbMu0eEzCQ)(tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq__Z149cxs9a8jIB6voh7d344JA)(tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg x, tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg y);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_bYy9bKTH7krTyVnrGJtBKbg)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_5biQFmkRUjJPNto9cNutA9bw)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ* t, tySequence_wAC0kXbVGkLoWP8vdi0sUw** data, tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg key, tySequence_5PunAJrNQYcB8dF0jau3pQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_Y4x6AL1DTZHSh9bv7PGnpCwtables)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ t, tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg key, NI hc);
TNimType NTI_GpIQt2f0xrasZObyH6X8bg_;
TNimType NTI_aGv2fk9ceddvdC01ZJC2Q2g_;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTI_vr5DoT1jILTGdRlYv1OYpw_;
TNimType NTI_9chP3SzkaldXzawWQCDsqqg_;
TNimType NTI_Ab4q9c36aMR4mtkEOIBzdzA_;
TNimType NTI_xYhUhS7X82rKTqbT9bRfCnw_;
extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg_;
extern TNimType NTI_sVg18TP9cLifHyygRe9cro9aA_;
TNimType NTI_7lEisrXlQEzwtUKW5pzRCw_;
extern TNimType NTI_8SzoIAgLw9ci2v0yafHj9b6Q_;
extern TNimType NTI_t7nhKLvXTQS9cS8ByJU9bIag_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
TNimType NTI_fdKWDDO1P17zvuQPReVgRA_;
TNimType NTI_1mtQ8sCEE7DbfIuQciv9b5Q_;
extern TNimType NTI_48JTohSgTy339bRxHzUD8KA_;
TNimType NTI_fdmz6VkIf1ewwrssKYqRFg_;
TNimType NTI_e2Ciu0s1q49aVQ7ULXy7l9bQ_;
TNimType NTI_xDU9bZmv1ZbZkJDaATBekIQ_;
TNimType NTI_kxu4GK0onha2t9bo86mdVAg_;
TNimType NTI_IioUJGdqPI6xC7S7QF8MBw_;
TNimType NTI_EkGTYRWQ6y9cppXTlT8Xm5g_;
extern TNimType NTI_qtqsWM5aXmcpMIVmvq3kAA_;
extern TNimType NTI_AgIT5feFR9a9aoVjv9cx2rOtg_;
TNimType NTI_Qr6E8eH7btq79cFKGaJfGLw_;
TNimType NTI_G1v8c16HePOldLeucwe05Q_;
TNimType NTI_OJFzEczluV8Jmo9bRpBfkzw_;
TNimType NTI_fIB1rTQ55aFonoft9a9bmljQ_;
TNimType NTI_0Y2brGGKD9bV6GJLXT9aUDgA_;
TNimType NTI_2SGm9aGCXuo7XSQ9bqD29axXw_;
extern TNimType NTI_fKfcLzXYiz5jNu3NH3Tv8Q_;
TNimType NTI_23SMqauuRsbDANhthj9bWlA_;
TNimType NTI_NttoEzoiq5CiphZe81oadg_;
TNimType NTI_F3gkSrMB1qp2Tvf9bixVXwg_;
extern TNimType NTI_Aav8dQoMlCFnZRxA0IhTHQ_;
TNimType NTI_squ9b9bUH4OLHf6cEMrt6hVA_;
TNimType NTI_nagDFX4QHx0s6Fvma9blmSg_;
TNimType NTI_wcNatyuf8WOqAhGLhSvgiw_;
extern TNimType NTI_VZdzO0Tlflp7WMN4gS8oPg_;
TNimType NTI_pHNq3oXj9av2sEUdqaqeZjw_;
TNimType NTI_Os4it9bmHnOQtsd5CqH09aRQ_;
TNimType NTI_YGgHblKlCINajXDZno8UTQ_;
TNimType NTI_hLW2w9a9bDM1AHB8BIrU3BYw_;
TNimType NTI_JrI9bTpOVccKpiJXKOskjFg_;
TNimType NTI_Wymbvuvlf49clEgp9bKoFN9bw_;
TNimType NTI_YuKuU17u5ApAIki23DK9bJw_;
TNimType NTI_7O9bs4LORhqcR0JGh7d1MDg_;
TNimType NTI_8jHm6IGDGecciKpp2bTNxA_;
TNimType NTI_s12F9c4cKfaapm8VzG9a1flQ_;
TNimType NTI_gZ3EYQdz9coOB7ngN9a1cqwA_;
TNimType NTI_wROVfG5RQYpjEAhvO3LqdQ_;
extern TNimType NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_;
TNimType NTI_sII3pVVRkIdBZ2HDPdZddA_;
TNimType NTI_chlLjy9bvnFM9b9bSZfiIkyGg_;
extern TNimType NTI_XOVT24GHXwqiEj5GCsEGCA_;
TNimType NTI_jwzrUFjG9akTIJTBBFvvqxw_;
extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ_;
TNimType NTI_tUMxxU9cRgLolsrW9b7IBGsQ_;
TNimType NTI_tA7Q8IrfOKH7Mn89cK9cBAIg_;
TNimType NTI_XUL1TrMU0tgXmaMFCIYgFQ_;
TNimType NTI_6nOsw5R7jH72bux7HSST9bg_;
TNimType NTI_4keOEuB8uAwYehpErwqI9ag_;
extern TNimType NTI_Iz0jrTw3w7v6sMzjrqs0nA_;
TNimType NTI_diqJJ1bWuFP7M6rQDS9cBLQ_;
TNimType NTI_i55W8RrwGKsG9cl0sAKxgkQ_;
TNimType NTI_sr3s7uVHpu9cEbbDnCSg8yQ_;
TNimType NTI_pUxI6Ljo6IKKHXKOZkQ7Og_;
TNimType NTI_ZZvSdVkA2s2sIyifu4cpkg_;
TNimType NTI_awOivLjlO76sGdHY7nQUjQ_;
extern TNimType NTI_zfzzuQ8txrdZAYK0WGWpHg_;
TNimType NTI_MlAD6nAPq9bHKla9cWiIZP0g_;
TNimType NTI_XC01wkRgzAyOjTiapde7hQ_;
TNimType NTI_A9cRoiotm9actU8lLMnN9bYcw_;
extern TNimType NTI_G9ccBDFWfr9aYnLgXTNGDHDg_;
extern TNimType NTI_5PunAJrNQYcB8dF0jau3pQ_;
TNimType NTI_wAC0kXbVGkLoWP8vdi0sUw_;
STRING_LITERAL(TM_4SoG2KRQy3oMm9aUzSLtGrA_4, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/tableimpl.nim(118, 10)"
" `isPowerOfTwo(initialsize)` ", 156);
STRING_LITERAL(TM_4SoG2KRQy3oMm9aUzSLtGrA_7, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/tableimpl.nim(118, 10)"
" `isPowerOfTwo(defaultInitialSize)` ", 163);
STRING_LITERAL(TM_4SoG2KRQy3oMm9aUzSLtGrA_8, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/hashcommon.nim(33, 9) "
"`length > counter` ", 146);
STRING_LITERAL(TM_4SoG2KRQy3oMm9aUzSLtGrA_20, "key not found: ", 15);
STRING_LITERAL(TM_4SoG2KRQy3oMm9aUzSLtGrA_102, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/tables.nim(2249, 9) `n"
"ot t.isSorted` CountTable must not be used after sorting", 183);
static N_NIMCALL(void, Marker_tySequence_9chP3SzkaldXzawWQCDsqqg)(void* p, NI op) {
	tySequence_9chP3SzkaldXzawWQCDsqqg* a;
	NI T1_;
	a = (tySequence_9chP3SzkaldXzawWQCDsqqg*)p;
	T1_ = (NI)0;
}

static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_LRu3EZ4wysR9afuGMGC5biw)(NI initialsize, tyObject_Table_GpIQt2f0xrasZObyH6X8bg* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_GpIQt2f0xrasZObyH6X8bg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTI_9chP3SzkaldXzawWQCDsqqg_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

static N_INLINE(NI, hash_7gl3lTUUVpX34lnpKJqWSAhashes)(void* x) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (ptrdiff_t) (x))) >> (NU32)(((NI) 3)))));
	return result;
}

static N_INLINE(NIM_BOOL, isFilled_5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}

static N_INLINE(NI, addInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU32)(a) + (NU32)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables)(NI h, NI maxHash) {
	NI result;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_5;
	result = (NI)0;
	TM_4SoG2KRQy3oMm9aUzSLtGrA_5 = addInt(h, ((NI) 1));
	result = (NI)((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_5) & maxHash);
	return result;
}

static N_INLINE(NI, subInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU32)(a) - (NU32)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU32) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, rawGet_pJC7JHVRNtUUDTiQZ8plCgtables)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg t, void* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_6;
{	result = (NI)0;
	(*hc) = hash_7gl3lTUUVpX34lnpKJqWSAhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_6 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_6);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault_ucLvuteXMiAMAvKs77J1uw)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg t, void* key, NI default_0) {
	NI result;
	NI hc;
	NI index;
	result = (NI)0;
	hc = (NI)0;
	index = rawGet_pJC7JHVRNtUUDTiQZ8plCgtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}

static N_INLINE(NIM_BOOL, mustRehash_qu7bkfOlld3ZqX4akPQiHwtables)(NI length, NI counter) {
	NIM_BOOL result;
	NIM_BOOL T5_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_9;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_10;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_11;
	result = (NIM_BOOL)0;
	{
		if (!!((counter < length))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_8));
	}
	LA3_: ;
	T5_ = (NIM_BOOL)0;
	TM_4SoG2KRQy3oMm9aUzSLtGrA_9 = mulInt(length, ((NI) 2));
	TM_4SoG2KRQy3oMm9aUzSLtGrA_10 = mulInt(counter, ((NI) 3));
	T5_ = ((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_9) < (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_10));
	if (T5_) goto LA6_;
	TM_4SoG2KRQy3oMm9aUzSLtGrA_11 = subInt(length, counter);
	T5_ = ((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_11) < ((NI) 4));
	LA6_: ;
	result = T5_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_LmaHS4VRBw21v38Bn9cFz9aw)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg* t, tySequence_9chP3SzkaldXzawWQCDsqqg** data, void* key, NI val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_nhw9bTVfE6OkiLzyZXzMd2g)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg* t) {
	tySequence_9chP3SzkaldXzawWQCDsqqg* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_12;
	tySequence_9chP3SzkaldXzawWQCDsqqg* T2_;
	n = (tySequence_9chP3SzkaldXzawWQCDsqqg*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_12 = mulInt(T1_, ((NI) 2));
	n = (tySequence_9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTI_9chP3SzkaldXzawWQCDsqqg_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_12), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_9chP3SzkaldXzawWQCDsqqg*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_13;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					void* T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (void*)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert_LmaHS4VRBw21v38Bn9cFz9aw(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_13 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_13);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_dnp0S0givr4a9aDtgzNUbswtables)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg t, void* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_14;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_14 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_14);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__7nUN9bEb8it8esEzVF54z3Q)(tyObject_Table_GpIQt2f0xrasZObyH6X8bg* t, void* key, NI val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTI_9chP3SzkaldXzawWQCDsqqg_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_pJC7JHVRNtUUDTiQZ8plCgtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		(*t).data->data[index].Field2 = val;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_15;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_16;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTI_9chP3SzkaldXzawWQCDsqqg_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_nhw9bTVfE6OkiLzyZXzMd2g(t);
			index = rawGetKnownHC_dnp0S0givr4a9aDtgzNUbswtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_15 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_15);
		rawInsert_LmaHS4VRBw21v38Bn9cFz9aw(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_16 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_16);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence_7lEisrXlQEzwtUKW5pzRCw)(void* p, NI op) {
	tySequence_7lEisrXlQEzwtUKW5pzRCw* a;
	NI T1_;
	a = (tySequence_7lEisrXlQEzwtUKW5pzRCw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_9aENayhAXzP5fSLAn1Pgc8A)(NI initialsize, tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_Ab4q9c36aMR4mtkEOIBzdzA_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI_7lEisrXlQEzwtUKW5pzRCw_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}

static N_INLINE(NIM_BOOL, equalMem_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(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_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, rawGet_aseVP1phVqFWkLGjK22lyQtables)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_19;
{	result = (NI)0;
	(*hc) = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_19 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_19);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_V2bna9aem30Wfb1MT9bSnPzQ)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet_aseVP1phVqFWkLGjK22lyQtables(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	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_M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem_M04YC71iJg1N7gBF3HZTngsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}

static N_INLINE(void, incRef_AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
}

static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (ptrdiff_t) (usr))) - (NU32)(((NI) 8)))));
	return result;
}

static N_INLINE(void, rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_Y66tOYFjgwJ0k4aLz4bc0Q((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
}

static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) - (NU32)(((NI) 8)));
	{
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA3_: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef_AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

N_LIB_PRIVATE N_NIMCALL(NI32*, X5BX5D__cYD9bwEY2FvxLm9bWq5KUhtA)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA* t, NimStringDesc* key) {
	NI32* result;
	NI hc;
	NI index;
	result = (NI32*)0;
	hc = (NI)0;
	index = rawGet_aseVP1phVqFWkLGjK22lyQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = (&(*t).data->data[index].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag* e;
		NimStringDesc* T6_;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*)0;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI_8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag));
		(*e).Sup.Sup.Sup.Sup.m_type = (&NTI_t7nhKLvXTQS9cS8ByJU9bIag_);
		(*e).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, key);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)e, "KeyError", "[]", "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/tables.nim", 263);
	}
	LA1_: ;
	return result;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_yQ7epY8a0RazcWyuwV5Ntg)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA* t, tySequence_7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h) {
	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_P4cqx62gVTX9c2bQ9bXSUNLQ)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA* t) {
	tySequence_7lEisrXlQEzwtUKW5pzRCw* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_21;
	tySequence_7lEisrXlQEzwtUKW5pzRCw* T2_;
	n = (tySequence_7lEisrXlQEzwtUKW5pzRCw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_21 = mulInt(T1_, ((NI) 2));
	n = (tySequence_7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI_7lEisrXlQEzwtUKW5pzRCw_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_21), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_7lEisrXlQEzwtUKW5pzRCw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_22;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert_yQ7epY8a0RazcWyuwV5Ntg(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_22 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_22);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_HSQlXRmDev9cP9bGdOA5HsvQtables)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_23;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_23 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_23);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__anizD9c0GXTQTVVON49cli6g)(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA* t, NimStringDesc* key, NI32 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI_7lEisrXlQEzwtUKW5pzRCw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_aseVP1phVqFWkLGjK22lyQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		(*t).data->data[index].Field2 = val;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_24;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_25;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI_7lEisrXlQEzwtUKW5pzRCw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_P4cqx62gVTX9c2bQ9bXSUNLQ(t);
			index = rawGetKnownHC_HSQlXRmDev9cP9bGdOA5HsvQtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_24 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_24);
		rawInsert_yQ7epY8a0RazcWyuwV5Ntg(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_25 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_25);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence_fdmz6VkIf1ewwrssKYqRFg)(void* p, NI op) {
	tySequence_fdmz6VkIf1ewwrssKYqRFg* a;
	NI T1_;
	a = (tySequence_fdmz6VkIf1ewwrssKYqRFg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_NIMCALL(void, Marker_tySequence_kxu4GK0onha2t9bo86mdVAg)(void* p, NI op) {
	tySequence_kxu4GK0onha2t9bo86mdVAg* a;
	NI T1_;
	a = (tySequence_kxu4GK0onha2t9bo86mdVAg*)p;
	T1_ = (NI)0;
}
static N_NIMCALL(void, Marker_tySequence_Qr6E8eH7btq79cFKGaJfGLw)(void* p, NI op) {
	tySequence_Qr6E8eH7btq79cFKGaJfGLw* a;
	NI T1_;
	NI T2_;
	a = (tySequence_Qr6E8eH7btq79cFKGaJfGLw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_NIMCALL(void, Marker_tySequence_fIB1rTQ55aFonoft9a9bmljQ)(void* p, NI op) {
	tySequence_fIB1rTQ55aFonoft9a9bmljQ* a;
	NI T1_;
	NI T2_;
	a = (tySequence_fIB1rTQ55aFonoft9a9bmljQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	}
}
static N_NIMCALL(void, Marker_tySequence_23SMqauuRsbDANhthj9bWlA)(void* p, NI op) {
	tySequence_23SMqauuRsbDANhthj9bWlA* a;
	NI T1_;
	a = (tySequence_23SMqauuRsbDANhthj9bWlA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_NIMCALL(void, Marker_tySequence_squ9b9bUH4OLHf6cEMrt6hVA)(void* p, NI op) {
	tySequence_squ9b9bUH4OLHf6cEMrt6hVA* a;
	NI T1_;
	a = (tySequence_squ9b9bUH4OLHf6cEMrt6hVA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
static N_NIMCALL(void, Marker_tySequence_pHNq3oXj9av2sEUdqaqeZjw)(void* p, NI op) {
	tySequence_pHNq3oXj9av2sEUdqaqeZjw* a;
	NI T1_;
	a = (tySequence_pHNq3oXj9av2sEUdqaqeZjw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	nimGCvisit((void*)a->data[T1_].Field2.root, op);
	}
}

static N_INLINE(NI, hash_aWv89bCLOibANstPF9bHQoyQhashes)(NI x) {
	NI result;
	result = (NI)0;
	result = x;
	return result;
}

static N_INLINE(NI, rawGet_8eLPyJNN6hcR50ctxeSkDgtables)(tyObject_Table_G1v8c16HePOldLeucwe05Q t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_40;
{	result = (NI)0;
	(*hc) = hash_aWv89bCLOibANstPF9bHQoyQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_40 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_40);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_2E5CplI9bWrWY15XwFVf2bA)(tyObject_Table_G1v8c16HePOldLeucwe05Q* t, tySequence_fIB1rTQ55aFonoft9a9bmljQ** data, NI key, tyArray_qtqsWM5aXmcpMIVmvq3kAA val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field2, (NIM_CONST void*)val, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

static N_INLINE(void, nimSetMem_JE6t4x7Z3v2iVz27Nx0MRAmemory)(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_JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_IhIQ7TfMuHBewVVmTQrOlQ)(tyObject_Table_G1v8c16HePOldLeucwe05Q* t) {
	tySequence_fIB1rTQ55aFonoft9a9bmljQ* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_41;
	tySequence_fIB1rTQ55aFonoft9a9bmljQ* T2_;
	n = (tySequence_fIB1rTQ55aFonoft9a9bmljQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_41 = mulInt(T1_, ((NI) 2));
	n = (tySequence_fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTI_fIB1rTQ55aFonoft9a9bmljQ_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_41), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_fIB1rTQ55aFonoft9a9bmljQ*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_42;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyArray_qtqsWM5aXmcpMIVmvq3kAA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimCopyMem((void*)T18_, (NIM_CONST void*)n->data[i].Field2, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
					chckNil((void*)n->data[i].Field2);
					nimZeroMem((void*)n->data[i].Field2, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
					rawInsert_2E5CplI9bWrWY15XwFVf2bA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_42 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_42);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_UaWZNeEgUaDIcsfDXIvasAtables)(tyObject_Table_G1v8c16HePOldLeucwe05Q t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_43;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_43 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_43);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__vM9aGuvtd2MaMcJSPmyUs0g)(tyObject_Table_G1v8c16HePOldLeucwe05Q* t, NI key, tyArray_qtqsWM5aXmcpMIVmvq3kAA val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTI_fIB1rTQ55aFonoft9a9bmljQ_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_8eLPyJNN6hcR50ctxeSkDgtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		nimCopyMem((void*)(*t).data->data[index].Field2, (NIM_CONST void*)val, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_44;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_45;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTI_fIB1rTQ55aFonoft9a9bmljQ_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_IhIQ7TfMuHBewVVmTQrOlQ(t);
			index = rawGetKnownHC_UaWZNeEgUaDIcsfDXIvasAtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_44 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_44);
		rawInsert_2E5CplI9bWrWY15XwFVf2bA(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_45 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_45);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence_hLW2w9a9bDM1AHB8BIrU3BYw)(void* p, NI op) {
	tySequence_hLW2w9a9bDM1AHB8BIrU3BYw* a;
	NI T1_;
	a = (tySequence_hLW2w9a9bDM1AHB8BIrU3BYw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_7b9cC4YQORD1yG4GsCEiu2g)(NI initialsize, tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_Os4it9bmHnOQtsd5CqH09aRQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_hLW2w9a9bDM1AHB8BIrU3BYw*) newSeq((&NTI_hLW2w9a9bDM1AHB8BIrU3BYw_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

static N_INLINE(NI, rawGet_6JakEI68PBBdEMzqcwDJCAtables)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_48;
{	result = (NI)0;
	(*hc) = hash_aWv89bCLOibANstPF9bHQoyQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_48 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_48);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getOrDefault_9bQKf8dFvOTPFC2tZLVBE7A)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ t, NI key) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	NI hc;
	NI index;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	hc = (NI)0;
	index = rawGet_6JakEI68PBBdEMzqcwDJCAtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field2;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_0NF4fuOYJP4YH8beRyMvWg)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ* t, tySequence_hLW2w9a9bDM1AHB8BIrU3BYw** data, NI key, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_e2mchzYwFdhwebJni6CqZg)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ* t) {
	tySequence_hLW2w9a9bDM1AHB8BIrU3BYw* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_49;
	tySequence_hLW2w9a9bDM1AHB8BIrU3BYw* T2_;
	n = (tySequence_hLW2w9a9bDM1AHB8BIrU3BYw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_49 = mulInt(T1_, ((NI) 2));
	n = (tySequence_hLW2w9a9bDM1AHB8BIrU3BYw*) newSeq((&NTI_hLW2w9a9bDM1AHB8BIrU3BYw_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_49), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_hLW2w9a9bDM1AHB8BIrU3BYw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_50;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_0NF4fuOYJP4YH8beRyMvWg(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_50 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_50);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_eNcUgWoz7pcvMX3xYaDRLgtables)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_51;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_51 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_51);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__MQp6geYbWilpbmJT3tnncQ)(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ* t, NI key, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_hLW2w9a9bDM1AHB8BIrU3BYw*) newSeq((&NTI_hLW2w9a9bDM1AHB8BIrU3BYw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_6JakEI68PBBdEMzqcwDJCAtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_52;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_53;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_hLW2w9a9bDM1AHB8BIrU3BYw*) newSeq((&NTI_hLW2w9a9bDM1AHB8BIrU3BYw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_e2mchzYwFdhwebJni6CqZg(t);
			index = rawGetKnownHC_eNcUgWoz7pcvMX3xYaDRLgtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_52 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_52);
		rawInsert_0NF4fuOYJP4YH8beRyMvWg(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_53 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_53);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence_YuKuU17u5ApAIki23DK9bJw)(void* p, NI op) {
	tySequence_YuKuU17u5ApAIki23DK9bJw* a;
	NI T1_;
	a = (tySequence_YuKuU17u5ApAIki23DK9bJw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_zhbLvQdcHBBnIY3sMyN8eQ)(NI initialsize, tyObject_Table_JrI9bTpOVccKpiJXKOskjFg* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_JrI9bTpOVccKpiJXKOskjFg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI_YuKuU17u5ApAIki23DK9bJw_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

static N_INLINE(NI, rawGet_aS7VMifwQ5UsdOtD1Dx7GAtables)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_56;
{	result = (NI)0;
	(*hc) = hash_aWv89bCLOibANstPF9bHQoyQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_56 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_56);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getOrDefault_OX9anFuDn9bfK9aeoL9blUUBvw)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg t, NI key) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	NI hc;
	NI index;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	hc = (NI)0;
	index = rawGet_aS7VMifwQ5UsdOtD1Dx7GAtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field2;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_zd631ggeGEiPTefqYEGpiA)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg* t, tySequence_YuKuU17u5ApAIki23DK9bJw** data, NI key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_NZJD7XooFe3vwlZMQikupw)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg* t) {
	tySequence_YuKuU17u5ApAIki23DK9bJw* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_57;
	tySequence_YuKuU17u5ApAIki23DK9bJw* T2_;
	n = (tySequence_YuKuU17u5ApAIki23DK9bJw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_57 = mulInt(T1_, ((NI) 2));
	n = (tySequence_YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI_YuKuU17u5ApAIki23DK9bJw_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_57), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_YuKuU17u5ApAIki23DK9bJw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_58;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_zd631ggeGEiPTefqYEGpiA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_58 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_58);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_abkoCGbCZlz6d4aa4hHxhgtables)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_59;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_59 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_59);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__tMEyAvlcC3r82WGaTaSYrQ)(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg* t, NI key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI_YuKuU17u5ApAIki23DK9bJw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_aS7VMifwQ5UsdOtD1Dx7GAtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_60;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_61;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI_YuKuU17u5ApAIki23DK9bJw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_NZJD7XooFe3vwlZMQikupw(t);
			index = rawGetKnownHC_abkoCGbCZlz6d4aa4hHxhgtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_60 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_60);
		rawInsert_zd631ggeGEiPTefqYEGpiA(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_61 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_61);
	}
	LA11_: ;
}

static N_INLINE(NI, rawGet_UJsERo5BkViQH6ie2d9asaQtables)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_62;
{	result = (NI)0;
	(*hc) = hash_XFPFecV5bGJUDhwku4bw7A(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqeq__76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_62 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_62);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getOrDefault_osKkoxC3A03cBoj9bK1Or9cQ)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	NI hc;
	NI index;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	hc = (NI)0;
	index = rawGet_UJsERo5BkViQH6ie2d9asaQtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field2;
	}
	LA3_: ;
	return result;
}

static N_INLINE(NI, rawGet_3B39bms3hJS0Syhd7xxEULgtables)(tyObject_Table_NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_63;
{	result = (NI)0;
	(*hc) = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_63 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_63);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI64, getOrDefault_z8A9cwbmxkLXNxRJ9arkRPMQ)(tyObject_Table_NttoEzoiq5CiphZe81oadg t, NimStringDesc* key) {
	NI64 result;
	NI hc;
	NI index;
	result = (NI64)0;
	hc = (NI)0;
	index = rawGet_3B39bms3hJS0Syhd7xxEULgtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field2;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_XH2oBuEgDaY43m9bc9czCHzQ)(tyObject_Table_NttoEzoiq5CiphZe81oadg* t, tySequence_squ9b9bUH4OLHf6cEMrt6hVA** data, NimStringDesc* key, NI64 val, NI hc, NI h) {
	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_Ia9aKwc9aYyF2xX8fakDniHw)(tyObject_Table_NttoEzoiq5CiphZe81oadg* t) {
	tySequence_squ9b9bUH4OLHf6cEMrt6hVA* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_64;
	tySequence_squ9b9bUH4OLHf6cEMrt6hVA* T2_;
	n = (tySequence_squ9b9bUH4OLHf6cEMrt6hVA*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_64 = mulInt(T1_, ((NI) 2));
	n = (tySequence_squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTI_squ9b9bUH4OLHf6cEMrt6hVA_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_64), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_squ9b9bUH4OLHf6cEMrt6hVA*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_65;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI64 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI64)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert_XH2oBuEgDaY43m9bc9czCHzQ(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_65 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_65);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_A9bYZN6s9cFvr27D9aBNRZxQwtables)(tyObject_Table_NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_66;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_66 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_66);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__fM9b60sY7h9aUB763UQb3oXA)(tyObject_Table_NttoEzoiq5CiphZe81oadg* t, NimStringDesc* key, NI64 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTI_squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_3B39bms3hJS0Syhd7xxEULgtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		(*t).data->data[index].Field2 = val;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_67;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_68;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTI_squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_Ia9aKwc9aYyF2xX8fakDniHw(t);
			index = rawGetKnownHC_A9bYZN6s9cFvr27D9aBNRZxQwtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_67 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_67);
		rawInsert_XH2oBuEgDaY43m9bc9czCHzQ(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_68 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_68);
	}
	LA11_: ;
}

static N_INLINE(NI, rawGet_SMyMIOHvYU9bKbIDA9aXa0CQtables)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_69;
{	result = (NI)0;
	(*hc) = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_69 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_69);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_tNDb8HX4Pcd05E6w80ngeA_2)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet_SMyMIOHvYU9bKbIDA9aXa0CQtables(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_tNDb8HX4Pcd05E6w80ngeA)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey_tNDb8HX4Pcd05E6w80ngeA_2(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_dphYj2K2cQV4c59cmH9bTrwQ)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA* t, tySequence_23SMqauuRsbDANhthj9bWlA** data, NimStringDesc* key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {
	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_6K1KMyIJ44JU1rDXMt00fQ)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA* t) {
	tySequence_23SMqauuRsbDANhthj9bWlA* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_70;
	tySequence_23SMqauuRsbDANhthj9bWlA* T2_;
	n = (tySequence_23SMqauuRsbDANhthj9bWlA*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_70 = mulInt(T1_, ((NI) 2));
	n = (tySequence_23SMqauuRsbDANhthj9bWlA*) newSeq((&NTI_23SMqauuRsbDANhthj9bWlA_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_70), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_23SMqauuRsbDANhthj9bWlA*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_71;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_dphYj2K2cQV4c59cmH9bTrwQ(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_71 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_71);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_So4NwPMLEKibXtBM4tOfkQtables)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_72;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_72 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_72);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__sShzjuQoVJkvjz3oILuGOQ)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA* t, NimStringDesc* key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_23SMqauuRsbDANhthj9bWlA*) newSeq((&NTI_23SMqauuRsbDANhthj9bWlA_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_SMyMIOHvYU9bKbIDA9aXa0CQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_73;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_74;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_23SMqauuRsbDANhthj9bWlA*) newSeq((&NTI_23SMqauuRsbDANhthj9bWlA_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_6K1KMyIJ44JU1rDXMt00fQ(t);
			index = rawGetKnownHC_So4NwPMLEKibXtBM4tOfkQtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_73 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_73);
		rawInsert_dphYj2K2cQV4c59cmH9bTrwQ(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_74 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_74);
	}
	LA11_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**, X5BX5D__MfHxsDwfhxJEwdTZBgdTmg)(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA* t, NimStringDesc* key) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** result;
	NI hc;
	NI index;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**)0;
	hc = (NI)0;
	index = rawGet_SMyMIOHvYU9bKbIDA9aXa0CQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = &(*t).data->data[index].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag* e;
		NimStringDesc* T6_;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*)0;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI_8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag));
		(*e).Sup.Sup.Sup.Sup.m_type = (&NTI_t7nhKLvXTQS9cS8ByJU9bIag_);
		(*e).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, key);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)e, "KeyError", "[]", "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/tables.nim", 263);
	}
	LA1_: ;
	return result;
}

static N_INLINE(NI, rawGet_z5lyUFnYWNZgtnmQvNIG1Atables)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_75;
{	result = (NI)0;
	(*hc) = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_75 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_75);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_HJN1GCNkXuSaKainyv8E2w_2)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet_z5lyUFnYWNZgtnmQvNIG1Atables(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_HJN1GCNkXuSaKainyv8E2w)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey_HJN1GCNkXuSaKainyv8E2w_2(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_X9afgMwIB5o1VDnyZkF63LA)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg* t, tySequence_pHNq3oXj9av2sEUdqaqeZjw** data, NimStringDesc* key, tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg val, NI hc, NI h) {
	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2.root), val.root);
	(*data)->data[h].Field2.entries = val.entries;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_xUzvAyBcVu9b8xJ84vmmdgg)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg* t) {
	tySequence_pHNq3oXj9av2sEUdqaqeZjw* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_76;
	tySequence_pHNq3oXj9av2sEUdqaqeZjw* T2_;
	n = (tySequence_pHNq3oXj9av2sEUdqaqeZjw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_76 = mulInt(T1_, ((NI) 2));
	n = (tySequence_pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTI_pHNq3oXj9av2sEUdqaqeZjw_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_76), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_pHNq3oXj9av2sEUdqaqeZjw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_77;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimZeroMem((void*)(&T18_), sizeof(tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg));
					T18_.root = n->data[i].Field2.root;
					T18_.entries = n->data[i].Field2.entries;
					chckNil((void*)(&n->data[i].Field2));
					genericReset((void*)(&n->data[i].Field2), (&NTI_VZdzO0Tlflp7WMN4gS8oPg_));
					rawInsert_X9afgMwIB5o1VDnyZkF63LA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_77 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_77);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_TSpYtoROqC7475f9bg4iXugtables)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_78;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_78 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_78);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__L2EahbjJPAlDipW4Omiq5g)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg* t, NimStringDesc* key, tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTI_pHNq3oXj9av2sEUdqaqeZjw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_z5lyUFnYWNZgtnmQvNIG1Atables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2.root), val.root);
		(*t).data->data[index].Field2.entries = val.entries;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_79;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_80;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTI_pHNq3oXj9av2sEUdqaqeZjw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_xUzvAyBcVu9b8xJ84vmmdgg(t);
			index = rawGetKnownHC_TSpYtoROqC7475f9bg4iXugtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_79 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_79);
		rawInsert_X9afgMwIB5o1VDnyZkF63LA(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_80 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_80);
	}
	LA11_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg*, X5BX5D__SsXWfuQKn5htR3WBdyM0mA)(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg* t, NimStringDesc* key) {
	tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg* result;
	NI hc;
	NI index;
	result = (tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg*)0;
	hc = (NI)0;
	index = rawGet_z5lyUFnYWNZgtnmQvNIG1Atables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = (&(*t).data->data[index].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag* e;
		NimStringDesc* T6_;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*)0;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI_8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag));
		(*e).Sup.Sup.Sup.Sup.m_type = (&NTI_t7nhKLvXTQS9cS8ByJU9bIag_);
		(*e).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, key);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)e, "KeyError", "[]", "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/tables.nim", 263);
	}
	LA1_: ;
	return result;
}
static N_NIMCALL(void, Marker_tySequence_s12F9c4cKfaapm8VzG9a1flQ)(void* p, NI op) {
	tySequence_s12F9c4cKfaapm8VzG9a1flQ* a;
	NI T1_;
	a = (tySequence_s12F9c4cKfaapm8VzG9a1flQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_Aca4NQQdBmriymzlkc7OhQ)(NI initialsize, tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_7O9bs4LORhqcR0JGh7d1MDg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI_s12F9c4cKfaapm8VzG9a1flQ_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

static N_INLINE(NI, hash_sTYVuBLDBQbglYNxcT9bWrghashes)(NI64 x) {
	NI result;
	result = (NI)0;
	result = ((NI) (((NI32)(NU32)(NU64)(x))));
	return result;
}

static N_INLINE(NI, rawGet_WHgMCdcTgzDXYwrCU5rygAtables)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_83;
{	result = (NI)0;
	(*hc) = hash_sTYVuBLDBQbglYNxcT9bWrghashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_83 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_83);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getOrDefault_NuV0kwmS6NPkSg4nGTYxGQ)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg t, NI64 key) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	NI hc;
	NI index;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	hc = (NI)0;
	index = rawGet_WHgMCdcTgzDXYwrCU5rygAtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field2;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_9bGCjjc8EMS6OJa9a9anUwMjg)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg* t, tySequence_s12F9c4cKfaapm8VzG9a1flQ** data, NI64 key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_eoqIM0Hd0SjhaY9cur9b4i8w)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg* t) {
	tySequence_s12F9c4cKfaapm8VzG9a1flQ* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_84;
	tySequence_s12F9c4cKfaapm8VzG9a1flQ* T2_;
	n = (tySequence_s12F9c4cKfaapm8VzG9a1flQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_84 = mulInt(T1_, ((NI) 2));
	n = (tySequence_s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI_s12F9c4cKfaapm8VzG9a1flQ_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_84), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_s12F9c4cKfaapm8VzG9a1flQ*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_85;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI64 T17_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI64)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_9bGCjjc8EMS6OJa9a9anUwMjg(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_85 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_85);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_K1f7gLsHF5x79adahVjRo5Atables)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_86;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_86 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_86);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__OtPEflpH4zlxCllppdpU2g)(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg* t, NI64 key, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI_s12F9c4cKfaapm8VzG9a1flQ_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_WHgMCdcTgzDXYwrCU5rygAtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_87;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_88;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI_s12F9c4cKfaapm8VzG9a1flQ_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_eoqIM0Hd0SjhaY9cur9b4i8w(t);
			index = rawGetKnownHC_K1f7gLsHF5x79adahVjRo5Atables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_87 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_87);
		rawInsert_9bGCjjc8EMS6OJa9a9anUwMjg(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_88 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_88);
	}
	LA11_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_u9aJV4Xxo1Qv0WGIfVav9c2Q)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw* t, tySequence_Qr6E8eH7btq79cFKGaJfGLw** data, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_wtlRvAPpfH5zwFZ6PVJ9bEw)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw* t) {
	tySequence_Qr6E8eH7btq79cFKGaJfGLw* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_89;
	tySequence_Qr6E8eH7btq79cFKGaJfGLw* T2_;
	n = (tySequence_Qr6E8eH7btq79cFKGaJfGLw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_89 = mulInt(T1_, ((NI) 2));
	n = (tySequence_Qr6E8eH7btq79cFKGaJfGLw*) newSeq((&NTI_Qr6E8eH7btq79cFKGaJfGLw_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_89), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_Qr6E8eH7btq79cFKGaJfGLw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_90;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray_qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
					chckNil((void*)n->data[i].Field1);
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_u9aJV4Xxo1Qv0WGIfVav9c2Q(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_90 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_90);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_bT8cRF5uMfM8lc5JOL9baswtables)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_91;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqeq__76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_91 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_91);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__mDjERi9aeOTPpwet1knXpgw)(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_Qr6E8eH7btq79cFKGaJfGLw*) newSeq((&NTI_Qr6E8eH7btq79cFKGaJfGLw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_UJsERo5BkViQH6ie2d9asaQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_92;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_93;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_Qr6E8eH7btq79cFKGaJfGLw*) newSeq((&NTI_Qr6E8eH7btq79cFKGaJfGLw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_wtlRvAPpfH5zwFZ6PVJ9bEw(t);
			index = rawGetKnownHC_bT8cRF5uMfM8lc5JOL9baswtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_92 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_92);
		rawInsert_u9aJV4Xxo1Qv0WGIfVav9c2Q(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_93 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_93);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence_sII3pVVRkIdBZ2HDPdZddA)(void* p, NI op) {
	tySequence_sII3pVVRkIdBZ2HDPdZddA* a;
	NI T1_;
	NI T2_;
	a = (tySequence_sII3pVVRkIdBZ2HDPdZddA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_NIMCALL(void, Marker_tySequence_jwzrUFjG9akTIJTBBFvvqxw)(void* p, NI op) {
	tySequence_jwzrUFjG9akTIJTBBFvvqxw* a;
	NI T1_;
	a = (tySequence_jwzrUFjG9akTIJTBBFvvqxw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field0, op);
	}
}
static N_NIMCALL(void, Marker_tySequence_XUL1TrMU0tgXmaMFCIYgFQ)(void* p, NI op) {
	tySequence_XUL1TrMU0tgXmaMFCIYgFQ* a;
	NI T1_;
	NI T2_;
	a = (tySequence_XUL1TrMU0tgXmaMFCIYgFQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	}
}
static N_NIMCALL(void, Marker_tySequence_diqJJ1bWuFP7M6rQDS9cBLQ)(void* p, NI op) {
	tySequence_diqJJ1bWuFP7M6rQDS9cBLQ* a;
	NI T1_;
	NI T2_;
	a = (tySequence_diqJJ1bWuFP7M6rQDS9cBLQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	nimGCvisit((void*)a->data[T1_].Field2.Field0, op);
	nimGCvisit((void*)a->data[T1_].Field2.Field1, op);
	}
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_xxjSywDHVOkCrr8wI2uN6w)(NI initialsize, tyObject_Table_6nOsw5R7jH72bux7HSST9bg* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_6nOsw5R7jH72bux7HSST9bg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_diqJJ1bWuFP7M6rQDS9cBLQ*) newSeq((&NTI_diqJJ1bWuFP7M6rQDS9cBLQ_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_PWCx2pXbMQdMiGj5j6BNEQ)(NI initialsize, tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_gZ3EYQdz9coOB7ngN9a1cqwA_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTI_sII3pVVRkIdBZ2HDPdZddA_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initCountTable_wWvh9aBvC7U2mbRYPFlmaXA)(NI initialsize, tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_tUMxxU9cRgLolsrW9b7IBGsQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTI_XUL1TrMU0tgXmaMFCIYgFQ_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initCountTable_9bCGylUHHsRyO4QrFEjBXuQ)(NI initialsize, tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_chlLjy9bvnFM9b9bSZfiIkyGg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTI_jwzrUFjG9akTIJTBBFvvqxw_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(NI, rawGet_w2fZhqPRZdan2r9a51X3ZXA)(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key) {
	NI result;
	NI h;
	NI T6_;
	NI T7_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_101;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (NI)0;
	T6_ = hash_XFPFecV5bGJUDhwku4bw7A(key);
	T7_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(T6_ & T7_);
	{
		while (1) {
			NI T15_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			if (!!((t.data->data[h].Field1 == ((NI) 0)))) goto LA9;
			{
				NIM_BOOL T12_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (NIM_BOOL)0;
				T12_ = eqeq__76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field0, key);
				if (!T12_) goto LA13_;
				result = h;
				goto BeforeRet_;
			}
			LA13_: ;
			T15_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T15_);
		} LA9: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_101 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_101);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault_jOz9cq69cLtimtiCsRyrmEBA)(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI default_0) {
	NI result;
	NI index;
	result = (NI)0;
	index = rawGet_w2fZhqPRZdan2r9a51X3ZXA(t, key);
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field1;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert_EhLhU9b3JGmgVjguB3HOsgQ)(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ t, tySequence_XUL1TrMU0tgXmaMFCIYgFQ** data, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI val) {
	NI h;
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = hash_XFPFecV5bGJUDhwku4bw7A(key);
	T2_ = (((*data) ? (*data)->Sup.len : 0)-1);
	h = (NI)(T1_ & T2_);
	{
		while (1) {
			NI T5_;
			if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
			if (!!(((*data)->data[h].Field1 == ((NI) 0)))) goto LA4;
			T5_ = (((*data) ? (*data)->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T5_);
		} LA4: ;
	}
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field0, (NIM_CONST void*)key, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = val;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_kgVnhJBOCSxuahhdbN9cidg)(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* t) {
	tySequence_XUL1TrMU0tgXmaMFCIYgFQ* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_105;
	tySequence_XUL1TrMU0tgXmaMFCIYgFQ* T10_;
	n = (tySequence_XUL1TrMU0tgXmaMFCIYgFQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_105 = mulInt(T1_, ((NI) 2));
	n = (tySequence_XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTI_XUL1TrMU0tgXmaMFCIYgFQ_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_105), ((NI) 0), ((NI) 2147483647))));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
		colontmp_ = T3_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_106;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				{
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					if (!!(((*t).data->data[i].Field1 == ((NI) 0)))) goto LA8_;
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					ctRawInsert_EhLhU9b3JGmgVjguB3HOsgQ((*t), (&n), (*t).data->data[i].Field0, (*t).data->data[i].Field1);
				}
				LA8_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_106 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_106);
			} LA5: ;
		}
	}
	T10_ = (tySequence_XUL1TrMU0tgXmaMFCIYgFQ*)0;
	T10_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T10_;
}

N_LIB_PRIVATE N_NIMCALL(void, inc_WbyI1m6UOEsGT1YIEaB7UA)(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI val) {
	NI index;
	{
		if (!!(!((*t).isSorted))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_102));
	}
	LA3_: ;
	index = rawGet_w2fZhqPRZdan2r9a51X3ZXA((*t), key);
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_103;
		if (!(((NI) 0) <= index)) goto LA7_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_103 = addInt((*t).data->data[index].Field1, val);
		(*t).data->data[index].Field1 = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_103);
		{
			NI TM_4SoG2KRQy3oMm9aUzSLtGrA_104;
			if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
			if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA11_;
			TM_4SoG2KRQy3oMm9aUzSLtGrA_104 = subInt((*t).counter, ((NI) 1));
			(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_104);
		}
		LA11_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_107;
		{
			NI T16_;
			T16_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T16_ == ((NI) 0))) goto LA17_;
			{
				NIM_BOOL T21_;
				T21_ = (NIM_BOOL)0;
				T21_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T21_)) goto LA22_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA22_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTI_XUL1TrMU0tgXmaMFCIYgFQ_), ((NI) 64)));
		}
		LA17_: ;
		{
			NI T26_;
			NIM_BOOL T27_;
			T26_ = ((*t).data ? (*t).data->Sup.len : 0);
			T27_ = (NIM_BOOL)0;
			T27_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T26_, (*t).counter);
			if (!T27_) goto LA28_;
			enlarge_kgVnhJBOCSxuahhdbN9cidg(t);
		}
		LA28_: ;
		ctRawInsert_EhLhU9b3JGmgVjguB3HOsgQ((*t), (&(*t).data), key, val);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_107 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_107);
	}
	LA5_: ;
}

static N_INLINE(NI, rawGet_kRkMedOi9aSBIvfUrXCRvxQtables)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_108;
{	result = (NI)0;
	(*hc) = hash_XFPFecV5bGJUDhwku4bw7A(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqeq__76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_108 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_108);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getOrDefault_tD8SQMueXhdfvpBnagcsKg)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI hc;
	NI index;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	hc = (NI)0;
	index = rawGet_kRkMedOi9aSBIvfUrXCRvxQtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field2;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_Gf66Iv0CJwvyroazPxyGpA)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t, tySequence_sII3pVVRkIdBZ2HDPdZddA** data, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_C3S2Q2U8lwkz8doGQgUxug)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t) {
	tySequence_sII3pVVRkIdBZ2HDPdZddA* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_109;
	tySequence_sII3pVVRkIdBZ2HDPdZddA* T2_;
	n = (tySequence_sII3pVVRkIdBZ2HDPdZddA*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_109 = mulInt(T1_, ((NI) 2));
	n = (tySequence_sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTI_sII3pVVRkIdBZ2HDPdZddA_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_109), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_sII3pVVRkIdBZ2HDPdZddA*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_110;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray_qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
					chckNil((void*)n->data[i].Field1);
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_Gf66Iv0CJwvyroazPxyGpA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_110 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_110);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_zkkRq29b9amWxeaphfvlnK6wtables)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_111;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqeq__76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_111 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_111);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTI_sII3pVVRkIdBZ2HDPdZddA_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_kRkMedOi9aSBIvfUrXCRvxQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_112;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_113;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTI_sII3pVVRkIdBZ2HDPdZddA_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_C3S2Q2U8lwkz8doGQgUxug(t);
			index = rawGetKnownHC_zkkRq29b9amWxeaphfvlnK6wtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_112 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_112);
		rawInsert_Gf66Iv0CJwvyroazPxyGpA(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_113 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_113);
	}
	LA11_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, X5BX5D__KricVWBSqqSbgxpQ5up3Ig)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result;
	NI hc;
	NI index;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	hc = (NI)0;
	index = rawGet_kRkMedOi9aSBIvfUrXCRvxQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = &(*t).data->data[index].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag* e;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*)0;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI_8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag));
		(*e).Sup.Sup.Sup.Sup.m_type = (&NTI_t7nhKLvXTQS9cS8ByJU9bIag_);
		(*e).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T7_ = (NimStringDesc*)0;
		T7_ = dollar__0A9bslyIJ49bWrftLGh13rvg(key);
		T6_ = rawNewString((T7_ ? T7_->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, T7_);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)e, "KeyError", "[]", "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/tables.nim", 263);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, rawGet_JC4YP8wfdV9aPnE9bz5sPkhA)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key) {
	NI result;
	NI h;
	NI T6_;
	NI T7_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_114;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (NI)0;
	T6_ = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	T7_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(T6_ & T7_);
	{
		while (1) {
			NI T14_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			if (!!((t.data->data[h].Field1 == ((NI) 0)))) goto LA9;
			{
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				if (!eqStrings(t.data->data[h].Field0, key)) goto LA12_;
				result = h;
				goto BeforeRet_;
			}
			LA12_: ;
			T14_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T14_);
		} LA9: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_114 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_114);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault_9bK0jMctS3Kpz9aVaHPQI4gA)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key, NI default_0) {
	NI result;
	NI index;
	result = (NI)0;
	index = rawGet_JC4YP8wfdV9aPnE9bz5sPkhA(t, key);
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field1;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert_3TJBMrgzatHsknHA6jSouA)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg t, tySequence_jwzrUFjG9akTIJTBBFvvqxw** data, NimStringDesc* key, NI val) {
	NI h;
	NI T1_;
	NI T2_;
	NimStringDesc* T6_;
	T1_ = (NI)0;
	T1_ = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	T2_ = (((*data) ? (*data)->Sup.len : 0)-1);
	h = (NI)(T1_ & T2_);
	{
		while (1) {
			NI T5_;
			if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
			if (!!(((*data)->data[h].Field1 == ((NI) 0)))) goto LA4;
			T5_ = (((*data) ? (*data)->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T5_);
		} LA4: ;
	}
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T6_ = (NimStringDesc*)0;
	T6_ = (*data)->data[h].Field0; (*data)->data[h].Field0 = copyStringRC1(key);
	if (T6_) nimGCunrefNoCycle(T6_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = val;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_lFm9aQmmTsb5E6B6Jx9bb6dQ)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg* t) {
	tySequence_jwzrUFjG9akTIJTBBFvvqxw* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_117;
	tySequence_jwzrUFjG9akTIJTBBFvvqxw* T10_;
	n = (tySequence_jwzrUFjG9akTIJTBBFvvqxw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_117 = mulInt(T1_, ((NI) 2));
	n = (tySequence_jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTI_jwzrUFjG9akTIJTBBFvvqxw_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_117), ((NI) 0), ((NI) 2147483647))));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
		colontmp_ = T3_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_118;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				{
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					if (!!(((*t).data->data[i].Field1 == ((NI) 0)))) goto LA8_;
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					ctRawInsert_3TJBMrgzatHsknHA6jSouA((*t), (&n), (*t).data->data[i].Field0, (*t).data->data[i].Field1);
				}
				LA8_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_118 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_118);
			} LA5: ;
		}
	}
	T10_ = (tySequence_jwzrUFjG9akTIJTBBFvvqxw*)0;
	T10_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T10_;
}

N_LIB_PRIVATE N_NIMCALL(void, inc_cue4X8ebEalt3pWXvkS49cw)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg* t, NimStringDesc* key, NI val) {
	NI index;
	{
		if (!!(!((*t).isSorted))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_102));
	}
	LA3_: ;
	index = rawGet_JC4YP8wfdV9aPnE9bz5sPkhA((*t), key);
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_115;
		if (!(((NI) 0) <= index)) goto LA7_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_115 = addInt((*t).data->data[index].Field1, val);
		(*t).data->data[index].Field1 = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_115);
		{
			NI TM_4SoG2KRQy3oMm9aUzSLtGrA_116;
			if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
			if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA11_;
			TM_4SoG2KRQy3oMm9aUzSLtGrA_116 = subInt((*t).counter, ((NI) 1));
			(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_116);
		}
		LA11_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_119;
		{
			NI T16_;
			T16_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T16_ == ((NI) 0))) goto LA17_;
			{
				NIM_BOOL T21_;
				T21_ = (NIM_BOOL)0;
				T21_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T21_)) goto LA22_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA22_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTI_jwzrUFjG9akTIJTBBFvvqxw_), ((NI) 64)));
		}
		LA17_: ;
		{
			NI T26_;
			NIM_BOOL T27_;
			T26_ = ((*t).data ? (*t).data->Sup.len : 0);
			T27_ = (NIM_BOOL)0;
			T27_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T26_, (*t).counter);
			if (!T27_) goto LA28_;
			enlarge_lFm9aQmmTsb5E6B6Jx9bb6dQ(t);
		}
		LA28_: ;
		ctRawInsert_3TJBMrgzatHsknHA6jSouA((*t), (&(*t).data), key, val);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_119 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_119);
	}
	LA5_: ;
}

static N_INLINE(NI, rawGet_xRsE9bd9cmMxcEsI9aaY9cppuAtables)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_120;
{	result = (NI)0;
	(*hc) = hash_XFPFecV5bGJUDhwku4bw7A(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqeq__76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_120 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_120);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, getOrDefault_qISsmXPGy0MStH2gg2BcOA)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyTuple_Iz0jrTw3w7v6sMzjrqs0nA* Result) {
	NI hc;
	NI index;
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_Iz0jrTw3w7v6sMzjrqs0nA_));
	hc = (NI)0;
	index = rawGet_xRsE9bd9cmMxcEsI9aaY9cppuAtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		unsureAsgnRef((void**) (&(*Result).Field0), t.data->data[index].Field2.Field0);
		unsureAsgnRef((void**) (&(*Result).Field1), t.data->data[index].Field2.Field1);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_7en31G7VfABQHDdprxuYPA)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg* t, tySequence_diqJJ1bWuFP7M6rQDS9cBLQ** data, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyTuple_Iz0jrTw3w7v6sMzjrqs0nA val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2.Field0), val.Field0);
	asgnRef((void**) (&(*data)->data[h].Field2.Field1), val.Field1);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_s8GP5B2qbnsxFlutyTGcnw)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg* t) {
	tySequence_diqJJ1bWuFP7M6rQDS9cBLQ* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_121;
	tySequence_diqJJ1bWuFP7M6rQDS9cBLQ* T2_;
	n = (tySequence_diqJJ1bWuFP7M6rQDS9cBLQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_121 = mulInt(T1_, ((NI) 2));
	n = (tySequence_diqJJ1bWuFP7M6rQDS9cBLQ*) newSeq((&NTI_diqJJ1bWuFP7M6rQDS9cBLQ_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_121), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_diqJJ1bWuFP7M6rQDS9cBLQ*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_122;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray_qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyTuple_Iz0jrTw3w7v6sMzjrqs0nA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
					chckNil((void*)n->data[i].Field1);
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimZeroMem((void*)(&T18_), sizeof(tyTuple_Iz0jrTw3w7v6sMzjrqs0nA));
					T18_.Field0 = n->data[i].Field2.Field0;
					T18_.Field1 = n->data[i].Field2.Field1;
					chckNil((void*)(&n->data[i].Field2));
					genericReset((void*)(&n->data[i].Field2), (&NTI_Iz0jrTw3w7v6sMzjrqs0nA_));
					rawInsert_7en31G7VfABQHDdprxuYPA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_122 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_122);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_2LQwcr0umtLrUHRkcv9bHNAtables)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_123;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqeq__76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_123 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_123);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__e9czpY4GXpbU9cznliOfqQ1Q)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyTuple_Iz0jrTw3w7v6sMzjrqs0nA val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_diqJJ1bWuFP7M6rQDS9cBLQ*) newSeq((&NTI_diqJJ1bWuFP7M6rQDS9cBLQ_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_xRsE9bd9cmMxcEsI9aaY9cppuAtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2.Field0), val.Field0);
		asgnRef((void**) (&(*t).data->data[index].Field2.Field1), val.Field1);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_124;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_125;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_diqJJ1bWuFP7M6rQDS9cBLQ*) newSeq((&NTI_diqJJ1bWuFP7M6rQDS9cBLQ_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_s8GP5B2qbnsxFlutyTGcnw(t);
			index = rawGetKnownHC_2LQwcr0umtLrUHRkcv9bHNAtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_124 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_124);
		rawInsert_7en31G7VfABQHDdprxuYPA(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_125 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_125);
	}
	LA11_: ;
}

static N_INLINE(NI, hash_ixIcN23Rzgwj4rjH9cMHDWQhashes)(NI32 x) {
	NI result;
	result = (NI)0;
	result = x;
	return result;
}

static N_INLINE(NI, rawGet_VHL4jbXDU6F0885vBGFikgtables)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_126;
{	result = (NI)0;
	(*hc) = hash_ixIcN23Rzgwj4rjH9cMHDWQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_126 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_126);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_wUVYiyWmQ9cvzc9aNVobHWfA)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ* t, tySequence_kxu4GK0onha2t9bo86mdVAg** data, NI32 key, NI32 val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_WznuIAS2HbbgwoQgMlLNGA)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ* t) {
	tySequence_kxu4GK0onha2t9bo86mdVAg* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_127;
	tySequence_kxu4GK0onha2t9bo86mdVAg* T2_;
	n = (tySequence_kxu4GK0onha2t9bo86mdVAg*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_127 = mulInt(T1_, ((NI) 2));
	n = (tySequence_kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI_kxu4GK0onha2t9bo86mdVAg_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_127), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_kxu4GK0onha2t9bo86mdVAg*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_128;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert_wUVYiyWmQ9cvzc9aNVobHWfA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_128 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_128);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_WbZNr9ajY1NXktE9abGpy5rgtables)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_129;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_129 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_129);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKeyOrPut_WdnGwzJoNnsIHUzxAKLE9aw)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ* t, NI32 key, NI32 val) {
	NIM_BOOL result;
	NI hc;
	NI index;
	result = (NIM_BOOL)0;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI_kxu4GK0onha2t9bo86mdVAg_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_VHL4jbXDU6F0885vBGFikgtables((*t), key, (&hc));
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_130;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_131;
		if (!(index < ((NI) 0))) goto LA13_;
		result = NIM_FALSE;
		{
			NI T17_;
			T17_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T17_ == ((NI) 0))) goto LA18_;
			{
				NIM_BOOL T22_;
				T22_ = (NIM_BOOL)0;
				T22_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T22_)) goto LA23_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA23_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI_kxu4GK0onha2t9bo86mdVAg_), ((NI) 64)));
		}
		LA18_: ;
		{
			NI T27_;
			NIM_BOOL T28_;
			T27_ = ((*t).data ? (*t).data->Sup.len : 0);
			T28_ = (NIM_BOOL)0;
			T28_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T27_, (*t).counter);
			if (!T28_) goto LA29_;
			enlarge_WznuIAS2HbbgwoQgMlLNGA(t);
			index = rawGetKnownHC_WbZNr9ajY1NXktE9abGpy5rgtables((*t), key, hc);
		}
		LA29_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_130 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_130);
		rawInsert_wUVYiyWmQ9cvzc9aNVobHWfA(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_131 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_131);
	}
	goto LA11_;
	LA13_: ;
	{
		result = NIM_TRUE;
	}
	LA11_: ;
	return result;
}

static N_INLINE(NI, rawGet_QnNqXOulpiE3rTDm0rj6bgtables)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_132;
{	result = (NI)0;
	(*hc) = hash_ixIcN23Rzgwj4rjH9cMHDWQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_132 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_132);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_IVJyWWnSh59cPztkOuQNV0g)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA* t, tySequence_fdmz6VkIf1ewwrssKYqRFg** data, NI32 key, tySequence_48JTohSgTy339bRxHzUD8KA* val, NI hc, NI h) {
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTI_48JTohSgTy339bRxHzUD8KA_));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_8q9c9aCPUMM0w7HNF4dndgQg)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA* t) {
	tySequence_fdmz6VkIf1ewwrssKYqRFg* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_133;
	tySequence_fdmz6VkIf1ewwrssKYqRFg* T2_;
	n = (tySequence_fdmz6VkIf1ewwrssKYqRFg*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_133 = mulInt(T1_, ((NI) 2));
	n = (tySequence_fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTI_fdmz6VkIf1ewwrssKYqRFg_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_133), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_fdmz6VkIf1ewwrssKYqRFg*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_134;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					tySequence_48JTohSgTy339bRxHzUD8KA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tySequence_48JTohSgTy339bRxHzUD8KA*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_IVJyWWnSh59cPztkOuQNV0g(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_134 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_134);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_4Fsb1T2VnPSV6oxoQiJufQtables)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_135;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_135 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_135);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tySequence_48JTohSgTy339bRxHzUD8KA**, mgetOrPut_zZWWGOWkKOEGJoEiQeIHZA)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA* t, NI32 key, tySequence_48JTohSgTy339bRxHzUD8KA* val) {
	tySequence_48JTohSgTy339bRxHzUD8KA** result;
	NI hc;
	NI index;
	result = (tySequence_48JTohSgTy339bRxHzUD8KA**)0;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTI_fdmz6VkIf1ewwrssKYqRFg_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_QnNqXOulpiE3rTDm0rj6bgtables((*t), key, (&hc));
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_136;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_137;
		if (!(index < ((NI) 0))) goto LA13_;
		{
			NI T17_;
			T17_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T17_ == ((NI) 0))) goto LA18_;
			{
				NIM_BOOL T22_;
				T22_ = (NIM_BOOL)0;
				T22_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T22_)) goto LA23_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA23_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTI_fdmz6VkIf1ewwrssKYqRFg_), ((NI) 64)));
		}
		LA18_: ;
		{
			NI T27_;
			NIM_BOOL T28_;
			T27_ = ((*t).data ? (*t).data->Sup.len : 0);
			T28_ = (NIM_BOOL)0;
			T28_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T27_, (*t).counter);
			if (!T28_) goto LA29_;
			enlarge_8q9c9aCPUMM0w7HNF4dndgQg(t);
			index = rawGetKnownHC_4Fsb1T2VnPSV6oxoQiJufQtables((*t), key, hc);
		}
		LA29_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_136 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_136);
		rawInsert_IVJyWWnSh59cPztkOuQNV0g(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_137 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_137);
	}
	LA13_: ;
	if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
	result = (&(*t).data->data[index].Field2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, len_2ofA2tlPvPQGtfqWkdG41g)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, len_BJm9cTslcy01z41qkbd1OIw)(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
static N_NIMCALL(void, Marker_tySequence_pUxI6Ljo6IKKHXKOZkQ7Og)(void* p, NI op) {
	tySequence_pUxI6Ljo6IKKHXKOZkQ7Og* a;
	NI T1_;
	a = (tySequence_pUxI6Ljo6IKKHXKOZkQ7Og*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
static N_NIMCALL(void, Marker_tySequence_MlAD6nAPq9bHKla9cWiIZP0g)(void* p, NI op) {
	tySequence_MlAD6nAPq9bHKla9cWiIZP0g* a;
	NI T1_;
	a = (tySequence_MlAD6nAPq9bHKla9cWiIZP0g*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	nimGCvisit((void*)a->data[T1_].Field3, op);
	}
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_JGPfELnQWD80TdGXKyM1Hw)(NI initialsize, tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_i55W8RrwGKsG9cl0sAKxgkQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI_pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

static N_INLINE(NI, rawGet_hi24HVDthGVUIUfuDpjqIQtables)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_142;
{	result = (NI)0;
	(*hc) = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_142 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_142);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_aOI3jq5GpcZWNc9aNWt3Shw)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet_hi24HVDthGVUIUfuDpjqIQtables(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_K9c1MhW8jYPmeOjDdrH9ajyg)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ* t, tySequence_pUxI6Ljo6IKKHXKOZkQ7Og** data, NimStringDesc* key, NI val, NI hc, NI h) {
	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_VYLD6MqB59amU6bk9ahC8zNw)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ* t) {
	tySequence_pUxI6Ljo6IKKHXKOZkQ7Og* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_143;
	tySequence_pUxI6Ljo6IKKHXKOZkQ7Og* T2_;
	n = (tySequence_pUxI6Ljo6IKKHXKOZkQ7Og*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_143 = mulInt(T1_, ((NI) 2));
	n = (tySequence_pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI_pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_143), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_pUxI6Ljo6IKKHXKOZkQ7Og*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_144;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert_K9c1MhW8jYPmeOjDdrH9ajyg(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_144 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_144);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_so4qfaUZuauODRq3tIG3Igtables)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_145;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_145 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_145);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__HfxZpUfki4UkuP38hbwROA)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ* t, NimStringDesc* key, NI val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI_pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_hi24HVDthGVUIUfuDpjqIQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		(*t).data->data[index].Field2 = val;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_146;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_147;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI_pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_VYLD6MqB59amU6bk9ahC8zNw(t);
			index = rawGetKnownHC_so4qfaUZuauODRq3tIG3Igtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_146 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_146);
		rawInsert_K9c1MhW8jYPmeOjDdrH9ajyg(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_147 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_147);
	}
	LA11_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault_B9adUqknApMjE6ou13bpO8A)(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key) {
	NI result;
	NI hc;
	NI index;
	result = (NI)0;
	hc = (NI)0;
	index = rawGet_hi24HVDthGVUIUfuDpjqIQtables(t, key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(index,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[index].Field2;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, rawGet_U8BE8F1hkorXEqb1x9baemQ)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_148;
{	result = (NI)0;
	(*hc) = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_148 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_148);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_UX29cFESnmC3SpxKAQuMIcg)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet_U8BE8F1hkorXEqb1x9baemQ(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}

static N_INLINE(NI, rawGet_B8emH5taC0NsYyBRssSIiwtables)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_149;
{	result = (NI)0;
	(*hc) = hash_6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_149 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_149);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q**, X5BX5D__l9atGRY9bA25fn4p5uueZfUQ)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key) {
	tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q** result;
	NI hc;
	NI index;
	result = (tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q**)0;
	hc = (NI)0;
	index = rawGet_B8emH5taC0NsYyBRssSIiwtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = &(*t).data->data[index].Field3;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag* e;
		NimStringDesc* T6_;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*)0;
		e = (tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI_8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError_t7nhKLvXTQS9cS8ByJU9bIag));
		(*e).Sup.Sup.Sup.Sup.m_type = (&NTI_t7nhKLvXTQS9cS8ByJU9bIag_);
		(*e).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, key);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*e).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)e, "KeyError", "[]", "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/pure/collections/tables.nim", 263);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, initOrderedTable_l9bhuCyz9cr5d8QlraS1JtXw)(NI initialsize, tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_ZZvSdVkA2s2sIyifu4cpkg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI_MlAD6nAPq9bHKla9cWiIZP0g_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
	(*Result).first = ((NI) -1);
	(*Result).last = ((NI) -1);
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_K9b9aplmUERncrp49bmzOdPnw)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg* t, tySequence_MlAD6nAPq9bHKla9cWiIZP0g** data, NimStringDesc* key, tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q* val, NI hc, NI h) {
	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field2; (*data)->data[h].Field2 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field3), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = ((NI) -1);
	{
		if (!((*t).first < ((NI) 0))) goto LA4_;
		(*t).first = h;
	}
	LA4_: ;
	{
		if (!(((NI) 0) <= (*t).last)) goto LA8_;
		if ((NU)((*t).last) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2((*t).last,((*data) ? (*data)->Sup.len : 0)-1);
		(*data)->data[(*t).last].Field1 = h;
	}
	LA8_: ;
	(*t).last = h;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_9cAm9cItwB6y9bUzyB9bE1NBlA)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg* t) {
	tySequence_MlAD6nAPq9bHKla9cWiIZP0g* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_150;
	NI h;
	tySequence_MlAD6nAPq9bHKla9cWiIZP0g* T2_;
	n = (tySequence_MlAD6nAPq9bHKla9cWiIZP0g*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_150 = mulInt(T1_, ((NI) 2));
	n = (tySequence_MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI_MlAD6nAPq9bHKla9cWiIZP0g_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_150), ((NI) 0), ((NI) 2147483647))));
	h = (*t).first;
	(*t).first = ((NI) -1);
	(*t).last = ((NI) -1);
	T2_ = (tySequence_MlAD6nAPq9bHKla9cWiIZP0g*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		while (1) {
			NI nxt;
			NI eh;
			if (!(((NI) 0) <= h)) goto LA4;
			if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
			nxt = n->data[h].Field1;
			if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
			eh = n->data[h].Field0;
			{
				NIM_BOOL T7_;
				NI j;
				NI T10_;
				T7_ = (NIM_BOOL)0;
				T7_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
				if (!T7_) goto LA8_;
				T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
				j = (NI)(eh & T10_);
				{
					while (1) {
						NIM_BOOL T13_;
						NI T14_;
						if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
						T13_ = (NIM_BOOL)0;
						T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
						if (!T13_) goto LA12;
						T14_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
						j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T14_);
					} LA12: ;
				}
				if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
				if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
				if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
				rawInsert_K9b9aplmUERncrp49bmzOdPnw(t, (&(*t).data), n->data[h].Field2, n->data[h].Field3, n->data[h].Field0, j);
			}
			LA8_: ;
			h = nxt;
		} LA4: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC_9cQeRP9bxZubT9bE5dfTSZEew)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_151;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field2, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_151 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_151);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__vlnBr1uIbtu0ntnZh6Askg)(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, tyObject_JsonNodeObj_df9bshXB7C9cTiWPIOtX3j1Q* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI_MlAD6nAPq9bHKla9cWiIZP0g_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_U8BE8F1hkorXEqb1x9baemQ((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field3), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_152;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_153;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI_MlAD6nAPq9bHKla9cWiIZP0g_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_9cAm9cItwB6y9bUzyB9bE1NBlA(t);
			index = rawGetKnownHC_9cQeRP9bxZubT9bE5dfTSZEew((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_152 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_152);
		rawInsert_K9b9aplmUERncrp49bmzOdPnw(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_153 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_153);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence_wAC0kXbVGkLoWP8vdi0sUw)(void* p, NI op) {
	tySequence_wAC0kXbVGkLoWP8vdi0sUw* a;
	NI T1_;
	a = (tySequence_wAC0kXbVGkLoWP8vdi0sUw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1.keyword, op);
	nimGCvisit((void*)a->data[T1_].Field1.link, op);
	nimGCvisit((void*)a->data[T1_].Field1.linkTitle, op);
	nimGCvisit((void*)a->data[T1_].Field1.linkDesc, op);
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_vxdt6Y64y8j3S3AKpmCw4g)(NI initialsize, tyObject_Table_XC01wkRgzAyOjTiapde7hQ* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_XC01wkRgzAyOjTiapde7hQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI_wAC0kXbVGkLoWP8vdi0sUw_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(NI, len_XkMbL52cqyBSUFesQIX9bTA)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}

static N_INLINE(NI, rawGet_amoK2sCC6NAXbAYzoteO2wtables)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ t, tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_156;
{	result = (NI)0;
	(*hc) = hash_qsZ1IgNQkpu0AbMu0eEzCQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqeq__Z149cxs9a8jIB6voh7d344JA(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_156 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_156);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, rawInsert_5biQFmkRUjJPNto9cNutA9bw)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ* t, tySequence_wAC0kXbVGkLoWP8vdi0sUw** data, tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg key, tySequence_5PunAJrNQYcB8dF0jau3pQ* val, NI hc, NI h) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1.keyword; (*data)->data[h].Field1.keyword = copyStringRC1(key.keyword);
	if (T1_) nimGCunrefNoCycle(T1_);
	T2_ = (NimStringDesc*)0;
	T2_ = (*data)->data[h].Field1.link; (*data)->data[h].Field1.link = copyStringRC1(key.link);
	if (T2_) nimGCunrefNoCycle(T2_);
	T3_ = (NimStringDesc*)0;
	T3_ = (*data)->data[h].Field1.linkTitle; (*data)->data[h].Field1.linkTitle = copyStringRC1(key.linkTitle);
	if (T3_) nimGCunrefNoCycle(T3_);
	T4_ = (NimStringDesc*)0;
	T4_ = (*data)->data[h].Field1.linkDesc; (*data)->data[h].Field1.linkDesc = copyStringRC1(key.linkDesc);
	if (T4_) nimGCunrefNoCycle(T4_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTI_5PunAJrNQYcB8dF0jau3pQ_));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}

N_LIB_PRIVATE N_NIMCALL(void, enlarge_bYy9bKTH7krTyVnrGJtBKbg)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ* t) {
	tySequence_wAC0kXbVGkLoWP8vdi0sUw* n;
	NI T1_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_157;
	tySequence_wAC0kXbVGkLoWP8vdi0sUw* T2_;
	n = (tySequence_wAC0kXbVGkLoWP8vdi0sUw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM_4SoG2KRQy3oMm9aUzSLtGrA_157 = mulInt(T1_, ((NI) 2));
	n = (tySequence_wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI_wAC0kXbVGkLoWP8vdi0sUw_), ((NI)chckRange((NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_157), ((NI) 0), ((NI) 2147483647))));
	T2_ = (tySequence_wAC0kXbVGkLoWP8vdi0sUw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM_4SoG2KRQy3oMm9aUzSLtGrA_158;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg T17_;
					tySequence_5PunAJrNQYcB8dF0jau3pQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimZeroMem((void*)(&T17_), sizeof(tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg));
					T17_.keyword = n->data[i].Field1.keyword;
					T17_.link = n->data[i].Field1.link;
					T17_.linkTitle = n->data[i].Field1.linkTitle;
					T17_.linkDesc = n->data[i].Field1.linkDesc;
					chckNil((void*)(&n->data[i].Field1));
					genericReset((void*)(&n->data[i].Field1), (&NTI_G9ccBDFWfr9aYnLgXTNGDHDg_));
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tySequence_5PunAJrNQYcB8dF0jau3pQ*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_5biQFmkRUjJPNto9cNutA9bw(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM_4SoG2KRQy3oMm9aUzSLtGrA_158 = addInt(res, ((NI) 1));
				res = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_158);
			} LA6: ;
		}
	}
}

static N_INLINE(NI, rawGetKnownHC_Y4x6AL1DTZHSh9bv7PGnpCwtables)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ t, tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg key, NI hc) {
	NI result;
	NI h;
	NI T6_;
	NI TM_4SoG2KRQy3oMm9aUzSLtGrA_159;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqeq__Z149cxs9a8jIB6voh7d344JA(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM_4SoG2KRQy3oMm9aUzSLtGrA_159 = subInt(((NI) -1), h);
	result = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_159);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__7WMJi0xLR1wauzIPHncLMA)(tyObject_Table_XC01wkRgzAyOjTiapde7hQ* t, tyObject_IndexEntry_G9ccBDFWfr9aYnLgXTNGDHDg key, tySequence_5PunAJrNQYcB8dF0jau3pQ* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence_wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI_wAC0kXbVGkLoWP8vdi0sUw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_amoK2sCC6NAXbAYzoteO2wtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		genericSeqAssign((&(*t).data->data[index].Field2), val, (&NTI_5PunAJrNQYcB8dF0jau3pQ_));
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_160;
		NI TM_4SoG2KRQy3oMm9aUzSLtGrA_161;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence_wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI_wAC0kXbVGkLoWP8vdi0sUw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash_qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge_bYy9bKTH7krTyVnrGJtBKbg(t);
			index = rawGetKnownHC_Y4x6AL1DTZHSh9bv7PGnpCwtables((*t), key, hc);
		}
		LA30_: ;
		TM_4SoG2KRQy3oMm9aUzSLtGrA_160 = subInt(((NI) -1), index);
		index = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_160);
		rawInsert_5biQFmkRUjJPNto9cNutA9bw(t, (&(*t).data), key, val, hc, index);
		TM_4SoG2KRQy3oMm9aUzSLtGrA_161 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM_4SoG2KRQy3oMm9aUzSLtGrA_161);
	}
	LA11_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_ClnyTfFp9avU9aBnPWcOgT9ag)(NI initialsize, tyObject_Table_fdKWDDO1P17zvuQPReVgRA* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_fdKWDDO1P17zvuQPReVgRA_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTI_fdmz6VkIf1ewwrssKYqRFg_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_GKbAyzls79aJH53Rdp9cY69aQ)(NI initialsize, tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_e2Ciu0s1q49aVQ7ULXy7l9bQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI_kxu4GK0onha2t9bo86mdVAg_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_BD1voGHFgw9cTaMEUDZTkBA)(NI initialsize, tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_0Y2brGGKD9bV6GJLXT9aUDgA_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_23SMqauuRsbDANhthj9bWlA*) newSeq((&NTI_23SMqauuRsbDANhthj9bWlA_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_4gKWosSSEKrQTYetb3J2tg)(NI initialsize, tyObject_Table_NttoEzoiq5CiphZe81oadg* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_NttoEzoiq5CiphZe81oadg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTI_squ9b9bUH4OLHf6cEMrt6hVA_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_sUlRM5BeKaouVpig0Fma9cg)(NI initialsize, tyObject_Table_nagDFX4QHx0s6Fvma9blmSg* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_nagDFX4QHx0s6Fvma9blmSg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTI_pHNq3oXj9av2sEUdqaqeZjw_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_wIu9bKdLWxwPU4gSjyDxfEQ)(NI initialsize, tyObject_Table_IioUJGdqPI6xC7S7QF8MBw* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_IioUJGdqPI6xC7S7QF8MBw_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_Qr6E8eH7btq79cFKGaJfGLw*) newSeq((&NTI_Qr6E8eH7btq79cFKGaJfGLw_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, initTable_5hsweKel3hdxwrwELhhPng)(NI initialsize, tyObject_Table_G1v8c16HePOldLeucwe05Q* Result) {
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_G1v8c16HePOldLeucwe05Q_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo_1xdTQapFveM9bImKot7h9cdw(initialsize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence_fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTI_fIB1rTQ55aFonoft9a9bmljQ_), ((NI)chckRange(initialsize, ((NI) 0), ((NI) 2147483647)))));
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_tablesDatInit000)(void) {
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_2_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_3_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_17_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_18_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_26_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_27_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_28_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_29_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_30_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_31_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_32_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_33_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_34_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_35_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_36_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_37_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_38_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_39_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_46_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_47_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_54_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_55_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_81_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_82_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_94_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_95_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_96_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_97_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_98_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_99_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_100_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_138_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_139_3[3];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_140_4[4];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_141_4[4];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_154_2[2];
static TNimNode* TM_4SoG2KRQy3oMm9aUzSLtGrA_155_3[3];
static TNimNode TM_4SoG2KRQy3oMm9aUzSLtGrA_0[133];
NTI_GpIQt2f0xrasZObyH6X8bg_.size = sizeof(tyObject_Table_GpIQt2f0xrasZObyH6X8bg);
NTI_GpIQt2f0xrasZObyH6X8bg_.kind = 18;
NTI_GpIQt2f0xrasZObyH6X8bg_.base = 0;
NTI_GpIQt2f0xrasZObyH6X8bg_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_2_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[1];
NTI_aGv2fk9ceddvdC01ZJC2Q2g_.size = sizeof(tyTuple_aGv2fk9ceddvdC01ZJC2Q2g);
NTI_aGv2fk9ceddvdC01ZJC2Q2g_.kind = 18;
NTI_aGv2fk9ceddvdC01ZJC2Q2g_.base = 0;
NTI_aGv2fk9ceddvdC01ZJC2Q2g_.flags = 3;
TM_4SoG2KRQy3oMm9aUzSLtGrA_3_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[3];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[3].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[3].offset = offsetof(tyTuple_aGv2fk9ceddvdC01ZJC2Q2g, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[3].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[3].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_3_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[4];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[4].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[4].offset = offsetof(tyTuple_aGv2fk9ceddvdC01ZJC2Q2g, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[4].typ = (&NTI_vr5DoT1jILTGdRlYv1OYpw_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[4].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_3_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[5];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[5].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[5].offset = offsetof(tyTuple_aGv2fk9ceddvdC01ZJC2Q2g, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[5].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[5].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[2].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[2].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[2].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_3_3[0];
NTI_aGv2fk9ceddvdC01ZJC2Q2g_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[2];
NTI_9chP3SzkaldXzawWQCDsqqg_.size = sizeof(tySequence_9chP3SzkaldXzawWQCDsqqg*);
NTI_9chP3SzkaldXzawWQCDsqqg_.kind = 24;
NTI_9chP3SzkaldXzawWQCDsqqg_.base = (&NTI_aGv2fk9ceddvdC01ZJC2Q2g_);
NTI_9chP3SzkaldXzawWQCDsqqg_.flags = 2;
NTI_9chP3SzkaldXzawWQCDsqqg_.marker = Marker_tySequence_9chP3SzkaldXzawWQCDsqqg;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[1].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[1].offset = offsetof(tyObject_Table_GpIQt2f0xrasZObyH6X8bg, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[1].typ = (&NTI_9chP3SzkaldXzawWQCDsqqg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[1].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_2_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[6];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[6].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[6].offset = offsetof(tyObject_Table_GpIQt2f0xrasZObyH6X8bg, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[6].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[6].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[0].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[0].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[0].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_2_2[0];
NTI_GpIQt2f0xrasZObyH6X8bg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[0];
NTI_Ab4q9c36aMR4mtkEOIBzdzA_.size = sizeof(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA);
NTI_Ab4q9c36aMR4mtkEOIBzdzA_.kind = 18;
NTI_Ab4q9c36aMR4mtkEOIBzdzA_.base = 0;
NTI_Ab4q9c36aMR4mtkEOIBzdzA_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_17_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[8];
NTI_xYhUhS7X82rKTqbT9bRfCnw_.size = sizeof(tyTuple_xYhUhS7X82rKTqbT9bRfCnw);
NTI_xYhUhS7X82rKTqbT9bRfCnw_.kind = 18;
NTI_xYhUhS7X82rKTqbT9bRfCnw_.base = 0;
NTI_xYhUhS7X82rKTqbT9bRfCnw_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_18_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[10];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[10].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[10].offset = offsetof(tyTuple_xYhUhS7X82rKTqbT9bRfCnw, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[10].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[10].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_18_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[11];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[11].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[11].offset = offsetof(tyTuple_xYhUhS7X82rKTqbT9bRfCnw, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[11].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[11].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_18_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[12];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[12].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[12].offset = offsetof(tyTuple_xYhUhS7X82rKTqbT9bRfCnw, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[12].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[12].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[9].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[9].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[9].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_18_3[0];
NTI_xYhUhS7X82rKTqbT9bRfCnw_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[9];
NTI_7lEisrXlQEzwtUKW5pzRCw_.size = sizeof(tySequence_7lEisrXlQEzwtUKW5pzRCw*);
NTI_7lEisrXlQEzwtUKW5pzRCw_.kind = 24;
NTI_7lEisrXlQEzwtUKW5pzRCw_.base = (&NTI_xYhUhS7X82rKTqbT9bRfCnw_);
NTI_7lEisrXlQEzwtUKW5pzRCw_.flags = 2;
NTI_7lEisrXlQEzwtUKW5pzRCw_.marker = Marker_tySequence_7lEisrXlQEzwtUKW5pzRCw;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[8].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[8].offset = offsetof(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[8].typ = (&NTI_7lEisrXlQEzwtUKW5pzRCw_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[8].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_17_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[13];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[13].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[13].offset = offsetof(tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[13].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[13].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[7].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[7].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[7].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_17_2[0];
NTI_Ab4q9c36aMR4mtkEOIBzdzA_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[7];
NTI_fdKWDDO1P17zvuQPReVgRA_.size = sizeof(tyObject_Table_fdKWDDO1P17zvuQPReVgRA);
NTI_fdKWDDO1P17zvuQPReVgRA_.kind = 18;
NTI_fdKWDDO1P17zvuQPReVgRA_.base = 0;
NTI_fdKWDDO1P17zvuQPReVgRA_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_26_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[15];
NTI_1mtQ8sCEE7DbfIuQciv9b5Q_.size = sizeof(tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q);
NTI_1mtQ8sCEE7DbfIuQciv9b5Q_.kind = 18;
NTI_1mtQ8sCEE7DbfIuQciv9b5Q_.base = 0;
NTI_1mtQ8sCEE7DbfIuQciv9b5Q_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_27_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[17];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[17].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[17].offset = offsetof(tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[17].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[17].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_27_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[18];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[18].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[18].offset = offsetof(tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[18].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[18].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_27_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[19];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[19].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[19].offset = offsetof(tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[19].typ = (&NTI_48JTohSgTy339bRxHzUD8KA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[19].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[16].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[16].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[16].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_27_3[0];
NTI_1mtQ8sCEE7DbfIuQciv9b5Q_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[16];
NTI_fdmz6VkIf1ewwrssKYqRFg_.size = sizeof(tySequence_fdmz6VkIf1ewwrssKYqRFg*);
NTI_fdmz6VkIf1ewwrssKYqRFg_.kind = 24;
NTI_fdmz6VkIf1ewwrssKYqRFg_.base = (&NTI_1mtQ8sCEE7DbfIuQciv9b5Q_);
NTI_fdmz6VkIf1ewwrssKYqRFg_.flags = 2;
NTI_fdmz6VkIf1ewwrssKYqRFg_.marker = Marker_tySequence_fdmz6VkIf1ewwrssKYqRFg;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[15].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[15].offset = offsetof(tyObject_Table_fdKWDDO1P17zvuQPReVgRA, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[15].typ = (&NTI_fdmz6VkIf1ewwrssKYqRFg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[15].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_26_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[20];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[20].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[20].offset = offsetof(tyObject_Table_fdKWDDO1P17zvuQPReVgRA, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[20].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[20].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[14].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[14].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[14].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_26_2[0];
NTI_fdKWDDO1P17zvuQPReVgRA_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[14];
NTI_e2Ciu0s1q49aVQ7ULXy7l9bQ_.size = sizeof(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ);
NTI_e2Ciu0s1q49aVQ7ULXy7l9bQ_.kind = 18;
NTI_e2Ciu0s1q49aVQ7ULXy7l9bQ_.base = 0;
NTI_e2Ciu0s1q49aVQ7ULXy7l9bQ_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_28_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[22];
NTI_xDU9bZmv1ZbZkJDaATBekIQ_.size = sizeof(tyTuple_xDU9bZmv1ZbZkJDaATBekIQ);
NTI_xDU9bZmv1ZbZkJDaATBekIQ_.kind = 18;
NTI_xDU9bZmv1ZbZkJDaATBekIQ_.base = 0;
NTI_xDU9bZmv1ZbZkJDaATBekIQ_.flags = 3;
TM_4SoG2KRQy3oMm9aUzSLtGrA_29_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[24];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[24].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[24].offset = offsetof(tyTuple_xDU9bZmv1ZbZkJDaATBekIQ, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[24].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[24].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_29_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[25];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[25].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[25].offset = offsetof(tyTuple_xDU9bZmv1ZbZkJDaATBekIQ, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[25].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[25].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_29_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[26];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[26].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[26].offset = offsetof(tyTuple_xDU9bZmv1ZbZkJDaATBekIQ, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[26].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[26].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[23].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[23].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[23].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_29_3[0];
NTI_xDU9bZmv1ZbZkJDaATBekIQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[23];
NTI_kxu4GK0onha2t9bo86mdVAg_.size = sizeof(tySequence_kxu4GK0onha2t9bo86mdVAg*);
NTI_kxu4GK0onha2t9bo86mdVAg_.kind = 24;
NTI_kxu4GK0onha2t9bo86mdVAg_.base = (&NTI_xDU9bZmv1ZbZkJDaATBekIQ_);
NTI_kxu4GK0onha2t9bo86mdVAg_.flags = 2;
NTI_kxu4GK0onha2t9bo86mdVAg_.marker = Marker_tySequence_kxu4GK0onha2t9bo86mdVAg;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[22].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[22].offset = offsetof(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[22].typ = (&NTI_kxu4GK0onha2t9bo86mdVAg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[22].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_28_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[27];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[27].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[27].offset = offsetof(tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[27].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[27].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[21].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[21].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[21].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_28_2[0];
NTI_e2Ciu0s1q49aVQ7ULXy7l9bQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[21];
NTI_IioUJGdqPI6xC7S7QF8MBw_.size = sizeof(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw);
NTI_IioUJGdqPI6xC7S7QF8MBw_.kind = 18;
NTI_IioUJGdqPI6xC7S7QF8MBw_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_30_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[29];
NTI_EkGTYRWQ6y9cppXTlT8Xm5g_.size = sizeof(tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g);
NTI_EkGTYRWQ6y9cppXTlT8Xm5g_.kind = 18;
NTI_EkGTYRWQ6y9cppXTlT8Xm5g_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_31_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[31];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[31].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[31].offset = offsetof(tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[31].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[31].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_31_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[32];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[32].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[32].offset = offsetof(tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[32].typ = (&NTI_qtqsWM5aXmcpMIVmvq3kAA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[32].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_31_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[33];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[33].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[33].offset = offsetof(tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[33].typ = (&NTI_AgIT5feFR9a9aoVjv9cx2rOtg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[33].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[30].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[30].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[30].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_31_3[0];
NTI_EkGTYRWQ6y9cppXTlT8Xm5g_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[30];
NTI_Qr6E8eH7btq79cFKGaJfGLw_.size = sizeof(tySequence_Qr6E8eH7btq79cFKGaJfGLw*);
NTI_Qr6E8eH7btq79cFKGaJfGLw_.kind = 24;
NTI_Qr6E8eH7btq79cFKGaJfGLw_.base = (&NTI_EkGTYRWQ6y9cppXTlT8Xm5g_);
NTI_Qr6E8eH7btq79cFKGaJfGLw_.marker = Marker_tySequence_Qr6E8eH7btq79cFKGaJfGLw;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[29].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[29].offset = offsetof(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[29].typ = (&NTI_Qr6E8eH7btq79cFKGaJfGLw_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[29].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_30_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[34];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[34].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[34].offset = offsetof(tyObject_Table_IioUJGdqPI6xC7S7QF8MBw, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[34].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[34].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[28].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[28].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[28].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_30_2[0];
NTI_IioUJGdqPI6xC7S7QF8MBw_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[28];
NTI_G1v8c16HePOldLeucwe05Q_.size = sizeof(tyObject_Table_G1v8c16HePOldLeucwe05Q);
NTI_G1v8c16HePOldLeucwe05Q_.kind = 18;
NTI_G1v8c16HePOldLeucwe05Q_.base = 0;
NTI_G1v8c16HePOldLeucwe05Q_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_32_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[36];
NTI_OJFzEczluV8Jmo9bRpBfkzw_.size = sizeof(tyTuple_OJFzEczluV8Jmo9bRpBfkzw);
NTI_OJFzEczluV8Jmo9bRpBfkzw_.kind = 18;
NTI_OJFzEczluV8Jmo9bRpBfkzw_.base = 0;
NTI_OJFzEczluV8Jmo9bRpBfkzw_.flags = 3;
TM_4SoG2KRQy3oMm9aUzSLtGrA_33_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[38];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[38].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[38].offset = offsetof(tyTuple_OJFzEczluV8Jmo9bRpBfkzw, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[38].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[38].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_33_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[39];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[39].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[39].offset = offsetof(tyTuple_OJFzEczluV8Jmo9bRpBfkzw, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[39].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[39].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_33_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[40];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[40].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[40].offset = offsetof(tyTuple_OJFzEczluV8Jmo9bRpBfkzw, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[40].typ = (&NTI_qtqsWM5aXmcpMIVmvq3kAA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[40].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[37].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[37].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[37].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_33_3[0];
NTI_OJFzEczluV8Jmo9bRpBfkzw_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[37];
NTI_fIB1rTQ55aFonoft9a9bmljQ_.size = sizeof(tySequence_fIB1rTQ55aFonoft9a9bmljQ*);
NTI_fIB1rTQ55aFonoft9a9bmljQ_.kind = 24;
NTI_fIB1rTQ55aFonoft9a9bmljQ_.base = (&NTI_OJFzEczluV8Jmo9bRpBfkzw_);
NTI_fIB1rTQ55aFonoft9a9bmljQ_.flags = 2;
NTI_fIB1rTQ55aFonoft9a9bmljQ_.marker = Marker_tySequence_fIB1rTQ55aFonoft9a9bmljQ;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[36].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[36].offset = offsetof(tyObject_Table_G1v8c16HePOldLeucwe05Q, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[36].typ = (&NTI_fIB1rTQ55aFonoft9a9bmljQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[36].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_32_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[41];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[41].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[41].offset = offsetof(tyObject_Table_G1v8c16HePOldLeucwe05Q, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[41].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[41].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[35].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[35].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[35].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_32_2[0];
NTI_G1v8c16HePOldLeucwe05Q_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[35];
NTI_0Y2brGGKD9bV6GJLXT9aUDgA_.size = sizeof(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA);
NTI_0Y2brGGKD9bV6GJLXT9aUDgA_.kind = 18;
NTI_0Y2brGGKD9bV6GJLXT9aUDgA_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_34_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[43];
NTI_2SGm9aGCXuo7XSQ9bqD29axXw_.size = sizeof(tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw);
NTI_2SGm9aGCXuo7XSQ9bqD29axXw_.kind = 18;
NTI_2SGm9aGCXuo7XSQ9bqD29axXw_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_35_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[45];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[45].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[45].offset = offsetof(tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[45].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[45].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_35_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[46];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[46].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[46].offset = offsetof(tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[46].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[46].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_35_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[47];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[47].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[47].offset = offsetof(tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[47].typ = (&NTI_fKfcLzXYiz5jNu3NH3Tv8Q_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[47].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[44].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[44].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[44].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_35_3[0];
NTI_2SGm9aGCXuo7XSQ9bqD29axXw_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[44];
NTI_23SMqauuRsbDANhthj9bWlA_.size = sizeof(tySequence_23SMqauuRsbDANhthj9bWlA*);
NTI_23SMqauuRsbDANhthj9bWlA_.kind = 24;
NTI_23SMqauuRsbDANhthj9bWlA_.base = (&NTI_2SGm9aGCXuo7XSQ9bqD29axXw_);
NTI_23SMqauuRsbDANhthj9bWlA_.marker = Marker_tySequence_23SMqauuRsbDANhthj9bWlA;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[43].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[43].offset = offsetof(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[43].typ = (&NTI_23SMqauuRsbDANhthj9bWlA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[43].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_34_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[48];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[48].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[48].offset = offsetof(tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[48].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[48].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[42].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[42].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[42].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_34_2[0];
NTI_0Y2brGGKD9bV6GJLXT9aUDgA_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[42];
NTI_NttoEzoiq5CiphZe81oadg_.size = sizeof(tyObject_Table_NttoEzoiq5CiphZe81oadg);
NTI_NttoEzoiq5CiphZe81oadg_.kind = 18;
NTI_NttoEzoiq5CiphZe81oadg_.base = 0;
NTI_NttoEzoiq5CiphZe81oadg_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_36_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[50];
NTI_F3gkSrMB1qp2Tvf9bixVXwg_.size = sizeof(tyTuple_F3gkSrMB1qp2Tvf9bixVXwg);
NTI_F3gkSrMB1qp2Tvf9bixVXwg_.kind = 18;
NTI_F3gkSrMB1qp2Tvf9bixVXwg_.base = 0;
NTI_F3gkSrMB1qp2Tvf9bixVXwg_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_37_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[52];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[52].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[52].offset = offsetof(tyTuple_F3gkSrMB1qp2Tvf9bixVXwg, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[52].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[52].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_37_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[53];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[53].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[53].offset = offsetof(tyTuple_F3gkSrMB1qp2Tvf9bixVXwg, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[53].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[53].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_37_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[54];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[54].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[54].offset = offsetof(tyTuple_F3gkSrMB1qp2Tvf9bixVXwg, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[54].typ = (&NTI_Aav8dQoMlCFnZRxA0IhTHQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[54].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[51].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[51].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[51].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_37_3[0];
NTI_F3gkSrMB1qp2Tvf9bixVXwg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[51];
NTI_squ9b9bUH4OLHf6cEMrt6hVA_.size = sizeof(tySequence_squ9b9bUH4OLHf6cEMrt6hVA*);
NTI_squ9b9bUH4OLHf6cEMrt6hVA_.kind = 24;
NTI_squ9b9bUH4OLHf6cEMrt6hVA_.base = (&NTI_F3gkSrMB1qp2Tvf9bixVXwg_);
NTI_squ9b9bUH4OLHf6cEMrt6hVA_.flags = 2;
NTI_squ9b9bUH4OLHf6cEMrt6hVA_.marker = Marker_tySequence_squ9b9bUH4OLHf6cEMrt6hVA;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[50].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[50].offset = offsetof(tyObject_Table_NttoEzoiq5CiphZe81oadg, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[50].typ = (&NTI_squ9b9bUH4OLHf6cEMrt6hVA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[50].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_36_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[55];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[55].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[55].offset = offsetof(tyObject_Table_NttoEzoiq5CiphZe81oadg, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[55].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[55].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[49].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[49].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[49].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_36_2[0];
NTI_NttoEzoiq5CiphZe81oadg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[49];
NTI_nagDFX4QHx0s6Fvma9blmSg_.size = sizeof(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg);
NTI_nagDFX4QHx0s6Fvma9blmSg_.kind = 18;
NTI_nagDFX4QHx0s6Fvma9blmSg_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_38_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[57];
NTI_wcNatyuf8WOqAhGLhSvgiw_.size = sizeof(tyTuple_wcNatyuf8WOqAhGLhSvgiw);
NTI_wcNatyuf8WOqAhGLhSvgiw_.kind = 18;
NTI_wcNatyuf8WOqAhGLhSvgiw_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_39_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[59];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[59].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[59].offset = offsetof(tyTuple_wcNatyuf8WOqAhGLhSvgiw, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[59].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[59].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_39_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[60];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[60].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[60].offset = offsetof(tyTuple_wcNatyuf8WOqAhGLhSvgiw, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[60].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[60].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_39_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[61];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[61].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[61].offset = offsetof(tyTuple_wcNatyuf8WOqAhGLhSvgiw, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[61].typ = (&NTI_VZdzO0Tlflp7WMN4gS8oPg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[61].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[58].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[58].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[58].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_39_3[0];
NTI_wcNatyuf8WOqAhGLhSvgiw_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[58];
NTI_pHNq3oXj9av2sEUdqaqeZjw_.size = sizeof(tySequence_pHNq3oXj9av2sEUdqaqeZjw*);
NTI_pHNq3oXj9av2sEUdqaqeZjw_.kind = 24;
NTI_pHNq3oXj9av2sEUdqaqeZjw_.base = (&NTI_wcNatyuf8WOqAhGLhSvgiw_);
NTI_pHNq3oXj9av2sEUdqaqeZjw_.marker = Marker_tySequence_pHNq3oXj9av2sEUdqaqeZjw;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[57].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[57].offset = offsetof(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[57].typ = (&NTI_pHNq3oXj9av2sEUdqaqeZjw_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[57].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_38_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[62];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[62].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[62].offset = offsetof(tyObject_Table_nagDFX4QHx0s6Fvma9blmSg, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[62].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[62].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[56].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[56].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[56].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_38_2[0];
NTI_nagDFX4QHx0s6Fvma9blmSg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[56];
NTI_Os4it9bmHnOQtsd5CqH09aRQ_.size = sizeof(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ);
NTI_Os4it9bmHnOQtsd5CqH09aRQ_.kind = 18;
NTI_Os4it9bmHnOQtsd5CqH09aRQ_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_46_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[64];
NTI_YGgHblKlCINajXDZno8UTQ_.size = sizeof(tyTuple_YGgHblKlCINajXDZno8UTQ);
NTI_YGgHblKlCINajXDZno8UTQ_.kind = 18;
NTI_YGgHblKlCINajXDZno8UTQ_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_47_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[66];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[66].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[66].offset = offsetof(tyTuple_YGgHblKlCINajXDZno8UTQ, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[66].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[66].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_47_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[67];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[67].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[67].offset = offsetof(tyTuple_YGgHblKlCINajXDZno8UTQ, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[67].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[67].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_47_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[68];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[68].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[68].offset = offsetof(tyTuple_YGgHblKlCINajXDZno8UTQ, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[68].typ = (&NTI_AgIT5feFR9a9aoVjv9cx2rOtg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[68].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[65].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[65].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[65].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_47_3[0];
NTI_YGgHblKlCINajXDZno8UTQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[65];
NTI_hLW2w9a9bDM1AHB8BIrU3BYw_.size = sizeof(tySequence_hLW2w9a9bDM1AHB8BIrU3BYw*);
NTI_hLW2w9a9bDM1AHB8BIrU3BYw_.kind = 24;
NTI_hLW2w9a9bDM1AHB8BIrU3BYw_.base = (&NTI_YGgHblKlCINajXDZno8UTQ_);
NTI_hLW2w9a9bDM1AHB8BIrU3BYw_.marker = Marker_tySequence_hLW2w9a9bDM1AHB8BIrU3BYw;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[64].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[64].offset = offsetof(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[64].typ = (&NTI_hLW2w9a9bDM1AHB8BIrU3BYw_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[64].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_46_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[69];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[69].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[69].offset = offsetof(tyObject_Table_Os4it9bmHnOQtsd5CqH09aRQ, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[69].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[69].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[63].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[63].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[63].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_46_2[0];
NTI_Os4it9bmHnOQtsd5CqH09aRQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[63];
NTI_JrI9bTpOVccKpiJXKOskjFg_.size = sizeof(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg);
NTI_JrI9bTpOVccKpiJXKOskjFg_.kind = 18;
NTI_JrI9bTpOVccKpiJXKOskjFg_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_54_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[71];
NTI_Wymbvuvlf49clEgp9bKoFN9bw_.size = sizeof(tyTuple_Wymbvuvlf49clEgp9bKoFN9bw);
NTI_Wymbvuvlf49clEgp9bKoFN9bw_.kind = 18;
NTI_Wymbvuvlf49clEgp9bKoFN9bw_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_55_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[73];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[73].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[73].offset = offsetof(tyTuple_Wymbvuvlf49clEgp9bKoFN9bw, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[73].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[73].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_55_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[74];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[74].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[74].offset = offsetof(tyTuple_Wymbvuvlf49clEgp9bKoFN9bw, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[74].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[74].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_55_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[75];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[75].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[75].offset = offsetof(tyTuple_Wymbvuvlf49clEgp9bKoFN9bw, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[75].typ = (&NTI_fKfcLzXYiz5jNu3NH3Tv8Q_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[75].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[72].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[72].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[72].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_55_3[0];
NTI_Wymbvuvlf49clEgp9bKoFN9bw_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[72];
NTI_YuKuU17u5ApAIki23DK9bJw_.size = sizeof(tySequence_YuKuU17u5ApAIki23DK9bJw*);
NTI_YuKuU17u5ApAIki23DK9bJw_.kind = 24;
NTI_YuKuU17u5ApAIki23DK9bJw_.base = (&NTI_Wymbvuvlf49clEgp9bKoFN9bw_);
NTI_YuKuU17u5ApAIki23DK9bJw_.marker = Marker_tySequence_YuKuU17u5ApAIki23DK9bJw;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[71].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[71].offset = offsetof(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[71].typ = (&NTI_YuKuU17u5ApAIki23DK9bJw_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[71].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_54_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[76];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[76].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[76].offset = offsetof(tyObject_Table_JrI9bTpOVccKpiJXKOskjFg, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[76].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[76].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[70].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[70].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[70].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_54_2[0];
NTI_JrI9bTpOVccKpiJXKOskjFg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[70];
NTI_7O9bs4LORhqcR0JGh7d1MDg_.size = sizeof(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg);
NTI_7O9bs4LORhqcR0JGh7d1MDg_.kind = 18;
NTI_7O9bs4LORhqcR0JGh7d1MDg_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_81_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[78];
NTI_8jHm6IGDGecciKpp2bTNxA_.size = sizeof(tyTuple_8jHm6IGDGecciKpp2bTNxA);
NTI_8jHm6IGDGecciKpp2bTNxA_.kind = 18;
NTI_8jHm6IGDGecciKpp2bTNxA_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_82_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[80];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[80].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[80].offset = offsetof(tyTuple_8jHm6IGDGecciKpp2bTNxA, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[80].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[80].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_82_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[81];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[81].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[81].offset = offsetof(tyTuple_8jHm6IGDGecciKpp2bTNxA, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[81].typ = (&NTI_Aav8dQoMlCFnZRxA0IhTHQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[81].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_82_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[82];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[82].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[82].offset = offsetof(tyTuple_8jHm6IGDGecciKpp2bTNxA, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[82].typ = (&NTI_fKfcLzXYiz5jNu3NH3Tv8Q_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[82].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[79].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[79].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[79].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_82_3[0];
NTI_8jHm6IGDGecciKpp2bTNxA_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[79];
NTI_s12F9c4cKfaapm8VzG9a1flQ_.size = sizeof(tySequence_s12F9c4cKfaapm8VzG9a1flQ*);
NTI_s12F9c4cKfaapm8VzG9a1flQ_.kind = 24;
NTI_s12F9c4cKfaapm8VzG9a1flQ_.base = (&NTI_8jHm6IGDGecciKpp2bTNxA_);
NTI_s12F9c4cKfaapm8VzG9a1flQ_.marker = Marker_tySequence_s12F9c4cKfaapm8VzG9a1flQ;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[78].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[78].offset = offsetof(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[78].typ = (&NTI_s12F9c4cKfaapm8VzG9a1flQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[78].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_81_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[83];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[83].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[83].offset = offsetof(tyObject_Table_7O9bs4LORhqcR0JGh7d1MDg, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[83].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[83].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[77].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[77].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[77].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_81_2[0];
NTI_7O9bs4LORhqcR0JGh7d1MDg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[77];
NTI_gZ3EYQdz9coOB7ngN9a1cqwA_.size = sizeof(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA);
NTI_gZ3EYQdz9coOB7ngN9a1cqwA_.kind = 18;
NTI_gZ3EYQdz9coOB7ngN9a1cqwA_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_94_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[85];
NTI_wROVfG5RQYpjEAhvO3LqdQ_.size = sizeof(tyTuple_wROVfG5RQYpjEAhvO3LqdQ);
NTI_wROVfG5RQYpjEAhvO3LqdQ_.kind = 18;
NTI_wROVfG5RQYpjEAhvO3LqdQ_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_95_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[87];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[87].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[87].offset = offsetof(tyTuple_wROVfG5RQYpjEAhvO3LqdQ, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[87].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[87].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_95_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[88];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[88].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[88].offset = offsetof(tyTuple_wROVfG5RQYpjEAhvO3LqdQ, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[88].typ = (&NTI_qtqsWM5aXmcpMIVmvq3kAA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[88].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_95_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[89];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[89].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[89].offset = offsetof(tyTuple_wROVfG5RQYpjEAhvO3LqdQ, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[89].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[89].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[86].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[86].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[86].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_95_3[0];
NTI_wROVfG5RQYpjEAhvO3LqdQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[86];
NTI_sII3pVVRkIdBZ2HDPdZddA_.size = sizeof(tySequence_sII3pVVRkIdBZ2HDPdZddA*);
NTI_sII3pVVRkIdBZ2HDPdZddA_.kind = 24;
NTI_sII3pVVRkIdBZ2HDPdZddA_.base = (&NTI_wROVfG5RQYpjEAhvO3LqdQ_);
NTI_sII3pVVRkIdBZ2HDPdZddA_.marker = Marker_tySequence_sII3pVVRkIdBZ2HDPdZddA;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[85].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[85].offset = offsetof(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[85].typ = (&NTI_sII3pVVRkIdBZ2HDPdZddA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[85].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_94_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[90];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[90].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[90].offset = offsetof(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[90].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[90].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[84].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[84].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[84].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_94_2[0];
NTI_gZ3EYQdz9coOB7ngN9a1cqwA_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[84];
NTI_chlLjy9bvnFM9b9bSZfiIkyGg_.size = sizeof(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg);
NTI_chlLjy9bvnFM9b9bSZfiIkyGg_.kind = 18;
NTI_chlLjy9bvnFM9b9bSZfiIkyGg_.base = 0;
NTI_chlLjy9bvnFM9b9bSZfiIkyGg_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_96_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[92];
NTI_jwzrUFjG9akTIJTBBFvvqxw_.size = sizeof(tySequence_jwzrUFjG9akTIJTBBFvvqxw*);
NTI_jwzrUFjG9akTIJTBBFvvqxw_.kind = 24;
NTI_jwzrUFjG9akTIJTBBFvvqxw_.base = (&NTI_XOVT24GHXwqiEj5GCsEGCA_);
NTI_jwzrUFjG9akTIJTBBFvvqxw_.flags = 2;
NTI_jwzrUFjG9akTIJTBBFvvqxw_.marker = Marker_tySequence_jwzrUFjG9akTIJTBBFvvqxw;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[92].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[92].offset = offsetof(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[92].typ = (&NTI_jwzrUFjG9akTIJTBBFvvqxw_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[92].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_96_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[93];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[93].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[93].offset = offsetof(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[93].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[93].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_96_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[94];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[94].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[94].offset = offsetof(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg, isSorted);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[94].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[94].name = "isSorted";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[91].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[91].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[91].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_96_3[0];
NTI_chlLjy9bvnFM9b9bSZfiIkyGg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[91];
NTI_tUMxxU9cRgLolsrW9b7IBGsQ_.size = sizeof(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ);
NTI_tUMxxU9cRgLolsrW9b7IBGsQ_.kind = 18;
NTI_tUMxxU9cRgLolsrW9b7IBGsQ_.base = 0;
NTI_tUMxxU9cRgLolsrW9b7IBGsQ_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_97_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[96];
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg_.size = sizeof(tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg);
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg_.kind = 18;
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg_.base = 0;
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg_.flags = 3;
TM_4SoG2KRQy3oMm9aUzSLtGrA_98_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[98];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[98].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[98].offset = offsetof(tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[98].typ = (&NTI_qtqsWM5aXmcpMIVmvq3kAA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[98].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_98_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[99];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[99].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[99].offset = offsetof(tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[99].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[99].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[97].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[97].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[97].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_98_2[0];
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[97];
NTI_XUL1TrMU0tgXmaMFCIYgFQ_.size = sizeof(tySequence_XUL1TrMU0tgXmaMFCIYgFQ*);
NTI_XUL1TrMU0tgXmaMFCIYgFQ_.kind = 24;
NTI_XUL1TrMU0tgXmaMFCIYgFQ_.base = (&NTI_tA7Q8IrfOKH7Mn89cK9cBAIg_);
NTI_XUL1TrMU0tgXmaMFCIYgFQ_.flags = 2;
NTI_XUL1TrMU0tgXmaMFCIYgFQ_.marker = Marker_tySequence_XUL1TrMU0tgXmaMFCIYgFQ;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[96].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[96].offset = offsetof(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[96].typ = (&NTI_XUL1TrMU0tgXmaMFCIYgFQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[96].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_97_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[100];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[100].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[100].offset = offsetof(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[100].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[100].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_97_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[101];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[101].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[101].offset = offsetof(tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ, isSorted);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[101].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[101].name = "isSorted";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[95].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[95].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[95].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_97_3[0];
NTI_tUMxxU9cRgLolsrW9b7IBGsQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[95];
NTI_6nOsw5R7jH72bux7HSST9bg_.size = sizeof(tyObject_Table_6nOsw5R7jH72bux7HSST9bg);
NTI_6nOsw5R7jH72bux7HSST9bg_.kind = 18;
NTI_6nOsw5R7jH72bux7HSST9bg_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_99_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[103];
NTI_4keOEuB8uAwYehpErwqI9ag_.size = sizeof(tyTuple_4keOEuB8uAwYehpErwqI9ag);
NTI_4keOEuB8uAwYehpErwqI9ag_.kind = 18;
NTI_4keOEuB8uAwYehpErwqI9ag_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_100_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[105];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[105].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[105].offset = offsetof(tyTuple_4keOEuB8uAwYehpErwqI9ag, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[105].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[105].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_100_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[106];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[106].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[106].offset = offsetof(tyTuple_4keOEuB8uAwYehpErwqI9ag, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[106].typ = (&NTI_qtqsWM5aXmcpMIVmvq3kAA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[106].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_100_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[107];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[107].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[107].offset = offsetof(tyTuple_4keOEuB8uAwYehpErwqI9ag, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[107].typ = (&NTI_Iz0jrTw3w7v6sMzjrqs0nA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[107].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[104].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[104].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[104].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_100_3[0];
NTI_4keOEuB8uAwYehpErwqI9ag_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[104];
NTI_diqJJ1bWuFP7M6rQDS9cBLQ_.size = sizeof(tySequence_diqJJ1bWuFP7M6rQDS9cBLQ*);
NTI_diqJJ1bWuFP7M6rQDS9cBLQ_.kind = 24;
NTI_diqJJ1bWuFP7M6rQDS9cBLQ_.base = (&NTI_4keOEuB8uAwYehpErwqI9ag_);
NTI_diqJJ1bWuFP7M6rQDS9cBLQ_.marker = Marker_tySequence_diqJJ1bWuFP7M6rQDS9cBLQ;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[103].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[103].offset = offsetof(tyObject_Table_6nOsw5R7jH72bux7HSST9bg, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[103].typ = (&NTI_diqJJ1bWuFP7M6rQDS9cBLQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[103].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_99_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[108];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[108].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[108].offset = offsetof(tyObject_Table_6nOsw5R7jH72bux7HSST9bg, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[108].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[108].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[102].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[102].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[102].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_99_2[0];
NTI_6nOsw5R7jH72bux7HSST9bg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[102];
NTI_i55W8RrwGKsG9cl0sAKxgkQ_.size = sizeof(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ);
NTI_i55W8RrwGKsG9cl0sAKxgkQ_.kind = 18;
NTI_i55W8RrwGKsG9cl0sAKxgkQ_.base = 0;
NTI_i55W8RrwGKsG9cl0sAKxgkQ_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_138_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[110];
NTI_sr3s7uVHpu9cEbbDnCSg8yQ_.size = sizeof(tyTuple_sr3s7uVHpu9cEbbDnCSg8yQ);
NTI_sr3s7uVHpu9cEbbDnCSg8yQ_.kind = 18;
NTI_sr3s7uVHpu9cEbbDnCSg8yQ_.base = 0;
NTI_sr3s7uVHpu9cEbbDnCSg8yQ_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_139_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[112];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[112].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[112].offset = offsetof(tyTuple_sr3s7uVHpu9cEbbDnCSg8yQ, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[112].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[112].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_139_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[113];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[113].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[113].offset = offsetof(tyTuple_sr3s7uVHpu9cEbbDnCSg8yQ, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[113].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[113].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_139_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[114];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[114].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[114].offset = offsetof(tyTuple_sr3s7uVHpu9cEbbDnCSg8yQ, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[114].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[114].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[111].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[111].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[111].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_139_3[0];
NTI_sr3s7uVHpu9cEbbDnCSg8yQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[111];
NTI_pUxI6Ljo6IKKHXKOZkQ7Og_.size = sizeof(tySequence_pUxI6Ljo6IKKHXKOZkQ7Og*);
NTI_pUxI6Ljo6IKKHXKOZkQ7Og_.kind = 24;
NTI_pUxI6Ljo6IKKHXKOZkQ7Og_.base = (&NTI_sr3s7uVHpu9cEbbDnCSg8yQ_);
NTI_pUxI6Ljo6IKKHXKOZkQ7Og_.flags = 2;
NTI_pUxI6Ljo6IKKHXKOZkQ7Og_.marker = Marker_tySequence_pUxI6Ljo6IKKHXKOZkQ7Og;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[110].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[110].offset = offsetof(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[110].typ = (&NTI_pUxI6Ljo6IKKHXKOZkQ7Og_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[110].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_138_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[115];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[115].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[115].offset = offsetof(tyObject_Table_i55W8RrwGKsG9cl0sAKxgkQ, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[115].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[115].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[109].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[109].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[109].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_138_2[0];
NTI_i55W8RrwGKsG9cl0sAKxgkQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[109];
NTI_ZZvSdVkA2s2sIyifu4cpkg_.size = sizeof(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg);
NTI_ZZvSdVkA2s2sIyifu4cpkg_.kind = 18;
NTI_ZZvSdVkA2s2sIyifu4cpkg_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_140_4[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[117];
NTI_awOivLjlO76sGdHY7nQUjQ_.size = sizeof(tyTuple_awOivLjlO76sGdHY7nQUjQ);
NTI_awOivLjlO76sGdHY7nQUjQ_.kind = 18;
NTI_awOivLjlO76sGdHY7nQUjQ_.base = 0;
TM_4SoG2KRQy3oMm9aUzSLtGrA_141_4[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[119];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[119].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[119].offset = offsetof(tyTuple_awOivLjlO76sGdHY7nQUjQ, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[119].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[119].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_141_4[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[120];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[120].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[120].offset = offsetof(tyTuple_awOivLjlO76sGdHY7nQUjQ, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[120].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[120].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_141_4[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[121];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[121].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[121].offset = offsetof(tyTuple_awOivLjlO76sGdHY7nQUjQ, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[121].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[121].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_141_4[3] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[122];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[122].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[122].offset = offsetof(tyTuple_awOivLjlO76sGdHY7nQUjQ, Field3);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[122].typ = (&NTI_zfzzuQ8txrdZAYK0WGWpHg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[122].name = "Field3";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[118].len = 4; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[118].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[118].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_141_4[0];
NTI_awOivLjlO76sGdHY7nQUjQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[118];
NTI_MlAD6nAPq9bHKla9cWiIZP0g_.size = sizeof(tySequence_MlAD6nAPq9bHKla9cWiIZP0g*);
NTI_MlAD6nAPq9bHKla9cWiIZP0g_.kind = 24;
NTI_MlAD6nAPq9bHKla9cWiIZP0g_.base = (&NTI_awOivLjlO76sGdHY7nQUjQ_);
NTI_MlAD6nAPq9bHKla9cWiIZP0g_.marker = Marker_tySequence_MlAD6nAPq9bHKla9cWiIZP0g;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[117].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[117].offset = offsetof(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[117].typ = (&NTI_MlAD6nAPq9bHKla9cWiIZP0g_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[117].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_140_4[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[123];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[123].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[123].offset = offsetof(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[123].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[123].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_140_4[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[124];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[124].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[124].offset = offsetof(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg, first);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[124].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[124].name = "first";
TM_4SoG2KRQy3oMm9aUzSLtGrA_140_4[3] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[125];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[125].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[125].offset = offsetof(tyObject_OrderedTable_ZZvSdVkA2s2sIyifu4cpkg, last);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[125].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[125].name = "last";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[116].len = 4; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[116].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[116].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_140_4[0];
NTI_ZZvSdVkA2s2sIyifu4cpkg_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[116];
NTI_XC01wkRgzAyOjTiapde7hQ_.size = sizeof(tyObject_Table_XC01wkRgzAyOjTiapde7hQ);
NTI_XC01wkRgzAyOjTiapde7hQ_.kind = 18;
NTI_XC01wkRgzAyOjTiapde7hQ_.base = 0;
NTI_XC01wkRgzAyOjTiapde7hQ_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_154_2[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[127];
NTI_A9cRoiotm9actU8lLMnN9bYcw_.size = sizeof(tyTuple_A9cRoiotm9actU8lLMnN9bYcw);
NTI_A9cRoiotm9actU8lLMnN9bYcw_.kind = 18;
NTI_A9cRoiotm9actU8lLMnN9bYcw_.base = 0;
NTI_A9cRoiotm9actU8lLMnN9bYcw_.flags = 2;
TM_4SoG2KRQy3oMm9aUzSLtGrA_155_3[0] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[129];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[129].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[129].offset = offsetof(tyTuple_A9cRoiotm9actU8lLMnN9bYcw, Field0);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[129].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[129].name = "Field0";
TM_4SoG2KRQy3oMm9aUzSLtGrA_155_3[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[130];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[130].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[130].offset = offsetof(tyTuple_A9cRoiotm9actU8lLMnN9bYcw, Field1);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[130].typ = (&NTI_G9ccBDFWfr9aYnLgXTNGDHDg_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[130].name = "Field1";
TM_4SoG2KRQy3oMm9aUzSLtGrA_155_3[2] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[131];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[131].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[131].offset = offsetof(tyTuple_A9cRoiotm9actU8lLMnN9bYcw, Field2);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[131].typ = (&NTI_5PunAJrNQYcB8dF0jau3pQ_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[131].name = "Field2";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[128].len = 3; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[128].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[128].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_155_3[0];
NTI_A9cRoiotm9actU8lLMnN9bYcw_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[128];
NTI_wAC0kXbVGkLoWP8vdi0sUw_.size = sizeof(tySequence_wAC0kXbVGkLoWP8vdi0sUw*);
NTI_wAC0kXbVGkLoWP8vdi0sUw_.kind = 24;
NTI_wAC0kXbVGkLoWP8vdi0sUw_.base = (&NTI_A9cRoiotm9actU8lLMnN9bYcw_);
NTI_wAC0kXbVGkLoWP8vdi0sUw_.flags = 2;
NTI_wAC0kXbVGkLoWP8vdi0sUw_.marker = Marker_tySequence_wAC0kXbVGkLoWP8vdi0sUw;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[127].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[127].offset = offsetof(tyObject_Table_XC01wkRgzAyOjTiapde7hQ, data);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[127].typ = (&NTI_wAC0kXbVGkLoWP8vdi0sUw_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[127].name = "data";
TM_4SoG2KRQy3oMm9aUzSLtGrA_154_2[1] = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[132];
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[132].kind = 1;
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[132].offset = offsetof(tyObject_Table_XC01wkRgzAyOjTiapde7hQ, counter);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[132].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[132].name = "counter";
TM_4SoG2KRQy3oMm9aUzSLtGrA_0[126].len = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[126].kind = 2; TM_4SoG2KRQy3oMm9aUzSLtGrA_0[126].sons = &TM_4SoG2KRQy3oMm9aUzSLtGrA_154_2[0];
NTI_XC01wkRgzAyOjTiapde7hQ_.node = &TM_4SoG2KRQy3oMm9aUzSLtGrA_0[126];
}

