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

#include "nimbase.h"
#include <string.h>
typedef struct Table184428 Table184428;
typedef struct Keyvaluepairseq184431 Keyvaluepairseq184431;
typedef struct Keyvaluepair184434 Keyvaluepair184434;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Table254054 Table254054;
typedef struct Keyvaluepairseq254057 Keyvaluepairseq254057;
typedef struct Keyvaluepair254060 Keyvaluepair254060;
typedef struct Tsym216822 Tsym216822;
typedef struct Cell47304 Cell47304;
typedef struct Cellseq47320 Cellseq47320;
typedef struct Gcheap49618 Gcheap49618;
typedef struct Gcstack49616 Gcstack49616;
typedef struct Cellset47316 Cellset47316;
typedef struct Pagedesc47312 Pagedesc47312;
typedef struct Memregion29488 Memregion29488;
typedef struct Smallchunk29440 Smallchunk29440;
typedef struct Llchunk29482 Llchunk29482;
typedef struct Bigchunk29442 Bigchunk29442;
typedef struct Intset29414 Intset29414;
typedef struct Trunk29410 Trunk29410;
typedef struct Avlnode29486 Avlnode29486;
typedef struct Gcstat49614 Gcstat49614;
typedef struct Table382256 Table382256;
typedef struct Keyvaluepairseq382259 Keyvaluepairseq382259;
typedef struct Keyvaluepair382262 Keyvaluepair382262;
typedef struct Ttype216828 Ttype216828;
typedef struct Table383057 Table383057;
typedef struct Keyvaluepairseq383060 Keyvaluepairseq383060;
typedef struct Keyvaluepair383063 Keyvaluepair383063;
typedef struct Tnode216790 Tnode216790;
typedef struct Keyerror3648 Keyerror3648;
typedef struct Valueerror3646 Valueerror3646;
typedef struct Exception Exception;
typedef struct TNimObject TNimObject;
typedef struct Table328047 Table328047;
typedef struct Keyvaluepairseq328050 Keyvaluepairseq328050;
typedef struct Keyvaluepair328053 Keyvaluepair328053;
typedef struct Table400590 Table400590;
typedef struct Keyvaluepairseq400593 Keyvaluepairseq400593;
typedef struct Keyvaluepair400596 Keyvaluepair400596;
typedef struct Table329139 Table329139;
typedef struct Keyvaluepairseq329142 Keyvaluepairseq329142;
typedef struct Keyvaluepair329145 Keyvaluepair329145;
typedef struct Indexentry329126 Indexentry329126;
typedef struct TY331853 TY331853;
typedef struct Tidobj191006 Tidobj191006;
typedef struct Ttypeseq216824 Ttypeseq216824;
typedef struct Tscope216816 Tscope216816;
typedef struct TY216925 TY216925;
typedef struct Tstrtable216794 Tstrtable216794;
typedef struct Tsymseq216792 Tsymseq216792;
typedef struct Tident191012 Tident191012;
typedef struct Tlineinfo184337 Tlineinfo184337;
typedef struct Tloc216804 Tloc216804;
typedef struct Ropeobj172006 Ropeobj172006;
typedef struct Tlib216808 Tlib216808;
typedef struct Basechunk29438 Basechunk29438;
typedef struct Freecell29430 Freecell29430;
typedef struct Tnodeseq216784 Tnodeseq216784;
typedef struct Tinstantiation216812 Tinstantiation216812;
typedef struct Tlistentry138010 Tlistentry138010;
typedef struct TY216913 TY216913;
struct  Table184428  {
Keyvaluepairseq184431* data;
NI counter;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct Keyvaluepair184434 {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
typedef N_NIMCALL_PTR(void, TY3489) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3494) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3489 marker;
TY3494 deepcopy;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  Table254054  {
Keyvaluepairseq254057* data;
NI counter;
};
struct Keyvaluepair254060 {
NI Field0;
NI Field1;
Tsym216822* Field2;
};
struct  Cell47304  {
NI refcount;
TNimType* typ;
};
struct  Cellseq47320  {
NI len;
NI cap;
Cell47304** d;
};
struct  Cellset47316  {
NI counter;
NI max;
Pagedesc47312* head;
Pagedesc47312** data;
};
typedef Smallchunk29440* TY29503[512];
typedef Trunk29410* Trunkbuckets29412[256];
struct  Intset29414  {
Trunkbuckets29412 data;
};
struct  Memregion29488  {
NI minlargeobj;
NI maxlargeobj;
TY29503 freesmallchunks;
Llchunk29482* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk29442* freechunkslist;
Intset29414 chunkstarts;
Avlnode29486* root;
Avlnode29486* deleted;
Avlnode29486* last;
Avlnode29486* freeavlnodes;
};
struct  Gcstat49614  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Gcheap49618  {
Gcstack49616* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq47320 zct;
Cellseq47320 decstack;
Cellset47316 cycleroots;
Cellseq47320 tempstack;
NI recgclock;
Memregion29488 region;
Gcstat49614 stat;
};
struct  Table382256  {
Keyvaluepairseq382259* data;
NI counter;
};
struct Keyvaluepair382262 {
NI Field0;
NI Field1;
Ttype216828* Field2;
};
struct  Table383057  {
Keyvaluepairseq383060* data;
NI counter;
};
struct Keyvaluepair383063 {
NI Field0;
NI Field1;
Tnode216790* Field2;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
struct  Valueerror3646  {
  Exception Sup;
};
struct  Keyerror3648  {
  Valueerror3646 Sup;
};
struct  Table328047  {
Keyvaluepairseq328050* data;
NI counter;
};
struct Keyvaluepair328053 {
NI Field0;
NimStringDesc* Field1;
NI Field2;
};
struct  Table400590  {
Keyvaluepairseq400593* data;
NI counter;
};
struct Keyvaluepair400596 {
NI Field0;
NI64 Field1;
Tnode216790* Field2;
};
struct  Table329139  {
Keyvaluepairseq329142* data;
NI counter;
};
struct  Indexentry329126  {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linktitle;
NimStringDesc* linkdesc;
};
struct Keyvaluepair329145 {
NI Field0;
Indexentry329126 Field1;
TY331853* Field2;
};
struct  Tidobj191006  {
  TNimObject Sup;
NI id;
};
struct  Tstrtable216794  {
NI counter;
Tsymseq216792* data;
};
struct  Tlineinfo184337  {
NI16 line;
NI16 col;
NI32 fileindex;
};
struct  Tloc216804  {
NU8 k;
NU8 s;
NU16 flags;
Ttype216828* t;
Ropeobj172006* r;
Ropeobj172006* heaproot;
};
struct  Tsym216822  {
  Tidobj191006 Sup;
NU8 kind;
union{
struct {Ttypeseq216824* typeinstcache;
Tscope216816* typscope;
} S1;
struct {TY216925* procinstcache;
Tsym216822* gcunsafetyreason;
} S2;
struct {TY216925* usedgenerics;
Tstrtable216794 tab;
} S3;
struct {Tsym216822* guard;
NI bitsize;
} S4;
} kindU;
NU8 magic;
Ttype216828* typ;
Tident191012* name;
Tlineinfo184337 info;
Tsym216822* owner;
NU32 flags;
Tnode216790* ast;
NU32 options;
NI position;
NI offset;
Tloc216804 loc;
Tlib216808* annex;
Tnode216790* constraint;
};
struct  Gcstack49616  {
Gcstack49616* prev;
Gcstack49616* next;
void* starts;
void* pos;
NI maxstacksize;
};
typedef NI TY29419[8];
struct  Pagedesc47312  {
Pagedesc47312* next;
NI key;
TY29419 bits;
};
struct  Basechunk29438  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk29440  {
  Basechunk29438 Sup;
Smallchunk29440* next;
Smallchunk29440* prev;
Freecell29430* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk29482  {
NI size;
NI acc;
Llchunk29482* next;
};
struct  Bigchunk29442  {
  Basechunk29438 Sup;
Bigchunk29442* next;
Bigchunk29442* prev;
NI align;
NF data;
};
struct  Trunk29410  {
Trunk29410* next;
NI key;
TY29419 bits;
};
typedef Avlnode29486* TY29493[2];
struct  Avlnode29486  {
TY29493 link;
NI key;
NI upperbound;
NI level;
};
struct  Ttype216828  {
  Tidobj191006 Sup;
NU8 kind;
NU8 callconv;
NU32 flags;
Ttypeseq216824* sons;
Tnode216790* n;
Tsym216822* owner;
Tsym216822* sym;
Tsym216822* destructor;
Tsym216822* deepcopy;
Tsym216822* assignment;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc216804 loc;
};
struct  Tnode216790  {
Ttype216828* typ;
Tlineinfo184337 info;
NU16 flags;
NU8 kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym216822* sym;
} S4;
struct {Tident191012* ident;
} S5;
struct {Tnodeseq216784* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct  Tscope216816  {
NI depthlevel;
Tstrtable216794 symbols;
Tnodeseq216784* usingsyms;
Tscope216816* parent;
};
struct  Tident191012  {
  Tidobj191006 Sup;
NimStringDesc* s;
Tident191012* next;
NI h;
};
struct  Ropeobj172006  {
  TNimObject Sup;
Ropeobj172006* left;
Ropeobj172006* right;
NI length;
NimStringDesc* data;
};
struct  Tlistentry138010  {
  TNimObject Sup;
Tlistentry138010* prev;
Tlistentry138010* next;
};
struct  Tlib216808  {
  Tlistentry138010 Sup;
NU8 kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj172006* name;
Tnode216790* path;
};
struct  Freecell29430  {
Freecell29430* next;
NI zerofield;
};
struct  Tinstantiation216812  {
Tsym216822* sym;
Ttypeseq216824* concretetypes;
TY216913* usedby;
NI compilesid;
};
struct Keyvaluepairseq184431 {
  TGenericSeq Sup;
  Keyvaluepair184434 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq254057 {
  TGenericSeq Sup;
  Keyvaluepair254060 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq382259 {
  TGenericSeq Sup;
  Keyvaluepair382262 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq383060 {
  TGenericSeq Sup;
  Keyvaluepair383063 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq328050 {
  TGenericSeq Sup;
  Keyvaluepair328053 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq400593 {
  TGenericSeq Sup;
  Keyvaluepair400596 data[SEQ_DECL_SIZE];
};
struct TY331853 {
  TGenericSeq Sup;
  Indexentry329126 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq329142 {
  TGenericSeq Sup;
  Keyvaluepair329145 data[SEQ_DECL_SIZE];
};
struct Ttypeseq216824 {
  TGenericSeq Sup;
  Ttype216828* data[SEQ_DECL_SIZE];
};
struct TY216925 {
  TGenericSeq Sup;
  Tinstantiation216812* data[SEQ_DECL_SIZE];
};
struct Tsymseq216792 {
  TGenericSeq Sup;
  Tsym216822* data[SEQ_DECL_SIZE];
};
struct Tnodeseq216784 {
  TGenericSeq Sup;
  Tnode216790* data[SEQ_DECL_SIZE];
};
struct TY216913 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP150)(void* p, NI op);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, TMP921)(void* p, NI op);
static N_INLINE(NI, rawget_254695)(Table254054 t, NI key, NI* hc);
static N_INLINE(NI, hash_140801)(NI x);
static N_INLINE(NIM_BOOL, isfilled_166263)(NI hcode);
static N_INLINE(NI, nexttry_166401)(NI h, NI maxhash);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(Cell47304*, usrtocell_51240)(void* usr);
static N_INLINE(void, rtladdzct_52801)(Cell47304* c);
N_NOINLINE(void, addzct_51217)(Cellseq47320* s, Cell47304* c);
static N_INLINE(NIM_BOOL, mustrehash_166268)(NI length, NI counter);
N_NIMCALL(void, enlarge_254771)(Table254054* t);
static N_INLINE(NI, rawgetknownhc_254824)(Table254054 t, NI key, NI hc);
N_NIMCALL(void, rawinsert_254840)(Table254054* t, Keyvaluepairseq254057** data, NI key, Tsym216822* val, NI hc, NI h);
N_NIMCALL(void, TMP1135)(void* p, NI op);
N_NIMCALL(void, TMP1137)(void* p, NI op);
static N_INLINE(NI, rawget_382436)(Table382256 t, NI key, NI* hc);
N_NIMCALL(void, enlarge_382500)(Table382256* t);
static N_INLINE(NI, rawgetknownhc_382553)(Table382256 t, NI key, NI hc);
N_NIMCALL(void, rawinsert_382569)(Table382256* t, Keyvaluepairseq382259** data, NI key, Ttype216828* val, NI hc, NI h);
static N_INLINE(NI, rawget_383646)(Table383057 t, NI key, NI* hc);
N_NIMCALL(void, enlarge_383732)(Table383057* t);
static N_INLINE(NI, rawgetknownhc_383785)(Table383057 t, NI key, NI hc);
N_NIMCALL(void, rawinsert_383801)(Table383057* t, Keyvaluepairseq383060** data, NI key, Tnode216790* val, NI hc, NI h);
static N_INLINE(NI, rawget_184720)(Table184428 t, NimStringDesc* key, NI* hc);
N_NIMCALL(NI, hash_140827)(NimStringDesc* x);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(void, raiseException)(Exception* e, NCSTRING ename);
N_NIMCALL(void, enlarge_184871)(Table184428* t);
static N_INLINE(NI, rawgetknownhc_184924)(Table184428 t, NimStringDesc* key, NI hc);
N_NIMCALL(void, rawinsert_184940)(Table184428* t, Keyvaluepairseq184431** 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, rawget_328866)(Table328047 t, NimStringDesc* key, NI* hc);
N_NIMCALL(void, enlarge_328951)(Table328047* t);
N_NIMCALL(void, TMP2590)(void* p, NI op);
static N_INLINE(NI, rawgetknownhc_329004)(Table328047 t, NimStringDesc* key, NI hc);
N_NIMCALL(void, rawinsert_329020)(Table328047* t, Keyvaluepairseq328050** data, NimStringDesc* key, NI val, NI hc, NI h);
N_NIMCALL(void, TMP3088)(void* p, NI op);
static N_INLINE(NI, rawget_401113)(Table400590 t, NI64 key, NI* hc);
static N_INLINE(NI, hash_140805)(NI64 x);
N_NIMCALL(void, enlarge_401186)(Table400590* t);
static N_INLINE(NI, rawgetknownhc_401239)(Table400590 t, NI64 key, NI hc);
N_NIMCALL(void, rawinsert_401255)(Table400590* t, Keyvaluepairseq400593** data, NI64 key, Tnode216790* val, NI hc, NI h);
N_NIMCALL(void, TMP5196)(void* p, NI op);
static N_INLINE(NI, rawget_331261)(Table329139 t, Indexentry329126* key, NI* hc);
N_NIMCALL(NI, hash_329164)(Indexentry329126* x);
N_NIMCALL(NIM_BOOL, HEX3DHEX3D_331275)(Indexentry329126* x, Indexentry329126* y);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src_85404, TNimType* mt);
N_NIMCALL(void, enlarge_332304)(Table329139* t);
static N_INLINE(NI, rawgetknownhc_332357)(Table329139 t, Indexentry329126* key, NI hc);
N_NIMCALL(void, rawinsert_332382)(Table329139* t, Keyvaluepairseq329142** data, Indexentry329126* key, TY331853* val, NI hc, NI h);
STRING_LITERAL(TMP1244, "key not found: ", 15);
TNimType NTI184434; /* KeyValuePair */
extern TNimType NTI140002; /* Hash */
extern TNimType NTI138; /* string */
extern TNimType NTI110; /* int32 */
TNimType NTI184431; /* KeyValuePairSeq */
TNimType NTI184428; /* Table */
extern TNimType NTI104; /* int */
TNimType NTI254054; /* Table */
TNimType NTI254060; /* KeyValuePair */
extern TNimType NTI216788; /* PSym */
TNimType NTI254057; /* KeyValuePairSeq */
extern Gcheap49618 gch_49659;
TNimType NTI382262; /* KeyValuePair */
extern TNimType NTI216786; /* PType */
TNimType NTI382259; /* KeyValuePairSeq */
TNimType NTI383063; /* KeyValuePair */
extern TNimType NTI216782; /* PNode */
TNimType NTI383060; /* KeyValuePairSeq */
extern TNimType NTI184804; /* ref KeyError */
extern TNimType NTI3648; /* KeyError */
TNimType NTI328053; /* KeyValuePair */
TNimType NTI328050; /* KeyValuePairSeq */
TNimType NTI400596; /* KeyValuePair */
extern TNimType NTI7088; /* BiggestInt */
TNimType NTI400593; /* KeyValuePairSeq */
TNimType NTI328047; /* Table */
TNimType NTI329145; /* KeyValuePair */
extern TNimType NTI329126; /* IndexEntry */
extern TNimType NTI331853; /* seq[IndexEntry] */
TNimType NTI329142; /* KeyValuePairSeq */
N_NIMCALL(void, TMP150)(void* p, NI op) {
	Keyvaluepairseq184431* a;
	NI LOC1;
	a = (Keyvaluepairseq184431*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1, op);
	}
}

N_NIMCALL(void, inittable_184420)(NI initialsize, Table184428* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq184431*) newSeq((&NTI184431), ((NI) (initialsize))));
}
N_NIMCALL(void, TMP921)(void* p, NI op) {
	Keyvaluepairseq254057* a;
	NI LOC1;
	a = (Keyvaluepairseq254057*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

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

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

static N_INLINE(NI, nexttry_166401)(NI h, NI maxhash) {
	NI result;
	result = 0;
	result = (NI)((NI)(h + ((NI) 1)) & maxhash);
	return result;
}

static N_INLINE(NI, rawget_254695)(Table254054 t, NI key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_140801(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = (t.data->data[h].Field1 == key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tsym216822*, getordefault_254680)(Table254054 t, NI key) {
	Tsym216822* result;
	NI hc_254691;
	NI index_254693;
	result = 0;
	hc_254691 = 0;
	index_254693 = rawget_254695(t, key, (&hc_254691));
	{
		if (!(((NI) 0) <= index_254693)) goto LA3;
		result = t.data->data[index_254693].Field2;
	}
	LA3: ;
	return result;
}

static N_INLINE(Cell47304*, usrtocell_51240)(void* usr) {
	Cell47304* result;
	result = 0;
	result = ((Cell47304*) ((NI)((NU64)(((NI) (usr))) - (NU64)(((NI)sizeof(Cell47304))))));
	return result;
}

static N_INLINE(void, rtladdzct_52801)(Cell47304* c) {
	addzct_51217((&gch_49659.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		Cell47304* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_51240(src);
		(*c).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell47304* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_51240((*dest));
		{
			(*c).refcount -= ((NI) 8);
			if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA11;
			rtladdzct_52801(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

static N_INLINE(NIM_BOOL, mustrehash_166268)(NI length, NI counter) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = ((NI)(length * ((NI) 2)) < (NI)(counter * ((NI) 3)));
	if (LOC1) goto LA2;
	LOC1 = ((NI)(length - counter) < ((NI) 4));
	LA2: ;
	result = LOC1;
	return result;
}

static N_INLINE(NI, rawgetknownhc_254824)(Table254054 t, NI key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = (t.data->data[h].Field1 == key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_254840)(Table254054* t, Keyvaluepairseq254057** data, NI key, Tsym216822* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRefNoCycle((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_254771)(Table254054* t) {
	Keyvaluepairseq254057* n;
	Keyvaluepairseq254057* LOC1;
	n = 0;
	n = (Keyvaluepairseq254057*) newSeq((&NTI254057), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_254822;
		NI HEX3Atmp_254863;
		NI res_254866;
		i_254822 = 0;
		HEX3Atmp_254863 = 0;
		HEX3Atmp_254863 = (n ? (n->Sup.len-1) : -1);
		res_254866 = ((NI) 0);
		{
			while (1) {
				if (!(res_254866 <= HEX3Atmp_254863)) goto LA4;
				i_254822 = res_254866;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_166263(n->data[i_254822].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_254824((*t), n->data[i_254822].Field1, n->data[i_254822].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_254840(t, (&(*t).data), n->data[i_254822].Field1, n->data[i_254822].Field2, n->data[i_254822].Field0, j);
				}
				LA8: ;
				res_254866 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_254735)(Table254054* t, NI key, Tsym216822* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_254695((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		asgnRefNoCycle((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_166268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_254771(t);
			index = rawgetknownhc_254824((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_254840(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}
N_NIMCALL(void, TMP1135)(void* p, NI op) {
	Keyvaluepairseq382259* a;
	NI LOC1;
	a = (Keyvaluepairseq382259*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_382281)(NI initialsize, Table382256* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq382259*) newSeq((&NTI382259), ((NI) (initialsize))));
}
N_NIMCALL(void, TMP1137)(void* p, NI op) {
	Keyvaluepairseq383060* a;
	NI LOC1;
	a = (Keyvaluepairseq383060*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_383083)(NI initialsize, Table383057* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq383060*) newSeq((&NTI383060), ((NI) (initialsize))));
}

static N_INLINE(NI, rawget_382436)(Table382256 t, NI key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_140801(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = (t.data->data[h].Field1 == key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_382553)(Table382256 t, NI key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = (t.data->data[h].Field1 == key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_382569)(Table382256* t, Keyvaluepairseq382259** data, NI key, Ttype216828* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRefNoCycle((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_382500)(Table382256* t) {
	Keyvaluepairseq382259* n;
	Keyvaluepairseq382259* LOC1;
	n = 0;
	n = (Keyvaluepairseq382259*) newSeq((&NTI382259), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_382551;
		NI HEX3Atmp_382592;
		NI res_382595;
		i_382551 = 0;
		HEX3Atmp_382592 = 0;
		HEX3Atmp_382592 = (n ? (n->Sup.len-1) : -1);
		res_382595 = ((NI) 0);
		{
			while (1) {
				if (!(res_382595 <= HEX3Atmp_382592)) goto LA4;
				i_382551 = res_382595;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_166263(n->data[i_382551].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_382553((*t), n->data[i_382551].Field1, n->data[i_382551].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_382569(t, (&(*t).data), n->data[i_382551].Field1, n->data[i_382551].Field2, n->data[i_382551].Field0, j);
				}
				LA8: ;
				res_382595 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_382464)(Table382256* t, NI key, Ttype216828* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_382436((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		asgnRefNoCycle((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_166268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_382500(t);
			index = rawgetknownhc_382553((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_382569(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(Ttype216828*, getordefault_382421)(Table382256 t, NI key) {
	Ttype216828* result;
	NI hc_382432;
	NI index_382434;
	result = 0;
	hc_382432 = 0;
	index_382434 = rawget_382436(t, key, (&hc_382432));
	{
		if (!(((NI) 0) <= index_382434)) goto LA3;
		result = t.data->data[index_382434].Field2;
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, rawget_383646)(Table383057 t, NI key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_140801(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = (t.data->data[h].Field1 == key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tnode216790*, getordefault_383631)(Table383057 t, NI key) {
	Tnode216790* result;
	NI hc_383642;
	NI index_383644;
	result = 0;
	hc_383642 = 0;
	index_383644 = rawget_383646(t, key, (&hc_383642));
	{
		if (!(((NI) 0) <= index_383644)) goto LA3;
		result = t.data->data[index_383644].Field2;
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_383785)(Table383057 t, NI key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = (t.data->data[h].Field1 == key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_383801)(Table383057* t, Keyvaluepairseq383060** data, NI key, Tnode216790* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRefNoCycle((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_383732)(Table383057* t) {
	Keyvaluepairseq383060* n;
	Keyvaluepairseq383060* LOC1;
	n = 0;
	n = (Keyvaluepairseq383060*) newSeq((&NTI383060), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_383783;
		NI HEX3Atmp_383824;
		NI res_383827;
		i_383783 = 0;
		HEX3Atmp_383824 = 0;
		HEX3Atmp_383824 = (n ? (n->Sup.len-1) : -1);
		res_383827 = ((NI) 0);
		{
			while (1) {
				if (!(res_383827 <= HEX3Atmp_383824)) goto LA4;
				i_383783 = res_383827;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_166263(n->data[i_383783].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_383785((*t), n->data[i_383783].Field1, n->data[i_383783].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_383801(t, (&(*t).data), n->data[i_383783].Field1, n->data[i_383783].Field2, n->data[i_383783].Field0, j);
				}
				LA8: ;
				res_383827 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_383696)(Table383057* t, NI key, Tnode216790* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_383646((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		asgnRefNoCycle((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_166268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_383732(t);
			index = rawgetknownhc_383785((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_383801(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
{	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (*a).Sup.len);
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result;
}

static N_INLINE(NI, rawget_184720)(Table184428 t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_140827(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = eqStrings(t.data->data[h].Field1, key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, haskey_184708)(Table184428 t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI LOC1;
	result = 0;
	hc = 0;
	LOC1 = 0;
	LOC1 = rawget_184720(t, key, (&hc));
	result = (((NI) 0) <= LOC1);
	return result;
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((NCSTRING) ((*src).data)), (NI)((*src).Sup.len + ((NI) 1)));
	(*dest).Sup.len += (*src).Sup.len;
}

N_NIMCALL(NI32*, HEX5BHEX5D_184740)(Table184428* t, NimStringDesc* key) {
	NI32* result;
	NI hc_184753;
	NI index_184755;
	result = 0;
	hc_184753 = 0;
	index_184755 = rawget_184720((*t), key, (&hc_184753));
	{
		if (!(((NI) 0) <= index_184755)) goto LA3;
		result = (&(*t).data->data[index_184755].Field2);
	}
	goto LA1;
	LA3: ;
	{
		Keyerror3648* e_184803;
		NimStringDesc* LOC6;
		e_184803 = 0;
		e_184803 = (Keyerror3648*) newObj((&NTI184804), sizeof(Keyerror3648));
		(*e_184803).Sup.Sup.Sup.m_type = (&NTI3648);
		LOC6 = 0;
		LOC6 = rawNewString(key->Sup.len + 15);
appendString(LOC6, ((NimStringDesc*) &TMP1244));
appendString(LOC6, key);
		asgnRefNoCycle((void**) (&(*e_184803).Sup.Sup.message), LOC6);
		raiseException((Exception*)e_184803, "KeyError");
	}
	LA1: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_184924)(Table184428 t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = eqStrings(t.data->data[h].Field1, key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	Cell47304* c;
	c = usrtocell_51240(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3;
		rtladdzct_52801(c);
	}
	LA3: ;
}

N_NIMCALL(void, rawinsert_184940)(Table184428* t, Keyvaluepairseq184431** data, NimStringDesc* key, NI32 val, NI hc, NI h) {
	NimStringDesc* LOC1;
	LOC1 = 0;
	LOC1 = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_184871)(Table184428* t) {
	Keyvaluepairseq184431* n;
	Keyvaluepairseq184431* LOC1;
	n = 0;
	n = (Keyvaluepairseq184431*) newSeq((&NTI184431), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_184922;
		NI HEX3Atmp_184963;
		NI res_184966;
		i_184922 = 0;
		HEX3Atmp_184963 = 0;
		HEX3Atmp_184963 = (n ? (n->Sup.len-1) : -1);
		res_184966 = ((NI) 0);
		{
			while (1) {
				if (!(res_184966 <= HEX3Atmp_184963)) goto LA4;
				i_184922 = res_184966;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_166263(n->data[i_184922].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_184924((*t), n->data[i_184922].Field1, n->data[i_184922].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_184940(t, (&(*t).data), n->data[i_184922].Field1, n->data[i_184922].Field2, n->data[i_184922].Field0, j);
				}
				LA8: ;
				res_184966 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_184835)(Table184428* t, NimStringDesc* key, NI32 val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_184720((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		(*t).data->data[index].Field2 = val;
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_166268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_184871(t);
			index = rawgetknownhc_184924((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_184940(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(void, inittable_255797)(NI initialsize, Table254054* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq254057*) newSeq((&NTI254057), ((NI) (initialsize))));
}

static N_INLINE(NI, rawget_328866)(Table328047 t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_140827(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = eqStrings(t.data->data[h].Field1, key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, haskey_328854)(Table328047 t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI LOC1;
	result = 0;
	hc = 0;
	LOC1 = 0;
	LOC1 = rawget_328866(t, key, (&hc));
	result = (((NI) 0) <= LOC1);
	return result;
}
N_NIMCALL(void, TMP2590)(void* p, NI op) {
	Keyvaluepairseq328050* a;
	NI LOC1;
	a = (Keyvaluepairseq328050*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1, op);
	}
}

static N_INLINE(NI, rawgetknownhc_329004)(Table328047 t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = eqStrings(t.data->data[h].Field1, key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_329020)(Table328047* t, Keyvaluepairseq328050** data, NimStringDesc* key, NI val, NI hc, NI h) {
	NimStringDesc* LOC1;
	LOC1 = 0;
	LOC1 = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_328951)(Table328047* t) {
	Keyvaluepairseq328050* n;
	Keyvaluepairseq328050* LOC1;
	n = 0;
	n = (Keyvaluepairseq328050*) newSeq((&NTI328050), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_329002;
		NI HEX3Atmp_329043;
		NI res_329046;
		i_329002 = 0;
		HEX3Atmp_329043 = 0;
		HEX3Atmp_329043 = (n ? (n->Sup.len-1) : -1);
		res_329046 = ((NI) 0);
		{
			while (1) {
				if (!(res_329046 <= HEX3Atmp_329043)) goto LA4;
				i_329002 = res_329046;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_166263(n->data[i_329002].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_329004((*t), n->data[i_329002].Field1, n->data[i_329002].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_329020(t, (&(*t).data), n->data[i_329002].Field1, n->data[i_329002].Field2, n->data[i_329002].Field0, j);
				}
				LA8: ;
				res_329046 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_328915)(Table328047* t, NimStringDesc* key, NI val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_328866((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		(*t).data->data[index].Field2 = val;
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_166268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_328951(t);
			index = rawgetknownhc_329004((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_329020(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(NI, getordefault_328886)(Table328047 t, NimStringDesc* key) {
	NI result;
	NI hc_328897;
	NI index_328899;
	result = 0;
	hc_328897 = 0;
	index_328899 = rawget_328866(t, key, (&hc_328897));
	{
		if (!(((NI) 0) <= index_328899)) goto LA3;
		result = t.data->data[index_328899].Field2;
	}
	LA3: ;
	return result;
}
N_NIMCALL(void, TMP3088)(void* p, NI op) {
	Keyvaluepairseq400593* a;
	NI LOC1;
	a = (Keyvaluepairseq400593*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_401379)(NI initialsize, Table400590* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq400593*) newSeq((&NTI400593), ((NI) (initialsize))));
}

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

static N_INLINE(NI, rawget_401113)(Table400590 t, NI64 key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_140805(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = (t.data->data[h].Field1 == key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tnode216790*, getordefault_401098)(Table400590 t, NI64 key) {
	Tnode216790* result;
	NI hc_401109;
	NI index_401111;
	result = 0;
	hc_401109 = 0;
	index_401111 = rawget_401113(t, key, (&hc_401109));
	{
		if (!(((NI) 0) <= index_401111)) goto LA3;
		result = t.data->data[index_401111].Field2;
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_401239)(Table400590 t, NI64 key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = (t.data->data[h].Field1 == key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_401255)(Table400590* t, Keyvaluepairseq400593** data, NI64 key, Tnode216790* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRefNoCycle((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_401186)(Table400590* t) {
	Keyvaluepairseq400593* n;
	Keyvaluepairseq400593* LOC1;
	n = 0;
	n = (Keyvaluepairseq400593*) newSeq((&NTI400593), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_401237;
		NI HEX3Atmp_401278;
		NI res_401281;
		i_401237 = 0;
		HEX3Atmp_401278 = 0;
		HEX3Atmp_401278 = (n ? (n->Sup.len-1) : -1);
		res_401281 = ((NI) 0);
		{
			while (1) {
				if (!(res_401281 <= HEX3Atmp_401278)) goto LA4;
				i_401237 = res_401281;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_166263(n->data[i_401237].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_401239((*t), n->data[i_401237].Field1, n->data[i_401237].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_401255(t, (&(*t).data), n->data[i_401237].Field1, n->data[i_401237].Field2, n->data[i_401237].Field0, j);
				}
				LA8: ;
				res_401281 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_401150)(Table400590* t, NI64 key, Tnode216790* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_401113((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		asgnRefNoCycle((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_166268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_401186(t);
			index = rawgetknownhc_401239((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_401255(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(void, inittable_328106)(NI initialsize, Table328047* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq328050*) newSeq((&NTI328050), ((NI) (initialsize))));
}
N_NIMCALL(void, TMP5196)(void* p, NI op) {
	Keyvaluepairseq329142* a;
	NI LOC1;
	a = (Keyvaluepairseq329142*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1.keyword, op);
	nimGCvisit((void*)a->data[LOC1].Field1.link, op);
	nimGCvisit((void*)a->data[LOC1].Field1.linktitle, op);
	nimGCvisit((void*)a->data[LOC1].Field1.linkdesc, op);
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_331875)(NI initialsize, Table329139* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq329142*) newSeq((&NTI329142), ((NI) (initialsize))));
}

N_NIMCALL(NI, len_332259)(Table329139 t) {
	NI result;
	result = 0;
	result = t.counter;
	return result;
}

static N_INLINE(NI, rawget_331261)(Table329139 t, Indexentry329126* key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_329164(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = HEX3DHEX3D_331275((&t.data->data[h].Field1), key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_332357)(Table329139 t, Indexentry329126* key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_166263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = HEX3DHEX3D_331275((&t.data->data[h].Field1), key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_166401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_332382)(Table329139* t, Keyvaluepairseq329142** data, Indexentry329126* key, TY331853* val, NI hc, NI h) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	LOC1 = 0;
	LOC1 = (*data)->data[h].Field1.keyword; (*data)->data[h].Field1.keyword = copyStringRC1((*key).keyword);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	LOC2 = 0;
	LOC2 = (*data)->data[h].Field1.link; (*data)->data[h].Field1.link = copyStringRC1((*key).link);
	if (LOC2) nimGCunrefNoCycle(LOC2);
	LOC3 = 0;
	LOC3 = (*data)->data[h].Field1.linktitle; (*data)->data[h].Field1.linktitle = copyStringRC1((*key).linktitle);
	if (LOC3) nimGCunrefNoCycle(LOC3);
	LOC4 = 0;
	LOC4 = (*data)->data[h].Field1.linkdesc; (*data)->data[h].Field1.linkdesc = copyStringRC1((*key).linkdesc);
	if (LOC4) nimGCunrefNoCycle(LOC4);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTI331853));
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_332304)(Table329139* t) {
	Keyvaluepairseq329142* n;
	Keyvaluepairseq329142* LOC1;
	n = 0;
	n = (Keyvaluepairseq329142*) newSeq((&NTI329142), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_332355;
		NI HEX3Atmp_332405;
		NI res_332408;
		i_332355 = 0;
		HEX3Atmp_332405 = 0;
		HEX3Atmp_332405 = (n ? (n->Sup.len-1) : -1);
		res_332408 = ((NI) 0);
		{
			while (1) {
				if (!(res_332408 <= HEX3Atmp_332405)) goto LA4;
				i_332355 = res_332408;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_166263(n->data[i_332355].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_332357((*t), (&n->data[i_332355].Field1), n->data[i_332355].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_332382(t, (&(*t).data), (&n->data[i_332355].Field1), n->data[i_332355].Field2, n->data[i_332355].Field0, j);
				}
				LA8: ;
				res_332408 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_332268)(Table329139* t, Indexentry329126* key, TY331853* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_331261((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		genericSeqAssign((&(*t).data->data[index].Field2), val, (&NTI331853));
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_166268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_332304(t);
			index = rawgetknownhc_332357((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_332382(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(TY331853*, getordefault_331246)(Table329139 t, Indexentry329126* key) {
	TY331853* result;
	NI hc_331257;
	NI index_331259;
	result = 0;
	hc_331257 = 0;
	index_331259 = rawget_331261(t, key, (&hc_331257));
	{
		if (!(((NI) 0) <= index_331259)) goto LA3;
		genericSeqAssign((&result), t.data->data[index_331259].Field2, (&NTI331853));
	}
	LA3: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, stdlib_tablesInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_tablesDatInit000)(void) {
static TNimNode* TMP149[3];
static TNimNode* TMP153[2];
static TNimNode* TMP919[2];
static TNimNode* TMP920[3];
static TNimNode* TMP1134[3];
static TNimNode* TMP1136[3];
static TNimNode* TMP2589[3];
static TNimNode* TMP3087[3];
static TNimNode* TMP5039[2];
static TNimNode* TMP5193[3];
static TNimNode TMP57[37];
NTI184434.size = sizeof(Keyvaluepair184434);
NTI184434.kind = 18;
NTI184434.base = 0;
NTI184434.flags = 2;
TMP149[0] = &TMP57[1];
TMP57[1].kind = 1;
TMP57[1].offset = offsetof(Keyvaluepair184434, Field0);
TMP57[1].typ = (&NTI140002);
TMP57[1].name = "Field0";
TMP149[1] = &TMP57[2];
TMP57[2].kind = 1;
TMP57[2].offset = offsetof(Keyvaluepair184434, Field1);
TMP57[2].typ = (&NTI138);
TMP57[2].name = "Field1";
TMP149[2] = &TMP57[3];
TMP57[3].kind = 1;
TMP57[3].offset = offsetof(Keyvaluepair184434, Field2);
TMP57[3].typ = (&NTI110);
TMP57[3].name = "Field2";
TMP57[0].len = 3; TMP57[0].kind = 2; TMP57[0].sons = &TMP149[0];
NTI184434.node = &TMP57[0];
NTI184431.size = sizeof(Keyvaluepairseq184431*);
NTI184431.kind = 24;
NTI184431.base = (&NTI184434);
NTI184431.flags = 2;
NTI184431.marker = TMP150;
NTI184428.size = sizeof(Table184428);
NTI184428.kind = 18;
NTI184428.base = 0;
NTI184428.flags = 2;
TMP153[0] = &TMP57[5];
TMP57[5].kind = 1;
TMP57[5].offset = offsetof(Table184428, data);
TMP57[5].typ = (&NTI184431);
TMP57[5].name = "data";
TMP153[1] = &TMP57[6];
TMP57[6].kind = 1;
TMP57[6].offset = offsetof(Table184428, counter);
TMP57[6].typ = (&NTI104);
TMP57[6].name = "counter";
TMP57[4].len = 2; TMP57[4].kind = 2; TMP57[4].sons = &TMP153[0];
NTI184428.node = &TMP57[4];
NTI254054.size = sizeof(Table254054);
NTI254054.kind = 18;
NTI254054.base = 0;
NTI254054.flags = 2;
TMP919[0] = &TMP57[8];
NTI254060.size = sizeof(Keyvaluepair254060);
NTI254060.kind = 18;
NTI254060.base = 0;
NTI254060.flags = 2;
TMP920[0] = &TMP57[10];
TMP57[10].kind = 1;
TMP57[10].offset = offsetof(Keyvaluepair254060, Field0);
TMP57[10].typ = (&NTI140002);
TMP57[10].name = "Field0";
TMP920[1] = &TMP57[11];
TMP57[11].kind = 1;
TMP57[11].offset = offsetof(Keyvaluepair254060, Field1);
TMP57[11].typ = (&NTI104);
TMP57[11].name = "Field1";
TMP920[2] = &TMP57[12];
TMP57[12].kind = 1;
TMP57[12].offset = offsetof(Keyvaluepair254060, Field2);
TMP57[12].typ = (&NTI216788);
TMP57[12].name = "Field2";
TMP57[9].len = 3; TMP57[9].kind = 2; TMP57[9].sons = &TMP920[0];
NTI254060.node = &TMP57[9];
NTI254057.size = sizeof(Keyvaluepairseq254057*);
NTI254057.kind = 24;
NTI254057.base = (&NTI254060);
NTI254057.flags = 2;
NTI254057.marker = TMP921;
TMP57[8].kind = 1;
TMP57[8].offset = offsetof(Table254054, data);
TMP57[8].typ = (&NTI254057);
TMP57[8].name = "data";
TMP919[1] = &TMP57[13];
TMP57[13].kind = 1;
TMP57[13].offset = offsetof(Table254054, counter);
TMP57[13].typ = (&NTI104);
TMP57[13].name = "counter";
TMP57[7].len = 2; TMP57[7].kind = 2; TMP57[7].sons = &TMP919[0];
NTI254054.node = &TMP57[7];
NTI382262.size = sizeof(Keyvaluepair382262);
NTI382262.kind = 18;
NTI382262.base = 0;
NTI382262.flags = 2;
TMP1134[0] = &TMP57[15];
TMP57[15].kind = 1;
TMP57[15].offset = offsetof(Keyvaluepair382262, Field0);
TMP57[15].typ = (&NTI140002);
TMP57[15].name = "Field0";
TMP1134[1] = &TMP57[16];
TMP57[16].kind = 1;
TMP57[16].offset = offsetof(Keyvaluepair382262, Field1);
TMP57[16].typ = (&NTI104);
TMP57[16].name = "Field1";
TMP1134[2] = &TMP57[17];
TMP57[17].kind = 1;
TMP57[17].offset = offsetof(Keyvaluepair382262, Field2);
TMP57[17].typ = (&NTI216786);
TMP57[17].name = "Field2";
TMP57[14].len = 3; TMP57[14].kind = 2; TMP57[14].sons = &TMP1134[0];
NTI382262.node = &TMP57[14];
NTI382259.size = sizeof(Keyvaluepairseq382259*);
NTI382259.kind = 24;
NTI382259.base = (&NTI382262);
NTI382259.flags = 2;
NTI382259.marker = TMP1135;
NTI383063.size = sizeof(Keyvaluepair383063);
NTI383063.kind = 18;
NTI383063.base = 0;
NTI383063.flags = 2;
TMP1136[0] = &TMP57[19];
TMP57[19].kind = 1;
TMP57[19].offset = offsetof(Keyvaluepair383063, Field0);
TMP57[19].typ = (&NTI140002);
TMP57[19].name = "Field0";
TMP1136[1] = &TMP57[20];
TMP57[20].kind = 1;
TMP57[20].offset = offsetof(Keyvaluepair383063, Field1);
TMP57[20].typ = (&NTI104);
TMP57[20].name = "Field1";
TMP1136[2] = &TMP57[21];
TMP57[21].kind = 1;
TMP57[21].offset = offsetof(Keyvaluepair383063, Field2);
TMP57[21].typ = (&NTI216782);
TMP57[21].name = "Field2";
TMP57[18].len = 3; TMP57[18].kind = 2; TMP57[18].sons = &TMP1136[0];
NTI383063.node = &TMP57[18];
NTI383060.size = sizeof(Keyvaluepairseq383060*);
NTI383060.kind = 24;
NTI383060.base = (&NTI383063);
NTI383060.flags = 2;
NTI383060.marker = TMP1137;
NTI328053.size = sizeof(Keyvaluepair328053);
NTI328053.kind = 18;
NTI328053.base = 0;
NTI328053.flags = 2;
TMP2589[0] = &TMP57[23];
TMP57[23].kind = 1;
TMP57[23].offset = offsetof(Keyvaluepair328053, Field0);
TMP57[23].typ = (&NTI140002);
TMP57[23].name = "Field0";
TMP2589[1] = &TMP57[24];
TMP57[24].kind = 1;
TMP57[24].offset = offsetof(Keyvaluepair328053, Field1);
TMP57[24].typ = (&NTI138);
TMP57[24].name = "Field1";
TMP2589[2] = &TMP57[25];
TMP57[25].kind = 1;
TMP57[25].offset = offsetof(Keyvaluepair328053, Field2);
TMP57[25].typ = (&NTI104);
TMP57[25].name = "Field2";
TMP57[22].len = 3; TMP57[22].kind = 2; TMP57[22].sons = &TMP2589[0];
NTI328053.node = &TMP57[22];
NTI328050.size = sizeof(Keyvaluepairseq328050*);
NTI328050.kind = 24;
NTI328050.base = (&NTI328053);
NTI328050.flags = 2;
NTI328050.marker = TMP2590;
NTI400596.size = sizeof(Keyvaluepair400596);
NTI400596.kind = 18;
NTI400596.base = 0;
NTI400596.flags = 2;
TMP3087[0] = &TMP57[27];
TMP57[27].kind = 1;
TMP57[27].offset = offsetof(Keyvaluepair400596, Field0);
TMP57[27].typ = (&NTI140002);
TMP57[27].name = "Field0";
TMP3087[1] = &TMP57[28];
TMP57[28].kind = 1;
TMP57[28].offset = offsetof(Keyvaluepair400596, Field1);
TMP57[28].typ = (&NTI7088);
TMP57[28].name = "Field1";
TMP3087[2] = &TMP57[29];
TMP57[29].kind = 1;
TMP57[29].offset = offsetof(Keyvaluepair400596, Field2);
TMP57[29].typ = (&NTI216782);
TMP57[29].name = "Field2";
TMP57[26].len = 3; TMP57[26].kind = 2; TMP57[26].sons = &TMP3087[0];
NTI400596.node = &TMP57[26];
NTI400593.size = sizeof(Keyvaluepairseq400593*);
NTI400593.kind = 24;
NTI400593.base = (&NTI400596);
NTI400593.flags = 2;
NTI400593.marker = TMP3088;
NTI328047.size = sizeof(Table328047);
NTI328047.kind = 18;
NTI328047.base = 0;
NTI328047.flags = 2;
TMP5039[0] = &TMP57[31];
TMP57[31].kind = 1;
TMP57[31].offset = offsetof(Table328047, data);
TMP57[31].typ = (&NTI328050);
TMP57[31].name = "data";
TMP5039[1] = &TMP57[32];
TMP57[32].kind = 1;
TMP57[32].offset = offsetof(Table328047, counter);
TMP57[32].typ = (&NTI104);
TMP57[32].name = "counter";
TMP57[30].len = 2; TMP57[30].kind = 2; TMP57[30].sons = &TMP5039[0];
NTI328047.node = &TMP57[30];
NTI329145.size = sizeof(Keyvaluepair329145);
NTI329145.kind = 18;
NTI329145.base = 0;
NTI329145.flags = 2;
TMP5193[0] = &TMP57[34];
TMP57[34].kind = 1;
TMP57[34].offset = offsetof(Keyvaluepair329145, Field0);
TMP57[34].typ = (&NTI140002);
TMP57[34].name = "Field0";
TMP5193[1] = &TMP57[35];
TMP57[35].kind = 1;
TMP57[35].offset = offsetof(Keyvaluepair329145, Field1);
TMP57[35].typ = (&NTI329126);
TMP57[35].name = "Field1";
TMP5193[2] = &TMP57[36];
TMP57[36].kind = 1;
TMP57[36].offset = offsetof(Keyvaluepair329145, Field2);
TMP57[36].typ = (&NTI331853);
TMP57[36].name = "Field2";
TMP57[33].len = 3; TMP57[33].kind = 2; TMP57[33].sons = &TMP5193[0];
NTI329145.node = &TMP57[33];
NTI329142.size = sizeof(Keyvaluepairseq329142*);
NTI329142.kind = 24;
NTI329142.base = (&NTI329145);
NTI329142.flags = 2;
NTI329142.marker = TMP5196;
}

