/* Generated by Nim Compiler v2.2.4 */
#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
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content;
typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg;
typedef struct tySequence__s3NGK5xFNK6fPmXupxoolA tySequence__s3NGK5xFNK6fPmXupxoolA;
typedef struct tySequence__s3NGK5xFNK6fPmXupxoolA_Content tySequence__s3NGK5xFNK6fPmXupxoolA_Content;
typedef struct tyTuple__FFspgHRWev9aDuj0fEpj9bUw tyTuple__FFspgHRWev9aDuj0fEpj9bUw;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag;
typedef struct tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ;
typedef struct tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag;
typedef struct tySequence__1I4GqOPEtd9ark9cZ2UT20tw tySequence__1I4GqOPEtd9ark9cZ2UT20tw;
typedef struct tySequence__1I4GqOPEtd9ark9cZ2UT20tw_Content tySequence__1I4GqOPEtd9ark9cZ2UT20tw_Content;
typedef struct tyTuple__PijKblgFKtbdIstVEwjmCw tyTuple__PijKblgFKtbdIstVEwjmCw;
typedef struct tySequence__WPcy3bORPBFlmk2KIq2pbQ tySequence__WPcy3bORPBFlmk2KIq2pbQ;
typedef struct tySequence__WPcy3bORPBFlmk2KIq2pbQ_Content tySequence__WPcy3bORPBFlmk2KIq2pbQ_Content;
typedef struct tyTuple__a1QJSSO0LTGR9bFH59c2xGCA tyTuple__a1QJSSO0LTGR9bFH59c2xGCA;
typedef struct tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ;
typedef struct tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A;
typedef struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tySequence__H9bHW2kkjp26MABVBZRr8Ig tySequence__H9bHW2kkjp26MABVBZRr8Ig;
typedef struct tySequence__H9bHW2kkjp26MABVBZRr8Ig_Content tySequence__H9bHW2kkjp26MABVBZRr8Ig_Content;
typedef struct tyTuple__EJOd8NnRbGOjqpW2d6uq2g tyTuple__EJOd8NnRbGOjqpW2d6uq2g;
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
  NI len; tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content* p;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
	NI Field0;
	NI Field1;
};
struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
	NI Field0;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
};
struct tySequence__s3NGK5xFNK6fPmXupxoolA {
  NI len; tySequence__s3NGK5xFNK6fPmXupxoolA_Content* p;
};
struct tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg {
	tySequence__s3NGK5xFNK6fPmXupxoolA data;
	NI counter;
};
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
struct tyTuple__FFspgHRWev9aDuj0fEpj9bUw {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	NI Field1;
};
struct tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag {
	NI Field0;
	tyTuple__FFspgHRWev9aDuj0fEpj9bUw Field1;
};
struct tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ {
	tySequence__Bis5AbpONWcIRrPyPJS8Yw data;
	NI counter;
};
struct tySequence__1I4GqOPEtd9ark9cZ2UT20tw {
  NI len; tySequence__1I4GqOPEtd9ark9cZ2UT20tw_Content* p;
};
struct tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag {
	tySequence__1I4GqOPEtd9ark9cZ2UT20tw data;
	NI counter;
};
struct tyTuple__PijKblgFKtbdIstVEwjmCw {
	NI Field0;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field1;
};
struct tySequence__WPcy3bORPBFlmk2KIq2pbQ {
  NI len; tySequence__WPcy3bORPBFlmk2KIq2pbQ_Content* p;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__a1QJSSO0LTGR9bFH59c2xGCA {
	NI Field0;
	tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
};
struct tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ {
	tySequence__WPcy3bORPBFlmk2KIq2pbQ data;
	NI counter;
};
struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
struct tySequence__H9bHW2kkjp26MABVBZRr8Ig {
  NI len; tySequence__H9bHW2kkjp26MABVBZRr8Ig_Content* p;
};
struct tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A {
	tySequence__H9bHW2kkjp26MABVBZRr8Ig data;
	NI counter;
};
struct tyTuple__EJOd8NnRbGOjqpW2d6uq2g {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content { NI cap; tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE]; };
struct tySequence__s3NGK5xFNK6fPmXupxoolA_Content { NI cap; tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag data[SEQ_DECL_SIZE]; };
struct tySequence__1I4GqOPEtd9ark9cZ2UT20tw_Content { NI cap; tyTuple__PijKblgFKtbdIstVEwjmCw data[SEQ_DECL_SIZE]; };
struct tySequence__WPcy3bORPBFlmk2KIq2pbQ_Content { NI cap; tyTuple__a1QJSSO0LTGR9bFH59c2xGCA data[SEQ_DECL_SIZE]; };
struct tySequence__H9bHW2kkjp26MABVBZRr8Ig_Content { NI cap; tyTuple__EJOd8NnRbGOjqpW2d6uq2g data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2627)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p_p0, NI align_p1);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, init__options_u1064)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, NI initialSize_p1);
static N_INLINE(NI, slotsNeeded__pureZcollectionsZsets_u51)(NI count_p0);
N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo__pureZmath_u256)(NI x_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__options_u1080)(tySequence__4eRCaZmrYLLw2k30GPTiMw* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__options_u2262)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0, NimStringV2 key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_u602)(NimStringV2 x_p0);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_u40)(NI hcode_p0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1);
static N_INLINE(NIM_BOOL, equalMem__system_u1726)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(NI, nextTry__pureZcollectionsZsets_u43)(NI h_p0, NI maxHash_p1);
static N_INLINE(NIM_BOOL, mustRehash__options_u2514)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__options_u2694)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0);
static N_INLINE(NI, rawGetKnownHC__options_u2929)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0, NimStringV2 key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__options_u3267)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, tySequence__4eRCaZmrYLLw2k30GPTiMw* data_p1, NimStringV2 key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2630)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u1203)(tySequence__4eRCaZmrYLLw2k30GPTiMw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, init__lookups_u812)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, NI initialSize_p1);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__lookups_u828)(tySequence__s3NGK5xFNK6fPmXupxoolA* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__lookups_u1073)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__lookups_u1080)(tyTuple__FFspgHRWev9aDuj0fEpj9bUw x_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___lookups_u1317)(tyTuple__FFspgHRWev9aDuj0fEpj9bUw x_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw y_p1);
static N_INLINE(NIM_BOOL, mustRehash__lookups_u1349)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lookups_u1547)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0);
static N_INLINE(NI, rawGetKnownHC__lookups_u1788)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lookups_u2136)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, tySequence__s3NGK5xFNK6fPmXupxoolA* data_p1, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u908)(tySequence__s3NGK5xFNK6fPmXupxoolA dest_p0);
static N_INLINE(NI, rawGet__sigmatch_u6764)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__sigmatch_u6771)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___sigmatch_u7011)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y_p1);
static N_INLINE(NI, rawGet__nilcheck_u6179)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__lineinfos_u258)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA i_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___msgs_u1099)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA a_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA b_p1);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__nilcheck_u6645)(tySequence__1I4GqOPEtd9ark9cZ2UT20tw* s_p0, NI len_p1);
static N_INLINE(NIM_BOOL, mustRehash__nilcheck_u6672)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nilcheck_u6870)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0);
static N_INLINE(NI, rawGetKnownHC__nilcheck_u7111)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nilcheck_u7455)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0, tySequence__1I4GqOPEtd9ark9cZ2UT20tw* data_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___nilcheck_u6437)(tySequence__1I4GqOPEtd9ark9cZ2UT20tw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__importer_u377)(tySequence__Bis5AbpONWcIRrPyPJS8Yw* s_p0, NI len_p1);
static N_INLINE(NIM_BOOL, mustRehash__importer_u404)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_u602)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0);
static N_INLINE(NI, rawGetKnownHC__importer_u843)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_u1191)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0, tySequence__Bis5AbpONWcIRrPyPJS8Yw* data_p1, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u3644)(tySequence__Bis5AbpONWcIRrPyPJS8Yw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__cgen_u6042)(tySequence__WPcy3bORPBFlmk2KIq2pbQ* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__cgen_u6062)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ t_p0, tyArray__qtqsWM5aXmcpMIVmvq3kAA key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__modulegraphs_u10744)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___modulegraphs_u10721)(tyArray__qtqsWM5aXmcpMIVmvq3kAA a_p0, tyArray__qtqsWM5aXmcpMIVmvq3kAA b_p1);
static N_INLINE(NIM_BOOL, mustRehash__cgen_u6317)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_u6515)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ* s_p0);
static N_INLINE(NI, rawGetKnownHC__cgen_u6756)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ t_p0, tyArray__qtqsWM5aXmcpMIVmvq3kAA key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_u7100)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ* s_p0, tySequence__WPcy3bORPBFlmk2KIq2pbQ* data_p1, tyArray__qtqsWM5aXmcpMIVmvq3kAA key_p2, NI hc_p3, NI h_p4);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___cgendata_u919)(tySequence__WPcy3bORPBFlmk2KIq2pbQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__icZintegrity_u138)(tySequence__H9bHW2kkjp26MABVBZRr8Ig* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__icZintegrity_u222)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__ast_u620)(tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA x_p0);
static N_INLINE(NIM_BOOL, eqeq___ast_u616)(tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA a_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA b_p1);
static N_INLINE(NIM_BOOL, mustRehash__icZintegrity_u524)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZintegrity_u710)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0);
static N_INLINE(NI, rawGetKnownHC__icZintegrity_u959)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZintegrity_u1319)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0, tySequence__H9bHW2kkjp26MABVBZRr8Ig* data_p1, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZintegrity_u487)(tySequence__H9bHW2kkjp26MABVBZRr8Ig dest_p0);
extern NIM_BOOL nimInErrorMode__system_u4306;
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u1203)(tySequence__4eRCaZmrYLLw2k30GPTiMw dest_p0) {
	NI colontmp_;
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T3_;
			T3_ = dest_p0.len;
			if (!(colontmp_ < T3_)) goto LA2;
			eqdestroy___system_u2627(dest_p0.p->data[colontmp_].Field1);
			colontmp_ += ((NI)1);
		} LA2: ;
	}
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__QeWl6B6ffS4pU6WWrtcrDw));
}
}
static N_INLINE(void, nimSetMem__systemZmemory_u7)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4306);
	return result;
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__systemZmemory_u7(p_p0, ((int)0), size_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, slotsNeeded__pureZcollectionsZsets_u51)(NI count_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	result = nextPowerOfTwo__pureZmath_u256((NI)((NI)((NI)(count_p0 / ((NI)2)) + count_p0) + ((NI)4)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u1158)(tyTuple__QeWl6B6ffS4pU6WWrtcrDw dest_p0) {
	eqdestroy___system_u2627(dest_p0.Field1);
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___options_u1155)(tyTuple__QeWl6B6ffS4pU6WWrtcrDw* dest_p0) {
	(*dest_p0).Field0 = 0;
	(*dest_p0).Field1.len = 0; (*dest_p0).Field1.p = NIM_NIL;
}
N_LIB_PRIVATE N_NIMCALL(void, init__options_u1064)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, NI initialSize_p1) {
	NI correctSizeX60gensym12__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	correctSizeX60gensym12__1 = slotsNeeded__pureZcollectionsZsets_u51((initialSize_p1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s_p0).counter = ((NI)0);
	newSeq__options_u1080((&(*s_p0).data), (correctSizeX60gensym12__1));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw, initHashSet__options_u1050)(NI initialSize_p0) {
	tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw));
	init__options_u1064((&result), initialSize_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_u40)(NI hcode_p0) {
	NIM_BOOL result;
	result = !((hcode_p0 == ((NI)0)));
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2) {
	int result;
	result = memcmp(a_p0, b_p1, ((size_t) (size_p2)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_u1726)(void* a_p0, void* b_p1, NI size_p2) {
	NIM_BOOL result;
	int T1_;
	T1_ = (int)0;
	T1_ = nimCmpMem(a_p0, b_p1, size_p2);
	result = (T1_ == ((NI32)0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NIM_BOOL result;
	NI alen_1;
	NI blen_1;
{	result = NIM_FALSE;
	alen_1 = a_p0.len;
	blen_1 = b_p1.len;
	{
		if (!(alen_1 == blen_1)) goto LA3_;
		{
			if (!(alen_1 == ((NI)0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
LA7_: ;
		result = equalMem__system_u1726(((void*) ((&a_p0.p->data[((NI)0)]))), ((void*) ((&b_p1.p->data[((NI)0)]))), (alen_1));
		goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, nextTry__pureZcollectionsZsets_u43)(NI h_p0, NI maxHash_p1) {
	NI result;
	result = (NI)((NI)(h_p0 + ((NI)1)) & maxHash_p1);
	return result;
}
static N_INLINE(NI, rawGet__options_u2262)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0, NimStringV2 key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__pureZhashes_u602(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqStrings(t_p0.data.p->data[h_1].Field1, key_p1);
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__options_u2514)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__options_u2929)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0, NimStringV2 key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t_p0.data.p->data[h_1].Field1, key_p1);
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__options_u3267)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, tySequence__4eRCaZmrYLLw2k30GPTiMw* data_p1, NimStringV2 key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym23__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym23__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__options_u1080((&(*s_p0).data), (correctSizeX60gensym23__1));
	}
LA4_: ;
	eqcopy___system_u2630((&(*data_p1).p->data[h_p4].Field1), key_p2);
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__options_u2694)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0) {
	tySequence__4eRCaZmrYLLw2k30GPTiMw n_1;
	NI T1_;
	tySequence__4eRCaZmrYLLw2k30GPTiMw T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__options_u1080((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__options_u2929((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw*)0;
					T13_ = s_p0;
					rawInsert__options_u3267(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___options_u1203(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__options_u2180)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, NimStringV2 key_p1) {
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym14__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym14__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__options_u1080((&(*s_p0).data), (correctSizeX60gensym14__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__options_u2262((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* T15_;
		if (!(index_1 < ((NI)0))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = mustRehash__options_u2514((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			enlarge__options_u2694(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__options_u2929((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
		T15_ = (tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw*)0;
		T15_ = s_p0;
		rawInsert__options_u3267(T15_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA8_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u3644)(tySequence__Bis5AbpONWcIRrPyPJS8Yw dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__NAaJgGVgNmlGoqmiWxdOHQ));
}
}
N_LIB_PRIVATE N_NIMCALL(void, init__lookups_u812)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, NI initialSize_p1) {
	NI correctSizeX60gensym39__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	correctSizeX60gensym39__1 = slotsNeeded__pureZcollectionsZsets_u51((initialSize_p1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s_p0).counter = ((NI)0);
	newSeq__lookups_u828((&(*s_p0).data), (correctSizeX60gensym39__1));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg, initHashSet__lookups_u798)(NI initialSize_p0) {
	tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg));
	init__lookups_u812((&result), initialSize_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__lookups_u1073)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__lookups_u1080(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___lookups_u1317(t_p0.data.p->data[h_1].Field1, key_p1);
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__lookups_u1349)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__lookups_u1788)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___lookups_u1317(t_p0.data.p->data[h_1].Field1, key_p1);
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lookups_u2136)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, tySequence__s3NGK5xFNK6fPmXupxoolA* data_p1, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym49__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym49__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__lookups_u828((&(*s_p0).data), (correctSizeX60gensym49__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u908)(tySequence__s3NGK5xFNK6fPmXupxoolA dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag));
}
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lookups_u1547)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0) {
	tySequence__s3NGK5xFNK6fPmXupxoolA n_1;
	NI T1_;
	tySequence__s3NGK5xFNK6fPmXupxoolA T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__lookups_u828((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__lookups_u1788((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg*)0;
					T13_ = s_p0;
					rawInsert__lookups_u2136(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___lookups_u908(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__lookups_u984)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym40__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym40__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__lookups_u828((&(*s_p0).data), (correctSizeX60gensym40__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__lookups_u1073((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) <= index_1)) goto LA8_;
		result = NIM_TRUE;
	}
	goto LA6_;
LA8_: ;
	{
		tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* T16_;
		result = NIM_FALSE;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = mustRehash__lookups_u1349((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T13_) goto LA14_;
			enlarge__lookups_u1547(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__lookups_u1788((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA14_: ;
		T16_ = (tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg*)0;
		T16_ = s_p0;
		rawInsert__lookups_u2136(T16_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u947)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg dest_p0) {
	eqdestroy___lookups_u908(dest_p0.data);
}
static N_INLINE(NI, rawGet__sigmatch_u6764)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__sigmatch_u6771(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___sigmatch_u7011(t_p0.data.p->data[h_1].Field1, key_p1);
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__sigmatch_u6751)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ s_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	hc_1 = (NI)0;
	index_1 = rawGet__sigmatch_u6764(s_p0, key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= index_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__nilcheck_u6179)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__lineinfos_u258(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___msgs_u1099(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__nilcheck_u6166)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag s_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	hc_1 = (NI)0;
	index_1 = rawGet__nilcheck_u6179(s_p0, key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= index_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__nilcheck_u6672)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__nilcheck_u7111)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___msgs_u1099(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nilcheck_u7455)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0, tySequence__1I4GqOPEtd9ark9cZ2UT20tw* data_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym56__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym56__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__nilcheck_u6645((&(*s_p0).data), (correctSizeX60gensym56__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___nilcheck_u6437)(tySequence__1I4GqOPEtd9ark9cZ2UT20tw dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__PijKblgFKtbdIstVEwjmCw));
}
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nilcheck_u6870)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0) {
	tySequence__1I4GqOPEtd9ark9cZ2UT20tw n_1;
	NI T1_;
	tySequence__1I4GqOPEtd9ark9cZ2UT20tw T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__nilcheck_u6645((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__nilcheck_u7111((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag*)0;
					T13_ = s_p0;
					rawInsert__nilcheck_u7455(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___nilcheck_u6437(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__nilcheck_u6569)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1) {
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym49__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym49__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__nilcheck_u6645((&(*s_p0).data), (correctSizeX60gensym49__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__nilcheck_u6179((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* T15_;
		if (!(index_1 < ((NI)0))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = mustRehash__nilcheck_u6672((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			enlarge__nilcheck_u6870(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__nilcheck_u7111((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
		T15_ = (tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag*)0;
		T15_ = s_p0;
		rawInsert__nilcheck_u7455(T15_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA8_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, mustRehash__importer_u404)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__importer_u843)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___sigmatch_u7011(t_p0.data.p->data[h_1].Field1, key_p1);
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_u1191)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0, tySequence__Bis5AbpONWcIRrPyPJS8Yw* data_p1, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym36__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym36__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__importer_u377((&(*s_p0).data), (correctSizeX60gensym36__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_u602)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0) {
	tySequence__Bis5AbpONWcIRrPyPJS8Yw n_1;
	NI T1_;
	tySequence__Bis5AbpONWcIRrPyPJS8Yw T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__importer_u377((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__importer_u843((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ*)0;
					T13_ = s_p0;
					rawInsert__importer_u1191(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___semdata_u3644(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__importer_u301)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1) {
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym29__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym29__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__importer_u377((&(*s_p0).data), (correctSizeX60gensym29__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__sigmatch_u6764((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* T15_;
		if (!(index_1 < ((NI)0))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = mustRehash__importer_u404((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			enlarge__importer_u602(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__importer_u843((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
		T15_ = (tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ*)0;
		T15_ = s_p0;
		rawInsert__importer_u1191(T15_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA8_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___cgendata_u919)(tySequence__WPcy3bORPBFlmk2KIq2pbQ dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__a1QJSSO0LTGR9bFH59c2xGCA));
}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__cgen_u836)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw s_p0, NimStringV2 key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	hc_1 = (NI)0;
	index_1 = rawGet__options_u2262(s_p0, key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= index_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__cgen_u6062)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ t_p0, tyArray__qtqsWM5aXmcpMIVmvq3kAA key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__modulegraphs_u10744(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___modulegraphs_u10721(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__cgen_u6317)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__cgen_u6756)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ t_p0, tyArray__qtqsWM5aXmcpMIVmvq3kAA key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___modulegraphs_u10721(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_u7100)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ* s_p0, tySequence__WPcy3bORPBFlmk2KIq2pbQ* data_p1, tyArray__qtqsWM5aXmcpMIVmvq3kAA key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym445__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym445__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__cgen_u6042((&(*s_p0).data), (correctSizeX60gensym445__1));
	}
LA4_: ;
	nimCopyMem((void*)(*data_p1).p->data[h_p4].Field1, (NIM_CONST void*)key_p2, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_u6515)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ* s_p0) {
	tySequence__WPcy3bORPBFlmk2KIq2pbQ n_1;
	NI T1_;
	tySequence__WPcy3bORPBFlmk2KIq2pbQ T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__cgen_u6042((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__cgen_u6756((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ*)0;
					T13_ = s_p0;
					rawInsert__cgen_u7100(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___cgendata_u919(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__cgen_u5965)(tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ* s_p0, tyArray__qtqsWM5aXmcpMIVmvq3kAA key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym436__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym436__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__cgen_u6042((&(*s_p0).data), (correctSizeX60gensym436__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__cgen_u6062((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) <= index_1)) goto LA8_;
		result = NIM_TRUE;
	}
	goto LA6_;
LA8_: ;
	{
		tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ* T16_;
		result = NIM_FALSE;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = mustRehash__cgen_u6317((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T13_) goto LA14_;
			enlarge__cgen_u6515(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__cgen_u6756((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA14_: ;
		T16_ = (tyObject_HashSet__FlWQAyWrgnXxBQHNEHhgLQ*)0;
		T16_ = s_p0;
		rawInsert__cgen_u7100(T16_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___ast_u616)(tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA a_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA b_p1) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (a_p0.item == b_p1.item);
	if (!(T1_)) goto LA2_;
	T1_ = (a_p0.module == b_p1.module);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGet__icZintegrity_u222)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__ast_u620(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___ast_u616(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZintegrity_u524)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__icZintegrity_u959)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_u616(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZintegrity_u1319)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0, tySequence__H9bHW2kkjp26MABVBZRr8Ig* data_p1, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym13__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym13__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__icZintegrity_u138((&(*s_p0).data), (correctSizeX60gensym13__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZintegrity_u487)(tySequence__H9bHW2kkjp26MABVBZRr8Ig dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__EJOd8NnRbGOjqpW2d6uq2g));
}
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZintegrity_u710)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0) {
	tySequence__H9bHW2kkjp26MABVBZRr8Ig n_1;
	NI T1_;
	tySequence__H9bHW2kkjp26MABVBZRr8Ig T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__icZintegrity_u138((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__icZintegrity_u959((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A*)0;
					T13_ = s_p0;
					rawInsert__icZintegrity_u1319(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___icZintegrity_u487(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__icZintegrity_u64)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym4__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym4__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__icZintegrity_u138((&(*s_p0).data), (correctSizeX60gensym4__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__icZintegrity_u222((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) <= index_1)) goto LA8_;
		result = NIM_TRUE;
	}
	goto LA6_;
LA8_: ;
	{
		tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* T16_;
		result = NIM_FALSE;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = mustRehash__icZintegrity_u524((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T13_) goto LA14_;
			enlarge__icZintegrity_u710(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__icZintegrity_u959((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA14_: ;
		T16_ = (tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A*)0;
		T16_ = s_p0;
		rawInsert__icZintegrity_u1319(T16_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__icZnavigator_u436)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, NimStringV2 key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym33__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym33__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__options_u1080((&(*s_p0).data), (correctSizeX60gensym33__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__options_u2262((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) <= index_1)) goto LA8_;
		result = NIM_TRUE;
	}
	goto LA6_;
LA8_: ;
	{
		tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* T16_;
		result = NIM_FALSE;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = mustRehash__options_u2514((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T13_) goto LA14_;
			enlarge__options_u2694(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__options_u2929((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA14_: ;
		T16_ = (tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw*)0;
		T16_ = s_p0;
		rawInsert__options_u3267(T16_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
